如何 select 和分组文本文件中的比较级和最高级词?

How can I select and group comparative and superlative words from a text file?

我正在尝试过滤文本文件中的单词。如果文件中有任何 'comparative' 和 'superlative' 单词,我想将它们转换为 'positive'。

例如- 'greatest' -> 'great' 等等。

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

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

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

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

它给出,'False'

我做错了吗?有什么方法可以找出 'comparative' 和 'superlative' 字并打印出它们的正字吗?

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

据我所知,pattern.en 模块只提供了从形容词的肯定形式生成比较级和最高级的功能,但没有提供相反的功能(将形式分析为 comparative/superlative的积极形式)。 有一个 lemma() 函数,您可以期望这样做,但不幸的是它只适用于动词。

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

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

如果您选择第二个选项,请查看 inflect module 中的最后 80 行代码。我建议您首先尝试捕捉不规则的情况(使用此处给出的 table 的倒置),然后去除 -er/-est 后缀。可能有一些特殊情况(比如 iy in heavierheavy)。
自己尝试一下,如果您 运行 遇到问题,请回到这里提出新问题!