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

Tokyowebmining5 yokkuns

Editor's Notes

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