word2vecに付属しているベクトル空間で単語同士が似ているかを計算させるdistance.cというプログラムはとても動作が軽快です。

 1単語を表すベクトルは200次元

 単語のエントリー数は20万語

この条件でも上位40位の単語候補が1秒未満で出力されます。プログラムコード内にどのような工夫が施されているのでしょうか?ぱっと見たところ、全単語に対して探索を行っているように思えるのですが、その工夫がよくわかりません。

また、入力するベクトルの次元数は任意で、どの場合でもすぐに答えがヒットします。

ソースコードへのリンクを貼ります。 distance.cのソース