从NLTK WordNet单独提取名词

时间:2013-07-15 05:09:12

标签: python nltk wordnet

有没有办法用nltk wordnet来检测给定单词是否是名词?还有我想单独提取特定单词的含义。怎么做?

1 个答案:

答案 0 :(得分:4)

要检测单词是否是名词,请尝试此操作。

from nltk.corpus import wordnet as wn
from nltk.corpus.reader import NOUN

#this gives a synsets list of empty length, since there is no noun corresponding to 'propose'
synsets = wn.synsets('propose', NOUN)

if synsets.length == 0 :
    print ' We found a pure NOUN'

 #this will give you a non empty synset list since 'iron' can be a NOUN too.
synsets = wn.synsets('iron',NOUN)

if synsets.length > 0 :
   print 'Iron is also a noun other than verb'

为了解决第二部分 - 一个词可能有很多含义,你要清楚地定义你的意思是什么 - 词语之间存在各种关系,如上位词,全息词,上下词,同义词等。

同样找到与给定单词意义最接近的含义,您可能需要找到单词和每个单词的同义词之间的相似性,然后选择具有最高值的单词。有关此

的更多信息,请参阅Wordnet中的LCH相似性和JCN相似性模块