Расчет меры подобия перчаток Python

я пытаюсь понять, как python-glove вычисляет most-similar условия.

Используется косинусное сходство?

Пример из github python-glove https://github.com/maciejkula/glove-python/tree/master/glove :введите здесь описание изображения

Я знаю, что из word2vec gensim метод most_similar вычисляет сходство, используя косинусное расстояние.
введите здесь описание изображения


person jxn    schedule 31.10.2016    source источник


Ответы (3)


На веб-сайте проекта немного неясен этот момент:

Евклидово расстояние (или косинусное сходство) между двумя векторами слов обеспечивает эффективный метод измерения лингвистического или семантического сходства соответствующих слов.

Евклидово расстояние — это не то же самое, что косинусное сходство. Похоже, что любой из них работает достаточно хорошо, но не указано, какой из них используется.

Однако мы можем наблюдать источник репо, которое вы смотрите, чтобы увидеть:

dst = (np.dot(self.word_vectors, word_vec)
       / np.linalg.norm(self.word_vectors, axis=1)
       / np.linalg.norm(word_vec))

Он использует подобие косинуса.

person droid    schedule 11.09.2018

На сайте проекта перчаток это объясняется достаточно ясно. http://www-nlp.stanford.edu/projects/glove/

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

Чтобы узнать больше о математических расчетах, стоящих за этим, посетите раздел «Обзор модели» на веб-сайте.

person AbdealiJK    schedule 31.10.2016

да, он использует косинусное сходство.

в бумаге упоминается, что в тексте : ... Оценка сходства получается из слова векторы, сначала нормализовав каждую функцию по словарю, а затем вычислив косинусное сходство....

person Memo    schedule 11.07.2019