对于实现问答对的处理疑问
来源:6-9 数据处理-训练语料问答对的处理(1)

慕沐0769766
2019-06-19
for group in tqdm(groups):
for i, line in enumerate(group):
last_line = None
if i > 0:
# 最后一行
last_line = group[i - 1]
if not good_line(last_line):
last_line = None
# 下一行
next_line = None
if i < len(group) - 1:
next_line = group[i + 1]
if not good_line(next_line):
next_line = None
# 下一行的下一行
next_next_line = None
if i < len(group) - 2:
next_next_line = group[i + 2]
if not good_line(next_next_line):
next_next_line = None
这个处理我没有看明白是什么意思?为什么要这样处理句子?
2回答
-
nikai_null
2019-07-01
# 遍历组中的数据,进行问和答的编组
for i, line in enumerate(group):
# 上一行句子
last_line = None
if i > 0:
last_line = group[i - 1]
if not good_line(last_line):
last_line = None
# 下一行句子
next_line = None
if i < len(group) - 1:
next_line = group[i + 1]
if not good_line(next_line):
next_line = None
# 下一行的下一行句子
next_next_line = None
if i < len(group) - 2:
next_next_line = group[i + 2]
if not good_line(next_next_line):
next_next_line = None
# 如果有下一行,则将当前行当作问题,下一行当作回答
if next_line:
q_data.append(line)
a_data.append(next_line)
# 如果有上一行和下一行,则将上一行和这一行拼接成一句问题,将下一行当作回答
if last_line and next_line:
q_data.append(last_line + make_split(last_line) + line)
a_data.append(next_line)
# 如果有下一行和下下一行,则将当前行当作问题,将下一行和下下一行当作回答
if next_line and next_next_line:
q_data.append(line)
a_data.append(next_line + make_split(next_line) + next_next_line)这样理解才是对的,这里应该是老师讲错了,last_line应该理解成上一行,有时候如果不清楚,可以调试着走一遍,看每个变量的值,有助于理解
10 -
Mr_Ricky
2019-07-01
这一部分的处理,主要是把问答的句子给拿出来。
012019-07-17
相似问题