Вычисление сходства между двумя векторами - PullRequest
0 голосов
/ 22 мая 2018

Я сделал LDA на корпусе документов с topic_number = 5.В результате у меня есть пять векторов слов, каждое слово ассоциируется с весом или степенью важности, например:

Topic_A = {(word_A1,weight_A1), (word_A2, weight_A2), ... ,(word_Ak, weight_Ak)}
Topic_B = {(word_B1,weight_B1), (word_B2, weight_B2), ... ,(word_Bk, weight_Bk)}
.
.
Topic_E = {(word_E1,weight_E1), (word_E2, weight_E2), ... ,(word_Ek, weight_Ek)}

Некоторые слова являются общими для документов.Теперь я хочу знать, как я могу вычислить сходство между этими векторами.Я могу вычислить косинусное сходство (и другие меры сходства), программируя с нуля, но я подумал, что может быть более простой способ сделать это.Любая помощь будет оценена.Заранее благодарим вас за то, что потратили на это время.

  • Я программирую на Python 3.6 и библиотеке gensim (но я открыт для любой другой библиотеки)

  • Я знаю, что кто-то еще задавал подобный вопрос ( Вопросы косинусного сходства и LDA ), но, поскольку он не получил ответ, я спрашиваю его снова

1 Ответ

0 голосов
/ 22 мая 2018

После LDA у вас есть темы, которые характеризуются как распределение слов.Если вы планируете сравнивать эти вероятностные векторы (весовые векторы, если хотите), вы можете просто использовать любое косинусное подобие, реализованное для Python, например, sklearn .

Тем не менее, этот подход покажет вам, в каких темах в общих словах вероятности, в общем, одинаковые слова указаны.

Если вы хотите измерить сходства на основе семантической информации, а не вхождения слов, вы можетехотите использовать векторы слов (как те, которые выучены Word2Vec, GloVe или FastText).

Они выучили векторы для представления слов как низкоразмерных векторов, кодирующих определенную семантическую информацию.Их легко использовать в Gensim , и типичным подходом является загрузка предварительно обученной модели, изученной в статьях Википедии или в новостях.

Если у вас есть темы, определенные словами, вы можетепредставьте эти слова как векторы и получите среднее значение косинуса сходства между словами в двух темах (мы сделали это для семинар ).Есть некоторые источники, использующие эти Векторы Word (также называемые Word Embeddings) для представления тем или документов.Например, это один.

Есть несколько недавних публикаций, сочетающих тематические модели и вложения Word, вы можете найти их, если вам интересно.

...