簡體   English   中英

無論大小寫如何如何在NTLK swadesh語料庫中翻譯單詞-python

[英]How to translate words in NTLK swadesh corpus regardless of case - python

我是python和自然語言處理的新手,我正在嘗試使用nltk書學習。 我在第2章的末尾進行練習,我遇到了一個問題。 “在比較單詞列表的討論中,我們創建了一個稱為translate的對象,您可以使用德語和意大利語兩個單詞進行查找,以獲得相應的英語單詞。這種方法可能會出現什么問題?您能建議一種避免這種情況的方法嗎?這個問題?”

這本書讓我使用swadesh語料庫來創建“翻譯器”,如下所示:

`from nltk.corpus import swadesh
fr2en = swadesh.entries(['fr', 'en'])
de2en = swadesh.entries(['de', 'en'])
es2en = swadesh.entries(['es', 'en'])
translate = dict(fr2en)
translate.update(dict(de2en))
translate.update(dict(es2en))`

我看到的一個問題是,當您將德語的dog(hund)單詞翻譯成英語時,它僅采用大寫形式: translate['Hund']返回'dog' ,而translate['hund']返回KeyError: 'hund'

有沒有辦法使翻譯者無論大小寫都能翻譯單詞? 我一直在玩弄它,就像在進行translate.update(dict(de2en.lower))和什么都沒有用。 我覺得我缺少明顯的東西。 有人可以幫我嗎?

謝謝!

啊,德語名詞的大寫字母(請參閱http://german.about.com/library/weekly/aa020919a.htm

您可以嘗試理解列表並降低swadesh語料庫中的每個標記:

>>> from nltk.corpus import swadesh
>>> de2en = [(i.lower(),j.lower()) for i,j in swadesh.entries(['de','en'])]
>>> translate = dict(de2en)
>>> translate['hund']
u'dog'
>>> translate['Hund']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'Hund'

但是您可能會丟失密鑰中的大寫字母。 因此,為了解決此問題,您可以使用原始swadesh條目再次更新translate詞典:

>>> from nltk.corpus import swadesh
>>> de2en = [(i.lower(),j.lower()) for i,j in swadesh.entries(['de','en'])]
>>> translate = dict(de2en)
>>> translate.update(swadesh.entries(['de','en']))
>>> translate['hund']
u'dog'
>>> translate['Hund']
u'dog'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM