NLTK中的wordnet lemmatizer不适用于副词

Alo*_*yak 2 python nlp nltk wordnet

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

这里是nltk wordnet中pos标签的参考documnetation,http: //www.nltk.org/_modules/nltk/corpus/reader/wordnet.html

我可能会遗漏一些基本的东西.请告诉我

alv*_*vas 6

尝试:

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

有关详细信息,请参阅nltk或其他NLP库中的副词获取形容词

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

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

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

Pertainyms是关系形容词,不遵循刚才描述的结构.相关词没有反义词; 相关的synset最常包含一个单词或搭配以及一个指向形容词"属于"的名词的词汇指针.参与形容词具有词汇指向动词的词汇指针.

再说一遍,如果我们看一下Java界面,获取一个synset的相关内容就像AdjectiveSynset.getPertainyms()(http://lyle.smu.edu/~tspell/jaws/doc/edu/smu/tspell/wordnet/AdjectiveSynset.html)一样简单.

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

对我来说,我认为属性与synset直接相关,而不是引理.