2

有什么方法可以获得比较级/最高级形容词的积极形式?例如。更好->好;最大-> 大。我使用最新版本的 NLTK。

4

3 回答 3

2

我遇到了同样的问题,在网上搜索没有答案,然后发现它实际上可以用WordNet lemmatizerin完成nltk

回想一下WordNet有那些简化的 pos 标签:

n    NOUN 
v    VERB 
a    ADJECTIVE 
s    ADJECTIVE SATELLITE 
r    ADVERB 

其中形容词标签as可用于归一化。

>>> from nltk.stem.wordnet import WordNetLemmatizer
>>> wnl = WordNetLemmatizer()
>>> wnl.lemmatize('biggest', 'a')
u'big'
>>> wnl.lemmatize('better', 'a')
u'good'

这里的第二个参数起到了神奇的作用。如果留空,则默认为'n'wordnet.NOUNin lemmatize()。同样,它应该明确地分别作为'v''r'用于规范化动词和副词。

于 2015-04-12T10:41:03.287 回答
0

您可以尝试使用Pattern 库

它为您的用例提供了一些有用的 API:

 from pattern.en import comparative
 comparative(‘cool’)

这使

'cooler'

或最高级

from pattern.en import superlative
superlative(‘cool’)

这使

'coolest'

网络演示:比较最高级

于 2014-07-15T20:45:53.220 回答
0

您可以尝试使用来自 NLTK 的 wordnet 光泽/定义,如下所示:

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.

于 2013-07-09T12:39:07.980 回答