从名词Wordnet python获取动词

2024-06-07 05:56:11 发布

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

我试着用python语言从一个带有Wordnet的名词中获取动词。 代码如下:

nouns = ["slip", "frustration"]
def nominalization(noun_word):
   set_of_related_verbs = set()

   for lemma in wn.lemmas(wn.morphy(noun_word, wn.NOUN), pos="n"):
      for related_form in lemma.derivationally_related_forms():
        set_of_related_verbs.add(related_form)
   return set_of_related_verbs

for word in nouns:
    set_of_words = nominalization(word)
    if len(set_of_words) >= 1:
        print word + "+++"
        print set_of_words

我只需要动词,但其他词组也有,例如: 滑倒+++ set([引理('slick.a0.01.slipy'),引理('err.v.01.slip')])

我怎样才能改变这个?在

如果我用这句话:

^{pr2}$

我只得到动词,但有些动词与名词不相关,例如: 收购+++ set([Synset('get.v.01')、Synset('assume.v.03')、Synset('grow.v.08')、Synset('acquire.v.04')、Synset('develop.v.03')、Synset('learnv.01'))


Tags: ofinfor动词wordwordsrelatedset
0条回答
网友
1楼 · 发布于 2024-06-07 05:56:11

您可以从中提取动词的引理和相关词形:

import nltk as nltk
from nltk.corpus import wordnet as wn

lem = wn.lemmas('frustration')
print lem

结果:

^{pr2}$

从中可以得到如下动词:

related_forms = [lem[i].derivationally_related_forms() for i in range(len(lem))]
print related_forms

结果:

[[Lemma('thwart.v.01.frustrate')], [Lemma('thwart.v.01.frustrate')], [Lemma('thwart.v.01.frustrate'), Lemma('torment.v.02.frustrate')]]

相关问题 更多 >