何やるの?
Twitterのつぶやきを定期的にクロールして、落ち込んでいそうなつぶやきをみつけたら、はげましメッセージを送るbotを作ります!
どうやるの?
クリスマスだし何か作ろうぜ? ということで、
@ItNakaken さんとオンラインホワイトボード:miro ( https://miro.com/app/dashboard/ ) でブレストしました。
暗い話題が多いので、ツイッターで勝手に励まししてくれるbotなんてどうかな、となりました。
適当キャプチャ。
おおむね、
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)
上記の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]と進みます。
各パラメータを決定して、作成します。
- リソースグループ: RG-twitter-demo
- リージョン:東日本
- 名前:getMind
- SKU:Free F0 ★F0では使えない機能もあるので、後ほど変更します。
作成されました。キーとエンドポイントを確認しておきます。
作っていく ~ Azure Logic Apps
続いて、Azure Logic Apps も作っていきます。
Azure Portal ログイン( https://portal.azure.com/ )
上部検索窓 [Logic Apps] でロジックアプリの画面へ移動し、[+作成] 。
作成を行う。まずは箱だけ作って、ロジックは後から作る。
- タイプは 「消費」。
- デプロイは 10秒程度で完了。
作成後、[開発ツール] -> [ロジックアプリデザイナー] よりロジックの作成を行います。
いったんロジックはこんな感じに組みます。
1. ツイートを検索して取得
2. Cognitive Services でツイート本文を感情分析
作成しておいた Cognitive Services を Logic Apps から呼び出します。
アクションとして、 [ テキスト分析 ] を選択します。
サイトのURL と アカウントキー に、確認しておいたキーとエンドポイントを入力することで、呼び出せます。
軽く、動作確認もしてみます。
入力に取得したツイート本文が入っており、
出力に Positive / neutral / negative の分析された割合が表示されていることがわかります。
カスタマイズしていく ~ Language Understanding (LUIS) Cognitive Services
既定の Cognitive Services のままだと
文章を Positive / neutral / negative に感情分析することはできるのですが、
この分類を、特定の目的用にカスタマイズしたい場合があるかと思います。
今回は、LUIS ( https://www.luis.ai/ ) を使って、カスタマイズされた Cognitive Services を作成してみます。
まずは https://www.luis.ai/ にアクセス。
あらたな Cognitive Services を作成します。
続いて、[+ New app] より、カスタムアプリを作成します。
- Name : luis-friend-bot
- culture : japanese
- Description : 説明なので適当に
- Prediction resource : は空欄
作成が完了したら、学習用データを入力していきます。
例えば、 happy と sad の intents を作成し、happy に類する文章と sad に類する文章入力してあげます。
学習用データを作成したので、学習を行います。
右上 [Training] で学習。
学習結果をテストできます。
右上 [Test] で、新規語句を入力すると分析してくれます。
例えば、 「元気が出てきた」 については、スコア 0.688 で happy と分析結果が表示されています。
この調子で、学習用データを増やし、学習を行えば、指定した文章が happy か sad かを分析してくれるAIができるはずです。
LUIS ( https://www.luis.ai/ )を使って作成した Cognitive Services は、リソースとして追加されています。
Azure Portal からエンドポイントとキーを確認することで、Logic Apps から呼び出しできます。
動作も確認してみます。
取得した ツイート本文に対して、 happy か sad かを分析できました。
カスタマイズしていく ~ 参考:Language Studio
LUIS以外の方法として、Language Studio も活用できそうです。
Cognetive Services の SKU をスタンダードに変更し、また、リージョンが米国西部2 または 西ヨーロッパであれば、
Language Studio を用いて、カスタムエンティティ( Custom Named Entity Recognition Projects )等を設定できます。
[概要] -> [開発]タブ -> 下部にある [Language Studio 開始する] と進むと、 Language Studio 利用を開始できます。
[Custom Named Entity Recognition Projects]を選択し、 [+Create new project]
後は、Language Studioと紐づけたストレージアカウント BLOB コンテナー上に、学習用データを用意してあげると、Language Studioで読み込み、タグを設定して学習を開始できます。
参考リンク
●Logic Apps
●Cognitive Services
●Language Understanding (LUIS)
●Language Studio