一个小小的任务用了两天时间,踩了无数坑,记录下来以作警示:
1、任务:
构建双语词典,用于对新语料的质量进行评分
2、思路:
由已有的质量较高的语料构建双语词典,在新的语料上计算每句翻译对应成功的概率,有一个阈值,得分较低的语料认为质量差
3、流程:
对已有的较高质量语料进行预处理-->双语语料进行合并-->利用fast_align工具进行对齐-->构建字典
4、遇到的坑:
(1)一定要保证所有的句子都是和自己的翻译语料对应在同一行上!!!否则对齐无意义
会导致源语料和目标语料没对齐的情况:
莫名其妙的空行,可能出现在初始语料、处理过的语料、分词后的语料中,有可能出现在各个环节,一定要注意
预处理阶段,有时会对句子的长度进行检查,对过短的句子进行删除,然而,如果没有吧对应的英语句子删除,基本GG
(2)fast_align使用时对语料格式的要求,必须要有对齐,以 空格竖线竖线竖线空格 隔开( ||| )
(3)一定注意空行问题,只要有一句话中第一个语料一个是空,那么全文都是空
(4)其他由于自己过于愚蠢犯下的错
5、附
几个指令:
查看空行行号:grep -n '^$' aaa.txt
删除空行(grep不好使不知道为什么)
vim aaa.txt
:g/^\s*$/d
fast_align的使用参考:
https://blog.csdn.net/weixin_40240670/article/details/86138211