考虑上下文的单词翻译,使用计算语言处理工具

5 投票
1 回答
795 浏览
提问于 2025-04-16 14:28

我想为学习外语的人自动标注文本,给一些难懂的单词加上翻译。

比如,如果原文是:

El gato esta en la casa de mis vecinos

那么可以变成:

El gato esta en la casa de mis vecinos (邻居)

第一步是找出哪些单词是难的。可以通过对原文中的单词进行词形还原,然后和一个“简单单词”的列表进行比较(这个列表大概包含1500到2000个基础词汇)。那些不在这个列表里的单词就被认为是“难单词”。用Python的自然语言工具包(NLTK)来做这个过程看起来还挺简单的。

不过,有些单词需要成对翻译,比如“新婚夫妇”,或者像“he called me up”这样的短语动词,德语的“er ruft mich an”也是一样(anrufen)。在这种情况下,单词不能单独处理,可能需要对语法有一些了解。

第二步是根据单词出现的上下文,获取这些难单词的正确翻译。我的理解是,这实际上是应用了像谷歌翻译这样的统计机器翻译系统的前半部分。我认为可以使用谷歌翻译研究API来解决这个问题,这个API可以让你发送需要翻译的文本,返回的信息中会包含翻译中哪个单词对应原文中的哪个单词。所以你可以把整句话输入进去,然后从返回的结果中找出你想要的单词。不过,使用这个API需要申请,而且它有使用限制,这可能会对我的应用造成问题。我更希望找到其他的解决方案。我预计没有任何解决方案能提供100%正确的翻译,最终还是需要人工检查,但这样应该能加快速度。

谢谢大家的评论。

大卫

1 个回答

1

在第一步中,不需要依赖事先准备好的词汇表。只需在训练数据中统计词语出现的次数,然后在测试集中标记那些在词汇表截止点之前没有出现过的词就可以了。

http://vuw.academia.edu/JosephSorell/Papers/549885/Zipfs_Law_and_Vocabulary

在第二步中,"根据词语出现的上下文获取正确的翻译",是的,你需要访问机器翻译的API或者找人进行翻译。选择最佳的方法取决于你的目标。

你可以得到一个正确的翻译、一个快速的翻译,或者一个便宜的翻译——但我不知道有什么方法可以同时满足这三点。

撰写回答