用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 19:47:34 浏览: 13
import random
# 模版句子
templates = [
'请给我买一张从[出发地]到[目的地]的火车票',
'我想去[目的地],请帮我定一张火车票',
'我要乘坐明天的G1234次列车去[目的地]',
'请问明天从[出发地]到[目的地]的火车票还有吗?',
'请给我买一张从[出发地]到[目的地]的火车票。',
'请给我买一张[出发时间]从[目的地],[到达时间]到[目的地]的火车票。'
]
# 地名和时间代表词
places = ['北京', '上海', '广州', '深圳', '成都']
times = ['明天', '后天', '周末', '下周一', '下周三']
# 生成50条自然语句
sentences = []
for i in range(50):
template = random.choice(templates)
if '[出发地]' in template:
place_of_departure = random.choice(places)
template = template.replace('[出发地]', place_of_departure)
if '[目的地]' in template:
destination = random.choice(places)
while destination == place_of_departure:
destination = random.choice(places)
template = template.replace('[目的地]', destination)
if '[出发时间]' in template:
departure_time = random.choice(times)
template = template.replace('[出发时间]', departure_time)
if '[到达时间]' in template:
arrival_time = random.choice(times)
template = template.replace('[到达时间]', arrival_time)
sentences.append(template)
# 将句子一字一字读取并进行标记
tags = {'B-Placeofdeparture': '出发地第一个字',
'I-Placeofdeparture': '出发地剩下的字',
'B-Destination': '目的地第一个字',
'I-Destination': '目的地剩下的字',
'B-Departuretime': '出发时间第一个字',
'I-Departuretime': '出发时间剩下的字',
'B-Arrivaltime': '到达时间第一个字',
'I-Arrivaltime': '到达时间剩下的字',
'O': '其他字'}
with open('ziran1234.txt', 'w', encoding='utf-8') as f:
for sentence in sentences:
for i, char in enumerate(sentence):
if char in place_of_departure:
if i == 0:
f.write(char + '\t' + tags['B-Placeofdeparture'] + '\n')
else:
f.write(char + '\t' + tags['I-Placeofdeparture'] + '\n')
elif char in destination:
if i == 0:
f.write(char + '\t' + tags['B-Destination'] + '\n')
else:
f.write(char + '\t' + tags['I-Destination'] + '\n')
elif char in departure_time:
if i == 0:
f.write(char + '\t' + tags['B-Departuretime'] + '\n')
else:
f.write(char + '\t' + tags['I-Departuretime'] + '\n')
elif char in arrival_time:
if i == 0:
f.write(char + '\t' + tags['B-Arrivaltime'] + '\n')
else:
f.write(char + '\t' + tags['I-Arrivaltime'] + '\n')
else:
f.write(char + '\t' + tags['O'] + '\n')
f.write('\n')