Я получаю следующую ошибку при вызове cosine_similarity
numerator = sum(a*b for a,b in zip(x,y))
TypeError: only integer arrays with one element can be converted to an index
Я пытаюсь получить матрицу совпадения ключевого слова и ключевого слова из матрицы ключевых слов документа, возвращаемой CountVectorizer.
Я чувствую, что cosine_similarity
что-то не нравится в типе данных, который я ему передаю, но я не уверен, в чем именно проблема. Здесь n
относится к типу scipy.sparse.csc.csc_matrix
, а y
относится к типу scipy.sparse.csr.csr_matrix
.
documents = (
"The sky is blue",
"The sun is bright",
"The sun in the sky is bright",
"We can see the shining sun, the bright sun"
)
countvectorizer = CountVectorizer()
y = countvectorizer.fit_transform(documents)
n = y.T.dot(y)
x = n.tocsr()
x = x.toarray()
numpy.fill_diagonal(x, 0)
result = cosine_similarity(x, "None")
cosine_similarity
, которую вы используете. См. решение ниже. - person piman314   schedule 26.04.2016