不过,文言文翻译中的训练数据,却一直是个难点。
相比于其他主流语言(中文现代文、英文等),文言文可以说是训练数据极少,同时还存在句式变换、繁简混合等问题,造成翻译的生硬。
这次微软的文言文翻译,主要就解决了四个方面的数据问题:
其一,针对数据量不足,利用相同字词进行数据合成和增强。文言文和现代文有一些相同含义的字词,如果对这些词语进行召回、对齐,再扩展到短词短句,就能合成大量可用的训练数据。
其二,针对句式变换不灵活,对数据格式进行变形,提拔鲁棒性。文言文断句和现代文不太一样,为此研究人员通过数据格式变形,来扩大训练数据量,让模子也学会翻译类似语句。
其三,针对字体识别不力,用简繁混合数据训练,提拔模子识别能力。为了让机器学习能同时识别简繁混合的文言文,研究人员在训练模子时会将简体中文和繁体中文数据混合在一起进行训练,确保翻译模子不堕落。
其四,针对现代文的“新词”,专门创建相关数据集和识别模子,确保不“乱翻译”。为了避免模子在碰到现代文中的“高铁、电脑、互联网”这种词时出现混乱(例如将高铁翻译成高处的铁块),研究人员建了一个模子,专门用来识别这些新词。除了新词,也针对博客、论坛、微博等新文体进行训练。
然而这都还只是文言文和中文之间的互译,整点英文试试?
英译中,bug藏不住了
这次微软的文言文翻译是直接整合到了Bing翻译里,难道还可以把文言文翻译成外语?
先挑战一下单个的英文句子:
Never gonna give you up