НЛП | WuPalmer - подобие WordNet

Опубликовано: 25 Июля, 2021

Как работает подобие Ву и Палмера?
Он вычисляет степень родства, учитывая глубину двух синсетов в таксономиях WordNet, а также глубину LCS (наименее распространенного субпотребителя).

Оценка может быть 0 <оценка <= 1. Оценка никогда не может быть нулевой, потому что глубина LCS никогда не равна нулю (глубина корня таксономии равна единице).
Он вычисляет сходство на основе того, насколько похожи значения слов и где Synsets встречаются относительно друг друга в гиперонимном дереве.

Код # 1: знакомство с Synsets




from nltk.corpus import wordnet
syn1 = wordnet.synsets( 'hello' )[ 0 ]
syn2 = wordnet.synsets( 'selling' )[ 0 ]
print ( "hello name : " , syn1.name())
print ( "selling name : " , syn2.name())

Выход :

привет имя: hello.n.01
торговое наименование: sell.n.01


Код # 2: Сходство Ву




syn1.wup_similarity(syn2)

Выход :

0,26666666666666666

привет и продажи видимо на 27% похожи! Это потому, что они имеют общие гиперонимы.

Код №3: Давайте проверим промежуточные гиперонимы.




sorted (syn1.common_hypernyms(syn2))

Выход :

[Synset ('abstraction.n.06'), Synset ('entity.n.01')]

Один из основных показателей, используемых для вычисления сходства, - это кратчайший путь, расстояние между двумя наборами Synset и их общим гипернимом.

Код №4: Давайте разберемся с использованием Hypernerm.




ref = syn1.hypernyms()[ 0 ]
print ( "Self comprison : " ,
syn1.shortest_path_distance(ref))
print ( "Distance of hello from greeting : " ,
syn1.shortest_path_distance(syn2))
print ( "Distance of greeting from hello : " ,
syn2.shortest_path_distance(syn1))

Выход :

Самостоятельная: 1
Расстояние приветствия от приветствия: 11
Расстояние приветствия от приветствия: 11

Примечание. Оценка сходства очень высока, т. Е. Они находятся на большом расстоянии друг от друга, потому что не так похожи. В упомянутых здесь кодах используется слово «существительное», но можно использовать любую часть речи (POS).

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.