NLTK中的wordnet lemmatizer不适用于副词

时间:2015-02-12 10:54:48

标签: python nlp nltk wordnet

from nltk.stem import WordNetLemmatizer
x = WordNetLemmatizer()   
x.lemmatize("angrily", pos='r')
Out[41]: 'angrily'

以下是nltk wordnet http://www.nltk.org/_modules/nltk/corpus/reader/wordnet.html

中pos标签的参考文档

我可能会遗漏一些基本的东西。请让我知道

1 个答案:

答案 0 :(得分:6)

尝试:

>>> from nltk.corpus import wordnet as wn
>>> wn.synset('angrily.r.1').lemmas()[0].pertainyms()[0].name()
u'angry'

有关详细信息,请参阅Getting adjective from an adverb in nltk or other NLP library

问题是为什么你必须通过引理来获得相关的内容?

>>> wn.synset('angrily.r.1').pertainyms()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Synset' object has no attribute 'pertainyms'

这是因为WordNet将其视为词类别之间的词汇关联,请参阅http://wordnet.princeton.edu/man/wngloss.7WN.html

  

Pertainyms是关系形容词,不遵循结构   刚刚描述过。相关词没有反义词; a的同义词   adjym通常只包含一个单词或搭配和a   词典指向形容词“属于”的名词。   参与形容词有动词的词汇指针   来自。

然后,如果我们查看Java界面,获取synset的相关性就像AdjectiveSynset.getPertainyms()http://lyle.smu.edu/~tspell/jaws/doc/edu/smu/tspell/wordnet/AdjectiveSynset.html

一样简单

所以我想这取决于谁写了界面,他们对形容词 - 副词关系采取了什么样的观点。

对我来说,我认为相关内容与synset直接相关,而不是引理。