我正在尝试过滤文本文件中的单词。如果文件中有任何“比较”和“最高级”的单词,我想将它们转换为“正面”。
e.g。 - '最大' - > “很棒”,等等。
我正在使用'pattern'模块。例如,它说,
from pattern.en import comparative, superlative
print comparative('bad')
给出 - > worse
工作正常。
但是,如果我这样做:
from pattern.en import comparative, superlative, positive
print positive('worse')
它给出了'False'
我做错了吗?有没有办法找出“比较”和“最高级”的词并打印出它们的正面词?
答案 0 :(得分:1)
这是一个误解:positive()
功能没有做到你的想法。
据我所知,pattern.en
模块仅提供从形容词的正形式产生比较和最高级的功能,但不提供反向(将形式分析为正形式的比较/最高级) )。
有一个lemma()
函数,你可以期望这样做,但不幸的是它只适用于动词。
您找到的positive()
函数属于情感检测;它试图判断给定的句子是否具有正极性。
那么,你现在做什么?
我看到两种可能性:你要么切换到支持形容词的lemmatisation的不同库(例如SpaCy),要么你试图根据pattern.en
模块中的代码构建一个简单的形容词lemmatiser。
如果您选择第二个选项,请查看inflect
module中最后80行代码。我建议你首先尝试捕捉不规则的情况(使用那里给出的表的反转),然后剥去-er
/ -est
后缀。可能存在许多特殊情况(例如i
→y
中的heavier
→heavy
。)
自己尝试一下,如果遇到问题,请回到这里,提出一个新问题!