如何 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
后缀。可能有一些特殊情况(比如 i
→ y
in heavier
→ heavy
)。
自己尝试一下,如果您 运行 遇到问题,请回到这里提出新问题!
我正在尝试过滤文本文件中的单词。如果文件中有任何 '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
后缀。可能有一些特殊情况(比如 i
→ y
in heavier
→ heavy
)。
自己尝试一下,如果您 运行 遇到问题,请回到这里提出新问题!