Re-added some debugging code and the ability to disable w2v for testing purposes.
After running cProfile on the script and doing some digging, it seems the cause of the slowdown
is just inefficiencies in numpy and gensim. In a 17 second run, 12 seconds are spent in numpy.core.multiarray.dot
and 3.5 seconds are spent in the argsort method of numpy.ndarray. I can't find a way to call this less
frequently, and looking for fewer alternatives does not change the amount of time spent there. These both appear
to only be called by the word2vec.most_similar function, as it has one of the highest cumulative times
of any method in the script. I'll continue trying to think of ways to reduce the calls of this function.