Logic Appでツイートをニアリアルタイム感情分析する~Microsoft Learnの無償ラーニングモジュールをやってみた~

スシローで 一番美味な お寿司とは シーサラダこそ 思ひそめしか
2020.08.13

みなさん、Twitterは好きですか?私は片時もタイムラインから離れることができないTwitter廃人です。

特にマーケティングに関わる方であれば、Twitterでエゴサーチ(※自身に関わる事柄について検索)して世間のツイッタラーたちが自社に関わる製品やプロモーションについてどのような評価をしているか確認しているのではないでしょうか。こういったSNS分析を実現するにはまずTwitterのAPIを利用する申請をして、ツイートを取得するコードを書いて…という作業が多くの場合必要となります。私の場合、コードを書くことに馴染みが無いためSNS分析の実現には相当な気合が必要です。

そこでLogic Appです。Azureが提供するLogic Appというサービスを使えば、ニアリアルタイムでツイートを取得し、感情分析にかけることもGUIベースで実施可能です。しかも無料のチュートリアルまで提供されています。

というわけで、学習プラットフォームMicrosoft Learnが提供するLogic Appでツイート取得~テキスト分析を実施する演習を試してみました。

Microsoft Learnとは

Microsoft製品についての無償トレーニングを提供する学習プラットフォームです。(日本語対応)

Azureが提供している機能をハンズオン形式で学ぶこともできます。今回はアプリやシステムをコーディング無しのGUIベースで統合できるLogic Appを使ってデータを処理するラーニングモジュールを使用します。

このモジュールに含まれる演習「ソーシャル メディア トラッカー ロジック アプリを作成する」でサンドボックスをアクティブ化すると、4時間分のAzureのリソースを無償で利用可能となります。あとはドキュメントの手順に従って操作するだけ!

ゴール

このラーニングモジュールでは、以下のゴールが設定されています。

組み込みのトリガー、アクション、および条件演算子を使用してワークフローを定義します。 ワークフローはデータがあるときに自動的に実行され、クラウド内のデータを処理し、データベースで結果を記録し、電子メール通知を送信します。

最終的な仕上がりはこちら。SQL Serverに感情分析のスコア0.7以上のツイートが格納されています。

演習 - ソーシャル メディア トラッカー ロジック アプリを作成する

まずはTwitterからニアリアルタイムでツイートを取得する演習です。

手順に沿って「ShoeTracker」という名前のLogic Appのリソースを作成し、「空のロジックアプリ」で空のテンプレートを適用します。

次にTwitterのトリガーを作成します。といってもLogic AppにはTwitterのトリガーがすでに準備されているため、「新しいツイートが投稿されたら」トリガーを選んで自分のTwitterアカウントにサインインするだけで完了します。

検索テキストとツイートの取得間隔を指定します。手順では人気の製品名を使用するように書かれていますが、私は流行りに疎いため「寿司」という検索ワードを指定してみました。「寿司」と検索して該当するツイートが1分間隔で取得されます。

トリガの実行結果は「概要」→「実行の履歴」にて確認可能です。もし自動で取得できていない様子であれば「トリガーの実行」ボタンから手動で実行させることもできます。

実行結果のうちの1つを見てみると、ツイートが取得されていることが確認できます。

演習 - ツイートのコンテンツを分析する

取得したツイートを感情分析する演習です。手順書に従ってAzure CLIをラーニングモジュール上で実行し、Cognitive Servicesのアカウントをサンドボックス環境でセットアップしましょう。

Logic Appデザイナーに新しいステップを追加し、テキスト分析コネクションを追加して「感情の検出」を選びます。

テキスト分析のサブスクリプションへの接続が求められますので、CLIで実行した結果を入力します。

項目
アカウントキー CLI実行で得たCognitive Service Account keyの値
サイトのURL CLI実行で得たCognitive Service Account endpointの値(表示されていない場合、Cloud Shellで得たJSON形式の結果「endpoint」に記載されたURL)

感情の検出に使用するテキストに「元ツイートのテキスト」を指定して保存し、「実行の履歴」より実行結果を確認します。ツイートのテキストを感情分析した結果が数値としてスコアに反映されていますね。1に近づくほど肯定的な感情であると判断されます。

演習 - ツイートの感情に基づいて分岐する

最後の演習では、感情分析し得たスコアが高ければSQL Serverにデータを格納し、そうでない結果はメールで送信するという分岐を作成します。前回同様、手順に沿ってCLIを実行し、SQL Serverをサンドボックス環境にセットアップしておきましょう。

Logic Appデザイナーより新しいステップを作成し、感情分析のスコア0.7以上の条件分岐を作成します。

「trueの場合」セクションでアクションの追加よりSQL Server→「行を挿入」を選択します。SQL Serverの認証を求められますので、以下の通り入力します。(私はサーバー名がFQDNで指定できておらずつまづきました…)

項目
認証の種類 SQL Server Authentication
SQLサーバー名 CLI実行で得たSQL Server名+.database.windows.net
SQLデータベース名 CLI実行で得たデータベース名(PositiveTweetDatabase)
ユーザー名 sqladmin
パスワード CLI実行で得たパスワード

上記内容で接続できれば挿入先のサーバー名、データベース名、テーブル名を指定し、ツイートテキストと作成者をデータとして持たせるよう設定します。

「falseの場合」セクションにも同じように設定をします。手順ではOutlookの電子メールを送信するアクションを利用していますが、私はメールアカウントを作成しなかったため、Googleスプレッドシートに挿入されるように指定しました。もちろんOutlook以外のプロバイダーも指定してメールを送信することも可能です。

トリガが実行されると、冒頭でもお見せしたように条件に合ったツイートがSQL Serverに挿入されていることが確認できました。

まとめ

Logic Appを使用すれば、ツイート取得、感情分析、条件分岐に基づいたアクションまでGUIベースで実行できるというチュートリアルでした。自社の製品名を検索ワードに指定しておけば、感情分析のスコアが低いツイートを通知させることで問題点にいち早く気づく…なんて使い方もできそうです。

手順通りに進めてもつまづく点もあったので、このエントリが補助としてちょっぴり役立てば幸いです。

データアナリティクス事業本部ソリューション部で一番のTwitter廃人・新納がお届けしました。