如何从文本文件中选择和分组比较和最高级的单词?

时间:2017-07-24 17:38:46

标签: python nlp nodebox-linguistics

我正在尝试过滤文本文件中的单词。如果文件中有任何“比较”和“最高级”的单词,我想将它们转换为“正面”。

e.g。 - '最大' - > “很棒”,等等。

我正在使用'pattern'模块。例如,它说,

from pattern.en import comparative, superlative
print comparative('bad')

给出 - > worse工作正常。 但是,如果我这样做:

from pattern.en import comparative, superlative, positive
print positive('worse')

它给出了'False'

我做错了吗?有没有办法找出“比较”和“最高级”的词并打印出它们的正面词?

1 个答案:

答案 0 :(得分:1)

这是一个误解:positive()功能没有做到你的想法。

据我所知,pattern.en模块仅提供从形容词的正形式产生比较和最高级的功能,但不提供反向(将形式分析为正形式的比较/最高级) )。 有一个lemma()函数,你可以期望这样做,但不幸的是它只适用于动词。

您找到的positive()函数属于情感检测;它试图判断给定的句子是否具有正极性。

那么,你现在做什么? 我看到两种可能性:你要么切换到支持形容词的lemmatisation的不同库(例如SpaCy),要么你试图根据pattern.en模块中的代码构建一个简单的形容词lemmatiser。

如果您选择第二个选项,请查看inflect module中最后80行代码。我建议你首先尝试捕捉不规则的情况(使用那里给出的表的反转),然后剥去-er / -est后缀。可能存在许多特殊情况(例如iy中的heavierheavy。) 自己尝试一下,如果遇到问题,请回到这里,提出一个新问题!