Как сравнить предложения с идеей позиций ключевых слов? - PullRequest
0 голосов
/ 22 сентября 2019

Я хочу сравнить два предложения.Например, предложение1 = "футбол - это хорошо, крикет - плохо" предложение 2 - "крикет - это хорошо, футбол - плохо"

Как правило, эти чувства не имеют отношения, означающего, что они имеют разное значение.Но когда я сравниваю с инструментами Python NLTK, это даст 100% сходство.Как я могу исправить эту проблему?Мне нужна помощь.

1 Ответ

0 голосов
/ 23 сентября 2019

Да wup_similarity внутренне использует синтаксисы для отдельных токенов для вычисления сходства

Wu-Palmer Similarity: Return a score denoting how similar two word senses are, based on the depth of the two senses in the taxonomy and that of their Least Common Subsumer (most specific ancestor node).

Поскольку узлы-предки для cricket и football будут одинаковыми.wup_similarity вернет 1.

Если вы хотите исправить эту проблему, использование wup_similarity не является хорошим выбором.Простейшим способом на основе токенов будет подгонка vectorizer, а затем вычисление сходства.Например,

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.metrics.pairwise import cosine_similarity

corpus = ["football is good,cricket is bad", "cricket is good,football is bad"]
vectorizer = CountVectorizer(ngram_range=(1, 3))
vectorizer.fit(corpus)

x1 = vectorizer.transform(["football is good,cricket is bad"])
x2 = vectorizer.transform(["cricket is good,football is bad"])

cosine_similarity(x1, x2)

Однако существуют более разумные методы измерения семантического сходства.Одним из них, который можно легко попробовать, является USE Encoder от Google.Посмотрите эту ссылку

...