読者です 読者をやめる 読者になる 読者になる

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
もうまくいかない....

まあ、チュートリアルだからいいんだけど