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