从nltk或其他NLP库中的副词获取形容词

2024-09-30 14:35:05 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有办法在NLTK或其他python库中获取与给定副词相对应的形容词。 例如,对于副词“非常”,我需要得到“糟糕”。 谢谢。在


Tags: nltk办法形容词副词
2条回答

正如MKoosej所提到的,nltk的引理不再是一个属性而是一个方法。我也做了一点简化,以得到最可能的单词。希望其他人也能使用它:

wordtoinv = 'unduly'
s = []
winner = ""
for ss in wn.synsets(wordtoinv):
    for lemmas in ss.lemmas(): # all possible lemmas.
        s.append(lemmas)

for pers in s:
    posword = pers.pertainyms()[0].name()
    if posword[0:3] == wordtoinv[0:3]:
        winner = posword
        break

print winner # undue

wordnet中有一个关系将adjectives连接到adverbs,反之亦然。在

>>> from itertools import chain
>>> from nltk.corpus import wordnet as wn
>>> from difflib import get_close_matches as gcm
>>> possible_adjectives = [k.name for k in chain(*[j.pertainyms() for j in chain(*[i.lemmas for i in wn.synsets('terribly')])])]
['terrible', 'atrocious', 'awful', 'rotten']
>>> gcm('terribly',possible_adjectives)
['terrible']

计算possible_adjective的一种更具可读性的方法如下:

^{pr2}$

编辑:在新版本的NLTK中:

possible_adj = []
for ss in wn.synsets('terribly'):
  for lemmas in ss.lemmas(): # all possible lemmas
      for ps in lemmas.pertainyms(): # all possible pertainyms
          possible_adj.append(ps.name())

相关问题 更多 >