0

作为一个更大项目的一部分,我想实现一个从语言A到语言B的机器翻译器。由于没有可用的工具可以自动对这组语言进行机器翻译,并且语言 B 的可用语料库非常少,我正在尝试执行以下操作

1.给定一个语言A的句子,使用一个工具来获取它的语言A PoS(词性)标签集。

2.我用于 PoS 标记的工具(Freeling)没有返回解析树,所以我想从标签集构建我自己的解析树。

3.解析树完成后,逐级遍历(从根开始),按照语言B的语法规则对其元素重新排序。

图解说明

在此处输入图像描述

在做了一些研究之后,我发现了 Earley 解析(它解析任何语言的能力引起了我的注意,因为语言B的语法可能会随着时间的推移而改变,所以我不能保证它总是符合任何特定标准)。 但是,鉴于我的最终目标是进行结构转移,我不确定使用自下而上的解析器并在将元素与规则匹配时尝试重新排序是否会给我带来更好的性能,或者我是否走错了路我的解决方案完全错误

4

2 回答 2

0

如果您正在寻找预测解析树的“最佳”算法,那么您应该查看Parsey McParseface。谷歌最近发布的开源解决方案。两者都可以说是最先进的,并且在README.

使用基于规则的解析器或基于通用词典的方法的问题在于,您将看到的准确度非常低。通常,在这里尝试使用无监督技术是一种捷径,在大多数情况下,即使语法稍有不规则,也会导致您的算法失败。特别是如果您的目标语言的语法可能会随着时间而改变,那么它可能会有一些普遍的歧义,您将无法使用基于规则的系统来解释这一点。

至于重构解析树的通用自下而上方法,很难说这是否是正确的解决方案。这当然是构建解析树的一种非常典型的方法,但是传输的质量很大程度上取决于您所从事的领域、数据集的大小以及两种语言的语法结构。归根结底,机器学习的一大缺点是没有人可以确定地告诉你一种新方法是否有效。

您必须试一试,根据适当的指标评估性能,然后进行更改以查看您是否提高了性能。可悲的是,如果您拥有的语料库非常小,您不太可能以自动方式获得任何类型的高质量翻译,只是信号不够,但如果您使用联合国成绩单作为训练集,您可以与文献相比,最少验证您的基本方法。

于 2016-07-06T15:30:53.530 回答
0

根据您处理的源语言,FreeLing 确实提供了一个解析树(例如西班牙语、英语、加泰罗尼亚语、葡萄牙语......)

如果 FreeLing 不支持用您的语言进行解析,您可以通过编写语法来添加它。FreeLing 包含一个 CKY 解析器,它将应用您的语法并为您提供解析树。

通过这种方式,您可以实现第 2 步“从标签集构建我自己的解析树”。

关于转移,我不确定最好的策略是即时重新排序。拥有整棵树并在之后执行传输可能会更好。

如果您的目标是基于规则的翻译,您可以查看开源翻译平台https://www.apertium.org/

于 2016-07-06T15:17:48.163 回答