wordnet是面向语义的英语词典,有更加丰富的结构信息。
首先,wordnet可以帮助我们寻找同义词。
from nltk.corpus import wordnet as wn
wn.synset('motorcar')
比如是motorcar,则得到的是car.n.01(01代表只有一种同义词集)的同义词集,我们来得到同义词的具体的词条名字
wn.synset('car.n.1').lemma_names
可以查看其定义
wn.synset('car.n.1').definition
可以看到同义词集使用的案例
wn.synset('car.n.1').example
可以看到同义词集的词条Lemma('car.n.01.motorcar')
wn.synset('car.n.1').lemmas
wordnet的同义词集对应于抽象的概念。独一无二的根同义词集。每一个节点对应一个同义词集,边表示上下位的关系。比如看car.n.01的下位词
wn.synset('car.n.1').hyponyms()
我们也可以看car.n.01的上位词
wn.synset('car.n.1').hypernyms()
通过wordnet我们还可以从一个物品到它们的部件,或者它们被包含其中的东西(整体)。
wn.synset('tree.n.01').part_meronyms()
wn.synset('tree.n.01').substance_meronyms()
wn.synset('tree.n.01').member_holonyms()
在动词中,也有关系,存在蕴含的关系,也就是一个一动作一定包含另一个动作
wn.synset('walk.v.1').entailments()
词语之间不仅存在同义词,还存在反义的情况
wn.lemma('supply.n.02.supply').antonyms()
wordnet就是一个对于同义词集构成的复杂词汇关系网络,给定一个同义词集,我们可以得到与之相关的,知道那些词是语义相关的,对于索引文本集合的时候就比较有用了。
并且我们可以通过判断二个同义词集的共有上位词的最小深度,来判断二个同义词集的相似性。越相近接近于1,范围为(0,1)。
*.path_similarity(*)