幸运的是,NLTK 允许我手动下载语料库 (从here),并通过将它们放在适当的文件夹中 (如here所述) 来“安装”它们。
现在,我需要做的正是在this answer中所说的:
>>> cane_lemmas = wn.lemmas("cane", lang="ita")
>>> print(cane_lemmas)
[引理 ('dog.n.01.cane'),引理 ('cramp.n.02.cane'),引理 ('hammer.n.01.cane'),引理 ('bad_person.n.01.cane'),引理 ('incompetent.n.01.cane')]
为此,我认为下载文件“52.Open Multilanguage Wordnet”就足够了,将其解压缩到 C:\ nltk_data\ corpora 中,并在导入后运行前面提到的代码
from nltk.corpus import wordnet as wn
但是,当我运行代码时:
>>> cane_lemmas = wn.lemmas("cane", lang="ita")
>>> print(cane_lemmas)
我得到这个错误:
WordNetError:line 'es;它在 1812 年战争中赢得了英国护卫舰的辉煌胜利,无疑是美国海军历史上最著名的舰船;它已经过重建,并停泊在波士顿的查尔斯敦海军造船厂\ n':没有足够的值可以拆包(预期为 2,得到 1)
但是,如果我运行:
>>> cane_lemmas = wn.lemmas("dog", lang="eng")
>>> print(cane_lemmas)
我正确地得到:
[引理('dog.n.01.dog'),引理('frump.n.01.dog'),引理('dog.n.03.dog'),引理('cad.n.01.dog'),引理('frank.n.02.dog'),引理('pawl.n.01.dog')
我做错了什么?
我正在使用 python 3.7.4 和 nltk 3.4.5
可以肯定的是,您可以验证当前的 nltk_data 文件夹结构吗?正确的结构是:
nltk_data
+ corpora
+ wordnet
+ adj.exc
+ adv.exc
+ ...
+ omw
+ ...
+ ita
+ citation.bib
+ LICENSE
+ ...
+ ...
但是,在大多数情况下,问题是由于不正确的nltk_data
安装,NLTK 将通知您安装有问题(并且您必须执行例如nltk.download("wordnet")
来解决它)
我相信,为了做你的建议,你必须有wordnet
和omw
下载:
omw
:https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/packages/corpora/omw.zip
wordnet
:https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/packages/corpora/wordnet.zip
请记住,NLTK 现在支持 2 个版本的 OMW(还有omw-1.4.
,但仅在 NLTK 3.6.7 中添加了对此的支持)。此外,wordnet 有 3 个版本:wordnet
,wordnet2021
,wordnet31
和wordnet_ic
。但是,我相信您应该可以使用
有关nltk_data
包的更多信息,请参见https://www.nltk.org/nltk_data/。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(48条)