python - NLTK 中的 wordnet 词形还原器不适用于副词

标签 python nlp nltk wordnet

<分区>

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

这是 nltk wordnet 中 pos 标签的引用文档,http://www.nltk.org/_modules/nltk/corpus/reader/wordnet.html

我可能遗漏了一些基本的东西。请告诉我

最佳答案

尝试:

>>> 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 are relational adjectives and do not follow the structure just described. Pertainyms do not have antonyms; the synset for a pertainym most often contains only one word or collocation and a lexical pointer to the noun that the adjective is "pertaining to". Participial adjectives have lexical pointers to the verbs that they are derived from.

话又说回来,如果我们看一下 Java 接口(interface),获取同义词集的 pertainym 就像 AdjectiveSynset.getPertainyms() ( http://lyle.smu.edu/~tspell/jaws/doc/edu/smu/tspell/wordnet/AdjectiveSynset.html )

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

对我来说,我认为 pertainyms 会直接与同义词集相关,而不是与词条相关。

关于python - NLTK 中的 wordnet 词形还原器不适用于副词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28475620/

相关文章:

python - 为什么我的 Flask 应用程序可以在 localhost 上运行,但在添加 Flask jwt 后无法在 aws EB 上运行

python - 一张图上有多个图表

python - 如何为时间序列数据创建线性回归模型?

python - 使用 Wordnet 生成最高级、比较级和形容词

java - 在JAVA中使用Stanford nlp提取基于POS标记句子的语言结构

python - 从 NLTK 中的句子中提取关系

python - 全局变量 x 未定义

python - 使用 Python/NLTK 提取一组单词,然后将其与标准英语词典进行比较

nlp - 将一阶逻辑表达式映射到数据库条目(从 FOL 表达式中提取信息)

NLP:句子内分割/边界检测