将Python中的Wordnet语法集用于意大利语

将Python中的Wordnet语法集用于意大利语,python,nlp,nltk,Python,Nlp,Nltk,我开始用Python中的NLTK编写自然意大利语处理程序。我看到了WordNet库的一些简单示例,其中有一组很好的语法集,允许您从一个单词(例如:“dog”)导航到它的同义词和反义词、上下义词和上义词等等 我的问题是: 如果我从一个意大利语单词(例如:“cane”-意思是“dog”)开始,有没有一种方法可以在同义词、反义词、下义词之间导航。。。意大利语单词和英语单词一样?或意大利语有一个与WordNet等价的词吗 提前谢谢你真走运。nltk的nltk提供了与的接口,它所描述的语言中确实包括意大利

我开始用Python中的NLTK编写自然意大利语处理程序。我看到了WordNet库的一些简单示例,其中有一组很好的语法集,允许您从一个单词(例如:“dog”)导航到它的同义词和反义词、上下义词和上义词等等

我的问题是: 如果我从一个意大利语单词(例如:“cane”-意思是“dog”)开始,有没有一种方法可以在同义词、反义词、下义词之间导航。。。意大利语单词和英语单词一样?或意大利语有一个与WordNet等价的词吗


提前谢谢

你真走运。nltk的
nltk
提供了与的接口,它所描述的语言中确实包括意大利语。只需将指定所需语言的参数添加到常用wordnet函数,例如:

>>> cane_lemmas = wn.lemmas("cane", lang="ita")
>>> print(cane_lemmas)
[Lemma('dog.n.01.cane'), Lemma('cramp.n.02.cane'), Lemma('hammer.n.01.cane'),
 Lemma('bad_person.n.01.cane'), Lemma('incompetent.n.01.cane')]
这些语法集有英文名称,因为它们与英文wordnet集成在一起。但是,您可以在意义网中导航,并为您想要的任何语法集提取意大利引理:

>>> hypernyms = cane_lemmas[0].synset().hypernyms()
>>> print(hypernyms)
[Synset('canine.n.02'), Synset('domestic_animal.n.01')]
>>> print(hypernyms[1].lemmas(lang="ita"))
[Lemma('domestic_animal.n.01.animale_addomesticato'), 
 Lemma('domestic_animal.n.01.animale_domestico')]
或者因为你在评论中提到了“卡蒂瓦•帕罗”这个词:

>>> wn.lemmas("bad_person")[0].synset().lemmas(lang="ita")
[Lemma('bad_person.n.01.cane'), Lemma('bad_person.n.01.cattivo')]

我从英语引理到与语言无关的语法集,再到意大利语引理。

在阅读了这个问题及其答案后,我发现自己在想如何实际使用wordnet资源,我将在这里留下一些有用的信息:

以下是
nltk
指南的一部分

下载wordnet数据并继续使用另一个答案中解释的用法所需的两个命令是:

import nltk

nltk.download('wordnet')
nltk.download('omw')

是的,谢谢你的建议,但正如你所看到的,它没有给我意大利语的同义词,但似乎与“wn.lemmas(“cane”,lang=“ita”)”只需将意大利语单词翻译成英语,并返回它找到的内容。更明确地说:我希望它能取回引理(“bad_berson”),而不是引理(“bad_berson”),这是bad_person的意大利语意思。我不会说意大利语,但Wordnet说“cane”的一个意思是“bad person”。Wordnet是建立在英语基础上的,因此其含义有英语名称,但有多语言引理。把英语方面想象成变量名——不管它们是什么,重要的是它们包含的数据。我将添加一个获取超词的示例。@FrankB.我正在做一个类似的任务,你能找到解决方案吗?@tahsintahsin研究答案(根据Frank的问题编辑),答案都在这里解释。这就是解决办法。