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つ目だと各ベクトルが個別のリストで独立しているという点。
単なるデータ構造の違いなので、結果にはまったく影響を与えないが、実装上でちょっと覚えておくべきことだろうと思う。