Косинусное сходство между предложениями с использованием новостного корпуса Google word2ve c model python - PullRequest
0 голосов
/ 26 января 2020

Я пытаюсь найти косинусное сходство между двумя предложениями неравной длины, используя word2ve c корпус новостей Google, но я получаю сообщение об ошибке: AxisError: axis 1 is out of bounds for array of dimension 1

Ниже приведен мой код:

from gensim.models import KeyedVectors
EMBEDDING_FILE = '/root/input/GoogleNews-vectors-negative300.bin.gz' # from above
word2vec = KeyedVectors.load_word2vec_format(EMBEDDING_FILE, binary=True)

vocab = word2vec.vocab.keys()
wordsInVocab = len(vocab)

import numpy as np

def sent_vectorizer(sent, model):
    sent_vec = np.zeros(50)
    numw = 0
    for w in sent:
        try:
            vc=model[w]
            vc=vc[0:50]

            sent_vec = np.add(sent_vec, vc) 
            numw+=1
        except:
            pass
    return sent_vec / np.sqrt(sent_vec.dot(sent_vec))

a = sent_vectorizer('Football is played in Brazil',word2vec)
b =sent_vectorizer('Cricket is played in India',word2vec)

word2vec.cosine_similarities(b,a)

Я преобразую предложения в векторы, так как cosine_simility принимает векторный массив в качестве входных данных. Как мне решить эту проблему?

1 Ответ

0 голосов
/ 17 февраля 2020

word2vec.cosine_similarities принимает вектор в качестве первого аргумента и matrix в качестве второго аргумента.

Вы передаете vector для второго аргумента. Добавьте еще одну ось или используйте np.stack для объединения a и b вместе.

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