Как получить похожие слова из пользовательского словаря ввода слов для векторов в gensim - PullRequest
0 голосов
/ 03 апреля 2019

Я работаю над проблемой сходства документов.Для каждого документа я извлекаю векторы для каждого из его слов (из предварительно обученной модели встраивания слов) и усредняю ​​их, чтобы получить вектор документа.Я получаю словарь (скажем, my_dict), который отображает каждый документ в моей коллекции на его вектор.

Я хочу передать этот словарь в gensim и для каждого документа получить другие документы в 'my_dict', которые ближе к нему.Как я мог это сделать?

1 Ответ

1 голос
/ 12 апреля 2019

Возможно, вы захотите перефразировать свой вопрос (из заголовка вы ищете сходство слов, из описания, которое я собираю, вы хотите сходство документа) и добавив немного больше деталей в описание. Без более подробной информации о том, что вы хотите и что вы пытались, трудно помочь вам достичь того, чего вы хотите, потому что вы могли бы хотеть сделать целую кучу разных вещей. При этом, я думаю, я могу помочь вам в целом, даже не зная, что вы хотите, чтобы Генсим сделал. 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), и они могут потерять ценную информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...