形容词 - 最高级和比较积极的形式

时间:2013-07-05 11:05:01

标签: python python-2.7 nlp nltk

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

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,在没有回答的情况下搜索了网络,然后发现实际上可以使用WordNet中的lemmatizer 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.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'

网络演示:comparativesuperlative