[アップデート] Amazon Lexでチャット中の感情分析がサポートされました

Amazon Lexがチャット上での発言を感情分析してくれるようになったので、早速使ってみました。
2019.11.22

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Amazon Lexで、ユーザーの発言を感情分析する機能がサポートされました!

【AWS公式】Amazon Lex Now Supports Sentiment Analysis

Amazon Lexとは

Amazon Lex(以下、Lex)とは、音声やテキストを使用して、任意のアプリケーションに対話型インターフェイスを構築するサービスです。 LexではAlexaと同じ自動音声認識 (ASR)および自然言語理解 (NLU) の技術が利用されており、ユーザーは自然言語で対話ができるチャットボットを簡単に構築できます。

※Lexは2019年11月22日時点で日本語に対応しておらず、英語のみサポートされています。

Lexによるユーザー発言の感情分析

今回、感情分析の機能がサポートされたことで、チャット上でのユーザー発言の感情をボット上で気軽に判定できるようになります。

テキストの感情分析を行う機能は、元々Lexとは別サービスのAmazon Comprehend(以下、Comprehend)に設けられており、以前にLex上でComprehendを組み込んでみたことがあります。

Amazon Comprehendを使ってチャット中のユーザーの感情を判定する

上記エントリでは、Lambda上でComprehendのAPIを利用して感情分析を行っていますが、LexがネイティブにComprehendの感情分析をサポートしたことで、わざわざ上記のようなコードは書かなくて良くなりました。超便利…!

チャットの感情分析やってみる(英語)

それでは、早速Lexの感情分析を試していきましょう。

マネジメントコンソールから、lexなどと入力して「Amazon Lex」を選択します。

「Bots」メニューで「Create」をクリックし、新しいボットを作成してみます。

サンプルボットが用意されているので、ひとまず今回は「BookTrip」ボットを選択します。

Sentiment analysis で「Yes」を選択し、感情分析の機能を有効にします。 その後、「Create」ボタンをクリックしてボットを作成します。

すぐにサンプルボットが作成され、ビルドが開始されますので完了するまで少し待ちましょう。

ビルド完了後、テスト用のチャットウィンドウが画面右側に展開されます。 早速なにかテキストを入れてみます。

Lexからのレスポンスを確認したところ、 sentimentResponse に感情分析の結果が記載されています!

  "sentimentResponse": {
    "sentimentLabel": "NEUTRAL",
    "sentimentScore": "{Positive: 0.0839683,Negative: 0.010418126,Neutral: 0.90556693,Mixed: 4.6604404E-5}"
  },

単純に「ホテルを予約したい」という発言なので、感情的にはほぼ中立のようですね。

ついでに、ボットとの会話には全く脈絡が無いですが、嬉しい気持ちを表現してみました。

  "sentimentResponse": {
    "sentimentLabel": "POSITIVE",
    "sentimentScore": "{Positive: 0.9986695,Negative: 6.3178224E-5,Neutral: 0.0012642135,Mixed: 3.0312503E-6}"
  },

ボットは困っていますが、ポジティブ人間という判定はされたようです。

おわりに

Lexでチャット上でのユーザー発言の感情分析ができるようになりました。 これまではComprehend APIを組み合わる必要があったので、Lex上の設定1つで感情分析ができるようになったのはとてもいいアップデートだと思います。

気軽にユーザー発言の感情分析ができるようになったことで、ユーザーの感情に応じたレスポンスを返すことが可能になります。 こういった機能をうまく活用することで、よりユーザーに寄り添ったボットや、質の高いコミュニケーションが可能なボットを構築できるのではないでしょうか。

参考