是否可以使用nltk wordnet来检测给定单词是否为名词?我也想单独提取特定单词的含义。

最佳答案

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

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'

为了解决第二部分-一个单词可能有很多含义,您需要清楚地定义您的含义-单词之间存在各种关系,例如上位,全名,下位,同义词等。

同样,要找到与给定单词含义最接近的含义,您可能需要查找一个单词与其每个同义词集之间的相似性,并选择具有最高值(value)的单词。请参阅Wordnet中的LCH相似性和JCN相似性模块以获取有关此信息的更多信息

关于python - 从NLTK WordNet单独提取名词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17647120/

10-10 11:21