Эффективный способ вычисления косинусного сходства между матрицей и вектором различной длины? - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь вычислить косинусное сходство между матрицей векторов и векторов.

Я использую эту функцию:

    matrix_example =  [list([u'phase', u'nepal', u'formulation', u'workshop', u'janakpur', u'kamala', u'river', u'system', u'stakeholder', u'dhanusa']) list([u'ready', u'flood', u'myself', u'with', u'upcoming', u'interview', u'crack', u'video', u'escape', u'reality', u'life', u'bts_twt']) list([u'what', u'possibly', u'could', u'wrong', u'some', u'flood', u'some', u'storm', u'fire', u'trump', u'environment', u'chief', u'suggests', u'global'])]

    vector_example = [u'evidently' u'that' u'blue' u'wave' u'calmed' u'blue' u'trickle' u'every' u'looking' u'more' u'more' u'like' u'tsunami']



def cos_matrix_multiplication(matrix, vector):

    #Calculating pairwise cosine distance using matrix vector multiplication.

    dotted = np.reshape(matrix.dot(vector))
    matrix_norms = np.linalg.norm(matrix, axis=1)
    vector_norm = np.linalg.norm(vector)
    matrix_vector_norms = np.multiply(matrix_norms, vector_norm)
    neighbors = np.divide(dotted, matrix_vector_norms)
    return neighbors

Однако у меня есть эта ошибка, которая возникает из-за того, что векторы в матрице не имеют ту же длину, что и мой вектор ввода.

ValueError: shapes (13,) and (11,) not aligned: 13 (dim 0) != 11 (dim 0)

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

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