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

Python 如何从文本文件中选择比较级和最高级单词并进行分组?,python,nlp,nodebox-linguistics,Python,Nlp,Nodebox Linguistics,我正在尝试过滤文本文件中的单词。如果文件中有任何“比较级”和“最高级”单词,我想将它们转换为“肯定级” e、 g.-“最伟大的”>“伟大的”等等 我正在为此使用“模式”模块。比如说 from pattern.en import comparative, superlative print comparative('bad') 使->更差工作正常。 但是,如果我这样做: from pattern.en import comparative, superlative, positive print

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

e、 g.-“最伟大的”>“伟大的”等等

我正在为此使用“模式”模块。比如说

from pattern.en import comparative, superlative
print comparative('bad')
使->
更差
工作正常。 但是,如果我这样做:

from pattern.en import comparative, superlative, positive
print positive('worse')
它给出,
'False'


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

这是一个误解:
positive()
函数没有按您的想法执行

就我所见,
pattern.en
模块只提供从形容词的正形式生成比较级和最高级的函数,而不提供反形式的函数(将形式分析为正形式的比较级/最高级)。 这里有一个
lemma()
函数,您可以预期它会这样做,但不幸的是,它只适用于动词

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

那么,你现在做什么? 我看到了两种可能性:要么切换到另一个支持形容词柠檬化的库(例如SpaCy),要么尝试基于
pattern.en
模块中的代码构建一个简单的形容词柠檬化器

如果您选择第二个选项,请查看中的最后80行代码。我建议您首先尝试捕捉不规则案例(使用此处给出的表格的倒转),然后去掉
-er
/
-est
后缀。可能有一些特殊情况(如
i
→ <代码>y在
中→ <代码>重型
)。
自己尝试一下,如果遇到问题,请带着新问题回到这里