NLTK Wordnet: lemma_names vs Similar_tos

NLTK WordNet может генерировать синонимы данного слова с помощью методов lemma_names и similar_tos:

from nltk.corpus import wordnet as wn
for ss in wn.synsets("small"):
    print(ss.name())
    print("Synonyms:", ss.lemma_names())
    print("Synonyms:", [sim.name().split('.')[0] for sim in ss.similar_tos()])

Вот выдержка из распечатки:

small.a.01
Synonyms: ['small', 'little']
Synonyms: ['atomic', 'bantam', 'bitty', 'dinky', 'dwarfish', 'elfin', 'gnomish',
'half-size', 'infinitesimal', 'lesser', 'micro', 'microscopic', 'miniature',
'minuscule', 'olive-sized', 'pocket-size', 'puny', 'slender', 'small-scale',
'smaller', 'smallish', 'subatomic', 'undersize']
minor.s.10
Synonyms: ['minor', 'modest', 'small', 'small-scale', 'pocket-size', 'pocket-sized']
Synonyms: ['limited']

Чем синонимы, возвращаемые lemma_names, отличаются от синонимов similar_tos?

Когда мы должны использовать тот или иной метод?


person farmer    schedule 08.07.2018    source источник
comment
вы когда-нибудь решали это?   -  person Nathan McCoy    schedule 02.08.2018


Ответы (1)


При просмотре исходного кода кажется, что lemma_names получают лемматизированные имена для этого синсета, который similar_tos получает все связанные синсеты, используя & оператор отношения (пересечение).

Вот соответствующие фрагменты исходного кода:

Имена лемм

def lemma_names(self, lang='eng'):
    '''Return all the lemma_names associated with the synset'''

Похожие условия

def similar_tos(self):
    return self._related('&')

def _related(self, relation_symbol):
    get_synset = self._wordnet_corpus_reader.synset_from_pos_and_offset
    return [
        get_synset(pos, offset)._lemmas[lemma_index]
        for pos, offset, lemma_index
        in self._synset._lemma_pointers[self._name, relation_symbol]
    ]

Немного покопавшись, прочитал правильную ссылку для мертвая ссылка в исходном коде, кажется, что similar_to представляет все satellite synsets, которые представляют собой сгруппированные термины, связанные синтаксисом головы.

satellite synset

Synset in an adjective cluster representing a concept 
that is similar in meaning to the concept represented 
by its head synset
person Nathan McCoy    schedule 11.07.2018