Возможно, вы захотите перефразировать свой вопрос (из заголовка вы ищете сходство слов, из описания, которое я собираю, вы хотите сходство документа) и добавив немного больше деталей в описание. Без более подробной информации о том, что вы хотите и что вы пытались, трудно помочь вам достичь того, чего вы хотите, потому что вы могли бы хотеть сделать целую кучу разных вещей. При этом, я думаю, я могу помочь вам в целом, даже не зная, что вы хотите, чтобы Генсим сделал. Gensim довольно мощный, и предлагает множество различных функций.
Предполагая, что ваш словарь уже в формате gensim, вы можете загрузить его следующим образом:
from gensim import corpora
dictionary = corpora.Dictionary.load('my_dict.dict')
Там - теперь вы можете использовать его с gensim, а также проводить анализы и моделировать по своему желанию. Для сходства между словами вы можете поиграть с такими готовыми функциями, как gensim.word2vec.most_similar('word_one', 'word_two')
и т. Д.
О сходстве документов с обученной моделью LDA см. этот вопрос о переполнении стека .
Более подробное объяснение см. В этом учебном пособии gensim , в котором используется косинусное сходство как мера сходства между документами.
gensim имеет несколько готовых функций, которые не требуют LDA, например, gensim.similarities.MatrixSimilarity
из Similarities.docsim , я бы порекомендовал посмотреть документацию и примеры.
Кроме того, чтобы избежать множества ловушек: есть ли конкретная причина для усреднения векторов самостоятельно (или даже для их усреднения вообще)? Вам не нужно этого делать (у gensim есть несколько более сложных методов, которые позволяют сопоставить документы с векторами, например models.doc2vec
), и они могут потерять ценную информацию.