float のベクトルで表される 30,000 個のドキュメントのセットがあります。すべてのベクトルには 100 個の要素があります。ベクトル間のコサイン測定を使用して比較することにより、2 つのドキュメントの類似性を見つけることができます。問題は、最も類似したドキュメントを見つけるのに時間がかかることです。これを高速化するのに役立つアルゴリズムはありますか?
編集
今、私のコードは、最初のベクトルと他のすべてのベクトルの間のコサイン類似度を数えるだけです。約3秒かかります。私はそれをスピードアップしたいと思います ;) アルゴリズムは正確である必要はありませんが、完全な検索と同様の結果が得られるはずです。
各ベクトルの要素の合計は 1 です。
start = time.time()
first = allVectors[0]
for vec in allVectors[1:]:
cosine_measure(vec[1:], first[1:])
print str(time.time() - start)