NLP&Python笔记——WordNet

WordNet是一种面向语义的英语词典,由Princeton大学的心理学家、语言学家和计算机工程师联合设计。它不是光把单词以字母顺序排列,而且按照单词的意义组成一个“单词的网络”。

NLTK库中包含了英语WordNet,里面共有155287个词以及117659个同义词集合。常用操作如下:

1. 加载wordnet

from nltk.corpus import wordnet as wn

2. 得到同义词集

wn.synsets('motorcar')

3. 同义词集的词条

wn.synset('car.n.01').lemmas()

4. 同义词集的词条名

wn.synset('car.n.01').lemma_names()

5. 同义词集的定义

wn.synset('car.n.01').definition()

6. 同义词集的使用例句

wn.synset('car.n.01').examples()

7. 同义词集的上位词

wn.synset('car.n.01').hypernyms()

8. 同义词集的下位词

wn.synset('car.n.01').hyponyms()

9. 同义词集的蕴含关系

wn.synset('walk.v.1').entailments()

10. 同义词集中词条的反义词

wn.lemma('supply.n.02.supply').antonyms()

11. 同义词集的深度

使用synset对象的min_depth方法来量化对象的普遍性概念,原理上其实在查找对象在层次结构所在的层次。

wn.synset('car.n.01').min_depth()

12. 两同义词集的相似度

使用synset对象的path_similarity方法可以测量两个同义词集间的路径长短,值得范围是0到1。路径越长,值越小;路径越短,值越大。两者之间没有路径时返回-1,与自身比较时返回1。

wn.synset('car.n.01').path_similarity(wn.synset('car.n.02'))

 

posted @ 2018-07-19 21:34  yucen  阅读(853)  评论(0编辑  收藏  举报