this 답변으로, 나는 훈련 된 tf-idf 벡터 라이저와 새 문서 사이의 코사인 유사성을 찾고 비슷한 문서를 반환하려고합니다.Python - 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 ])
더 나은 솔루션이있을 수 있지만 선형 검색은 반드시 나쁜 아이디어는 아니며 정확하게 구현하면 빠를 수 있습니다. 데이터 세트의 크기는 얼마나됩니까? 어떤 쿼리 시간 수준이 받아 들여질 수 있습니까? – elyase