我知道如何获得单词的上位词,像这样:

word = 'girlfriend'
word_synsets = wn.synsets(word)[0]

hypernyms = word_synsets.hypernym_paths()[0]

for element in hypernyms:
    print element


Synset('entity.n.01')
Synset('physical_entity.n.01')
Synset('causal_agent.n.01')
Synset('person.n.01')
Synset('friend.n.01')
Synset('girlfriend.n.01')


我的问题是,如果要搜索hypernymoffset,我将如何更改当前代码?

例如,给定偏移量01234567-n,将输出其上位词。上位词可以像我的示例一样以synset形式输出,或者(最好是)以offset形式输出。谢谢。

最佳答案

这是pywsd中的一个可爱函数,最初是http://moin.delph-in.net/SemCor中的函数

def offset_to_synset(offset):
    """
    Look up a synset given offset-pos
    (Thanks for @FBond, see http://moin.delph-in.net/SemCor)
    >>> synset = offset_to_synset('02614387-v')
    >>> print '%08d-%s' % (synset.offset, synset.pos)
    >>> print synset, synset.definition
    02614387-v
    Synset('live.v.02') lead a certain kind of life; live in a certain style
    """
    return wn._synset_from_pos_and_offset(str(offset[-1:]), int(offset[:8]))

关于python - Python:从偏移量输入中检索WordNet上位词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35562609/

10-10 20:12