この間、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
しゃべり言葉の中で使われた関連語という感じが実によく出ている。セブイレなんて、私は使ったことがないが、使われているようだ。
使い分けが大事になる。