Python 使用计算机语言处理工具,在考虑上下文的情况下翻译单个单词

Python 使用计算机语言处理工具,在考虑上下文的情况下翻译单个单词,python,text,nltk,google-translate,nlp,Python,Text,Nltk,Google Translate,Nlp,我想为外语学习者自动注释难词的翻译文本 例如,如果原始文本为: 在米斯维奇诺斯之家 变成 韦奇诺斯之家(邻居) 第一步是确定哪些单词是困难的。这可以通过对原文中的单词进行柠檬化,并将它们与“简单单词”列表(1500-2000个单词的基本词汇)进行比较来实现。在此列表中找不到的将被指定为“硬词”。使用Python的自然语言工具包(NLTK),这个过程似乎足够简单 必须成对翻译的单词有一些困难,例如“新婚夫妇”,或短语动词“hecalledmeup”或德语“erruftmichan”(anrufen

我想为外语学习者自动注释难词的翻译文本

例如,如果原始文本为:

在米斯维奇诺斯之家

变成

韦奇诺斯之家(邻居)

第一步是确定哪些单词是困难的。这可以通过对原文中的单词进行柠檬化,并将它们与“简单单词”列表(1500-2000个单词的基本词汇)进行比较来实现。在此列表中找不到的将被指定为“硬词”。使用Python的自然语言工具包(NLTK),这个过程似乎足够简单

必须成对翻译的单词有一些困难,例如“新婚夫妇”,或短语动词“hecalledmeup”或德语“erruftmichan”(anrufen)。这里的词不能单独处理。对于短语动词等,也许需要对语法有一些了解

第二步是根据难词出现的上下文获得正确的翻译。据我所知,这有效地应用了统计机器翻译系统的前半部分,如谷歌翻译。我相信这个问题可以通过Google Translate Research API解决,该API允许您发送要翻译的文本,并且响应包括关于翻译中的哪个单词对应于原始文本中的哪个单词的信息。所以你可以输入整个句子,然后从回答中找出你想要的单词。但是,您必须申请使用此API,并且它们有使用限制,这可能是我的应用程序的一个问题。我宁愿找到另一个解决办法。我希望没有一个解决方案能够提供100%的正确翻译,并且必须手动检查,但这仍然会加快速度

谢谢你的评论


David

对于初始步骤,不需要依赖于先验词汇表-只需在训练语料库中累积标记计数,并在测试集中标记在排序词汇表中的截止点之前未出现的标记就足够了

对于第二步,“根据困难单词出现的上下文获得正确的翻译”,是的,您需要访问MT API和/或人工翻译。选择最佳方法取决于你的目标


你可以有一个正确的翻译,一个快速的翻译,或者一个便宜的翻译-我知道你不可能同时拥有这三种翻译。

那么问题是什么?对不起,问题是:“有没有软件可以帮我解决这个问题?”,“在不使用谷歌翻译的情况下,我如何进行第二步的处理?”以及“鉴于上述困难,您对如何改进“难词”的选择有何建议?”