【问题标题】:NLTK WordNet verb hierarchyNLTK WordNet 动词层次结构
【发布时间】:2016-03-17 12:23:45
【问题描述】:

我发现 WordNet 的动词层次结构存在一些问题。 例如, a.lowest_common_hypernyms(wn.synset('love.v.02')) 返回[]。

动词不也有像entity这样的共同祖先吗?

动词是否与同一层次中的名词相连?

【问题讨论】:

    标签: python nlp nltk wordnet linguistics


    【解决方案1】:

    要查找任何同义词集的上位词,请使用 Synset.root_hypernyms() 函数,例如:

    >>> from nltk.corpus import wordnet as wn
    >>> wn.synsets('car')[0].root_hypernyms()
    [Synset('entity.n.01')]
    >>> wn.synsets('love')[0].root_hypernyms()
    [Synset('entity.n.01')]
    >>> wn.synsets('love', 'v')[0].root_hypernyms()
    [Synset('love.v.01')]
    

    似乎没有涵盖所有verbs 的总体/伞状上位词,不像entity.n.01 涵盖的nouns:

    >>> root_hypernyms_of_nouns = Counter(chain(*[ss.root_hypernyms() for ss in wn.all_synsets(pos='n')]))
    >>> len(root_hypernyms_of_nouns)
    1
    >>> root_hypernyms_of_nouns.items()
    [(Synset('entity.n.01'), 82115)]
    

    但你可以尝试遍历所有动词,例如:

    wn.all_synsets(pos='v')
    

    并尝试找到动词的最上位词(这将是一个相当大的列表):

    >>> from collections import Counter
    >>> from itertools import chain
    >>> root_hypernyms_of_verbs = Counter(chain(*[ss.root_hypernyms() for ss in wn.all_synsets(pos='v')]))
    >>> root_hypernyms_of_verbs.most_common(10)
    [(Synset('change.v.01'), 1704), (Synset('change.v.02'), 1295), (Synset('act.v.01'), 1083), (Synset('move.v.02'), 1027), (Synset('make.v.03'), 659), (Synset('travel.v.01'), 526), (Synset('think.v.03'), 451), (Synset('transfer.v.05'), 420), (Synset('move.v.03'), 329), (Synset('connect.v.01'), 262)]
    >>> root_hypernyms_of_verbs.keys() # This will return all root_hypernyms.
    

    Visuwords 有一个非常漂亮的交互式图表,您可以使用它来手动查看 WordNet 层次结构,http://visuwords.com/entity

    【讨论】:

    • 感谢您的回答!这对我来说真的很奇怪,因为除了一些关于 WordNet 的学术论文之外,互联网上没有关于这个主题的任何内容
    • 如果我们看一下亚里士多德的形而上学定义:plato.stanford.edu/entries/aristotle-metaphysics,它或许可以解释为什么动词没有伞形“意义”
    • 可能,区别在于 wordnet 将“事物”(即参数)与“事件/动作”(即谓词)与“描述符”(即辅助词/修饰词)视为不同的方式。参数可以分层地包含,而谓词和附属词是分层的但不能包含。它确实有点遵循亚里士多德的形而上学
    • 是的,动词的表现不如名词。您可以查看this paper 以获得此层次结构的修复建议
    • 酷,不知道以前有人试图为动词找到一个TOP。计算上它是合理的,但很难真正找到跨语言的顶级动词,所以谓词的 TOP 可能不是普遍正确的 =(
    猜你喜欢
    • 2015-08-16
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    • 2012-10-07
    • 2013-07-14
    • 1970-01-01
    相关资源
    最近更新 更多