トークルーム内の発言を Azure Cognitive Services の Text Analytics で感情分析しスコアを記録する Bot です。
単なる記録用途の Bot は愛想がなさすぎるので、会話の雰囲気にあったスタンプを送るようにもしてみます。
感情分析は Microsoft Azure Cognitive Service の Text Analytics を使います。
https://azure.microsoft.com/ja-jp/services/cognitive-services/text-analytics/
メッセージの受信と送信には LINE WORKS の トーク Bot API を利用します。
TITLE: メッセージ送信 (text)
URL: https://developers.worksmobile.com/jp/document/100500801?lang=ja
TITLE: メッセージ受信 - Callback 形式
URL: https://developers.worksmobile.com/jp/document/1005009?lang=ja
一連の処理は Microsoft Flow で、ほぼコーディングなしで行います。
Microsoft Flow のフロー作成
要求本文の JSON スキーマを "サンプルのペイロードを使用してスキーマを生成する" で生成します。
ペイロードのサンプルは、こちらのページの記載を用います。
TITLE: メッセージ受信 - Callback 形式
URL: https://developers.worksmobile.com/jp/document/1005009?lang=ja
TITLE: メッセージ受信 - Callback 形式 (message)
URL: https://developers.worksmobile.com/jp/document/100500901?lang=ja
-> Request Example - type "text" の箇所
{
"type": "message",
"source": {
"accountId": "admin@example.com",
"roomId": "12345"
},
"createdTime": 1470902041851,
"content": {
"type": "text",
"text": "hello"
}
}
次に Azure Cognitive Services の Text Analytics で感情分析するため、"テキスト分析" の "感情の検出" をアクションに指定します。
分析結果は OneDrive for Business の Excel Book に記録します。
スコアは 0 から 1 の数値で表されます。0.7 を超えると肯定的、0.3 を下回ると否定的。
スコアが一定の値を上回ると Bot からスタンプやメッセージが送信されるように条件とアクションを追加します。
動作確認
トークルームに Bot を招待し、メンバーの発言が感情分析されること、肯定的な発言でスタンプの送信などが行われることを確認します。