---
title: "Twitter APIをさらに深く掘り下げて：iPhone 4SとGalaxy Nexusの比較"
date: "2011-11-08"
categories: 
  - "applications"
  - "json"
tags: 
  - "api"
  - "data-integration"
  - "mapforce"
  - "twitter"
  - "xmlspy"
description: この記事では、MapForceを用いてTwitterの検索APIを活用し、データ統合を行う方法について解説します。特に、iPhone 4SとGalaxy Nexusに関するユーザーの関心度を比較することに焦点を当てています。
---
Status: #blog

Tags:  #api #data-integration #mapforce #twitter #xmlspy

Categories: [development](/blog/ja/category/development.md) | [json](/blog/ja/category/json.md)
# Twitter APIをさらに深く掘り下げて：iPhone 4SとGalaxy Nexusの比較

Twitterの検索APIを使って、iPhone 4SとGalaxy Nexusに関する議論の表面的な部分を深く掘り下げた結果、いくつかの興味深いデータを発見しました。現代社会において、オンライン上には研究、市場分析、競合分析などに活用できる膨大なデータが存在します[ビッグデータ](http://en.wikipedia.org/wiki/Big_data)「これは、データを生成、保管、分析する人々にとっては課題となる可能性がありますが、私たちが答えを求めている場合は、非常に役立ちます。幸いなことに、その一部のデータはオンラインで検索することができ、特にソーシャルメディアでのやり取りに関するデータは膨大な量が存在します。

[![ツイート検索API](https://lh3.ggpht.com/-Cab7QZbaVg4/TrgSS1AfiJI/AAAAAAAAAjw/Ockh69Y5Cgg/TweetsQueryingSearchAPI_thumb2.png?imgmax=800 "TweetsQueryingSearchAPI")](http://lh3.ggpht.com/-8qNuzrNkmrA/TrgSSHXaZiI/AAAAAAAAAjo/yKOA1PpWct0/s1600-h/TweetsQueryingSearchAPI4.png)

この記事では、〜の使い方について解説します [Twitter検索API](https://dev.twitter.com/docs/api/1/get/search) from [MapForce](https://www.altova.com/ja/mapforce.html "Graphical data mapping, conversion, and integration tool"), [Altova](https://www.altova.com/ja/)弊社のデータマッピング、変換、統合ツールを使用し、最近のユーザー投稿（「ツイート」）に関するデータを収集します。対象は、非常に人気のある2つの話題です。一つは、Appleの「iPhone 4S」と、最新のAndroidスマートフォンである「Galaxy Nexus」の比較、もう一つは、これらの話題に関する議論に参加しているユーザーに関する統計データを抽出します。今日、当社が利用できる豊富なデータは、様々な方法で分析し、そこから新たな意味を見出すことができるという利点があります。 

Twitterの話題に関するトレンドを分析するサービスは既に多数存在します（例：[Trendistic](http://trendistic.indextank.com/)）。しかし、これらのサービスは非常に単純なトレンドしか提供しておらず、より詳細な分析を行うことはできません。しかし、もしウェブサービスAPIに関する基本的な知識を身につければ、その基盤となるデータにアクセスし、XML形式でデータを抽出して、さらに詳細な分析を行うことが可能です。 まず、出発点として、～を使用しましょう [Twitter検索API](https://dev.twitter.com/docs/api/1/get/search) 「Galaxy Nexus」に関する最新の100件のツイートを検索します。 その [Twitter検索の利用ガイドライン](https://dev.twitter.com/docs/using-search) その情報によると、クエリ内で両方の単語を使用すると、デフォルトの演算子である「AND」が適用されるため、今回は「Galaxy AND Nexus」というキーワードを含む投稿を検索することになります。 それでは、試してみましょう。最新の100件のデータを取得するリクエストを送信します

> [http://search.twitter.com/search.atom?q=galaxy+nexus&rpp=100](http://search.twitter.com/search.atom?q=galaxy+nexus&rpp=100 "http://search.twitter.com/search.atom?q=galaxy+nexus&rpp=100")

このリンクをクリックすると、大量の生データ（XML形式）が記載された別のウィンドウが表示されます。このデータは、特定の形式に基づいて整形されています [Atom Syndication Format の仕様](http://tools.ietf.org/html/rfc4287). 代替案として、データをご希望の形式でJSON形式で提供することも可能です。これにより、JavaScriptコードを使って直接データを処理できますが、今回はXMLベースのAtom形式を使用します。Atom形式を使用することで、データを容易に分析し、必要な情報を抽出できます。上記の検索結果をブラウザで閲覧するのはあまり使いやすくないので、XMLデータの内容を簡単に確認するために、以下の方法を使用します [お気に入りのXMLエディタ](https://www.altova.com/ja/xml-editor/ "XMLSpy") 「URLから開く」機能を使用する場合：

[![ツイート、アトムグリッド](https://lh6.ggpht.com/-j_x9YEef4Nk/TrgSTxoCftI/AAAAAAAAAkA/MfdgGZdg8kQ/TweetsAtomGrid_thumb%25255B5%25255D.png?imgmax=800 "TweetsAtomGrid")](http://lh3.ggpht.com/-5JEh5K9QkQs/TrgSTOLGHVI/AAAAAAAAAj4/7HnKXnkUMq0/s1600-h/TweetsAtomGrid%25255B7%25255D.png)

ご覧の通り、各データ項目には言語コードが含まれています。今回の例では、このTwitterのフィードから、また「iPhone 4S」に関する別の検索結果からもデータを抽出し、それらをまとめて中間的なXMLファイルを作成し、さらなる分析を行います。MapForceでXMLデータを抽出するのは非常に簡単です。「XMLファイルの挿入」オプションを使用し、XMLソースを読み込む際に、以前と同様に同じURLを指定できます。必要に応じて、MapForceは提供されたデータに基づいてXMLスキーマを自動的に作成し、それによってデータを可視化し、そこから情報を抽出することができます

[![ツイートの原子構造マッピング](https://lh6.ggpht.com/-6tRtunjeJ0Y/TrgSVGR1rLI/AAAAAAAAAkQ/bhHGOwhwRYA/TweetAtomMapping_thumb%25255B6%25255D.png?imgmax=800 "TweetAtomMapping")](http://lh5.ggpht.com/-bzAvR6n32VQ/TrgSUiI-bzI/AAAAAAAAAkI/ma5mLdoy15k/s1600-h/TweetAtomMapping%25255B10%25255D.png)

当社のマッピングでは、左側に2つのデータソースを配置しています。一つは「Galaxy Nexus」を検索するためのクエリ文字列を使用し、もう一つは「iPhone 4S」を検索するためのものです。一方、右側には、データを集約し、より便利に分析するためのシンプルなXMLスキーマを配置しています。この場合、左右のデータ間のマッピングは単純で、ユーザーに関する基本的な情報、日付、およびツイートの言語のみを抽出していますが、他のアプリケーションでは、マッピングがより複雑になり、他のデータソース、データベース、またはWebサービスへのクエリや関数が含まれる可能性があります。生成されたXMLデータをプレビューするには、MapForceの出力タブから直接確認できます。以下に、データ変換の結果として得られたXMLデータを示します

[![ツイートの生データ](https://lh4.ggpht.com/-BQ62-NjNL5Q/TrgSWVUyE5I/AAAAAAAAAkg/9oR4YXUNafc/TweetsRawData_thumb%25255B2%25255D.png?imgmax=800 "TweetsRawData")](http://lh3.ggpht.com/-YGWVjhMgmTU/TrgSV3kX6mI/AAAAAAAAAkY/RXuP_H0jqoA/s1600-h/TweetsRawData%25255B4%25255D.png)

現在、[StyleVision](https://www.altova.com/ja/stylevision.html "Visual Stylesheet & Report Design Tool")のレポート機能を活用することで、各トピック内で言語ごとにデータを分類し、各言語における投稿数を簡単に集計できます。そして、このデータを円グラフの形式でレポートとして出力すると、以下のような興味深い結果が得られます

[![言語別のツイート一覧](https://lh6.ggpht.com/-CAyiEDCNE0A/TriSqgg_ZiI/AAAAAAAAAlI/Q-cLs4zPnOU/TweetsByLanguage_thumb%25255B2%25255D.png?imgmax=800 "TweetsByLanguage")](http://lh4.ggpht.com/-xxyo-qtikjg/TriSqmyxrCI/AAAAAAAAAlA/PVPZqtvAst0/s1600-h/TweetsByLanguage%25255B5%25255D.png)

明らかに、このデータは実行日や時間、そしてこれらの製品に関する具体的な告知内容に大きく依存するため、数値は変動が大きくなります。しかし、これは様々な言語ごとの傾向を把握するための有用なモニタリングツールとして活用できます。一度設定すれば、このレポートはボタン一つで簡単に更新でき、その時点での状況を把握できます。より長期的な分析を行うためには、100件以上の最近のツイートを検索するように、データの抽出方法を少し修正する必要があります。この記事では、Twitterの検索APIをデータソースの一例として使用し、言語を一つのデータポイントとしてのみ分析しましたが、現在オンラインで利用できる、さらに多くの興味深いデータソースがあります。このアプローチは、それらすべてに同様の方法で適用できます。もし、他のデータソースや、抽出したい他の種類の情報について実験したい場合は、ぜひご自身で試してみてください。 

A [MapForceの30日間無料評価版が利用可能です](https://www.altova.com/ja/download-mapforce.html), そして、その使い方は完全に自由です [Altovaのデータマッピングおよび変換ツールには、上記以外にも様々な機能があります](https://www.altova.com/ja/mapforce.html) ソーシャルメディアのトレンド分析といったデータ処理作業にとどまらない、より高度なデータ処理タスクのために…
