Понимание gensim - PullRequest
       8

Понимание gensim

0 голосов
/ 07 февраля 2019

Я не уверен, как мне следует использовать самый_подобный метод Word2Vec от gensim.Допустим, вы хотите проверить проверенный пример: мужчина стоит королем, а женщина - Х ;найти X. Я думал, что это то, что вы могли бы сделать с этим методом, но из результатов, которые я получаю, я не думаю, что это правда.

Документация гласит:

Найдите топ-N самых похожих слов.Положительные слова положительно влияют на сходство, отрицательные - отрицательно.

Этот метод вычисляет косинусное сходство между простым средним векторов весов проекции заданных слов и векторами для каждого слова в модели.Этот метод соответствует сценариям аналогии со словами и расстояния в исходной реализации word2vec.

Я предполагаю, что most_similar берет положительные примеры и отрицательные примеры и пытается найти точки ввекторное пространство, которое находится как можно ближе к положительным векторам и как можно дальше от отрицательных.Это правильно?

Кроме того, существует ли метод, который позволяет нам отобразить отношение между двумя точками к другой точке и получить результат (см. Пример мужчина-король женщина-Х)?

1 Ответ

0 голосов
/ 07 февраля 2019

Вы можете точно увидеть, что most_similar() делает в его исходном коде:

https://github.com/RaRe-Technologies/gensim/blob/develop/gensim/models/keyedvectors.py#L485

Это не совсем "найти точки в векторном пространстве, которые находятся максимально близко кположительные векторы и как можно дальше от отрицательных ".Скорее, как описано в оригинальных статьях word2vec, он выполняет векторную арифметику: добавляя положительные векторы, вычитая отрицательные, затем из этой результирующей позиции, перечисляя известные векторы, ближайшие к этому углу.

Этого достаточно, чтобы решить аналогии в стиле man : king :: woman :: ? с помощью вызова, подобного:

sims = wordvecs.most_similar(positive=['king', 'woman'], 
                             negative=['man'])

(Вы можете думать об этом как «начать с« короля »-вектора, добавить'woman'-vector, вычтите' man'-vector, откуда вы попали, сообщите ранжированные слова-векторы, наиболее близкие к этой точке. ")

...