我有英文 - 法文(text.en,text.fr)的平行翻译语料库, 每个文本包括大约500K的行(源语和目标语句中的句子)。我想要的是: 1-使用python命令删除两个文本中的重复行;并避免两个文件中的任何对齐问题。例如:命令在text.en中删除第32行,然后当然在text.fr中删除它。 2-然后将两个文件拆分为Train / Dev / Test数据,dev为1K,测试为1K,其余为train。 我需要使用相同的命令拆分text.en和text.fr,这样我就可以保持两个文件中的对齐和对应的句子。 如果我可以随机提取测试和开发数据会更好,这将有助于获得更好的结果。 我怎样才能做到这一点?请写下命令。 我感谢任何帮助,谢谢!
答案 0 :(得分:-1)
如果你说线条是指语法句子,那么你需要先将句子分成: -
Eng = "..."
Frn = "..."
GEngLines = Eng.split(".");
GFrnLines = Frn.split(".");
for i in range(len(GEngLines)):
for j in range(len(GFrnLines)):
if GEngLines[i] == GFrnLines[j] :
GEngLines.remove(i);
GFrnLines.remove(j);
DevLinesNumber = 500
TestLinesNumber = 500
EngDevLines = []
EngTestLines = []
EngTrainLines = []
FrnDevLines = []
FrnTestLines = []
FrnTrainLines = []
for i in range(len(GEngLines)):
if i < DevLinesNumber :
EngDevLines.append(GEngLines[i])
FrnDevLines.append(GFrnLines[i]);
elif i >= DevLinesNumber and i < DevLinesNumber + TestLinesNumber :
EngTestLines.append(GEngLines[i])
FrnTestLines.append(GFrnLines[i]);
else:
EngTrainLines.append(GEngLines[i])
FrnTrainLines.append(GFrnLines[i]);
但是不要忘记在结束两行之前添加两个标签(4个空格),因为我使用的是移动设备,我无法轻易写入。