用Python创建字典并使用它翻译单词
我用Python创建了一本西班牙语-英语词典,并使用变量用Python创建字典并使用它翻译单词,python,Python,我用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
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
中没有一个单词被翻译成英语,所以我得到了一篇充满未知单词的文本。我想我可能用了错误的方式使用了translation
。。。我如何才能达到预期的结果?这可能是一个“区分大小写”的问题。
例如:
如果dict包含一个键“Bomb”,您将查找“Bomb”,
它找不到了。
在es2en中调低所有键,然后在es2en中查找:word.Lower()
这可能是一个“区分大小写”的问题。
例如:
如果dict包含一个键“Bomb”,您将查找“Bomb”,
它找不到了。
在es2en中降低所有键,然后在es2en中查找:word.Lower()
当给定多个语言时,.entries()
方法返回的不是字典,而是元组列表。有关示例,请参见
您需要将成对列表(2元组)转换为字典。您正在使用translation=
语句来实现这一点
但是,然后忽略translation
变量,并检查es2en中的if word:
您需要检查单词是否在翻译中
,然后查找正确的翻译,而不是打印整个词典。当给定多个语言时,.entries()
方法返回的不是词典,而是元组列表。有关示例,请参见
您需要将成对列表(2元组)转换为字典。您正在使用translation=
语句来实现这一点
但是,然后忽略translation
变量,并检查es2en中的if word:
您需要检查单词是否在翻译中,然后查找正确的翻译,而不是打印整个词典。我正在构建翻译机(语言词典)
它用印尼语翻译成英语,反之亦然
我从零开始构建它,我所做的是收集巴哈萨语中的所有单词,以及单词的意思
然后将其与wordnet数据库进行比较(爬网)
在有了一组意思并且已经将英语中的意思与巴哈萨语配对/分组后,进行此操作,收集大量数据,将其分离,科学内容和日常内容
将所有数据标记到句子中,计算哪个单词与其他单词(巴哈萨语和英语)配对的概率更高,这是必要的,因为每个单词都可能有几种方法。此计算用于选择要使用的单词
巴哈萨语的例子:
“bisa”在巴哈萨语中可能意味着毒药,很可能与蛇或咬伤配对
“bisa”,在巴哈萨语中可能意味着可以做某事,与动词单词或表示愿意做某事(动词)配对的可能性很高
因此,如果标记化结果与snake或bite配对,您可以通过检查英语中的snake和poison来搜索答案中类似的含义。在英文数据库中搜索,你会发现毒液总是与蛇配对(与毒素/毒药的意思相似)
另一组可以根据单词类型(名词、动词、形容词等)进行分类
bisa==毒药(名词)
bisa==can(动词)
就这样。完成计算后,您不需要数据库,只需要单词匹配数据。
因此,您可以通过检查在线数据(例如:维基百科)或下载它,或使用圣经/书籍文件或任何其他包含大量句子的数据库来进行计算。我正在构建翻译机(语言词典)
它用印尼语翻译成英语,反之亦然
我从零开始构建它,我所做的是收集巴哈萨语中的所有单词,以及单词的意思
然后将其与wordnet数据库进行比较(爬网)
在有了一组意思并且已经将英语中的意思与巴哈萨语配对/分组后,进行此操作,收集大量数据,将其分离,科学内容和日常内容
将所有数据标记到句子中,计算哪个单词与其他单词(巴哈萨语和英语)配对的概率更高,这是必要的,因为每个单词都可能有几种方法。此计算用于选择要使用的单词
巴哈萨语的例子:
“bisa”在巴哈萨语中可能意味着毒药,很可能与蛇或咬伤配对
“bisa”,在巴哈萨语中可能意味着可以做某事,与动词单词或表示愿意做某事(动词)配对的可能性很高
因此,如果标记化结果与snake或bite配对,您可以通过检查英语中的snake和poison来搜索答案中类似的含义。在英文数据库中搜索,你会发现毒液总是与蛇配对(与毒素/毒药的意思相似)
另一组可以根据单词类型(名词、动词、形容词等)进行分类
bisa==毒药(名词)
bisa==can(动词)
就这样。完成计算后,您不需要数据库,只需要单词匹配数据。
因此,您可以通过检查在线数据(例如:维基百科)或下载它,或使用圣经/书籍文件或任何其他包含大量句子的数据库来进行计算。swadesh.entries的功能是什么?它是一个语料库,包含多种语言的单词列表。我正在使用它通过“连接”两个合适的列表来创建一本西班牙语-英语词典。我认为我的书中单词的循环。单词(“book_1”)
可能是错误的。你不应该从外部循环中的句子
中获取单词吗(否则你为什么要循环句子)?@slider我必须迭代单词才能获得相应的翻译。但我是冷杉