Как сравнить тематическое сходство между двумя документами в Python Gensim из их тематических дистрибутивов?

#python #gensim #lda

#python #gensim #lda

Вопрос:

Я обучил модель LDA для корпуса с использованием Gensim. Теперь, когда у меня есть тематическое распределение для каждого документа, как я могу сравнить, насколько похожи два документа по темам? Я хотел бы иметь итоговую меру. Например, ниже приведены тематические дистрибутивы двух документов. Всего 75 тем. Для краткости я показываю только первые 10 тем с наибольшей вероятностью (поэтому темы не в порядке). (40, 0,5523168) означает, что тема # 40 имеет вероятность 0,5523168 для документа # 1. Должен ли я вычислить евклидово или косинусное расстояние между двумя векторами? И, используя этот суммарный показатель, могу ли я сказать, что, например, ДОКУМЕНТ 1 больше похож на DOC2, чем на DOC3, или ДОКУМЕНТ 1 и ДОКУМЕНТ 2 больше похожи друг на друга, чем ДОКУМЕНТ 3 и ДОКУМЕНТ 4 тематически? Спасибо!

 DOC #1:
[(40, 0.5523168), (60, 0.12225048), (43, 0.07556598), (41, 0.065885976), 
(22, 0.05838573), (24, 0.044774733), (74, 0.019839266), (65, 0.019544959), 
(51, 0.015470431), (36, 0.013449047)]


DOC #2:
[(73, 0.58864516), (41, 0.16827711), (51, 0.09783472), (63, 0.06510383), 
(24, 0.04722658), (32, 0.014467965), (44, 0.012267662), (47, 0.0031533625), 
(18, 0.0022214972), (0, 1.2154361e-05)]
  

Ответ №1:

Функциональность Gensim

Gensim предоставляет similarities.docsim функциональность — для «вычисления сходства между коллекцией документов в модели векторного пространства». Вы можете посмотреть документацию здесь, здесь также есть руководство по запросам на сходство.

Меры сходства документов

Использование евклидовых расстояний было бы необычным выбором — вы могли бы, но есть потенциальные проблемы. Вы могли бы использовать косинусное сходство (ссылка на учебное пособие по python) — для этого используется косинус угла двух векторов документа, преимущество которого в том, что его легко понять (1 = документы совершенно похожи, до -1 = документы вообще не имеют сходства) и да, вы можете сравнить косинусное сходство документов 1 и 2 и сравнить его с документами 3 и 4, или вычислить значения сходства doc1 с doc2 и doc1 и doc3 и сравнить их. Здесь есть довольно хороший учебник.

Вы также можете счесть мой ответ на этот вопрос в CrossValidated информативным, хотя ваш вопрос несколько отличается.

В Gensim также доступны другие показатели расстояния. Практически все они включены в gensim matutils .

Тематические расстояния

Вы также можете измерить расстояния между темами, используя (некоторые) из этих расстояний по приведенной выше ссылке, например расстояние Хеллингера.