如何获得给定偏移ID的WordNet语法集?

2024-05-12 20:46:25 发布

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

我有一个WordNet synset偏移量(例如id="n#05576222")。给定这个偏移量,如何使用Python获取synset?


Tags: idwordnet偏移量synset
3条回答

有关NTLK 3.2.3或更新版本,请参阅donners45的答案。

对于旧版本的NLTK:

NLTK中没有内置方法,但可以使用以下方法:

from nltk.corpus import wordnet

syns = list(wordnet.all_synsets())
offsets_list = [(s.offset(), s) for s in syns]
offsets_dict = dict(offsets_list)

offsets_dict[14204095]
>>> Synset('heatstroke.n.01')

然后你就可以在需要的时候把字典装进去。

对于3.0之前的NLTK版本,请替换行

offsets_list = [(s.offset(), s) for s in syns]

offsets_list = [(s.offset, s) for s in syns]

因为在NLTK 3.0之前,offset是一个属性而不是一个方法。

您可以使用^{},例如:

from nltk.corpus import wordnet as wn
syn = wn.of2ss('01580050a')

会回来的 Synset('necessary.a.01')

从NLTK 3.2.3开始,有一种公共方法可以做到这一点:

wordnet.synset_from_pos_and_offset(pos, offset)

在早期版本中,您可以使用:

wordnet.synset_from_pos_and_offset(pos, offset)

这将根据POS和offest ID返回一个synset。我认为这个方法只在NLTK 3.0中可用,但我不确定。

示例:

from nltk.corpus import wordnet as wn
wn.synset_from_pos_and_offset('n',4543158)
>> Synset('wagon.n.01')

新版本使用synset_from_pos_and_offset,旧版本使用_synset_from_pos_and_offset

相关问题 更多 >