假设我想访问其 IS-A 父值和 HAS-A 值的任何单词,那么是否可以使用任何 api?
user1609626
问问题
4778 次
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 回答