はじめに 前にgensimによる単語の類似度について書きました。 kento1109.hatenablog.com この手の記事はググればいっぱい出てくるので、gensimでモデルを作って単語の類似度を計算するのは難しくないと思います。 ただ、LSTMなどで学習した後の単語の分散表現の類似度を測定したい場合に、そのためだけにわざわざgensimのモデルを構築するのは面倒ですし、無駄かなと思います。 ある単語と別の単語の類似度を測定するだけの場合、そのベクトル同士で測定すれば良いですが、gensimのmost_similar関数のような「ある単語のベクトルに近いベクトルの単語をN個取ってくる」機能を実現する場合は少し実装が必要です。 1単語ずつループで回してコサイン類似度を計算する、なんてしていては計算速度が遅くなります。 そこで、scipyとnumpyのライブラリを活用した関数を考えました