twitterデータをword2vecで解析し、wikipedia と比較する

この間、wikipediaデータを元にword2vec用のデータベースを作成した。それはそれで、十分実用性があるが、さらに実際の言葉の、喋り口調の使われ方を見るためにTwitterのAPIを使ったサンプリングデータをコーパスにして作成してみることにした。

Twitterのサンプリングは、APIを使って、昨年末から今年にかけて2000万ツイートを集めていた。さらに最近200万ほど追加して、総計 24,173,335ツイートである。

手順はwikipediaの場合と同じである。ほぼ100万ツイートずつ分かれていたものを一つのファイルにまとめる。

$ cat tweets1* > tweets_all_180907.txt

という感じ。

これをneologdを使ったmecabで分かち書きをする。

$ mecab -Owakati -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd/ tweets_all_180907.txt -o twitter_wakati_data.txt

これをword2vecにかけて、ウェイトデータを作成する。

$ word2vec -train twitter_wakati_data.txt -output twitter_wakati.bin -size 200 -window 5 -sample 1e-3 -negative 5 -hs 0 -binary 1

ウェイトデータは、477メガバイトになって、wikipediaの場合の795メガバイトよりもだいぶ小さい。

あとは、distanceで分析できる。関連語検索を、wikipediaの場合と比べてみるととても面白い。
例えば、コンビニを調べる。
wikipediaの場合

Word: コンビニ	Position in vocabulary: 16062
Word	 Cosine distance
-------------------------------
コンビニエンスストア	0.870578
量販店	0.772738
家電量販店	0.751852
ファーストフード店	0.721780
スーパーマーケット	0.720924
100円ショップ	0.718245
ファミリーレストラン	0.713548
キヨスク	0.712224
ホームセンター	0.709059
NEWDAYS	0.703931
自販機	0.699429
ディスカウントショップ	0.695208
玩具店	0.692847
セブンイレブン	0.689320
飲食店	0.687436
売店	0.687210
ドラッグストア	0.686923
キオスク	0.684569
パチンコ店	0.682252
セブン-イレブン	0.681514
小売店	0.679067
大型書店	0.676887
大衆食堂	0.674396
レンタルビデオ店	0.669804
パソコンショップ	0.669721
うどん店	0.669188
弁当店	0.668718
駄菓子屋	0.668227
ブックオフ	0.667262
外食チェーン	0.666742
ファストフード店	0.665017
トイザらス	0.662631
コインランドリー	0.661140
アニメショップ	0.659252
ゲームセンター	0.658729
デイリーヤマザキ	0.652585
ローソン	0.651909
ガソリンスタンド	0.650547
インターネットカフェ	0.650438
自動販売機	0.650044

となる。まあ、なるほどという感じ。これに対して、Twitterコーパスを使った場合は、次のようになる。

Word: コンビニ	Position in vocabulary: 1768
Word	 Cosine distance
---------------------------------
スーパー	0.667722
自販機	0.642148
セブイレ	0.633234
レジ	0.631955
ファミマ	0.627591
セブン	0.625176
ミスド	0.618061
ローソン	0.614712
西友	0.614702
業務スーパー	0.612738
マック	0.597435
スタバ	0.596482
ガソスタ	0.596407
ファミレス	0.593658
ブックオフ	0.592258
LAWSON	0.577262
ツルハ	0.571627
カルディ	0.570277
デパ地下	0.568725
マツキヨ	0.568646
セコマ	0.568199
ドンキ	0.568019
ホムセン	0.567909
生協	0.567643
スーパーマーケット	0.565221
喫茶店	0.565085
セブンイレブン	0.562578
本屋	0.561266
ドラッグストア	0.556287
売店	0.555747
飲食店	0.555709
ゲーセン	0.555684
マクド	0.550563
自動販売機	0.549253
すき家	0.549123
薬局	0.548373
売り場	0.548229
駅前	0.548090
コストコ	0.543193
イオン	0.540342

しゃべり言葉の中で使われた関連語という感じが実によく出ている。セブイレなんて、私は使ったことがないが、使われているようだ。

使い分けが大事になる。