有没有办法获得比较/最高级形容词的积极形式? 例如。更好 - >好;最大 - >大。 我使用最新版本的NLTK。
答案 0 :(得分:1)
我遇到了同样的问题,在没有回答的情况下搜索了网络,然后发现实际上可以使用WordNet
中的lemmatizer
nltk
来完成。
回想一下WordNet有那些简化的pos标记:
n NOUN
v VERB
a ADJECTIVE
s ADJECTIVE SATELLITE
r ADVERB
其中形容词标签a
和s
可用于规范化。
>>> from nltk.stem.wordnet import WordNetLemmatizer
>>> wnl = WordNetLemmatizer()
>>> wnl.lemmatize('biggest', 'a')
u'big'
>>> wnl.lemmatize('better', 'a')
u'good'
这里第二个参数是神奇的技巧。如果留空,则默认为'n'
或wordnet.NOUN
中的lemmatize()
。同样,它应该明确地用'v'
或'r'
来标准化动词和副词。
答案 1 :(得分:0)
您可以尝试使用NLTK中的wordnet gloss / definition:
from ntlk.corpus import wordnet as wn
for ss in wn.all_synsets():
if "(comparative of" in ss.definition:
comp = ss.definition.split("`")[1].split("'")[0]
for l in ss.lemma_names:
print l, comp
但请注意,只有13个同义词在定义中用比较信息编码(NLTK v.2.0.4
)。此外,无法获得比较词的层次结构(例如best > better > good
。
答案 2 :(得分:-1)
您可以尝试使用Pattern library
它为您的用例提供了一些有用的API:
from pattern.en import comparative
comparative(‘cool’)
给出了
'cooler'
或者是最高级别
from pattern.en import superlative
superlative(‘cool’)
给出了
'coolest'
网络演示:comparative和superlative