tokyowebmining5 yokkuns

98
ははははははははは Yahoo! Web API はは @yokkuns: 里 里里 は 5 は はははははははは +WEB ははは はは 2010/06/20

Upload: yohei-sato

Post on 02-Aug-2015

2.122 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Tokyowebmining5 yokkuns

はじめてでもわかる Yahoo! Web API 入門

@yokkuns: 里 洋平第 5 回 データマイニング +WEB 勉強会@

東京2010/06/20

Page 2: Tokyowebmining5 yokkuns

AGENDA

自己紹介Web API とはデータ構造Yahoo! の API の紹介

検索テキスト解析

宣伝まとめ

Page 3: Tokyowebmining5 yokkuns

自己紹介

id : yokkuns名前 : 里 洋平所属 : tkul 、 Tokyo.R 、数式ニヤニヤ勉強会確率統計とかデータマイニング、機械学習

など勉強中です。プログラミング言語は、 C/C++/Perl/Ruby/PH

P/R/JS/Java とかやってます。 @kakeibot の開発者で Tokyo.R の主催者。 最近、 Android アプリにも手を出し始めまし

Page 4: Tokyowebmining5 yokkuns

Web API とは

Page 5: Tokyowebmining5 yokkuns

Web API とは

Web API とはWeb API の分類

Page 6: Tokyowebmining5 yokkuns

Web API とは

自分以外の誰かが作ったデータやプログラムを自分のコンテンツの中で使うための技術

複数の API を連携させて独自の価値を持つコンテンツを作ることはマッシュアップと呼ばれてる

Page 7: Tokyowebmining5 yokkuns

Web API の分類

検索系 API変換系 API認証系 API表現系 API

Page 8: Tokyowebmining5 yokkuns

検索系 API

最も典型的な APIあるキーワードに関するデータを取得

Amazon 商品検索Yahoo! ウェブ検索

Page 9: Tokyowebmining5 yokkuns

変換系 API

データを別の形式に変換する API漢字変換翻訳日本語解析郵便番号を住所に

Page 10: Tokyowebmining5 yokkuns

認証系

自分のコンテンツに他のサービスのアカウントでアクセス制限を加えることが出来るAPIOpenIDOAuth

Page 11: Tokyowebmining5 yokkuns

表現系

情報を表現・操作するための部品をコンテンツに埋め込むことが出来る APIYouTubeニコニコ動画slideshare

JavaScript プログラムや、 Flash ファイルをHTML から呼び出す

Page 12: Tokyowebmining5 yokkuns

データ構造

Page 13: Tokyowebmining5 yokkuns

データ構造

XMLJSONPHPSerialize

Page 14: Tokyowebmining5 yokkuns

データ構造

XMLJSONPHPSerialize

Page 15: Tokyowebmining5 yokkuns

XML

コンピュータ間のデータのやり取りにおいて古くから使われてきたデータ構造

シンプルで厳密な文法を持っているため、コンピュータで処理しやすい

タグ名やタグの構造を自由に定義出来るので人間にも理解しやすい

Page 16: Tokyowebmining5 yokkuns

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>

Page 17: Tokyowebmining5 yokkuns

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 宣言

Page 18: Tokyowebmining5 yokkuns

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

Page 19: Tokyowebmining5 yokkuns

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インスタンス

Page 20: Tokyowebmining5 yokkuns

データ構造

XMLJSONPHPSerialize

Page 21: Tokyowebmining5 yokkuns

JSON

JavaScript のオブジェクトを記述する文法と同じ書式

Ajax と XML は相性が悪いので、 XML に代わる軽量な形式として提案されたJavaScript で XML を扱うのは計算量、コーディ

ング作業ともに面倒Ajax によく使われる

JavaScript での利用方法は、 eval 関数を使うだけなので簡単

Page 22: Tokyowebmining5 yokkuns

JSON の構造

{ “Book” : { “Title” : “Web API マッシュアップブック” , “Author” : [“ 関正秀” , “ まえだひさこ” , “ 加藤貴之” ], “Form” : { “size” : “B5”, “page” : 328, }, “isOut” : false }}

Page 23: Tokyowebmining5 yokkuns

データ構造

XMLJSONPHPSerialize

Page 24: Tokyowebmining5 yokkuns

PHP Serialize

PHP の値をテキスト表現したものPHP では、 unserialize() 関数使うだけPHP で開発しているなら、便利!

Page 25: Tokyowebmining5 yokkuns

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; } }

Page 26: Tokyowebmining5 yokkuns

Yahoo! デベロッパネットワーク

Page 27: Tokyowebmining5 yokkuns

Yahoo! Web API を使うには

Yahoo! の API を使用するには、アプリケーション ID が必要

Yahoo! デベロッパネットワークにいって、登録(無料)するだけ

Page 28: Tokyowebmining5 yokkuns

Yahoo! Web API を使うには

Yahoo! の API を使用するには、アプリケーション ID が必要

Yahoo! デベロッパネットワークにいって、登録(無料)するだけ

簡単!

Page 29: Tokyowebmining5 yokkuns

登録までの流れ

Page 30: Tokyowebmining5 yokkuns

登録までの流れ

ヤフーのサービス名 + !

Page 31: Tokyowebmining5 yokkuns
Page 32: Tokyowebmining5 yokkuns
Page 33: Tokyowebmining5 yokkuns

Yahoo! の API 一覧

Page 34: Tokyowebmining5 yokkuns

検索

Page 35: Tokyowebmining5 yokkuns

Yahoo! の検索系の API

ウェブ検索画像検索動画検索関連検索ワードブログ検索

Page 36: Tokyowebmining5 yokkuns

ウェブ検索

ウェブ上に公開されているページを検索する機能を提供する API

リクエスト URL : http://search.yahooapis.jp/WebSearchService/V1/webSearch

制限24 時間中 1 つのアプリケーション ID につき

50000 件

Page 37: Tokyowebmining5 yokkuns

ウェブ検索

必須パラメータappidquery

リクエスト例http://search.yahooapis.jp/WebSearchService/V1/web

Search?appid= <appid>&query=tokyowebmining

Page 38: Tokyowebmining5 yokkuns

レスポンス例

Page 39: Tokyowebmining5 yokkuns

画像検索

画像検索 Web API は、ウェブ上に公開されている画像を検索する機能を提供する API

リクエスト URLhttp://search.yahooapis.jp/ImageSearchService/V1/

imageSearch

制限24 時間中 1 つのアプリケーション ID につき

50000 件

Page 40: Tokyowebmining5 yokkuns

画像検索

必須パラメータappidquery

リクエスト例http://search.yahooapis.jp/ImageSearchService/V1/im

ageSearch?appid=<appid>&query=panda

Page 41: Tokyowebmining5 yokkuns

レスポンス例

Page 42: Tokyowebmining5 yokkuns

動画検索

動画検索 Web API は、ウェブ上に公開されている動画を検索する機能を提供 する API

リクエスト URLhttp://search.yahooapis.jp/VideoSearchService/V1/

videoSearch

制限24 時間中 1 つのアプリケーション ID につき

50000 件

Page 43: Tokyowebmining5 yokkuns

Yahoo! 動画検索 API

必須パラメータappidquery

リクエスト例http://search.yahooapis.jp/VideoSearchService/V1/vid

eoSearch?appid=<appid>&query=panda

Page 44: Tokyowebmining5 yokkuns

レスポンス例

Page 45: Tokyowebmining5 yokkuns

関連検索ワード

実際に Yahoo! 検索で使用されたキーワード情報をもとに、指定されたキーワードとよく組み合わせて検索されるキーワード情報などを抽出する機能を提供 API

リクエスト URLhttp://search.yahooapis.jp/AssistSearchService/V1/

webunitSearch

制限24 時間中 1 つのアプリケーション ID につき

50000 件

Page 46: Tokyowebmining5 yokkuns

関連検索ワード

必須パラメータappidquery

リクエスト例http://search.yahooapis.jp/AssistSearchService/V1/we

bunitSearch?appid=<appid>&query=yahoo

Page 47: Tokyowebmining5 yokkuns

レスポンス例

Page 48: Tokyowebmining5 yokkuns

ブログ検索

ウェブ上に公開されているブログを検索する機能を提供する API

リクエスト URLhttp://search.yahooapis.jp/BlogSearchService/V1/

blogSearch

制限24 時間中 1 つのアプリケーション ID につき

50000 件

Page 49: Tokyowebmining5 yokkuns

ブログ検索

必須パラメータappidquery

レスポンス選択output

xmlphpjson

リクエスト例

Page 50: Tokyowebmining5 yokkuns

レスポンス例

Page 51: Tokyowebmining5 yokkuns

テキスト解析

Page 52: Tokyowebmining5 yokkuns

Yahoo! の変換系の API

テキスト解析日本語形態素解析キーフレーズ抽出日本語係り受け解析

Page 53: Tokyowebmining5 yokkuns

日本語形態素解析

日本語文を形態素に分割し、品詞、読みがなの付与、統計情報を取得できる機能を提供する API

リクエスト URLhttp://jlp.yahooapis.jp/MAService/V1/parse

制限24 時間以内で 1 つのアプリケーション ID につ

き 50000 件1 リクエストの最大サイズが 100KB

Page 54: Tokyowebmining5 yokkuns

日本語形態素解析

必須パラメータappidsentence

リクエスト例http://jlp.yahooapis.jp/MAService/V1/parse?appid=<a

ppid>&sentence= 庭には二羽ニワトリがいる

Page 55: Tokyowebmining5 yokkuns

レスポンス例

Page 56: Tokyowebmining5 yokkuns

キーフレーズ抽出

日本語文を解析し、特徴的な表現(キーフレーズ)を抽出 する API

リクエスト URLhttp://jlp.yahooapis.jp/KeyphraseService/V1/extract

制限24 時間以内で 1 つのアプリケーション ID につき

50000 件 1 リクエストの最大サイズを 100KB

Page 57: Tokyowebmining5 yokkuns

キーフレーズ抽出必須パラメータ

appidsentence

レスポンス形式選択xmljsonphp

リクエスト例http://jlp.yahooapis.jp/KeyphraseService/V1/extract?a

ppid=y-project&sentence= 東京ミッドタウンから国立新美術館まで歩いて 5 分で着きます。

Page 58: Tokyowebmining5 yokkuns

レスポンス例

Page 59: Tokyowebmining5 yokkuns

係り受け解析 API

日本語文の係り受け関係を解析する機能を提供する API

リクエスト URLhttp://jlp.yahooapis.jp/DAService/V1/parse

制限24 時間以内で 1 つのアプリケーション ID につき

50000 件1 リクエストの最大サイズを 4KB

Page 60: Tokyowebmining5 yokkuns

日本語係り受け解析

必須パラメータappidsentense

リクエスト例http://jlp.yahooapis.jp/DAService/V1/parse?appid=<a

ppid>&sentence= 庭には二羽ニワトリがいる

Page 61: Tokyowebmining5 yokkuns

レスポンス例

Page 62: Tokyowebmining5 yokkuns

利用例

Page 63: Tokyowebmining5 yokkuns

自己紹介

id : yokkuns名前 : 里 洋平所属 : tkul 、 Tokyo.R 、数式ニヤニヤ勉強会確率統計とかデータマイニング、機械学習

など勉強中です。プログラミング言語は、 C/C++/Perl/Ruby/PH

P/R/JS/Java とかやってます。 @kakeibot の開発者で Tokyo.R の主催者。 最近、 Android アプリにも手を出し始めまし

Page 64: Tokyowebmining5 yokkuns

kakeibot の紹介

Twitter の bot支出をリプライすると、自動で分類して記

録するYahoo! のウェブ検索 API とキーフレーズ AP

I を使ってる

Page 65: Tokyowebmining5 yokkuns

Kakeibot の機能

@kakeibot 食費 670 円

Page 66: Tokyowebmining5 yokkuns

Kakeibot の機能

@kakeibot 食費 670 円

Page 67: Tokyowebmining5 yokkuns

Kakeibot の機能

@kakeibot 食費 670 円

Page 68: Tokyowebmining5 yokkuns

Kakeibot の機能

@kakeibot 弁当 500 円

Page 69: Tokyowebmining5 yokkuns

Kakeibot の機能

@kakeibot 弁当 500 円

Page 70: Tokyowebmining5 yokkuns

Kakeibot の機能

@kakeibot アナログの目覚まし時計を買ったら 500 円だった

Page 71: Tokyowebmining5 yokkuns

Kakeibot の機能

@kakeibot アナログの目覚まし時計を買ったら 500 円だった

Page 72: Tokyowebmining5 yokkuns

利用例 - kakeibot

学習分類

Page 73: Tokyowebmining5 yokkuns

利用例 - kakeibot

学習分類

Page 74: Tokyowebmining5 yokkuns

kakeibot – 学習

サンプル

Page 75: Tokyowebmining5 yokkuns

kakeibot – 学習

サンプル

Web API

ウェブ検索 APIで検索

Page 76: Tokyowebmining5 yokkuns

kakeibot – 学習

サンプル

Web API

検索結果

Page 77: Tokyowebmining5 yokkuns

kakeibot – 学習

サンプル

Web API

検索結果をキーフレーズ API に

Page 78: Tokyowebmining5 yokkuns

kakeibot – 学習

サンプル

Web API

特徴的な表現(キーフレーズ)

Page 79: Tokyowebmining5 yokkuns

kakeibot – 学習

サンプル

Web API

辞書学習データ

Page 80: Tokyowebmining5 yokkuns

利用例 - kakeibot

学習分類

Page 81: Tokyowebmining5 yokkuns

kakeibot – 分類

入力 Web API

辞書学習データ

Page 82: Tokyowebmining5 yokkuns

kakeibot – 分類

入力 Web API

辞書学習データ

辞書を検索

Page 83: Tokyowebmining5 yokkuns

kakeibot – 分類

入力 Web API

辞書学習データ

DB に登録

入力されたものが、既に辞書にあった場合

Page 84: Tokyowebmining5 yokkuns

kakeibot – 分類

入力 Web API

辞書学習データ

結果

入力されたものが、既に辞書にあった場合

Page 85: Tokyowebmining5 yokkuns

kakeibot – 分類

入力 Web API

辞書学習データ

入力されたものが、辞書に無かった場合

ウェブ検索 APIで検索

Page 86: Tokyowebmining5 yokkuns

kakeibot – 分類

入力 Web API

辞書学習データ

入力されたものが、辞書に無かった場合

検索結果

Page 87: Tokyowebmining5 yokkuns

kakeibot – 分類

入力 Web API

辞書学習データ

入力されたものが、辞書に無かった場合

キーフレーズ APIに投げる

Page 88: Tokyowebmining5 yokkuns

kakeibot – 分類

入力 Web API

辞書学習データ

入力されたものが、辞書に無かった場合

特徴的な表現(キーフレーズ)

Page 89: Tokyowebmining5 yokkuns

kakeibot – 分類

入力 Web API

辞書学習データ

入力されたものが、辞書に無かった場合

類似度計算

Page 90: Tokyowebmining5 yokkuns

kakeibot – 分類

入力 Web API

辞書学習データ

入力されたものが、辞書に無かった場合

DB に登録

Page 91: Tokyowebmining5 yokkuns

kakeibot – 分類

入力 Web API

辞書学習データ

入力されたものが、辞書に無かった場合

結果

Page 92: Tokyowebmining5 yokkuns

宣伝

Page 93: Tokyowebmining5 yokkuns

R 勉強会 @ 東京( Tokyo.R#06 )

http://atnd.org/events/5441

Page 94: Tokyowebmining5 yokkuns

R 勉強会 @ 東京 #07 以降

発表者募集中です!

Page 95: Tokyowebmining5 yokkuns

数式ニヤニヤ勉強会

7/28 ~ 7/3 のどこかで開催予定!

Page 96: Tokyowebmining5 yokkuns

ライブ告知

8/14 (土)にライブ出ることになりました!

Page 97: Tokyowebmining5 yokkuns

ご清聴ありがとうございました

Page 98: Tokyowebmining5 yokkuns

参考文献

Web API実践リファレンスブック