Word2Vec Neologdで作るアニメ人工知能

1,484 views

Published on

名古屋OSC2016 でLTした内容になります。
Word2VecとNeologdでTwitterのデータを機械学習しアニメ人工知能を作った話です

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,484
On SlideShare
0
From Embeds
0
Number of Embeds
853
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Word2Vec Neologdで作るアニメ人工知能

  1. 1. 秋葉原IT戦略研究所 野田純一
  2. 2. 自己紹介 所属 GMOインターネット 業務分野 ビッグデータ、機械学習 アドテク
  3. 3. 秋葉原IT戦略研究所のご紹介 形態 アニメに関するデータ解析が主体の 同人サークル 兼 ITコミュニティ メンバー 現在17名 活動 オープンソースカンファレンス出展、コミケC89出展、デブサミ等のイベ ントで発表 合計10回以上
  4. 4. Twitterデータ to Word2Vec
  5. 5. Neologd + Mecab Mecab(日本語の形態素解析ライブラリの辞書 最新の進出単語にも対応している。 辞書の更新も簡単にコマンドラインで可能。
  6. 6. 普通のMecab require 'mecab' c = MeCab::Tagger.new puts c.parse(ARGV[0]) ARGV[0] =「ラブライブ!が面白い」 単語 分類 ラブ 名詞 ライブ 名詞 ! 記号 が 助詞 面白い 形容詞
  7. 7. Mecab + Neologd require 'mecab' c = MeCab::Tagger.new("-d /usr/lib64/mecab/dic/mecab-ipadic-neologd") puts c.parse(ARGV[0]) ARGV[0] =「ラブライブ!が面白い」 単語 分類 ラブライブ! 名詞 が 助詞 面白い 形容詞
  8. 8. Word2Vec Googleが公開した単語をベクトル化するライブラリ 次元数は100次元のベクトルなど多次元となる(指定が可能) 単語をベクトル化(数値化することで) 近しい意味(ベクトル)を持つ単語の出力 単語どうしの演算も可能 「king – man + woman = queen 」
  9. 9. Word2Vec 具体例 scala> model.getVectors("くまみこ") Array[Float] = Array(0.16979307, -0.10737452, - 0.13257232, 0.011306504, 0.09197321, 0.061397914, 0.16557626, 0.16695368, - 0.0067021986, -0.11549623, -0.044930346, - 0.05574477, -0.08686614, 0.20188709, 0.21887831, - 0.033446174, 0.009392842, -0.1355873, - 0.050784733, 0.19817464, -0.13974854, - 0.025927199, -0.035145663, 0.24779177, 0.18303034, -0.024974244, 0.029113865,...
  10. 10. Word2Vec 具体例 まず、データソースの文章(wikipediaなど)を読み込み単 語間の関係性を学習させる。 日本語の文章であれば形態素解析し文章から名詞を適切 に区切る必要がある。
  11. 11. Word2Vec モデル作成 val input = sc.textFile(”tweet.txt").map(line => line.split(" ").toSeq) val word2Vec = new Word2Vec() val model = word2Vec.fit(input) kumamiko くまみこ toktomx くまみこ 2 話 シール たま の 散々 目 まち ユニクロ これ 今 ところ くまみこ 上位 位置 kumamiko RT yasumoto くまみこ 壱 話 ニコ生 アンケート 91 3 % くまみこ 2 話 くまみこ 2 話 道 https t co ON 6 DQzjbVc 三者三葉 くまみこ kumamiko tweet.txt (1ツイートの名詞のみをスペース区切りで一行で記録)
  12. 12. データソースによって結果は異なる scala> model.getVectors("くまみこ") Array[Float] = Array(0.16979307, -0.10737452, - 0.13257232, 0.011306504, 0.09197321, 0.061397914, 0.16557626, 0.16695368, scala> model2.getVectors("くまみこ") Array[Float] = Array(-0.11222127, -0.07193229, 0.13180847, 0.11497118, 0.27366132, 0.19120672, -0.013025932, 0.24020618, 0.20792492, 0.24676985,
  13. 13. findSynonymsで類似語検索 model.findSynonyms(“はいふり”,6) 類似語 コサイン類似度 ガルパン 1.1138462038267736 キズナ 1.08825059021038 信者 1.0584954975231815 設定 1.0413327339144411 ギャグ 1.0201970862609504 艦これ 1.0183542740117733
  14. 14. findSynonymsで類似語検索 類似語 コサイン類似度 ガルパン 1.1138462038267736 艦これ 1.0183542740117733 「はいふり」 「ガルパン」 「艦これ」
  15. 15. findSynonymsで類似語検索 model.findSynonyms(“●REC”,9) 類似語 コサイン類似度 wwwwwwww 1.9561811482625275 みえ 1.9450049956949542 じゃんけんぽん 1.93284191865789 ゆいかおり 1.9242905546414364 >< 1.915100378745769 グーチョキパレード 1.8924352727790863 wwwwwwwww 1.885761314710991 いいんちょ 1.8788880238558838 ポニテ 1.8673839284607967
  16. 16. EDが録画したくなる内容らしい model.findSynonyms(“●REC”,9) 類似語 コサイン類似度 グーチョキパレード 1.8924352727790863
  17. 17. 東海地方のサークルメンバー募集! http://akibalab.info/

×