tokyowebmining5 yokkuns
TRANSCRIPT
はじめてでもわかる Yahoo! Web API 入門
@yokkuns: 里 洋平第 5 回 データマイニング +WEB 勉強会@
東京2010/06/20
AGENDA
自己紹介Web API とはデータ構造Yahoo! の API の紹介
検索テキスト解析
宣伝まとめ
自己紹介
id : yokkuns名前 : 里 洋平所属 : tkul 、 Tokyo.R 、数式ニヤニヤ勉強会確率統計とかデータマイニング、機械学習
など勉強中です。プログラミング言語は、 C/C++/Perl/Ruby/PH
P/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漢字変換翻訳日本語解析郵便番号を住所に
認証系
自分のコンテンツに他のサービスのアカウントでアクセス制限を加えることが出来るAPIOpenIDOAuth
表現系
情報を表現・操作するための部品をコンテンツに埋め込むことが出来る APIYouTubeニコニコ動画slideshare
JavaScript プログラムや、 Flash ファイルをHTML から呼び出す
データ構造
データ構造
XMLJSONPHPSerialize
データ構造
XMLJSONPHPSerialize
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インスタンス
データ構造
XMLJSONPHPSerialize
JSON
JavaScript のオブジェクトを記述する文法と同じ書式
Ajax と XML は相性が悪いので、 XML に代わる軽量な形式として提案されたJavaScript で XML を扱うのは計算量、コーディ
ング作業ともに面倒Ajax によく使われる
JavaScript での利用方法は、 eval 関数を使うだけなので簡単
JSON の構造
{ “Book” : { “Title” : “Web API マッシュアップブック” , “Author” : [“ 関正秀” , “ まえだひさこ” , “ 加藤貴之” ], “Form” : { “size” : “B5”, “page” : 328, }, “isOut” : false }}
データ構造
XMLJSONPHPSerialize
PHP Serialize
PHP の値をテキスト表現したものPHP では、 unserialize() 関数使うだけPHP で開発しているなら、便利!
PHP Serialize の構造a:1:{ s:4:"Book";a:4:{ s:5:"Title";s:38:"Web API マッシュアップブック "; s:6:"Author";a:3:{ i:0;s:9:" 関正秀 "; i:1;s:18:" まえだひさこ "; i:2;s:12:" 加藤貴之 "; } s:4:"Form";a:2:{ s:4:"size";s:2:"B5"; s:4:"page";i:328; } s:5:"isOut";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 件
ウェブ検索
必須パラメータappidquery
リクエスト例http://search.yahooapis.jp/WebSearchService/V1/web
Search?appid= <appid>&query=tokyowebmining
レスポンス例
画像検索
画像検索 Web API は、ウェブ上に公開されている画像を検索する機能を提供する API
リクエスト URLhttp://search.yahooapis.jp/ImageSearchService/V1/
imageSearch
制限24 時間中 1 つのアプリケーション ID につき
50000 件
画像検索
必須パラメータappidquery
リクエスト例http://search.yahooapis.jp/ImageSearchService/V1/im
ageSearch?appid=<appid>&query=panda
レスポンス例
動画検索
動画検索 Web API は、ウェブ上に公開されている動画を検索する機能を提供 する API
リクエスト URLhttp://search.yahooapis.jp/VideoSearchService/V1/
videoSearch
制限24 時間中 1 つのアプリケーション ID につき
50000 件
Yahoo! 動画検索 API
必須パラメータappidquery
リクエスト例http://search.yahooapis.jp/VideoSearchService/V1/vid
eoSearch?appid=<appid>&query=panda
レスポンス例
関連検索ワード
実際に Yahoo! 検索で使用されたキーワード情報をもとに、指定されたキーワードとよく組み合わせて検索されるキーワード情報などを抽出する機能を提供 API
リクエスト URLhttp://search.yahooapis.jp/AssistSearchService/V1/
webunitSearch
制限24 時間中 1 つのアプリケーション ID につき
50000 件
関連検索ワード
必須パラメータappidquery
リクエスト例http://search.yahooapis.jp/AssistSearchService/V1/we
bunitSearch?appid=<appid>&query=yahoo
レスポンス例
ブログ検索
ウェブ上に公開されているブログを検索する機能を提供する API
リクエスト URLhttp://search.yahooapis.jp/BlogSearchService/V1/
blogSearch
制限24 時間中 1 つのアプリケーション ID につき
50000 件
ブログ検索
必須パラメータappidquery
レスポンス選択output
xmlphpjson
リクエスト例
レスポンス例
テキスト解析
Yahoo! の変換系の API
テキスト解析日本語形態素解析キーフレーズ抽出日本語係り受け解析
日本語形態素解析
日本語文を形態素に分割し、品詞、読みがなの付与、統計情報を取得できる機能を提供する API
リクエスト URLhttp://jlp.yahooapis.jp/MAService/V1/parse
制限24 時間以内で 1 つのアプリケーション ID につ
き 50000 件1 リクエストの最大サイズが 100KB
日本語形態素解析
必須パラメータappidsentence
リクエスト例http://jlp.yahooapis.jp/MAService/V1/parse?appid=<a
ppid>&sentence= 庭には二羽ニワトリがいる
レスポンス例
キーフレーズ抽出
日本語文を解析し、特徴的な表現(キーフレーズ)を抽出 する API
リクエスト URLhttp://jlp.yahooapis.jp/KeyphraseService/V1/extract
制限24 時間以内で 1 つのアプリケーション ID につき
50000 件 1 リクエストの最大サイズを 100KB
キーフレーズ抽出必須パラメータ
appidsentence
レスポンス形式選択xmljsonphp
リクエスト例http://jlp.yahooapis.jp/KeyphraseService/V1/extract?a
ppid=y-project&sentence= 東京ミッドタウンから国立新美術館まで歩いて 5 分で着きます。
レスポンス例
係り受け解析 API
日本語文の係り受け関係を解析する機能を提供する API
リクエスト URLhttp://jlp.yahooapis.jp/DAService/V1/parse
制限24 時間以内で 1 つのアプリケーション ID につき
50000 件1 リクエストの最大サイズを 4KB
日本語係り受け解析
必須パラメータappidsentense
リクエスト例http://jlp.yahooapis.jp/DAService/V1/parse?appid=<a
ppid>&sentence= 庭には二羽ニワトリがいる
レスポンス例
利用例
自己紹介
id : yokkuns名前 : 里 洋平所属 : tkul 、 Tokyo.R 、数式ニヤニヤ勉強会確率統計とかデータマイニング、機械学習
など勉強中です。プログラミング言語は、 C/C++/Perl/Ruby/PH
P/R/JS/Java とかやってます。 @kakeibot の開発者で Tokyo.R の主催者。 最近、 Android アプリにも手を出し始めまし
た
kakeibot の紹介
Twitter の bot支出をリプライすると、自動で分類して記
録するYahoo! のウェブ検索 API とキーフレーズ AP
I を使ってる
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実践リファレンスブック