【问题标题】:How to find polysemy words from input query?如何从输入查询中找到多义词?
【发布时间】:2014-02-25 06:24:54
【问题描述】:

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

#! /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)

这里的列表 a 将包含多义词。 但是使用这种方法几乎所有的词都会被认为是多义词。 例如,如果我的输入查询是“milk is white in colour”,那么它将 ('milk','white','color') 存储为多义词

【问题讨论】:

  • 那是因为所有这些词都有不止一种可能的含义。您的脚本似乎工作正常。 Take a look on WordNet。您会看到“牛奶”、“白色”和“颜色”都是多义词。
  • 我们不能说白色是多义词,因为 wordnet 中的所有感官都只与颜色有关......在银行的情况下,有些感官与金融部门有关,有些与河岸有关,就是这样为什么它被认为是多义词。
  • (adj) white(仁慈的;没有恶意的)“that's white of you”——与颜色无关。对我来说,您的代码似乎得到了正确的值。
  • 您好..感谢您的回复。根据下面的答案,所有感官都没有不同,有些是相关的。考虑不是多义词的“英国”词,因为来自 wordnet 的所有英国人的意义都与英国人有关,但仍将其显示为多义词

标签: python nlp nltk wordnet


【解决方案1】:

众所周知,WordNet 的粒度非常细,它有时会区分您和我可能认为相同的非常微妙的不同感觉。已经尝试使 WordNet 更粗糙,谷歌“自动粗粒度 WordNet”。我不确定该论文的结果是否可供下载,但您可以随时联系作者。

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

【讨论】:

  • 我没有从这些参考资料中得到任何想法。如果可以的话,请推荐一些。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-13
  • 1970-01-01
  • 2012-04-15
  • 2021-08-31
  • 1970-01-01
相关资源
最近更新 更多