用python按照以下模版'请给我买一张从[出发地]到[目的地]的火车票', '我想去[目的地],请帮我定一张火车票', '我要乘坐明天的G1234次列车去[目的地]', '请问明天从[出发地]到[目的地]的火车票还有吗?', "请给我买一张从[出发地]到[目的地]的火车票。", "请给我买一张[出发时间]从[目的地],[到达时间]到[目的地]的火车票。"在对应的中括号中添地名和时间代表词,生成出50条自然语句,再将句子一字一字读取按照'B-Placeofdeparture': '出发地第一个字', 'I-Placeofdeparture': '出发地剩下的字', 'B-Destination': '目的地第一个字', 'I-Destination': '目的地剩下的字', 'B-Departuretime': '出发时间第一个字', 'I-Departuretime': '出发时间剩下的字', 'B-Arrivaltime': '到达时间第一个字', 'I-Arrivaltime': '到达时间剩下的字', 'O': '其他字'对每一个字后面进行标记,并把结果输出到ziran1234.txt文件中。
时间: 2023-10-23 12:48:32 浏览: 59
基于Python写的火车票分析助手(包含源代码+可执行文件+详细教程).rar
import random
places = ['北京', '上海', '广州', '深圳', '杭州', '成都', '重庆']
trains = ['G1234', 'D4567', 'K7890']
times = ['早上7点', '中午12点', '下午3点', '晚上8点']
template_list = [
'请给我买一张从{}到{}的火车票',
'我想去{},请帮我定一张火车票',
'我要乘坐明天的{}次列车去{}',
'请问明天从{}到{}的火车票还有吗?',
'请给我买一张从{}到{}的火车票。',
'请给我买一张{}从{},{}到{}的火车票。'
]
sentences = []
for i in range(50):
template = random.choice(template_list)
if template == '请给我买一张从{}到{}的火车票':
place1, place2 = random.sample(places, 2)
sentence = template.format(place1, place2)
elif template == '我想去{},请帮我定一张火车票':
place = random.choice(places)
sentence = template.format(place)
elif template == '我要乘坐明天的{}次列车去{}':
train = random.choice(trains)
place = random.choice(places)
sentence = template.format(train, place)
elif template == '请问明天从{}到{}的火车票还有吗?':
place1, place2 = random.sample(places, 2)
sentence = template.format(place1, place2)
elif template == '请给我买一张从{}到{}的火车票。':
place1, place2 = random.sample(places, 2)
sentence = template.format(place1, place2)
elif template == '请给我买一张{}从{},{}到{}的火车票。':
train = random.choice(trains)
place1, place2 = random.sample(places, 2)
time1, time2 = random.sample(times, 2)
sentence = template.format(train, place1, time1, place2, time2)
sentences.append(sentence)
print(sentences)
# 将句子一字一字读取并进行标记
def tag_word(word):
if word in places:
return 'B-Destination', 'I-Destination'
elif word in trains:
return 'B-Train', 'I-Train'
elif word in times:
return 'B-Time', 'I-Time'
else:
return 'O', 'O'
with open('ziran1234.txt', 'w', encoding='utf-8') as f:
for sentence in sentences:
for i in range(len(sentence)):
if sentence[i] == ' ':
continue
tag1, tag2 = tag_word(sentence[i])
if i == 0:
f.write(sentence[i] + '\t' + tag1 + '\n')
else:
f.write(sentence[i] + '\t' + tag2 + '\n')
阅读全文