数式を使わないJubatus入門

10,716 views

Published on

Jubatus Casual Talk #1

0 Comments
17 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
10,716
On SlideShare
0
From Embeds
0
Number of Embeds
7,560
Actions
Shares
0
Downloads
0
Comments
0
Likes
17
Embeds 0
No embeds

No notes for slide

数式を使わないJubatus入門

  1. 1. 数式を使わないJubatus入門Jubatus Casual Talks #1愛甲健二Twitter: @07c00kenjiaiko@gmail.com1
  2. 2. 2013 5/24ドワンゴ、国立情報学研究所ニコニコ動画のデータセットを提供開始http://www.nii.ac.jp/cscenter/idr/nico/nico.html2
  3. 3. データセット入手動画メタデータ120GBコメントデータ300GB3
  4. 4. 分散データ分析技術開発オープンソースオンライン機械学習フレームワーク多値分類線形回帰特徴抽出Jubatus?使われている単語はその文章の特徴を表している4
  5. 5. では…5
  6. 6. 目エレン腐キタ-年少組騒がないことタグ巨人兵長小さっかっこいい嫌い進撃の巨人?書かれているコメントはその動画の特徴を表しているか?http://www.nicovideo.jp/watch/13696211346
  7. 7. Demoコメントが似た動画を集めてみるとりあえず実行のみ(処理に時間かかるので)7
  8. 8. 数式を使わないJubatus入門8
  9. 9. ざっくりとしたJubatus概要(1/5)Jubatus ServerJubatus Client9
  10. 10. ざっくりとしたJubatus概要(2/5)Jubatus ServerJubatus Client学習しといて~おk10
  11. 11. ざっくりとしたJubatus概要(3/5)Jubatus ServerJubatus Client学習中…11
  12. 12. ざっくりとしたJubatus概要(4/5)Jubatus ServerJubatus Clientこれどこ?クラスAに分類されますね~12
  13. 13. ざっくりとしたJubatus概要(5/5)Jubatus ServerJubatus Client• 用意するもの– データセット(学習 and テストデータ)– サーバ(設定ファイルのみ → .json に記述)– クライアント(One of Python, C++, Ruby or Java) 13
  14. 14. データセットデータセットを学習用に整形しなければならない? 1 ⋯ 0⋮ ⋱ ⋮0 ⋯ 1こういうの?14
  15. 15. データセットデータセットを学習用に整形しなければならない? 1 ⋯ 0⋮ ⋱ ⋮0 ⋯ 1でも、ぶっちゃけめんどい重みづけとかパラメータとかよくわからんし15こういうの?
  16. 16. データセットデータセットを学習用に整形しなければならない? 1 ⋯ 0⋮ ⋱ ⋮0 ⋯ 1でも、ぶっちゃけめんどい重みづけとかパラメータとかよくわからんしもう適当な文章(テキスト)投げ込んだら、いろいろとうまいことやってくれて、良い感じに学習してくれたりしないの?16こういうの?
  17. 17. それできるよ!そう、Jubatusならね!17
  18. 18. {"method": "PA","converter": {"string_filter_types": {},"string_filter_rules": [],"num_filter_types": {},"num_filter_rules": [],"string_types": {},"string_rules": [{"key": "*", "type": "space", "sample_weight": "log_tf","global_weight": "idf"}],"num_types": {},"num_rules": []},"parameter": {}}en_test.json英語版string_rulesのtypeにspaceを設定するだけ18
  19. 19. {"method": "PA","converter": {"string_filter_types": {},"string_filter_rules": [],"num_filter_types": {},"num_filter_rules": [],"string_types": {"mecab": {"method": "dynamic", "path": "libmecab_splitter.so","function": "create", "arg": "-d mecab/dic/ipadic"}},"string_rules": [{"key": "*", "type": "mecab", "sample_weight": "log_tf","global_weight": "idf"}],"num_types": {},"num_rules": []},"parameter": {}}ja_test.json日本語版mecabのパスを設定string_rulesのtypeをmecabに19
  20. 20. What is “sample_weight”?20sample_weight: “bin” → 出現回数を考えない“that language is” = “that language that is”sample_weight: “tf” → 出現回数が多いほど重く(近く)なる“that language is” ≪ “that language that is”sample_weight: “log_tf” → 出現回数が多いほどそこそこ重く(近く) なる(log)“that language is” < “that language that is”特徴(単語)の出現回数に関する設定項目Python: a programming language that lets you work more quickly
  21. 21. What is “global_weight”?21共通の特徴(単語)の重みに関する設定Python: a programming language that lets you work more quicklyRuby: general purpose object oriented programming languageglobal_weight: “idf” → 共通の特徴は軽く(遠く)、特別な(?)特徴は重く(近く)なる (*)global_weight: “bin” → 特に考えない(*)programming, language と言った単語は軽く判定される
  22. 22. クライアントプログラム by Python22参考:https://github.com/jubatus/jubatus-tutorial-python/blob/master/tutorial.py
  23. 23. 23Demoコメントが似た動画を集めてみる結果確認
  24. 24. まとめ24• たくさんのテキストデータを入手する• Jubatusチュートリアルからコピペしてくる– http://jubat.us/ja/tutorial.htmlこれだけで簡単なテキストマイニングができる!■用意するものデータセットサーバ用.jsonファイル(tutorialからコピー可)クライアントプログラム(tutorialからコピー可)→特に日本語を自動で単語抽出してくれるのが熱い!!
  25. 25. Jubatus: オンライン機械学習向け分散処理フレームワークhttp://jubat.us/ja/http://jubat.us/ja/tutorial.html国立情報学研究所(ニコニコデータセット)http://www.nii.ac.jp/cscenter/idr/nico/nico.htmlありがとうございました!25

×