Upgrade to Pro — share decks privately, control downloads, hide ads and more …

シンデレラガールズの台詞のみから 「誰の台詞か」機械学習で判定する

シンデレラガールズの台詞のみから 「誰の台詞か」機械学習で判定する

in #imas_hack 2016-12-17

788c59210146d00948749be4ae97b136?s=128

shuukei.imas_cg

December 17, 2016
Tweet

More Decks by shuukei.imas_cg

Other Decks in Technology

Transcript

  1. シンデレラガールズの台詞のみから 「誰の台詞か」機械学習で判定する モバマス-Pixiv集計所 http://www.shuukei.info/imas_cg/ たくみP 2016/12/17

  2. 自己紹介  たくみP  担当アイドル: 喜多日菜子  いつもは「imas_cg集計 @shuukei_imas_cg」というTwitterアカウントで地味 につぶやいています

     運営しているサイト: モバマス-Pixiv集計所  http://www.shuukei.info/imas_cg/ 2 自力で2枚取りしたフェス 上位報酬日菜子↓
  3. 課題設定  「台詞」そのものから取得できる特徴をもとに、その台詞を言ったアイドルを 機械学習で判定することはできるか?  台詞の例: 「プロデューサーさんにおごってもらう、その名もおねだり大作戦っ!」  アイドルマスターシンデレラガールズwiki から取得した台詞データを用いる

     http://seesaawiki.jp/imascg/  183人のアイドルの台詞を対象とする(トレーナーさん達は含まない)  有効なデータ:83,970台詞  まだクレンジングが完全でない(2人のかけあいの台詞が含まれていたりする)  平均459台詞 / 1人  「テキスト分類」の問題としては非常に短いテキストデータ83970個を、 183クラスに分類するタスク 3
  4. 試してみたこと  時間がないので機械学習にはアリモノを使う  Jubatus(PFN & NTT) - jubaClassifier 

    fastText(Facebook)  特徴量としてなにを使うか  文字n-gram  たとえば「こんにちは」の2-gramなら、「こん んに にち ちは」の5つに分割  形態素n-gram  「こんにちは」は一つの形態素「こんにちは」になる(と思う)  「こんにちは、プロデューサーさん!」なら以下のように5つに分割 こんにちは 感動詞,*,*,*,*,*,こんにちは,コンニチハ,コンニチワ 、 記号,読点,*,*,*,*,、,、,、 プロデューサー 名詞,一般,*,*,*,*,プロデューサー,プロデューサー,プロデューサー さん 名詞,接尾,人名,*,*,*,さん,サン,サン ! 名詞,サ変接続,*,*,*,*,* 4
  5. テストの方法  台詞データを9:1に分割し、学習データとテストデータにわける  あるアイドルの台詞集合ごとにきっちり9:1にわける  学習に使ったデータでテストしても意味がない(未知の台詞でテストする)  交差検定を行うとmore better

    Train Test 学習に使う テストにのみ使う 9 1 5
  6. Jubatusの場合  分類(classification)について、パーセプトロン法からnearest_neighborまでさ まざまなアルゴリズムがある  parceptron, PA, CW, AROW, NHERD…

     とりあえず全部試してみる 6
  7. Jubatusの場合  ハッカソン中の試行ではCW(Confidence Weighted)が最も高い正解率を出した  アルゴリズム: CW  文字2-gram 

    accuracy: 0.623794212219  文字3-gram  accuracy: 0.598785280457  形態素1-gram (形態素解析にはmecab+ipadic-neologdを使用)  accuracy: 0.619864237228  形態素2-gram  accuracy: 0.562343694176 7
  8. fastTextの場合  いろいろ試したが、台詞データはテキストとしては非常には短いせいか、時間 内にはあまり精度が出なかった  Acc. 0.573  試したこと: 

    形態素解析でわかち書き  -epoch 100 -lrUpdateRate 500 -wordNgrams 2  Acc. 0.567  文字でわかち書き(文字n-gramとみなす)  -epoch 100 -wordNgrams 3  Acc. 0.573  wordNgramsを増やすとモデルデータが一気に大きくなってハンドリングが悪い 8
  9. Webインターフェース版の実行例  台詞を入力すると、スコア上位のアイドルから順に表示する  判定した台詞はデレステのSSR[夢みるプリンセス]喜多日菜子のもの  今回の学習データには含まれていないが、ちゃんと判定に成功している 9

  10. 考察と今後の展開  そもそも人間がチャレンジしたとき正解率何%出せる問題なのか?  かなりやりこんでるPでも、台詞のみから判定するのは難しいのでは  台詞は非常に短いし、語尾や細部の表現がポイントなので、形態素より文字n- gramのほうが(少しだけど)性能が出やすかったのではないか  DNN系の手法(LSTMやCNN)も試してみたい

     サービスとしてどこかに置いたら使ってくれる人がいるか?  SS書きの人が「書いた台詞はそのキャラクターらしいか?」に迷ったら使える…かも 10