我开始用Python中的NLTK编程进行自然意大利语处理.我已经看到了WordNet库的一些简单例子,它们有一套很好的SynSet,允许你从一个单词(例如:"dog")导航到他的同义词和他的反义词,他的下位词和上位词等等. .
我的问题是:如果我从一个意大利语开头(例如:"甘蔗" - 这意味着"狗")有一种方法可以在同义词,反义词,下位词之间导航...对于意大利语单词,就像你为英语做的那样一?或者......意大利语有相当于WordNet的东西吗?
提前致谢
ale*_*xis 13
你很幸运.它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')]
Run Code Online (Sandbox Code Playgroud)
同义词集具有英文名称,因为它们与英文单词网络集成在一起.但是,您可以浏览意义网络,并为您想要的任何synset提取意大利语引号:
>>> 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')]
Run Code Online (Sandbox Code Playgroud)
或者你在评论中提到"cattiva_persona":
>>> wn.lemmas("bad_person")[0].synset().lemmas(lang="ita")
[Lemma('bad_person.n.01.cane'), Lemma('bad_person.n.01.cattivo')]
Run Code Online (Sandbox Code Playgroud)
我从英语引理转向了与语言无关的同义词到意大利语的引理.
由于我发现自己在阅读此问题及其答案后想知道如何实际使用 wordnet 资源,因此我将在这里留下一些有用的信息:
这里是一个链接的nltk指南。
下载 wordnet 数据并继续使用另一个答案中解释的用法的两个必要命令是:
import nltk
nltk.download('wordnet')
nltk.download('omw')
Run Code Online (Sandbox Code Playgroud)