誰でもAIが使える!「Azure Cognitive Services」をみんなで学ぶ 第6回
落ち込んでいるメンバーがいたら管理職に注意喚起、そんなアプリをノーコードで開発する
「Text Analytics」で業務日報のテキストを感情分析してみよう!
2021年08月31日 08時00分更新
Logic appsの準備:リソースの作成
最後にLogic Appsを準備します。
まずはLogic appsのリソースを作成します。Text Analyticsと同様に、Azure Portalで「Logic Apps」を検索すれば「サービス」欄に表示されます。Azure Portalの言語設定が日本語の場合は、検索結果に「ロジック アプリ」と表示されますので、これをクリックしてください。
「ロジックアプリ」の画面が開いたら「+作成」をクリックして、リソースを新規作成します。設定は以下のようにしました。「タイプ」はLogic Appsの料金プランを選択する項目なので、従量課金型の「消費」を選択してください(最初の4000アクションは無料で使えます)。また「地域」はText Analyticsと同じリージョンを選択しましょう。設定後は「確認および作成」をクリックします。
Logic appsアプリの作成
リソースが作成できたらアプリを作成していきます。デプロイ完了の画面で「リソースへ移動」を押すと「Logic Appsデザイナー」の画面が開くので、「テンプレート」→「空のロジックアプリ」を選択します。
今回、Logic appsで行いたいことは次の4つです。
- フォームに日報が投稿されたら処理を開始する
- フォームの投稿内容を取得する
- その内容をText Analyticsで感情分析する
- 分析結果に応じてSlackに投稿する
以下、順番に作業を進めながら解説していきます。
(1)フォームに投稿されたら処理を開始する
Logic Appsには処理を開始するさまざまなトリガーが用意されており、Microsoft Formsのトリガーもあります。
Logic Appsデザイナーで、以下の画面のように「microsoft forms」を検索し、Microsoft Formsコネクタの「トリガー」タブで「新しい応答が送信されるとき」を選択します。
(2)フォームの内容を取得する
フォームに入力された日報の内容をLogic Appsに取り込みます。まず「+新しいステップ」をクリックし、Microsoft Formsコネクタの「応答の詳細を取得する」アクションを追加します。
このアクションの「フォームID」は、プルダウンメニューから先ほどと同じフォームID(ページタイトル)を選択します。また「応答ID」は、動的なコンテンツのポップアップで「もっと見る」をクリックし、「応答通知の一覧 応答ID」を選択します。こう設定することでフォームの入力内容が取得できます。
(3)Text Analyticsで感情分析する
Logic Appsが取得したフォームの入力内容をText Analyticsに渡して、感情分析を実行します。「+新しいステップ」をクリックし、Text Analyticsサービスを利用する「テキスト分析」コネクタを検索して、同コネクタの「センチメント」アクションを追加します。
はじめに「テキスト分析」コネクタでText Analyticsサービスと接続するための、「アカウント キー」と「サイトのURL」の入力が求められます。ここには、先ほどコピーしておいたText AnalyticsのAPIキー、エンドポイントURLを入力します。なお「接続名」は何でもかまいません。
今回は、日報に含まれるテキストのうち「内省」欄に入力されたテキストを感情分析してみます。「センチメント」アクションの設定は以下のとおりで、「documents text」の欄に、Microsoft Formsから取得した「動的なコンテンツ」の「内省」を設定しています。これによりText Analyticsサービスにテキストが送信され、感情分析の処理が行われます。なお「documents language」には、日本語を示す「ja」を入力してください(「documents id」は何でも構わないので「1」を入力してあります)。
Text Analyticsから戻ってくる感情分析の結果を、変数に格納します。以下のように「変数」コネクタで変数conditionを初期化し、そこに感情分析の結果(動的なコンテンツ「sentiment」)を格納するよう設定しました。
(4)感情分析結果に応じてSlackに投稿する
変数conditonには、「内省」テキストを判定した結果(positive/negative/neutral/mixed)が格納されますので、その値に応じて条件分岐させ、処理を変えることができます。今回は判定結果がネガティブだった場合にのみ、Slackにアラートのメッセージを送るようにしてみましょう。
実際のロジックは以下のようになります。「条件」コネクタを使い、変数conditionの値が「negative」だった場合に、「Slack」コネクタを使ったメッセージの投稿を行います。なお、誰の日報なのかがわかるように、SlackメッセージにはMicrosoft Formsから取得した記入者のメールアドレス(Responders' Email)も書き加えています。
この連載の記事
-
第5回
TECH
「Custom Vision Service」と「Power Apps」でAIアプリを完成させる -
第4回
TECH
Custom Vision Serviceで「衣類を画像分類するモデル」を作る -
第3回
TECH
独自の画像識別モデルを作成できる「Custom Vision Service」とは -
第2回
TECH
Azureの質問応答ボットサービス「QnA Maker」を理解する -
第1回
TECH
AIと「Azure Cognitive Services」の基本を理解する - この連載の一覧へ