9

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

4

3 回答 3

11

您可以使用Natural Language Toolkit的 python API 。在 Wordnet 中,IS-A 关系称为hypernym(反义词:hyonym),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 语言学API 更易于使用:

import en
en.noun.hypernym('book')
>>> [['publication']]
于 2012-10-18T12:16:14.643 回答
1

您可以使用命令行。命令是“wn book -hypen”来获取名词书的上位词。对于meronyms,使用命令“wn book -meron”。-o 选项还提供了同义词集偏移量。 是更多信息的链接。

于 2015-05-30T14:14:27.273 回答
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 上可用

于 2015-06-05T15:01:41.523 回答