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标签的参考文档我可能会遗漏一些基本的东西。请让我知道
答案 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直接相关,而不是引理。