将Python中的Wordnet同义词集用于意大利语
问题描述
我开始在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')]
我从英语词条到与语言无关的同义词集,再到意大利语词条。
相关文章