このページの本文へ

誰でもAIが使える!「Azure Cognitive Services」をみんなで学ぶ 第6回

落ち込んでいるメンバーがいたら管理職に注意喚起、そんなアプリをノーコードで開発する

「Text Analytics」で業務日報のテキストを感情分析してみよう!

2021年08月31日 08時00分更新

文● 日高諒久/FIXER 編集● 大塚/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

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つです。

  1. フォームに日報が投稿されたら処理を開始する
  2. フォームの投稿内容を取得する
  3. その内容をText Analyticsで感情分析する
  4. 分析結果に応じてSlackに投稿する

 以下、順番に作業を進めながら解説していきます。

(1)フォームに投稿されたら処理を開始する

 Logic Appsには処理を開始するさまざまなトリガーが用意されており、Microsoft Formsのトリガーもあります。

 Logic Appsデザイナーで、以下の画面のように「microsoft forms」を検索し、Microsoft Formsコネクタの「トリガー」タブで「新しい応答が送信されるとき」を選択します。

処理を開始するトリガーを選択

(2)フォームの内容を取得する

 フォームに入力された日報の内容をLogic Appsに取り込みます。まず「+新しいステップ」をクリックし、Microsoft Formsコネクタの「応答の詳細を取得する」アクションを追加します。

 このアクションの「フォームID」は、プルダウンメニューから先ほどと同じフォームID(ページタイトル)を選択します。また「応答ID」は、動的なコンテンツのポップアップで「もっと見る」をクリックし、「応答通知の一覧 応答ID」を選択します。こう設定することでフォームの入力内容が取得できます。

フォームの入力内容をLogic Appsに取り込む

(3)Text Analyticsで感情分析する

 Logic Appsが取得したフォームの入力内容をText Analyticsに渡して、感情分析を実行します。「+新しいステップ」をクリックし、Text Analyticsサービスを利用する「テキスト分析」コネクタを検索して、同コネクタの「センチメント」アクションを追加します。

 はじめに「テキスト分析」コネクタでText Analyticsサービスと接続するための、「アカウント キー」と「サイトのURL」の入力が求められます。ここには、先ほどコピーしておいたText AnalyticsのAPIキー、エンドポイントURLを入力します。なお「接続名」は何でもかまいません。

「テキスト分析」コネクタでText Analyticsと接続する

 今回は、日報に含まれるテキストのうち「内省」欄に入力されたテキストを感情分析してみます。「センチメント」アクションの設定は以下のとおりで、「documents text」の欄に、Microsoft Formsから取得した「動的なコンテンツ」の「内省」を設定しています。これによりText Analyticsサービスにテキストが送信され、感情分析の処理が行われます。なお「documents language」には、日本語を示す「ja」を入力してください(「documents id」は何でも構わないので「1」を入力してあります)。

Text Analyticsコネクタの「センチメント」アクションの設定

 Text Analyticsから戻ってくる感情分析の結果を、変数に格納します。以下のように「変数」コネクタで変数conditionを初期化し、そこに感情分析の結果(動的なコンテンツ「sentiment」)を格納するよう設定しました。

Text Analyticsによる感情分析の結果を変数conditonに格納

(4)感情分析結果に応じてSlackに投稿する

 変数conditonには、「内省」テキストを判定した結果(positive/negative/neutral/mixed)が格納されますので、その値に応じて条件分岐させ、処理を変えることができます。今回は判定結果がネガティブだった場合にのみ、Slackにアラートのメッセージを送るようにしてみましょう。

 実際のロジックは以下のようになります。「条件」コネクタを使い、変数conditionの値が「negative」だった場合に、「Slack」コネクタを使ったメッセージの投稿を行います。なお、誰の日報なのかがわかるように、SlackメッセージにはMicrosoft Formsから取得した記入者のメールアドレス(Responders' Email)も書き加えています。

条件分岐を使い、変数conditionの値が「negative」である場合のみ、Slackコネクタでメッセージを投稿する

カテゴリートップへ

この連載の記事