Вдохновленный этим ответом, Я пытаюсь найти косинусное сходство между обученным обученным векторизатором tf-idf и новым документом и вернуть аналогичные документы.
Приведенный ниже код находит косинусное сходство первого вектора, а не нового запроса.
>>> from sklearn.metrics.pairwise import linear_kernel
>>> cosine_similarities = linear_kernel(tfidf[0:1], tfidf).flatten()
>>> cosine_similarities
array([ 1. , 0.04405952, 0.11016969, ..., 0.04433602,
0.04457106, 0.03293218])
Поскольку мои данные о поездах огромны, перебирать весь обученный векторизатор кажется плохой идеей. Как я могу вывести вектор нового документа и найти связанные документы, такие же, как в приведенном ниже коде?
>>> related_docs_indices = cosine_similarities.argsort()[:-5:-1]
>>> related_docs_indices
array([ 0, 958, 10576, 3277])
>>> cosine_similarities[related_docs_indices]
array([ 1. , 0.54967926, 0.32902194, 0.2825788 ])