gensim 文章をベクトル空間にする方法

http://radimrehurek.com/gensim/tut1.html

を見れば大体は書いてある。

このページで紹介されている方法は二種類あって、1つはテキストを一気にメモリに載せて変換する方法。2つめは順番にベクトル空間に変えていく方法。

1つ目のやり方だと、
dictionary = corpora.Dictionary(texts)

になり、二つ目はだとclassを使って、

 class MyCorpus(object):
     def __iter__(self):
         for line in open('mycorpus.txt'):
             yield dictionary.doc2bow(line.lower().split())

みたいになる。

この書き方だと(当然だけど)結果は同じになるんだろうが、疑い深いので、実際に試してみた。

すると.....同じ結果でした。(あたりまえ)

でも、ひとつ大きく違うのは、1つ目だと結果は二次元リストになっており、2つ目だと各ベクトルが個別のリストで独立しているという点。

単なるデータ構造の違いなので、結果にはまったく影響を与えないが、実装上でちょっと覚えておくべきことだろうと思う。