Python 如何从文本文件中选择比较级和最高级单词并进行分组?
我正在尝试过滤文本文件中的单词。如果文件中有任何“比较级”和“最高级”单词,我想将它们转换为“肯定级” e、 g.-“最伟大的”>“伟大的”等等 我正在为此使用“模式”模块。比如说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
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在中→ <代码>重型
)。自己尝试一下,如果遇到问题,请带着新问题回到这里