Gensimでのコーパスの作り方
http://radimrehurek.com/gensim/tut1.html
このページを見るのは二回目だけど。
ようやくまともにコーパスの作り方がわかったので、書き記しておく。
考え方としてはページでのコーパスの作り方をひとつの関数としてみなす。
すると、入力は
>>> documents = ["Human machine interface for lab abc computer applications", >>> "A survey of user opinion of computer system response time", >>> "The EPS user interface management system", >>> "System and human system engineering testing of EPS", >>> "Relation of user perceived response time to error measurement", >>> "The generation of random binary unordered trees", >>> "The intersection graph of paths in trees", >>> "Graph minors IV Widths of trees and well quasi ordering", >>> "Graph minors A survey"]
ということになる。
つまり、ひとつのリスト内に一文ずつ要素とすればよい。
そしてdictionaryとcorpusが作成されるという流れ。
ベクトルのcorpusに変換する前にtextsの中身をみることができるが、
>>> print texts [['human', 'interface', 'computer'], ['survey', 'user', 'computer', 'system', 'response', 'time'], ['eps', 'user', 'interface', 'system'], ['system', 'human', 'system', 'eps'], ['user', 'response', 'time'], ['trees'], ['graph', 'trees'], ['graph', 'minors', 'trees'], ['graph', 'minors', 'survey']]
となっている。
つまり、二次元リストで二次元目の中身に文中のtokenがある。
これをベクトル空間に変換して、
>>> print corpus
[(0, 1), (1, 1), (2, 1)]
[(0, 1), (3, 1), (4, 1), (5, 1), (6, 1), (7, 1)]
[(2, 1), (5, 1), (7, 1), (8, 1)]
[(1, 1), (5, 2), (8, 1)]
[(3, 1), (6, 1), (7, 1)]
[(9, 1)]
[(9, 1), (10, 1)]
[(9, 1), (10, 1), (11, 1)]
[(4, 1), (10, 1), (11, 1)]
という流れだと理解した。(たぶん)
ところで、gensimのwikipediaのトピックモデル作成のチュートリアルがうまくいかないのだが....どうしたもんだろう。
類似して
http://yuku-tech.hatenablog.com/entry/20110623/1308810518
もうまくいかない....
まあ、チュートリアルだからいいんだけど