Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

RとWeb API

11 690 vues

Publié le

Publié dans : Technologie
  • Soyez le premier à commenter

RとWeb API

  1. 1. RとWeb API @yokkuns: 里 洋平 第5回 R勉強会@東京(Toyo.R#05) 2010/05/22
  2. 2. AGENDA  自分と@kakeibot の紹介  Web APIとは  RとWeb API
  3. 3. @yokkuns : 里 洋平  Webエンジニア  Tokyo.R、数式ニヤニヤ勉強会の主催者  確率・統計・モデリング/パターン認識/機械学習/ データマイニング/NLP/画像解析/金融工学/保 険数理/量子力学などを勉強中。  プログラミング言語は、C/C++/Perl/Ruby/PHP/R/ JSとかやってます。  @kakeibot っていうtwitter botの開発者
  4. 4. @yokkuns : 里 洋平  Webエンジニア  Tokyo.R、数式ニヤニヤ勉強会の主催者  確率・統計・モデリング/パターン認識/機械学習/ データマイニング/NLP/画像解析/金融工学/保 険数理/量子力学などを勉強中。  プログラミング言語は、C/C++/Perl/Ruby/PHP/R/ JSとかやってます。  @kakeibot っていうtwitter botの開発者
  5. 5. kakeibotの紹介  Twitter のbot  支出をリプライすると、自動で分類して記録する  Yahoo!のウェブ検索APIとキーフレーズAPIを使 ってる
  6. 6. Kakeibotの機能 @kakeibot 食費 1000円
  7. 7. Kakeibotの機能 @kakeibot 食費 1000円
  8. 8. Kakeibotの機能 @kakeibot 弁当 500円
  9. 9. Kakeibotの機能 @kakeibot 弁当 500円
  10. 10. Kakeibotの機能 @kakeibot アナログの目覚まし時 計を買ったら500円だった
  11. 11. Kakeibotの機能 @kakeibot アナログの目覚まし時 計を買ったら500円だった
  12. 12. Kakeibotの機能 @kakeibot ラーメン800円。テスト
  13. 13. Kakeibotの機能 @kakeibot ラーメン800円。テスト
  14. 14. 分類の精度が悪いのでRで作り直そうと思ってます
  15. 15. まだ、何もしてない。。。
  16. 16. まだ、何もしてない。。。 共同開発者募集中です!
  17. 17. twitteRとRCaBoChaを使って、試したりはしてます @kakeibot コーヒー60円、お菓子に300円。(テスト)
  18. 18. twitteRとRCaBoChaを使って、試したりはしてます
  19. 19. twitteRとRCaBoChaを使って、試したりはしてます
  20. 20. Web APIとは
  21. 21. Web APIとは  自分以外の誰かが作ったデータやプログラムを 自分のコンテンツの中で使うための技術  複数のAPIを連携させて独自の価値を持つコン テンツを作ることはマッシュアップと呼ばれてる
  22. 22. Web APIのプロトコル  REST  XML-RPC  SOAP
  23. 23. Web APIのプロトコル  REST  XML-RPC  SOAP
  24. 24. REST  4つのHTTPメソッドで操作  GET : 取得  POST : 新規作成  PUT : 更新  DELETE : 削除  GETとPOSTが多い  分かりやすい  GETについては、ブラウザで確認出来る
  25. 25. Web APIの分類  検索系  変換系  認証系  表現系
  26. 26. Web APIの分類  検索系  変換系  認証系  表現系
  27. 27. Amazon 商品検索
  28. 28. Yahoo! JAPAN デベロッパーネットワーク > 検索
  29. 29. Web APIの分類  検索系  変換系  認証系  表現系
  30. 30. 郵便専門ネット Webサービス
  31. 31. Yahoo! JAPAN デベロッパーネットワーク > テキスト解析
  32. 32. Web APIの分類  検索系  変換系  認証系  表現系
  33. 33. はてなでOpenID
  34. 34. Yahoo! JAPAN デベロッパーネットワーク > OAuth
  35. 35. Web API まとめ  Web APIは、ネット上のデータを利用することの 出来る技術  プロトコルには、REST、XML-RPC、SOAPなど があるが、RESTが主流  AmazonとかYahoo!などいろんな企業が提供し てくれてる
  36. 36. RとWeb API
  37. 37. RとWeb API  Web APIに関連しそうなCRANパッケージ  基本的なもの  RCurl  rjson  XML  個別サービス専用  RGoocleDocs  R2GoogleMaps  RKML  twitteR  RAmazonS3  RAmazonDBREST  Rflickr  ・・・
  38. 38. RとWeb API  Web APIに関連しそうなCRANパッケージ  基本的なもの  RCurl  rjson  XML  個別サービス専用  RGoocleDocs  R2GoogleMaps  RKML  twitteR  RAmazonS3  RAmazonDBREST  Rflickr
  39. 39. Rcurlパッケージ  HTTPやFTP、SCPなどの一般的なネットワーク のRのインタフェース  アプリケーション層のプロトコルを抽象化するこ とで、本質的な開発に集中できる
  40. 40. Rcurlパッケージ  HTTPやFTP、SCPなどの一般的なネットワーク のRのインタフェース  アプリケーション層のプロトコルを抽象化するこ とで、本質的な開発に集中できる
  41. 41. Rcurlパッケージ  HTTPやFTP、SCPなどの一般的なネットワーク のRのインタフェース  アプリケーション層のプロトコルを抽象化するこ とで、本質的な開発に集中できる curlがやってくれる
  42. 42. Rcurlパッケージのインストール  依存ライブラリ  libcurlが必要 $ sudo yum install curl-devel  インストール > install.packages(“RCurl”)
  43. 43. Rcurlパッケージの使い方  getURL(url, ..., .opts = list(), write=basicTextGatherer(), curl = getCurlHandle(), async = length(url) > 1, .encoding = integer())  postForm(uri, ..., .params = list(), .opts = curlOptions(url = uri), curl = getCurlHandle(), style = 'HTTPPOST', .encoding = integer(), binary = NA, .checkParams = TRUE, .contentEncodeFun = curlEscape)
  44. 44. rjsonパッケージ  RでJSON形式のデータを扱うためのパッケージ  JSON => Rオブジェクト  Rオブジェクト => JSON
  45. 45. rjsonパッケージの使い方  インストール > install.packages(“rjson”)  JSONをRオブジェクトに変換 > fromJson( json )  RオブジェクトをJSONに変換 > toJson( r )
  46. 46. Yahoo! ブログ検索 APIを使ってみる(JSON形式) > library(RCurl) 要求されたパッケージ bitops をロード中です > library(rjson) > json <- getURI(“http://search.yahooapis.jp/BlogSearchSe rvice/V1/blogSearch?appid=アプリケーション ID&output=json&query=TokyoR") > obj <- try(suppressWarnings(fromJSON(json)), silent = TRUE)
  47. 47. XMLパッケージ  XMLの入出力をサポートするパッケージ  HTMLも扱えるので、スクレイピングにも使える  RFinanceYJはこれを使ってます  HTTPやFTPからの取得も可能  Web APIは、XML形式のものが多いので、使え ると便利
  48. 48. Yahoo! ブログ検索 APIを使ってみる(XML形式) > library(XML) > xml <- xmlParse(‘http://search.yahooapis.jp/BlogSearchService/V1/blogS earch?appid=アプリケーションID&query=TokyoR',T) > obj <- xmlToDataFrame(xml) Called from: xmlToDataFrame(doc, colClasses, homogeneous, collectNames, nodes = xmlChildren(xmlRoot(doc))) Browse[1]> > names(obj) [1] "Id" "RssUrl" "Title" "Description" "Url" [6] "Creator" "mobileLink" "DateTime" "Site"
  49. 49. RとWeb API  Web APIに関連しそうなCRANパッケージ  基本的なもの  RCurl  XML  rjson  個別サービス専用  RGoocleDocs  R2CoogleMaps  RKML  twitteR  RAmazonS3  RAmazonDBREST  Rflickr  ・・・
  50. 50. twitteRパッケージ  Rベースののtwitterクライアント  依存パッケージ  RCurl  Rjson
  51. 51. twitteRパッケージの使い方(認証が要らないAPI)  Public Timeline publicTimeline()  ユーザのタイムライン userTimeline ( ユーザ名 )
  52. 52. twitteRパッケージの使い方(認証が必要なAPI)  初期化 yokkuns <- initSession("yokkuns","********")  Rcurlの初期化  自分のタイムライン friendsTimeline (yokkuns)  リプライ mentions(yokkuns)
  53. 53. twitteRパッケージの使い方(statusクラス)  これらの関数で返ってくる結果は、statusクラス のオブジェクトのリスト  statusクラスのメソッド  show  text  favorited  replyToSN  created  truncated  replyToSID  id  replyToUID  statusSource  screenName
  54. 54. twitteRデモ 時間があれば、実際に動かしてみます
  55. 55. RとWeb API まとめ  Rには、RCurl、rjson、XML、RSOAPなど、Web APIを使うためのパッケージがある  これらを使って、各サービス専用のパッケージ がある。  RAmazonS3、twitteRなど  簡単に作れるので、すぐCRANオーナーになれ る!  Yahoo! のが無いからチャンスかも
  56. 56. 宣伝
  57. 57. 数式ニヤニヤ勉強会
  58. 58. ライブ告知 8/14(土)に ライブ出ることに なりました!
  59. 59. まとめ  自分と@kakeibotの紹介  Web APIとは  RとWeb API  数式ニヤニヤ勉強会の宣伝  ライブ告知
  60. 60. ご清聴ありがとうございました

×