如何以编程方式访问wordnet层次结构?

时间:2012-10-17 13:52:45

标签: nlp wordnet word-sense-disambiguation jaws-wordnet

假设我想要访问其IS-A父值和HAS-A值的任何单词,那么是否可以使用任何api?

3 个答案:

答案 0 :(得分:9)

您可以使用Natural Language Toolkit的python API。在Wordnet中,IS-A关系称为 hypernym (对面: hyponym ),HAS-A关系称为 meronym (对面: holonym )。

from nltk.corpus import wordnet
book = wordnet.synsets('book')[0]
book.hypernyms()
>>> [Synset('publication.n.01')]
book.part_meronyms()
>>> [Synset('running_head.n.01'), Synset('signature.n.05')]

我还发现NodeBox Linguistics API更易于使用:

import en
en.noun.hypernym('book')
>>> [['publication']]

答案 1 :(得分:1)

您可以使用命令行。该命令是" wn book -hypen"得到名词书的上位词。对于meronyms,请使用命令" wn book -meron"。 此外,-o选项还提供了synset偏移量。 Here是获取更多信息的链接。

答案 2 :(得分:1)

无耻插头:

我正在编写Scala库来访问WordNet。虽然并非所有的相似性措施都已实施,但所有的词义和关系都是可用的。我将它用于我的研究,因此它正在积极发展。

import com.github.mrmechko.swordnet._

SKey("book",SPos.Noun)
//> List(SKey("publication%1:10:00::"))

SKey("publication%1:10:00::").getRelation(SRelationType.hypernym) //Hypernyms

SKey("publication%1:10:00::").getRelation(SRelationType.hyponym) //Hyponyms etc

SWordNet可在GitHub和Sonatype

上找到