你很幸运。 nltk
提供了一个到Open Multilingual 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')]
的同义词集有英文名字,因为它们与英国共发现集成。但是,您可以导航意义的网络和提取任何你想要的同义词集意大利引理:
>>> 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')]
我从英语引理去到语言无关的意大利语词汇。
是的,谢谢你的建议,但正如你所看到的,它不给我意大利的同义词,但它似乎与“wn.lemmas(”甘蔗“,郎=”ita“)”只是翻译意大利语用英语表示,并返回它找到的内容。更明确的说法是:我期待的是,而不是引理('bad_berson')它应该得到引理('cattiva_persona'),这是bad_person的意义。 –
我不会说意大利语,但Wordnet是说“甘蔗”的意思之一是“坏人”。 Wordnet是建立在英语之上的,所以它的含义有英文名称,但有多种语言的引理。把英文看作变量名 - 它们是什么并不重要,重要的是它们包含的数据。我将添加一个获取上位词的例子。 – alexis