如何从输入查询中找到多义词?

时间:2014-02-25 06:24:55

标签: python nlp nltk wordnet

我正在研究一词多义消歧项目,为此我试图从输入查询中找到多义词。我这样做的方式是:

#! /usr/bin/python
from nltk.corpus import stopwords
from nltk.corpus import wordnet as wn
stop = stopwords.words('english')
print "enter input query"
string = raw_input()
str1 = [i for i in string.split() if i not in stop]
a = list()
for w in str1:
    if(len(wn.synsets(w)) > 1):
        a.append(w)

这里列出一个包含多义词的词。 但是使用这种方法几乎所有的单词都会被视为多义词。 例如,如果我的输入查询是“牛奶是白色的”,那么它存储('牛奶','白','颜色')作为多义词

1 个答案:

答案 0 :(得分:4)

WordNet被认为是非常精细的,它有时会区分你和我可能认为相同的非常微妙的不同感官。有人试图让WordNet更粗糙,谷歌“自动粗粒度WordNet”。我不确定该论文的结果是否可供下载,但您可以随时联系作者。

或者,更改多义词的工作定义。如果一个词的最常见的意义在一个大型语料库中占其使用的80%以上,则该词是多义词。您必须获得尽可能多的单词的不同意义的频率计数。开始研究herehere