【问题标题】:Get verb from noun Wordnet python从名词 Wordnet python 中获取动词
【发布时间】:2017-07-14 18:44:01
【问题描述】:

我正在尝试使用 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

我只需要动词,但我也得到其他的 pos,例如: 滑+++ set([引理('slippery.a.01.slippy'), 引理('err.v.01.slip')])

我该如何更改?

如果我使用这条线:

for synset in wn.synsets(related_form.name(), pos=wn.VERB):

我只得到动词,但有些动词可能与我的名词无关,例如: 获取+++ set([Synset('get.v.01'), Synset('assume.v.03'), Synset('grow .v.08'), Synset('acquire.v.04'), Synset('acquire.v.05'), Synset('develop.v.03'), Synset(' 学习.v.01')])

【问题讨论】:

    标签: python python-2.7 nltk wordnet


    【解决方案1】:

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

    import nltk as nltk
    from nltk.corpus import wordnet as wn
    
    lem = wn.lemmas('frustration')
    print lem
    

    结果:

    [Lemma('frustration.n.01.frustration'), Lemma('frustration.n.02.frustration'), Lemma('frustration.n.03.frustration')]
    

    从中可以得到这样的动词:

    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')]]
    

    【讨论】:

    • 但是我只得到了 lem[0] (Lemma('creation.n.01.creation')) 的结果,我需要所有这些的相关表格 (Lemma('creation. n.01.creation'), 引理('creation.n.02.creation'), 引理('creation.n.03.creation'))
    • AND lem[0] 可以是另一个词(可能来自同义词集?)例如,“expiation”中的 lem[0] 是“atonement”:[Lemma('atonement.n.01. expiation'), 引理('expiation.n.02.expiation')]
    • 是的,它可以是另一个词。您可以检查第一个字符以获得确切的动词形式
    • 我用这个代码得到了其他的 pos:[Lemma('steal.v.02.slip'), Lemma('skid.v.04.slip'), Lemma('dislocate.v. 01.slip'), 引理('slippery.a.01.slippy')] :(
    • 你想要特定单词的直接动词形式吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 2012-12-02
    相关资源
    最近更新 更多