LoginSignup
2
0

More than 1 year has passed since last update.

【Azure】Logic Apps と Cognitive Services と LUIS を活用した Twitter感情分析bot の作成手順

Posted at

何やるの?

Twitterのつぶやきを定期的にクロールして、落ち込んでいそうなつぶやきをみつけたら、はげましメッセージを送るbotを作ります!

どうやるの?

クリスマスだし何か作ろうぜ? ということで、
@ItNakaken さんとオンラインホワイトボード:miro ( https://miro.com/app/dashboard/ ) でブレストしました。
暗い話題が多いので、ツイッターで勝手に励まししてくれるbotなんてどうかな、となりました。
適当キャプチャ。

image.png

おおむね、
 1.特定キーワードでTwitter上のつぶやきを検索するしくみ [Azure 仮想マシン] or [Azure Logic Apps]
 2.マシンが取得したつぶやきを解析するしくみ [Azure Cognitive Services]
 3.取得したつぶやきを解析し、解析結果に応じてアクションを決定するしくみ [Azure Logic Apps]
 4.アクションを実行するしくみ [Azure 仮想マシン] or [Azure Logic Apps]
で作れるんじゃないだろうか?となりました。

早速作っていく。 今回の範囲

先ほどのキャプチャで、付箋を赤塗した部分が本記事で作成する範囲です。
 - Azure Logic Apps
 - Azure Cognitive Services
 - Language Understanding (LUIS)

image.png

上記の1と2ですね。
 1.特定キーワードでTwitter上のつぶやきを検索するしくみ [Azure Logic Apps]
 2.マシンが取得したつぶやきを解析するしくみ [Azure Cognitive Services]
また、2については、[Language Understanding (LUIS)] でカスタマイズ可能であることも確認します。

作っていく ~ Cognitive Services

Azure Portal へログインします。( https://portal.azure.com/ )
上部検索窓 [Cognitive Services] でCognitive Servicesの画面へ移動し、[すべてのCognitive Services] -> [+追加] -> [Language]と進みます。

image.png

感情分析が行いたいので、このまま作成を続行します。
image.png

各パラメータを決定して、作成します。
- リソースグループ: RG-twitter-demo
- リージョン:東日本
- 名前:getMind
- SKU:Free F0 ★F0では使えない機能もあるので、後ほど変更します。

image.png

作成されました。キーとエンドポイントを確認しておきます。

image.png

作っていく ~ Azure Logic Apps

続いて、Azure Logic Apps も作っていきます。

Azure Portal ログイン( https://portal.azure.com/ )
上部検索窓 [Logic Apps] でロジックアプリの画面へ移動し、[+作成] 。
作成を行う。まずは箱だけ作って、ロジックは後から作る。
 - タイプは 「消費」。
 - デプロイは 10秒程度で完了。

image.png

作成後、[開発ツール] -> [ロジックアプリデザイナー] よりロジックの作成を行います。

image.png

いったんロジックはこんな感じに組みます。
 1. ツイートを検索して取得
 2.  Cognitive Services でツイート本文を感情分析

image.png

作成しておいた Cognitive Services を Logic Apps から呼び出します。
アクションとして、 [ テキスト分析 ] を選択します。
サイトのURL と アカウントキー に、確認しておいたキーとエンドポイントを入力することで、呼び出せます。

image.png

image.png

軽く、動作確認もしてみます。
入力に取得したツイート本文が入っており、
出力に Positive / neutral / negative の分析された割合が表示されていることがわかります。

image.png

カスタマイズしていく ~ Language Understanding (LUIS) Cognitive Services

既定の Cognitive Services のままだと
文章を  Positive / neutral / negative に感情分析することはできるのですが、
この分類を、特定の目的用にカスタマイズしたい場合があるかと思います。
今回は、LUIS ( https://www.luis.ai/ ) を使って、カスタマイズされた Cognitive Services を作成してみます。

まずは https://www.luis.ai/ にアクセス。
あらたな Cognitive Services を作成します。

image.png

続いて、[+ New app] より、カスタムアプリを作成します。
- Name : luis-friend-bot
- culture : japanese
- Description : 説明なので適当に
- Prediction resource : は空欄

image.png

作成が完了したら、学習用データを入力していきます。
例えば、 happy と sad の intents を作成し、happy に類する文章と sad に類する文章入力してあげます。

image.png

image.png

学習用データを作成したので、学習を行います。
右上 [Training] で学習。

image.png

学習結果をテストできます。
右上 [Test] で、新規語句を入力すると分析してくれます。
例えば、 「元気が出てきた」 については、スコア 0.688 で happy と分析結果が表示されています。

image.png

この調子で、学習用データを増やし、学習を行えば、指定した文章が happy か sad かを分析してくれるAIができるはずです。
LUIS ( https://www.luis.ai/ )を使って作成した Cognitive Services は、リソースとして追加されています。
Azure Portal からエンドポイントとキーを確認することで、Logic Apps から呼び出しできます。

image.png

image.png

動作も確認してみます。
取得した ツイート本文に対して、 happy か sad かを分析できました。

image.png

カスタマイズしていく ~ 参考:Language Studio

LUIS以外の方法として、Language Studio も活用できそうです。
Cognetive Services の SKU をスタンダードに変更し、また、リージョンが米国西部2 または 西ヨーロッパであれば、
Language Studio を用いて、カスタムエンティティ( Custom Named Entity Recognition Projects )等を設定できます。
[概要] -> [開発]タブ -> 下部にある [Language Studio 開始する] と進むと、 Language Studio 利用を開始できます。

参考:https://docs.microsoft.com/ja-jp/azure/cognitive-services/language-service/custom-classification/overview

image.png

image.png

Language Studio のページ
image.png

[Custom Named Entity Recognition Projects]を選択し、 [+Create new project]

image.png

image.png

image.png

image.png

後は、Language Studioと紐づけたストレージアカウント BLOB コンテナー上に、学習用データを用意してあげると、Language Studioで読み込み、タグを設定して学習を開始できます。

参考リンク

●Logic Apps

●Cognitive Services

●Language Understanding (LUIS)

●Language Studio

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0