我用Python创建了西班牙语-英语词典,并使用变量translation
存储了它。我想使用该变量来将文本从西班牙语翻译成英语。这是我到目前为止使用的代码:
from corpus.nltk import swadesh
import my_books
es2en = swadesh.entries(['es', 'en'])
translation = dict(es2en)
for sentence in my_books.sents("book_1"):
for word in my_books.words("book_1"):
if word in es2en:
print(translation, end= " ")
else:
print("unknown_word", end= " ")
print("")
我的问题是book_1
中的所有单词实际上都没有被翻译成英语,因此我得到的文本充满了unknown word
。我认为我可能以错误的方式使用了translation
...我怎么能达到预期的效果?
答案 0 :(得分:2)
.entries()
方法使用了多种语言时,它不返回字典,而是返回一个元组列表。有关示例,请参见here。
您需要将成对的列表(2元组)转换成字典。您正在使用translation =
语句来做到这一点。
但是,您然后忽略 translation
变量,并检查if word in es2en:
您需要检查单词是否在translation
中,然后查找正确的翻译,而不是打印整个词典。
答案 1 :(得分:0)
这可能是“案例敏感性”问题。
例如:
如果字典包含键“炸弹”,而您会寻找“炸弹”,
找不到。
降低es2en处的所有键,然后寻找:word.lower() in es2en
答案 2 :(得分:0)
我正在建造翻译机(语言词典)。
它在巴哈萨语(印度尼西亚)中以英语显示,反之亦然。
我从零开始构建,我正在做的是收集巴哈萨语中的所有单词以及单词的含义。
然后将其与wordnet数据库进行比较(抓取)。
具有一组含义并且已经将英语的含义与巴哈萨语进行了配对/分组之后,执行此操作,收集大量广告作为数据,将其分开,从而科学地确定内容和日常内容。
对句子中的所有数据进行标记,计算哪个单词与其他单词(以巴哈萨语和英语)配对的概率更高,这是必需的,因为每个单词都可以有多种手段。此计算用于选择您要使用的单词。
巴哈萨语的例子: 'bisa',可能意味着巴哈萨毒药和蛇或被咬的高概率对 'bisa',可能意味着可以在巴哈萨语中做某事,将高概率与动词配对或愿意做某事(动词)的表达
因此,如果标记化结果与蛇或叮咬配对,则可以通过检查英语中的蛇和毒药来搜索答案中的相似含义。并在英语数据库中进行搜索,您会发现毒液总是与蛇配对(与毒素/毒物具有类似的含义)。
另一组可以按单词类型(名词,动词,形容词等)进行操作。
bisa ==毒药(名词)
bisa == can(动词)。
就是这样。经过计算,您不需要数据库,只需要单词匹配数据。 因此您可以通过检查在线数据(例如Wikipedia)或下载或使用圣经/书籍文件或任何其他包含大量句子的数据库来进行计算。