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