NLTK跳转同义词名称 - python

时间:2014-06-03 16:50:45

标签: python nlp nltk wordnet

来自NLTK WordNet API:

>>> from nltk.corpus import wordnet as wn
>>> for i in wn.synsets('discover'):
...     print i, i.offset
... 
Synset('detect.v.01') 2154508
Synset('learn.v.02') 598954
Synset('discover.v.03') 1637982
Synset('discover.v.04') 721437
Synset('fall_upon.v.01') 2286687
Synset('unwrap.v.02') 933821
Synset('discover.v.07') 2128066
Synset('identify.v.05') 652346

>>> wn.synset('discover.v.8')
Synset('identify.v.05')

来自WN3.0的index.verb文件,我们有:

discover v 8 6 @ ~ * > $ + 8 7 02154508 00598954 01637982 00721437 02286687 00933821 02128066 00652346 

我已经检查了WordNet API(http://www.nltk.org/_modules/nltk/corpus/reader/wordnet.html),但没有太多可以说明从discover.v.8identify.v.5的映射方式。

任何人都可以解释映射是如何发生的吗?

如何提取这些映射的列表?

1 个答案:

答案 0 :(得分:1)

我不确定你的问题究竟是什么意思。好像你不明白为什么发现与识别相关联是不是正确的?发现WordNet Synset " SYNonym SET" ,因此为单个synset列出了很多单词。

如果你通过浏览器(WNB)或通过online version检查wordnet,你会看到你拥有的同义词列表"发现"只是来自wordnet的所有synset的列表,其中包含单词discover。出于某种原因,在内部,NLTk描述了只有出现在相关单词的synset列表上的第一个单词的synset。

换句话说,Synset('discover.v.8')Synset('identify.v.05')的同义词集合相同,只能从不同的角度看待。作为VERB的发现的第8感也是识别为VERB的第5感。在内部都使用相同的S-ID,即它们相关的位置。

这些映射的列表只是与该单词相关的Synset ID列表。