まだプログラマーですが何か?

プログラマーネタとアスリートネタ中心。たまに作成したウェブサービス関連の話も http://twitter.com/dotnsf

タグ:insight

IBM Bluemix から提供されている各種 API の中に Insights for Twitter サービスがあります:
2015102901


Twitter のつぶやきデータに、IBM が付与した感情やユーザーの推定属性をデータベース化して、検索 API として提供しているものです。(Twitter 社が提供している)標準 API ではできないような検索絞り込みが出来たり、標準 API では制限されているような、時間あたり API 利用回数制約もなく使える、という特徴があります。

この Insights for Twitter API には2つの価格プランがあります:
2015102902


1つは Free プランで、もう1つは Entry プランです。上の図を見ると、Free プランは無料で月に500万件までのツイートを取得可能、Entry プランは月額21万円で月に100万件のツイートを取得可能、と書かれているように見えます。。

「え? 逆じゃないの??」

と思うかもしれませんが、実は正しいのです。この価格について、もう少しきちんと説明します。

実はこの2つのプランは取得できるデータに違いがあります。Free プランで取得できるデータ源は decahose と呼ばれているもので、ツイートデータ全体の約10分の1が母集団になっています(つまり、検索データベースの中に含まれていないツイートも多い)。標準の Twitter API を一般の開発者が使う場合もこの decahose を対象にツイートデータを取得できる、というものです。一方 Entry プランで取得できるデータ源は firehose と呼ばれる全ツイートデータです。標準 Twitter API を使う一般の開発者がアクセスできるものではなく、限られた環境下でのみ提供されているものです。Bluemix の Insights for Twitter API の Entry プランを申し込んでいただいた場合は、そこにアクセスできるようになる、ということになります:

Free プラン比較Entry プラン
無料料金月額21万円
500万1ヶ月間に取得できるレコード量100万
decahose
全ツイートの10分の1
データ源firehose
全ツイート


Free プランで取得できるデータは、オリジナルの Twitter API で取得できるデータと比べてデータ源は変わりません。ただ IBM のインサイト情報が付与されており、感情やユーザー属性を指定した便利な検索が可能になっています。
一方、Entry プランを使うと便利な検索機能に加え、一般の開発者権限ではアクセスすることのできない firehose にアクセスすることができる(より実態に近いデータを集めることができる)、という点が大きな違いと言えます。


・・・って、軽く書いちゃったけど、firehose にアクセスできる環境が入手できるって凄いことだよね。しかも体験期間中であれば無料ってこと? (O.O ;


日本時間の2月20日に、IBM Bluemix 内のサービスラインナップが更新され、いくつかの新しいサービスが追加されました。

追加されたサービスの1つに IBM Insights for Twitter があります。2014年10月末に Twitter 社と IBM との連携が発表されましたが、そのサービスの API が IBM Bluemix を通じて誰でも(現時点では無料で)利用できるようになりました:
ibm-twitter-form-data-partnership-140x105

具体的には "decahose" と呼ばれる、Twitter の公開ツイート全体の中のランダムな約 10% のデータが検索の対象として提供されます。 ただこの IBM Insights for Twitter では、単に IBM に提供された decahose を誰でも検索できる、というだけではなく、IBM InfoSphere BigInsights を使ったビッグデータのリアルタイム解析によって付与されたメタ情報と合わせて 100 万ツイートまで無料で検索することができるようになっています:
2015022307


このサービスに関してはデモサイトが用意されているので、まずは論より証拠で使ってみましょう:
IBM Insights for Twitter Demo App

上記サイトにアクセスすると、検索キーワードの入力ボックス1つとボタンが表示された、シンプルなページが表示されます:
2015022301


このキーワードボックスに適当な検索ワード(この例では "oscar")と入力して "Twitter Search" ボタンをクリックすると、検索ワードにかかったツイートが一覧で表示されます。ちょうどアカデミー賞授与式が行われている頃の検索だったこともあり、式をリアルタイムに見ている人のツイートが見て取れます:
2015022302


検索結果をよく見ると、"message" という大きなブロックの中に "body"(本文)や "location"(位置情報)といったブロックに分かれて各ツイートの情報が得られていることが分かります:
2015022303


シンプルな検索結果に見えますが、実は一般的な Twitter API を使ったことのある開発者からはこの時点でもいくつかの目新しい機能があることに気づきます。

例えば一般的な Twitter API を使うにはまず開発者登録とアプリケーション登録を行い、OAuth 認証のための ID を発行する必要があります。そしてその ID を使って OAuth 認証の仕組みを使ってアクセスした上で検索の API を実行する必要があります。 IBM Bluemix から提供されている IBM Insights for Twitter  の API ではこの部分が省略され、よりシンプルなしくみで検索を実行することができるようになっています。

また、検索結果の各ツイートの内容をよく見ると "message" ブロックの下に "cde" というブロックが付与されています:
2015022304


これは "Context Data Extractor" のデータという意味です。元々のツイートには含まれていない情報を、そのデータの内容から推測・計算して得られた附属情報です。例えば「このツイートを書いた人の性別」や「このツイートの内容がポジティブなものか、ネガティブなものか」といった情報になります。 これらの情報は Twitter から提供されているものではなく、IBM Insights サービスによって格納時にリアルタイムにストリーミング処理されて付与された情報です。

IBM Insights for Twitter では、この CDE 情報を検索条件に含めることも可能です。こちらも試してみましょう。 先ほどの画面の検索ボックスにおいて "oscar" というキーワードに加えて、"sentiment:positive" と加えて検索してみます:
2015022305


すると同じような検索結果が表示されますが、その結果の CDE 情報を見ると、すべて cde.content.sentiment.polarity の値が POSITIVE になっているものばかりになっているはずです。つまり「"oscar" というキーワードを含んで、かつポジティブな内容のもの」が検索されたことになります。ちなみに値を sentiment:negative にするとネガティブなものだけ、sentiment:neutral にすると中間的なものだけを抽出することも可能です:
2015022306


CDE の sentiment 検索については、現時点では英語のみに対応している模様で、残念ながら日本語テキストの判断はできないようです。ただ、この CDE の情報まで含めてほぼリアルタイムな Twitter 検索ができる、というこの環境が誰でも無料で使えるようになる、という IBM Insights for Twitter サービスはアプリケーション開発において、その可能性を感じずにいられません。


現在はまだバージョン1がベータリリースされたばかりで、検索パラメータに指定できることも限られてしまっていますが、開発者の皆様には是非使っていただいて、どのような機能要望があるのか、その声を聞かせていただきたいと思っています。そんな IBM Insights for Twitter サービスのチュートリアルや API リファレンスはこちら:
Getting started with IBM Insights for Twitter(BETA)

↑デモサイトの検索ボックスに、どのように入力すればどのような条件で検索できるか、といった情報が詳しく書かれています。


まだベータ版ということもあって、今後の仕様変更についての可能性もあると思いますが、開発する立場で見ても可能性も多い楽しみなサービスだと思っています。









 

このページのトップヘ