Microsoft Cognitive Services & Bot Framework Advent Calendar 12/2 の記事です。明日は 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 テキスト分析、レポート作成を行います。
##手順
0.準備
- Flow で Twitter キーワード検索データを OneDrive 上の Excel に保存するフローを作成
- Power BI Desktop & Cognitive Services で Twitter テキストデータを分析
- 取得&分析した Twitter テキストデータを Power BI Desktop でグラフィカルに表示
##利用するサービス
###Microsoft Flow
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/
Microsoft Office 製品や 各社データベース、Web サービス などからデータを取り込んで加工し、グラフなど分かりやすくデータを可視化したレポートを作成するツールです。
今回は、Flow で作成した Excel データを取り込み、Web API 経由で Cognitive Services (Text Analytics API) にアクセスして、Tweet テキスト分析を取得、レポートに加工します。
###Microsoft Cognitive Services
https://www.microsoft.com/cognitive-services/
Web API 経由で利用できる "人工知能パーツ" で、自分で機械学習による解析エンジンを構成しなくても、写真や動画の分析や音声認識&合成、言語解析&分析などを即時利用することが可能です。
今回は Text Analytics API により、Tweet されたテキストに含まれるキーワードの抽出やネガポジ分析(※英語のみ)を行います。
##準備
##Twitter アカウント
Twitter Search API を利用するには Twitter アカウント が必要です。(普段お使いのアカウントでも新規取得でも構いません。)
##Microsoft アカウント
Microsoft Flow やデータの保存先となる OneDrive の利用、Cognitive Services のサブスクリプションキーを取得するのに必要です。(今回はこの3つのサービスで1つのアカウントを利用することにします。)
##Microsoft Cognitive Services (Text Analytics API) のサブスクリプションキー
試用は無料ですが、サブスクリプション申し込みが必要です。今回は Text Analytics API を使用します。(※他のサービスのサブスクリプションキーを使ってもアクセスできません。)
サブスクリプション申し込み手順は Microsoft Cognitive Services サブスクリプション申し込み編 をご覧ください。
##Microsoft Power BI Desktop のダウンロードとインストール
Power BI のページから Power BI Desktop のダウンロードとインストールを行ってください。(ユーザー登録しなくてもダウンロードできます。)
#1. Flow で Twitter キーワード検索データを OneDrive 上の Excel に保存するフローを作成
##1-1. データを保存する Excel の準備
以下の手順ではオンラインで Excel ファイルの作成&編集を行っていますが。ローカル環境でExcel ファイルを作成して、OneDrive にアップロードする方法でも構いません。
OneDrive のページを開き、[サインイン]をクリックし、Microsoft アカウントでサインインします。初めての場合は登録作業を行います。
OneDrive のフォルダ&ファイル一覧が表示されます。[ドキュメント] フォルダをクリックします。
上部バーの [+新規] をクリックして、[Excel ブック]を選択して Excel ファイルを作成します。
1 行目に user_id / user_name / tweet_id / text / lang / datetime / geo / retweet と入力します。これらのセルを選択して、上部リボンの [テーブルとして書式設定] をクリックします。[テーブルの作成] ダイアログで、"先頭行をテーブルの見出しとして使用する" にチェックをつけて [OK] をクリックし、テーブルを設定します。
上部バーの [ファイル] をクリックして、表示された左部バーから[名前を付けて保存]をクリック、[名前の変更]をクリックしてファイル名を [tweetstream]に変更します。(以上操作が終了したらブラウザを閉じても問題ありません。)
##1.2 Flow の新規フローの作成
Flow のページを開き、[サインイン]をクリックし、Microsoft アカウントでサインインします。初めての場合は登録作業を行います。(企業または学校アカウントでなくても以下の作業は問題なく行えます)。
上部バーから [テンプレート] を選択します。[表示]で "ソーシャルメディア" を選択して絞り込み、[ツイートを Excel ファイルに保存する] をクリックします。
[このテンプレートを使用する]をクリックして、OneDrive と Twitter アカウントの接続設定を行います。
[新しい接続の作成]で[OneDrive]をクリックします。
Microsoft アカウントでサインインを行い、1-1 で使用した OneDrive への接続を行います。
次に、[Twitter] の列にある [サインイン] をクリックします。
Twitter アカウントの連携認証画面が表示されたら、ユーザー名とパスワードを入力して [連携アプリを認証] をクリックします。
元の画面に戻って [続行] をクリック、フローの詳細を設定します。
##1.3 Flow でのフロー詳細設定
Twitter のセクションにある […]をクリックして、Twitter で検索したいキーワードを入力します。
[Excel ファイル名] をクリックすると OneDrive が参照されますので、1.2 の手順で作成した Excel ファイルを指定します。
[編集]をクリックして、取得したいパラメーターを選択します。
テーブル名は読み込まれたもの (デフォルトでは "テーブル1") を選択します。
1.2 の手順で Excel ファイルに入力した列が表示されます。
"user_id" の入力欄をクリックすると、Twitter API で取得できる項目が選択できます。[もっと見る] をクリックすると全項目が表示されます。
"user_name" 以下、下記の通り適切な項目を選択します。
user_id | ユーザーID (※設定済み) | ユーザーのTwitterID |
user_name | ツイート作成者 | ユーザーの表示名 |
tweet_id | ツイードID | Tweetごとに付けられるユニークID |
text | ツイートテキスト | Tweet された文章 |
lang | ツイートの言語 | Twitterで判定された言語 |
datetime | 作成日時 | Tweetされた日時 |
geo | 場所 | ※場所取得が有効になっている場合のみ |
retweet | リツイート数 |
選択終了したら、上部バーの[▷完了] をクリックしてフローを保存します。
[完了] が表示されない場合は Excel および Twitter の欄外(グレー)の部分をクリックして表示します。
"完了しました。"と表示されたら、フローの設定は完了です。作成したフローを確認する場合は、上部バーの [自分のフロー] をクリックすると表示されます。
適時 1.1 で設定した Excel ファイルを開き、データが取得されていれば成功です。
#次回
次回はこのデータを Power BI Desktop に取り込んで、Tweet テキストのネガポジ分析を行います。