辞書を使用して特徴ベクトルを表すとします (なぜですか? 特徴がまばらであることはわかっているためですが、後で詳しく説明します)。
そのような 2 つの辞書 (A、B と表示) の内積をどのように実装すればよいですか?
私は単純なアプローチを試みました:
for k in A:
if k in B:
sum += A[k] * B[k]
しかし、それは遅いことがわかりました。
詳細:
機能を表すために辞書を使用しています。
- 機能キーは文字列です
- ~20K の可能なキーがあります
- 各ベクトルはまばらです (たとえば、約 1000 個の非ゼロ要素)。
N=2000 の異なる辞書 (つまり、それらの線形カーネル) のペアごとの内積を計算することに本当に興味があります。