首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python创建一个字典并使用它翻译一个单词

用Python创建一个字典并使用它翻译一个单词
EN

Stack Overflow用户
提问于 2018-10-17 15:13:49
回答 3查看 2.7K关注 0票数 0

我用Python创建了一本西班牙语-英语词典,并使用变量translation存储它。我想使用这个变量将西班牙文文本翻译成英语。这是我到目前为止使用的代码:

代码语言:javascript
复制
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 .我怎样才能达到我想要的结果?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-10-17 15:35:52

当给出多种语言时,.entries()方法返回的不是字典,而是元组列表。有关示例,请参见这里

您需要将成对列表(2-元组)转换为字典。您正在使用您的translation =语句执行此操作。

但是,您将忽略translation变量,并检查是否存在if word in es2en:

您需要检查单词是否在translation中,然后查找正确的翻译,而不是打印整个字典。

票数 2
EN

Stack Overflow用户

发布于 2018-10-17 15:22:03

这可能是一个“案件敏感性”的问题。例如:如果一个丁字包含一个键‘炸弹’,你会寻找‘炸弹’,它将不会被找到。降低es2en中的所有键,然后查找:word.lower() in es2en

票数 0
EN

Stack Overflow用户

发布于 2019-02-23 16:30:12

我正在建造一个翻译机器(语言词典)。

从印尼语到英语,反之亦然。

我从零开始建造它,我所做的就是收集所有的文字,以及单词的方法。

然后将其与wordnet数据库进行比较(爬行)。

在有了一组意思,并已与英文的意思配对/分组后,这样做,收集广告多作为数据,分离它,科学内容和日常内容。

对句子中的所有数据进行标记化,计算哪个单词与其他单词(包括bahasa和english)之间的概率更高,这是必要的,因为每个单词都可以有几种方法。此计算用于选择要使用的单词。

例如:“bisa”在语中的意思是“毒药”,“用蛇”表示“高概率对”或“咬”“bisa”,意思是可以在语中做某事,用动词搭配动词或表示愿意做某事(动词)。

因此,如果标记结果与蛇配对或被咬,您可以通过在英语中检查“蛇”和“毒”,在答案中搜索类似的含义。在英语数据库中搜索,你会发现毒液总是和蛇成对(与毒素/毒药有相似的方法)。

另一组可以按词类型(名词、动词、形容词等)来做。

bisa ==毒素(名词)

bisa == can (动词)。

就这样。经过计算后,您不需要数据库,您只需要字匹配数据。所以,你可以通过检查在线数据(比如维基百科)或者下载,或者使用圣经/书籍文件或任何其他包含大量句子的数据库来进行计算。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52858218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档