まだ Twitter 分析で消耗してるの？無料の Microsoft Flow と Cognitive Services Text Analytics、Power BI でテキスト分析レポート自動化(1)

[Microsoft Cognitive Services & Bot Framework Advent Calendar](http://qiita.com/advent-calendar/2016/cogbot) 12/2 の記事です。明日は [hiiyan0402](http://qiita.com/hiiyan0402)さんです。

#Microsoft Power BI Desktop と Cognitive Services による Twitter テキスト分析レポート(1)

Twitter API の Search API でアカウントやキーワード検索のデータを取得したいが、手間がかかる。さらに分析してレポート作成するとなると．．．。そんな時。
Microsoft Flow を使うと、クリック操作だけで Twitter 検索を行ってデータを抽出するフローを作成することができ、データは Excel やデータベースなど使いやすい形で自動保存できます。さらに Microsoft Power BI Desktop を使うと、データに更なる分析を追加してグラフなど分かりやすいレポートを作成でき、データが更新されるとレポートも自動再生成できます。さらに Power BI Desktop から Microsoft Cognitive Services のText Analytics API など、 Tweet テキストのネガポジ分析を Web API 経由行うサービスを呼び出して分析を行い、レポートに組み込むことができます。

今回のシリーズでは、Microsoft Flow を利用して指定したキーワード (ハッシュタグ) が含まれた Tweet を抽出し、Power BI 分析レポートで分かりやすく表示する方法を紹介します。今回は Flow による Tweet データ収集までを紹介します。次回以降 Power BI & Cognitive Services による Tweet テキスト分析、レポート作成を行います。
<img width="300" src="https://msdnshared.blob.core.windows.net/media/2016/11/bluesky_20161201_10.png"> <img width="300" src="https://msdnshared.blob.core.windows.net/media/2016/12/bluesky_20161201_42.png"> <img width="300" src="https://msdnshared.blob.core.windows.net/media/2016/12/bluesky_20161201_61.png"> <img width="300" src="https://msdnshared.blob.core.windows.net/media/2016/12/bluesky_20161201_62.png">

##手順
0.**準備**
1. **Flow で Twitter キーワード検索データを OneDrive 上の Excel に保存するフローを作成**
2. [Power BI Desktop & Cognitive Services で Twitter テキストデータを分析](http://qiita.com/annie/items/231f097c507a98c4a66c)
3. [取得＆分析した Twitter テキストデータを Power BI Desktop でグラフィカルに表示](http://qiita.com/annie/items/b776e5ac487e0c3178ae)


##利用するサービス
###Microsoft Flow
[https://flow.microsoft.com/ja-jp/](https://flow.microsoft.com/ja-jp/)
Web サービスを連携させ、「●●●の動作をトリガーとして、■■■の操作を行う」フローを作成、実行できるサービスです。
今回は、あるキーワードが含まれる Tweet が発生すると、Twitter API 経由で Tweet されたテキストや時間、Tweet した Twitter ユーザーの ID や名前、言語、場所などを取得し、OneDrive 上の Excel に保存する、という動作(フロー)を設定します。Twitter 認証も予め連携認証を行っておくことができ、Search API を利用する際も手間がかかりません。

###Microsoft Power BI Desktop
[https://powerbi.microsoft.com/ja-jp/desktop/](https://powerbi.microsoft.com/ja-jp/desktop/)
Microsoft Office 製品や 各社データベース、Web サービス などからデータを取り込んで加工し、グラフなど分かりやすくデータを可視化したレポートを作成するツールです。
今回は、Flow で作成した Excel データを取り込み、Web API 経由で Cognitive Services (Text Analytics API) にアクセスして、Tweet テキスト分析を取得、レポートに加工します。

###Microsoft Cognitive Services
[https://www.microsoft.com/cognitive-services/](https://www.microsoft.com/cognitive-services/)
Web API 経由で利用できる "人工知能パーツ" で、自分で機械学習による解析エンジンを構成しなくても、写真や動画の分析や音声認識＆合成、言語解析＆分析などを即時利用することが可能です。
今回は Text Analytics API により、Tweet されたテキストに含まれるキーワードの抽出やネガポジ分析(※英語のみ)を行います。

##準備
##Twitter アカウント
[Twitter Search API](https://dev.twitter.com/rest/public/search) を利用するには Twitter アカウント が必要です。(普段お使いのアカウントでも新規取得でも構いません。)

##Microsoft アカウント
Microsoft Flow やデータの保存先となる OneDrive の利用、Cognitive Services のサブスクリプションキーを取得するのに必要です。(今回はこの3つのサービスで１つのアカウントを利用することにします。)
>[Microsoft アカウント登録手続き](https://www.microsoft.com/ja-jp/msaccount/signup/default.aspx)

##Microsoft Cognitive Services (Text Analytics API) のサブスクリプションキー
試用は無料ですが、サブスクリプション申し込みが必要です。今回は [Text Analytics API](https://www.microsoft.com/cognitive-services/en-us/text-analytics-api) を使用します。(※他のサービスのサブスクリプションキーを使ってもアクセスできません。)
>サブスクリプション申し込み手順は [Microsoft Cognitive Services サブスクリプション申し込み編](http://qiita.com/annie/items/ba6392b7d1a7647adc4b) をご覧ください。

##Microsoft Power BI Desktop のダウンロードとインストール
[Power BI](https://powerbi.microsoft.com/ja-jp/desktop/) のページから Power BI Desktop のダウンロードとインストールを行ってください。(ユーザー登録しなくてもダウンロードできます。)

#1. Flow で Twitter キーワード検索データを OneDrive 上の Excel に保存するフローを作成
##1-1. データを保存する Excel の準備
>以下の手順ではオンラインで Excel ファイルの作成＆編集を行っていますが。ローカル環境でExcel ファイルを作成して、OneDrive にアップロードする方法でも構いません。

[OneDrive](https://onedrive.live.com/) のページを開き、[サインイン]をクリックし、Microsoft アカウントでサインインします。初めての場合は登録作業を行います。
<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/11/bluesky_20161201_01.png">

OneDrive のフォルダ＆ファイル一覧が表示されます。[ドキュメント] フォルダをクリックします。
<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/11/bluesky_20161201_02.png">

上部バーの [＋新規] をクリックして、[Excel ブック]を選択して Excel ファイルを作成します。
<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/11/bluesky_20161201_03.png">

1 行目に user_id / user_name / tweet_id / text / lang / datetime / geo / retweet と入力します。これらのセルを選択して、上部リボンの [テーブルとして書式設定] をクリックします。[テーブルの作成] ダイアログで、"先頭行をテーブルの見出しとして使用する" にチェックをつけて [OK] をクリックし、テーブルを設定します。

<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/11/bluesky_20161201_04.png"> <img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/11/bluesky_20161201_05.png">

上部バーの [ファイル] をクリックして、表示された左部バーから[名前を付けて保存]をクリック、[名前の変更]をクリックしてファイル名を [tweetstream]に変更します。(以上操作が終了したらブラウザを閉じても問題ありません。)
<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/11/bluesky_20161201_06.png"> <img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/11/bluesky_20161201_07.png">


##1.2 Flow の新規フローの作成
[Flow](https://flow.microsoft.com/ja-jp/) のページを開き、[サインイン]をクリックし、Microsoft アカウントでサインインします。初めての場合は登録作業を行います。(企業または学校アカウントでなくても以下の作業は問題なく行えます)。
<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/11/bluesky_20161201_08.png">

上部バーから [テンプレート] を選択します。[表示]で "ソーシャルメディア" を選択して絞り込み、[ツイートを Excel ファイルに保存する] をクリックします。
<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/11/bluesky_20161201_09.png">

[このテンプレートを使用する]をクリックして、OneDrive と Twitter アカウントの接続設定を行います。
<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/11/bluesky_20161201_10.png">

[Excel] の列にある [作成] をクリックします。
<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/11/bluesky_20161201_11.png">

[新しい接続の作成]で[OneDrive]をクリックします。
<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/11/bluesky_20161201_12.png">
Microsoft アカウントでサインインを行い、1-1 で使用した OneDrive への接続を行います。
<img width="300" src="https://msdnshared.blob.core.windows.net/media/2016/12/bluesky_20161203_04.png"> <img width="300" src="https://msdnshared.blob.core.windows.net/media/2016/12/bluesky_20161203_05.png">

次に、[Twitter] の列にある [サインイン] をクリックします。
<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/11/bluesky_20161201_13.png">

Twitter アカウントの連携認証画面が表示されたら、ユーザー名とパスワードを入力して [連携アプリを認証] をクリックします。
<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/11/bluesky_20161201_14.png">

元の画面に戻って [続行] をクリック、フローの詳細を設定します。
<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/11/bluesky_20161201_15.png">

##1.3 Flow でのフロー詳細設定
Twitter のセクションにある […]をクリックして、Twitter で検索したいキーワードを入力します。
<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/12/bluesky_20161201_16.png">

[Excel ファイル名] をクリックすると OneDrive が参照されますので、1.2 の手順で作成した Excel ファイルを指定します。
<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/12/bluesky_20161201_17.png">

[編集]をクリックして、取得したいパラメーターを選択します。
<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/12/bluesky_20161201_18.png">

テーブル名は読み込まれたもの (デフォルトでは "テーブル1") を選択します。
1.2 の手順で Excel ファイルに入力した列が表示されます。
"user_id" の入力欄をクリックすると、Twitter API で取得できる項目が選択できます。[もっと見る] をクリックすると全項目が表示されます。
<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/12/bluesky_20161201_19.png">

"user_id" には [ユーザーID] を選択します。
<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/12/bluesky_20161201_20.png">

"user_name" 以下、下記の通り適切な項目を選択します。

<table>
<tr>
<td>user_id</td><td>ユーザーID (※設定済み)</td><td>ユーザーのTwitterID</td>
</tr>
<tr>
<td>user_name</td><td>ツイート作成者</td><td>ユーザーの表示名</td>
</tr>
<tr>
<td>tweet_id</td><td>ツイードID</td><td>Tweetごとに付けられるユニークID</td>
</tr>
<tr>
<td>text</td><td>ツイートテキスト</td><td>Tweet された文章</td>
</tr>
<tr>
<td>lang</td><td>ツイートの言語</td><td>Twitterで判定された言語</td>
</tr>
<tr>
<td>datetime</td><td>作成日時</td><td>Tweetされた日時</td>
</tr>
<tr>
<td>geo</td><td>場所</td><td>※場所取得が有効になっている場合のみ</td>
</tr>
<tr>
<td>retweet</td><td>リツイート数</td><td></td>
</tr>
</table>
<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/12/bluesky_20161201_21.png">

選択終了したら、上部バーの[▷完了] をクリックしてフローを保存します。
>[完了] が表示されない場合は Excel および Twitter の欄外(グレー)の部分をクリックして表示します。

<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/12/bluesky_20161201_22.png">

"完了しました。"と表示されたら、フローの設定は完了です。作成したフローを確認する場合は、上部バーの [自分のフロー] をクリックすると表示されます。
<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/12/bluesky_20161201_23.png">

適時 1.1 で設定した Excel ファイルを開き、データが取得されていれば成功です。
<img width="400" src="https://msdnshared.blob.core.windows.net/media/2016/12/bluesky_20161201_24.png">

#次回
[次回](http://qiita.com/annie/items/231f097c507a98c4a66c)はこのデータを Power BI Desktop に取り込んで、Tweet テキストのネガポジ分析を行います。