假设我想要访问其IS-A父值和HAS-A值的任何单词,那么是否可以使用任何api?
答案 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
上找到