将Python中的Wordnet同义词集用于意大利语

2022-03-08 00:00:00 python nlp nltk

问题描述

我开始在Python中使用NLTK进行自然意大利语处理编程。我见过一些简单的WordNet库示例,它有一组很好的同义词集,允许您从一个单词(例如:"dog")导航到它的同义词和反义词、它的下位词和上位词等等……

我的问题是: 如果我从一个意大利语单词开始(例如:"藤条"-意思是"狗"),有没有办法在同义词、反义词、下义词之间导航……就像你对英语单词所做的那样,就像你对意大利单词所做的那样吗?或者..。是否有意大利语的WordNet等效项?

提前感谢


解决方案

您很幸运。nltk提供了到Open Multilingual Wordnet的接口,它所描述的语言中确实包括意大利语。只需向常用的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')]

或者因为您在评论中提到了"cattiva_Persona":

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

我从英语词条到与语言无关的同义词集,再到意大利语词条。

相关文章