我开始在 Python 中使用 NLTK 进行编程以进行自然意大利语处理。我看过一些 WordNet 库的简单例子,它有一套很好的 SynSet,允许你从一个词(例如:“狗”)导航到他的同义词和反义词,他的下位词和上位词等等。 .
我的问题是:
如果我以意大利语单词开头(例如:“cane”——意思是“狗”),有没有办法在同义词、反义词、下义词之间导航……对于意大利语单词,就像你在英语单词中所做的那样?或者... 有一个相当于意大利语的 WordNet 吗?
提前致谢
最佳答案
你很幸运。 nltk
为 Open Multilingual Wordnet 提供了一个接口(interface),它确实在它描述的语言中包括意大利语。只需在常用的 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')]
我从英语引理到与语言无关的同义词集再到意大利语引理。
关于python - 将 Python 中的 Wordnet Synsets 用于意大利语,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43913983/