Tokyowebmining5 yokkuns

2,389 views

Published on

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

No Downloads
Views
Total views
2,389
On SlideShare
0
From Embeds
0
Number of Embeds
497
Actions
Shares
0
Downloads
18
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • XMLは、3つの部分で構成されている XML宣言、DTD、XMLインスタンス XML宣言とDTDは省略可能
  • Versionは、XML文書がどのバージョンに従っているかを示す ほとんど、1.0。1.1が必要とされるのは特殊な場合 Encodingは、そのXMLの文字コード
  • ItemList をルートとしたツリー構造になる 大文字と小文字は区別される
  • 本というオブジェクトは、 題名、出版社、著者、形式、絶版というプロパティをもち、 著者は、配列、形式はさらにオブジェクトになっている
  • こんなにあります。 今日は、データマイニングの勉強会なので、検索とテキスト解析の二つだけを扱います
  • Tokyowebmining5 yokkuns

    1. 1. はじめてでもわかる Yahoo! Web API 入門 @yokkuns: 里 洋平 第 5 回 データマイニング +WEB 勉強会@東京 2010/06/20
    2. 2. AGENDA <ul><li>自己紹介 </li></ul><ul><li>Web APIとは </li></ul><ul><li>データ構造 </li></ul><ul><li>Yahoo!のAPIの紹介 </li></ul><ul><ul><li>検索 </li></ul></ul><ul><ul><li>テキスト解析 </li></ul></ul><ul><li>宣伝 </li></ul><ul><li>まとめ </li></ul>
    3. 3. 自己紹介 <ul><li>id : yokkuns </li></ul><ul><li>名前 : 里 洋平 </li></ul><ul><li>所属 : tkul 、 Tokyo.R 、数式ニヤニヤ勉強会 </li></ul><ul><li>確率統計とかデータマイニング、機械学習など勉強中です。 </li></ul><ul><li>プログラミング言語は、 C/C++/Perl/Ruby/PHP/R/JS/Java とかやってます。 </li></ul><ul><li>@kakeibot の開発者で Tokyo.R の主催者。 </li></ul><ul><li>最近、 Android アプリにも手を出し始めました </li></ul>
    4. 4. Web API とは
    5. 5. Web API とは <ul><li>Web APIとは </li></ul><ul><li>Web APIの分類 </li></ul>
    6. 6. Web API とは <ul><li>自分以外の誰かが作ったデータやプログラムを自分のコンテンツの中で使うための技術 </li></ul><ul><li>複数のAPIを連携させて独自の価値を持つコンテンツを作ることはマッシュアップと呼ばれてる </li></ul>
    7. 7. Web API の分類 <ul><li>検索系API </li></ul><ul><li>変換系API </li></ul><ul><li>認証系API </li></ul><ul><li>表現系API </li></ul>
    8. 8. 検索系 API <ul><li>最も典型的なAPI </li></ul><ul><li>あるキーワードに関するデータを取得 </li></ul><ul><ul><li>Amazon 商品検索 </li></ul></ul><ul><ul><li>Yahoo! ウェブ検索 </li></ul></ul>
    9. 9. 変換系 API <ul><li>データを別の形式に変換するAPI </li></ul><ul><ul><li>漢字変換 </li></ul></ul><ul><ul><li>翻訳 </li></ul></ul><ul><ul><li>日本語解析 </li></ul></ul><ul><ul><li>郵便番号を住所に </li></ul></ul>
    10. 10. 認証系 <ul><li>自分のコンテンツに他のサービスのアカウントでアクセス制限を加えることが出来る API </li></ul><ul><ul><li>OpenID </li></ul></ul><ul><ul><li>OAuth </li></ul></ul>
    11. 11. 表現系 <ul><li>情報を表現・操作するための部品をコンテンツに埋め込むことが出来る API </li></ul><ul><ul><li>YouTube </li></ul></ul><ul><ul><li>ニコニコ動画 </li></ul></ul><ul><ul><li>slideshare </li></ul></ul><ul><li>JavaScript プログラムや、 Flash ファイルを HTML から呼び出す </li></ul>
    12. 12. データ構造
    13. 13. データ構造 <ul><li>XML </li></ul><ul><li>JSON </li></ul><ul><li>PHPSerialize </li></ul>
    14. 14. データ構造 <ul><li>XML </li></ul><ul><li>JSON </li></ul><ul><li>PHPSerialize </li></ul>
    15. 15. XML <ul><li>コンピュータ間のデータのやり取りにおいて古くから使われてきたデータ構造 </li></ul><ul><li>シンプルで厳密な文法を持っているため、コンピュータで処理しやすい </li></ul><ul><li>タグ名やタグの構造を自由に定義出来るので人間にも理解しやすい </li></ul>
    16. 16. XML 文書の構造 <?xml version=“1.0” encoding=“UTF-8 ” ?> <!DOCTYPE ItemList SYSTEM “good.dtd”> <ItemList> <Item code=“0001”> <name> 液晶テレビ </name> <price>250000</price> </Item> <Item code=“0002”> <name> プラズマテレビ </name> <price>500000</price> </Item> </ItemList>
    17. 17. XML 文書の構造 <?xml version=“1.0” encoding=“UTF-8”?> <!DOCTYPE ItemList SYSTEM “good.dtd”> <ItemList> <Item code=“0001”> <name> 液晶テレビ </name> <price>250000</price> </Item> <Item code=“0002”> <name> プラズマテレビ </name> <price>500000</price> </Item> </ItemList> XML 宣言
    18. 18. XML 文書の構造 <?xml version=“1.0” encoding=“UTF-8”?> <!DOCTYPE ItemList SYSTEM “good.dtd”> <ItemList> <Item code=“0001”> <name> 液晶テレビ </name> <price>250000</price> </Item> <Item code=“0002”> <name> プラズマテレビ </name> <price>500000</price> </Item> </ItemList> XML 宣言 DTD
    19. 19. XML 文書の構造 <?xml version=“1.0” encoding=“UTF-8”?> <!DOCTYPE ItemList SYSTEM “good.dtd”> <ItemList> <Item code=“0001”> <name> 液晶テレビ </name> <price>250000</price> </Item> <Item code=“0002”> <name> プラズマテレビ </name> <price>500000</price> </Item> </ItemList> XML 宣言 DTD XML インスタンス
    20. 20. データ構造 <ul><li>XML </li></ul><ul><li>JSON </li></ul><ul><li>PHPSerialize </li></ul>
    21. 21. JSON <ul><li>JavaScript のオブジェクトを記述する文法と同じ書式 </li></ul><ul><li>Ajax と XML は相性が悪いので、 XML に代わる軽量な形式として提案された </li></ul><ul><ul><li>JavaScript で XML を扱うのは計算量、コーディング作業ともに面倒 </li></ul></ul><ul><li>Ajax によく使われる </li></ul><ul><ul><li>JavaScript での利用方法は、 eval 関数を使うだけなので簡単 </li></ul></ul>
    22. 22. JSON の構造 { “ Book” : { “ Title” : “Web API マッシュアップブック” , “ Author” : [“ 関正秀” , “ まえだひさこ” , “ 加藤貴之” ], “ Form” : { “ size” : “B5”, “ page” : 328, }, “ isOut” : false } }
    23. 23. データ構造 <ul><li>XML </li></ul><ul><li>JSON </li></ul><ul><li>PHPSerialize </li></ul>
    24. 24. PHP Serialize <ul><li>PHP の値をテキスト表現したもの </li></ul><ul><li>PHP では、 unserialize() 関数使うだけ </li></ul><ul><li>PHP で開発しているなら、便利! </li></ul>
    25. 25. PHP Serialize の構造 <ul><li>a:1:{ </li></ul><ul><li>s:4:&quot;Book&quot;;a:4:{ </li></ul><ul><li>s:5:&quot;Title&quot;;s:38:&quot;Web API マッシュアップブック &quot;; </li></ul><ul><li>s:6:&quot;Author&quot;;a:3:{ </li></ul><ul><li>i:0;s:9:&quot; 関正秀 &quot;; </li></ul><ul><li>i:1;s:18:&quot; まえだひさこ &quot;; </li></ul><ul><li>i:2;s:12:&quot; 加藤貴之 &quot;; </li></ul><ul><li>} </li></ul><ul><li>s:4:&quot;Form&quot;;a:2:{ </li></ul><ul><li>s:4:&quot;size&quot;;s:2:&quot;B5&quot;; </li></ul><ul><li>s:4:&quot;page&quot;;i:328; </li></ul><ul><li>} </li></ul><ul><li>s:5:&quot;isOut&quot;;b:0; </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
    26. 26. Yahoo! デベロッパネットワーク
    27. 27. Yahoo! Web API を使うには <ul><li>Yahoo!のAPIを使用するには、アプリケーションIDが必要 </li></ul><ul><li>Yahoo! デベロッパネットワークにいって、登録(無料)するだけ </li></ul>
    28. 28. Yahoo! Web API を使うには <ul><li>Yahoo!のAPIを使用するには、アプリケーションIDが必要 </li></ul><ul><li>Yahoo! デベロッパネットワークにいって、登録(無料)するだけ </li></ul>簡単!
    29. 29. 登録までの流れ
    30. 30. 登録までの流れ ヤフーのサービス名 + !
    31. 33. Yahoo! の API 一覧
    32. 34. 検索
    33. 35. Yahoo! の検索系の API <ul><li>ウェブ検索 </li></ul><ul><li>画像検索 </li></ul><ul><li>動画検索 </li></ul><ul><li>関連検索ワード </li></ul><ul><li>ブログ検索 </li></ul>
    34. 36. ウェブ検索 <ul><li>ウェブ上に公開されているページを検索する機能を提供するAPI </li></ul><ul><li>リクエストURL : http://search.yahooapis.jp/WebSearchService/V1/webSearch </li></ul><ul><li>制限 </li></ul><ul><ul><li>24時間中1つのアプリケーションIDにつき50000件 </li></ul></ul>
    35. 37. ウェブ検索 <ul><li>必須パラメータ </li></ul><ul><ul><li>appid </li></ul></ul><ul><ul><li>query </li></ul></ul><ul><li>リクエスト例 </li></ul><ul><ul><li>http://search.yahooapis.jp/WebSearchService/V1/webSearch?appid= <appid>&query=tokyowebmining </li></ul></ul>
    36. 38. レスポンス例
    37. 39. 画像検索 <ul><li>画像検索Web APIは、ウェブ上に公開されている画像を検索する機能を提供するAPI </li></ul><ul><li>リクエストURL </li></ul><ul><ul><li>http://search.yahooapis.jp/ImageSearchService/V1/imageSearch </li></ul></ul><ul><li>制限 </li></ul><ul><ul><li>24時間中1つのアプリケーションIDにつき50000件 </li></ul></ul>
    38. 40. 画像検索 <ul><li>必須パラメータ </li></ul><ul><ul><li>appid </li></ul></ul><ul><ul><li>query </li></ul></ul><ul><li>リクエスト例 </li></ul><ul><ul><li>http://search.yahooapis.jp/ImageSearchService/V1/imageSearch?appid=<appid>&query=panda </li></ul></ul>
    39. 41. レスポンス例
    40. 42. 動画検索 <ul><li>動画検索Web APIは、ウェブ上に公開されている動画を検索する機能を提供 するAPI </li></ul><ul><li>リクエストURL </li></ul><ul><ul><li>http://search.yahooapis.jp/VideoSearchService/V1/videoSearch </li></ul></ul><ul><li>制限 </li></ul><ul><ul><li>24時間中1つのアプリケーションIDにつき50000件 </li></ul></ul>
    41. 43. Yahoo! 動画検索 API <ul><li>必須パラメータ </li></ul><ul><ul><li>appid </li></ul></ul><ul><ul><li>query </li></ul></ul><ul><li>リクエスト例 </li></ul><ul><ul><li>http://search.yahooapis.jp/VideoSearchService/V1/videoSearch?appid=<appid>&query=panda </li></ul></ul>
    42. 44. レスポンス例
    43. 45. 関連検索ワード <ul><li>実際にYahoo!検索で使用されたキーワード情報をもとに、指定されたキーワードとよく組み合わせて検索されるキーワード情報などを抽出する機能を提供API </li></ul><ul><li>リクエストURL </li></ul><ul><ul><li>http://search.yahooapis.jp/AssistSearchService/V1/webunitSearch </li></ul></ul><ul><li>制限 </li></ul><ul><ul><li>24時間中1つのアプリケーションIDにつき50000件 </li></ul></ul>
    44. 46. 関連検索ワード <ul><li>必須パラメータ </li></ul><ul><ul><li>appid </li></ul></ul><ul><ul><li>query </li></ul></ul><ul><li>リクエスト例 </li></ul><ul><ul><li>http://search.yahooapis.jp/AssistSearchService/V1/webunitSearch?appid=<appid>&query=yahoo </li></ul></ul>
    45. 47. レスポンス例
    46. 48. ブログ検索 <ul><li>ウェブ上に公開されているブログを検索する機能を提供するAPI </li></ul><ul><li>リクエストURL </li></ul><ul><ul><li>http://search.yahooapis.jp/BlogSearchService/V1/blogSearch </li></ul></ul><ul><li>制限 </li></ul><ul><ul><li>24時間中1つのアプリケーションIDにつき50000件 </li></ul></ul>
    47. 49. ブログ検索 <ul><li>必須パラメータ </li></ul><ul><ul><li>appid </li></ul></ul><ul><ul><li>query </li></ul></ul><ul><li>レスポンス選択 </li></ul><ul><ul><li>output </li></ul></ul><ul><ul><ul><li>xml </li></ul></ul></ul><ul><ul><ul><li>php </li></ul></ul></ul><ul><ul><ul><li>json </li></ul></ul></ul><ul><li>リクエスト例 </li></ul>
    48. 50. レスポンス例
    49. 51. テキスト解析
    50. 52. Yahoo! の変換系の API <ul><li>テキスト解析 </li></ul><ul><ul><li>日本語形態素解析 </li></ul></ul><ul><ul><li>キーフレーズ抽出 </li></ul></ul><ul><ul><li>日本語係り受け解析 </li></ul></ul>
    51. 53. 日本語形態素解析 <ul><li>日本語文を形態素に分割し、品詞、読みがなの付与、統計情報を取得できる機能を提供する API </li></ul><ul><li>リクエスト URL </li></ul><ul><ul><li>http://jlp.yahooapis.jp/MAService/V1/parse </li></ul></ul><ul><li>制限 </li></ul><ul><ul><li>24 時間以内で 1 つのアプリケーション ID につき 50000 件 </li></ul></ul><ul><ul><li>1 リクエストの最大サイズが 100KB </li></ul></ul>
    52. 54. 日本語形態素解析 <ul><li>必須パラメータ </li></ul><ul><ul><li>appid </li></ul></ul><ul><ul><li>sentence </li></ul></ul><ul><li>リクエスト例 </li></ul><ul><ul><li>http://jlp.yahooapis.jp/MAService/V1/parse?appid=<appid>&sentence= 庭には二羽ニワトリがいる </li></ul></ul>
    53. 55. レスポンス例
    54. 56. キーフレーズ抽出 <ul><li>日本語文を解析し、特徴的な表現(キーフレーズ)を抽出 するAPI </li></ul><ul><li>リクエストURL </li></ul><ul><ul><li>http://jlp.yahooapis.jp/KeyphraseService/V1/extract </li></ul></ul><ul><li>制限 </li></ul><ul><ul><li>24時間以内で1つのアプリケーションIDにつき50000件 </li></ul></ul><ul><ul><li>1リクエストの最大サイズを100KB </li></ul></ul>
    55. 57. キーフレーズ抽出 <ul><li>必須パラメータ </li></ul><ul><ul><li>appid </li></ul></ul><ul><ul><li>sentence </li></ul></ul><ul><li>レスポンス形式選択 </li></ul><ul><ul><li>xml </li></ul></ul><ul><ul><li>json </li></ul></ul><ul><ul><li>php </li></ul></ul><ul><li>リクエスト例 </li></ul><ul><ul><li>http://jlp.yahooapis.jp/KeyphraseService/V1/extract?appid=y-project&sentence= 東京ミッドタウンから国立新美術館まで歩いて 5 分で着きます。 </li></ul></ul>
    56. 58. レスポンス例
    57. 59. 係り受け解析 API <ul><li>日本語文の係り受け関係を解析する機能を提供するAPI </li></ul><ul><li>リクエストURL </li></ul><ul><ul><li>http://jlp.yahooapis.jp/DAService/V1/parse </li></ul></ul><ul><li>制限 </li></ul><ul><ul><li>24時間以内で1つのアプリケーションIDにつき50000件 </li></ul></ul><ul><ul><li>1リクエストの最大サイズを4KB </li></ul></ul>
    58. 60. 日本語係り受け解析 <ul><li>必須パラメータ </li></ul><ul><ul><li>appid </li></ul></ul><ul><ul><li>sentense </li></ul></ul><ul><li>リクエスト例 </li></ul><ul><ul><li>http://jlp.yahooapis.jp/DAService/V1/parse?appid=<appid>&sentence= 庭には二羽ニワトリがいる </li></ul></ul>
    59. 61. レスポンス例
    60. 62. 利用例
    61. 63. 自己紹介 <ul><li>id : yokkuns </li></ul><ul><li>名前 : 里 洋平 </li></ul><ul><li>所属 : tkul 、 Tokyo.R 、数式ニヤニヤ勉強会 </li></ul><ul><li>確率統計とかデータマイニング、機械学習など勉強中です。 </li></ul><ul><li>プログラミング言語は、 C/C++/Perl/Ruby/PHP/R/JS/Java とかやってます。 </li></ul><ul><li>@kakeibot の開発者で Tokyo.R の主催者。 </li></ul><ul><li>最近、 Android アプリにも手を出し始めました </li></ul>
    62. 64. kakeibot の紹介 <ul><li>Twitter の bot </li></ul><ul><li>支出をリプライすると、自動で分類して記録する </li></ul><ul><li>Yahoo! のウェブ検索 API とキーフレーズ API を使ってる </li></ul>
    63. 65. Kakeibot の機能 @kakeibot 食費 670 円
    64. 66. Kakeibot の機能 @kakeibot 食費 670 円
    65. 67. Kakeibot の機能 @kakeibot 食費 670 円
    66. 68. Kakeibot の機能 @kakeibot 弁当 500 円
    67. 69. Kakeibot の機能 @kakeibot 弁当 500 円
    68. 70. Kakeibot の機能 @kakeibot アナログの目覚まし時計を買ったら 500 円だった
    69. 71. Kakeibot の機能 @kakeibot アナログの目覚まし時計を買ったら 500 円だった
    70. 72. 利用例 - kakeibot <ul><li>学習 </li></ul><ul><li>分類 </li></ul>
    71. 73. 利用例 - kakeibot <ul><li>学習 </li></ul><ul><li>分類 </li></ul>
    72. 74. kakeibot – 学習 サンプル
    73. 75. kakeibot – 学習 サンプル Web API ウェブ検索 API で検索
    74. 76. kakeibot – 学習 サンプル Web API 検索結果
    75. 77. kakeibot – 学習 サンプル Web API 検索結果を キーフレーズ API に
    76. 78. kakeibot – 学習 サンプル Web API 特徴的な表現 (キーフレーズ)
    77. 79. kakeibot – 学習 サンプル Web API 辞書 学習データ
    78. 80. 利用例 - kakeibot <ul><li>学習 </li></ul><ul><li>分類 </li></ul>
    79. 81. kakeibot – 分類 入力 Web API 辞書 学習データ
    80. 82. kakeibot – 分類 入力 Web API 辞書 学習データ 辞書を検索
    81. 83. kakeibot – 分類 入力 Web API 辞書 学習データ DB に登録 入力されたものが、 既に辞書にあった場合
    82. 84. kakeibot – 分類 入力 Web API 辞書 学習データ 結果 入力されたものが、 既に辞書にあった場合
    83. 85. kakeibot – 分類 入力 Web API 辞書 学習データ 入力されたものが、 辞書に無かった場合 ウェブ検索 API で検索
    84. 86. kakeibot – 分類 入力 Web API 辞書 学習データ 入力されたものが、 辞書に無かった場合 検索結果
    85. 87. kakeibot – 分類 入力 Web API 辞書 学習データ 入力されたものが、 辞書に無かった場合 キーフレーズ API に投げる
    86. 88. kakeibot – 分類 入力 Web API 辞書 学習データ 入力されたものが、 辞書に無かった場合 特徴的な表現 (キーフレーズ)
    87. 89. kakeibot – 分類 入力 Web API 辞書 学習データ 入力されたものが、 辞書に無かった場合 類似度 計算
    88. 90. kakeibot – 分類 入力 Web API 辞書 学習データ 入力されたものが、 辞書に無かった場合 DB に登録
    89. 91. kakeibot – 分類 入力 Web API 辞書 学習データ 入力されたものが、 辞書に無かった場合 結果
    90. 92. 宣伝
    91. 93. R 勉強会 @ 東京( Tokyo.R#06 ) <ul><li>http://atnd.org/events/5441 </li></ul>
    92. 94. R 勉強会 @ 東京 #07 以降 <ul><li>発表者募集中です! </li></ul>
    93. 95. 数式ニヤニヤ勉強会 <ul><li>7/28~7/3のどこかで開催予定! </li></ul>
    94. 96. ライブ告知 8/14 (土)に ライブ出ることに なりました!
    95. 97. ご清聴ありがとうございました
    96. 98. 参考文献 <ul><li>Web API実践リファレンスブック </li></ul>

    ×