アイドルマスター ミリオンライブ!1のゲーム内テキストを利用して機械学習を行う、発言アイドル判定器を作りました。
Jubatusのセットアップ
Jubatusは「オンライン機械学習向け分散処理フレームワーク」です。今回は「オンライン」も「分散処理」も必要ないのですが、以前触った時に簡単に使える印象を持ったので、今回も使いました。
Docker HubにMeCabモジュール付きのJubatusがあったので、ありがたく利用させてもらいます。
https://hub.docker.com/r/keisato/jubatus-mecab/
$ docker pull keisato/jubatus-mecab
$ docker run -d -p 9199:9199 --name jubatus-mecab keisato/jubatus-mecab
学習・判定
JubatusのRubyクライアントを使います。
イベント20回分ぐらいのアイドルフィーチャリング2のテキストを学習データとして利用します。
アイドルのIDでタグ付けして、テキストだけ突っ込めば、MeCabモジュールのおかげでいい感じに学習してくれます。べんり。
テスト用テキストには、美也さん3のあいさつを使用しました。
ソース
実行・出力
$ ruby classifier.rb train
$ ruby classifier.rb test (git)-[master]
"う~ん…この衣装、小さくて頭が入らないですね~。…あ、私のじゃないんですか~。"
美也 :0.42
朋花 :0.30
麗花 :0.29
"プロデューサーさん、もっと笑顔でど~んって待ち構えましょう~。焦ってもお仕事はこないです~。"
美也 :0.69
翼 :0.57
朋花 :0.31
"今日はレッスンよりみんなでお散歩しましょ~。"
美也 :0.38
翼 :0.35
朋花 :0.22
"あ…っ! 突然ですけど、私、お天気おねえさんのお仕事がやりたいです~。"
美也 :0.41
未来 :0.31
桃子 :0.21
"えぇ~? 今の話…アイドルのことを話してたんですか~?"
静香 :0.22
亜利沙 :0.20
志保 :0.16
"なんとーもうこんな時間ですか? びっくりですね~。"
美也 :0.53
あずさ :0.26
未来 :0.20
"今日はオーディションですか~? もちろん覚えてましたよ~。"
美也 :0.44
あずさ :0.27
翼 :0.17
"早口言葉も得意ですよ~。ゆっくり丁寧に喋れば、絶対にカミませんから~。"
美也 :0.81
朋花 :0.30
美奈子 :0.24
"今日は一日、発声練習に集中しますね~。ノドが渇くから、たくさんお水を用意しないと…!"
美也 :0.39
のり子 :0.27
あずさ :0.21
"私もウデには覚えがあるので、社長が相手でも負けませんよ? なんの話って…将棋の話ですよ~。"
美也 :0.42
紗代子 :0.21
奈緒 :0.21
"プロデューサーさんにサンドイッチを作ってきましたよ~美味しいですか?"
美也 :0.37
美奈子 :0.24
麗花 :0.20
"プロデューサーさん、私、トークの役に立つ小話をたくさん集めたので、今日はトークの練習しましょう~。"
美也 :0.54
朋花 :0.27
まつり :0.21
"私がTVに映る時は、隣で一緒にみてくださいね~。"
朋花 :0.26
未来 :0.21
美也 :0.20
"今日はちょっとヒマですね~。プロデューサーさんも、こっちでゆっくりお茶でも飲みませんか?"
美也 :0.51
雪歩 :0.32
翼 :0.20
"もう~、プロデューサーさんのお話はちゃ~んと聞いてますよ? 昨日の時代劇の話で…違いましたか~。"
美也 :0.66
未来 :0.36
恵美 :0.34
"美希ちゃんのお昼寝を見ていると、私もなんだか…プロデューサーさん肩かしてください…Zzz。"
風花 :0.23
麗花 :0.23
美也 :0.23
所感
- 最初はRuby製の機械学習フレームワークを使ってやろうとしてたけど、機械学習の基礎知識が足りなくて断念。
- Jubatusは知識がなくてもデータ突っ込むだけでなんとなく使える(使えた気になる)ので良い感じ。
- 結果を見る限り、それなりの精度が出てるので実用性あるんじゃないかな。
- 似てるアイドルとか、誤判定しやすいアイドルも調べたい。