2021.04.16 Amazon ConnectでCX向上!テキストから感情分析を行う方法とは

※こちらは、「Amazon ConnectでCX向上!通話記録の文字起こしを自動化するには」の続きになります。
Amazon ConnectでCX向上!通話記録の文字起こしを自動化するには | AWS活用法

Amazon Comprehendを使用した感情分析

顧客対応情報から感情を可視化

感情分析とは、指定されたテキストをAIが自然言語処理によって取り込み、そのテキストの背景にある感情的な考え方を分析することです。
感情分析により、それまで可視化することが出来なかった「テキストの背景にある感情」を、ポジティブ、ナチュラル、ネガティブなどに分類することができるようになります。分析結果をもとに、良い点は継続し悪い点は改善を行うことで、CX向上につなげることができます。

下記の例では、「美味しい」という文言を含んでいる複数のテキストについて、AIは感情を読み取ります。
このような情報の蓄積により、顧客からの評価を感情まで含めて可視化できるようになり、顧客対応品質のブラッシュアップに活用できます。

感情分析の仕組みを表した図

今回の構築範囲と概要

今回は図の赤枠内を構築していきます。

Amazon Comprehend新規ウィンドウで開くは、音機械学習を使用し、キーフレーズ抽出・感情分析・エンティティ認識などが実行できる自然言語処理(NLP)サービスです。今回は、感情分析を行うためにこの機能を実装します。

文字起こししたデータをAWS Lambdaを経由し、Amazon Comprehendを利用、Amazon Comprehendのレスポンスデータを可視化する構成図

構築手順

1. Amazon S3バケットを作成

Amazon Comprehend用のAmazon S3バケットを作成

(1) AWS マネジメントコンソールより、Amazon S3を選択します。Amazon S3のページからバケットの作成をクリックします。

AWS マネジメントコンソールより、Amazon S3を選択します。Amazon Comprehend用のAmazon S3バケットを作成したいので、Amazon S3のページからバケットの作成をクリックします。

(2) Amazon S3のパラメータを適切に設定し、バケットを作成します。

バケット名 自分の名前+日付_comprehend_1などの分かりやすい名前で作成することをオススメします。後で使用するので、メモをしておくと便利です。
リージョン Amazon Connectと同じリージョンを選択。
以降のパラメータ デフォルトのままでバケットの作成をクリック。
Amazon S3のパラメータを設定し、[バケットを作成]をクリックし、各種事項を設定する。
2. AWS Lambdaの作成

下記のような内容の処理を実装します。手順の詳細につきましては、お問い合わせいただければご提供いたします。

1.Amazon S3にファイルが置かれたことをトリガーにAWS Lambdaを起動
2.Amazon S3に置かれたJOSNデータを取得しテキストデータに成形
3.Amazon Comprehendを使用して感情分析を実施
4.感情分析結果をAmazon S3に保存

3. AWS Glueでカタログ化

①データベースの追加を行う

(1) AWS マネジメントコンソールより、AWS Glueのページに移動しデータベースの作成をクリックします。

AWS マネジメントコンソールより、AWS Glueのページに移動しデータベースの作成をクリックする。

(2) データベース名を入力して作成をクリックします。

データベース名 日付+Comprehendなどわかりやすい名前を入力しましょう。
データベース名を入力してクリックする

②テーブルの作成

(1) テーブルのタブに移動し、手動でテーブルの追加をクリックします。

テーブルのタブに移動し、手動でテーブルの追加をクリックする

(2) テーブルのプロパティを設定します。

テーブル名 日付+Comprehend_tableなどわかりやすい名前を入力しましょう。
データベース 先ほど作成したデータベースを選択します。
テーブルのプロパティを設定する

(3) データストアを選択します。

Select the type of source S3を選択します。
データの場所 自分のアカウントで指定されたパスを選択します。
インクルードパス 手順1「Amazon S3バケットを作成」で作成したバケットを選択します。
データストアを手順通りに選択する。

(4) データ形式を選択します。

分類 JSONを選択します。
データ形式を選択する。

③ スキーマを定義

列の追加をクリック後、列名にてJobname、Sentiment、Sentimentscoreを追加します。

スキーマを定義する。
4. Amazon QuickSightで可視化

① Athenaへのアクセスを許可

(1) Amazon QuickSightのコンソールを開き、アクセス管理ページを開きます。リージョンをバージニア北部に変更した後、右上のアカウント箇所をクリックします。

 Athenaへのアクセスを許可します。

(2) セキュリティとアクセス権限をクリック後、AWSサービスへのアクセス権を追加するをクリックします。

セキュリティとアクセス権限クリック後、AWSサービスへのアクセス権を追加するをクリックする。

(3) Amazon Athenaにチェックを入れ、次へをクリックします。

Amazon Athenaにチェックを入れる。
チェックを入れた後、次へを押す。

(4) S3バケットへのアクセス権を付与します。

この時、手順1「Amazon S3バケットを作成」で作成したバケットを選択してください。

 S3バケットへのアクセス権を付与する。

(5) 元のリージョンに戻す

 元のリージョンに戻す

② データセットを登録

(1) データセットより、新しいデータセットをクリックします。

データセットより、新しいデータセットをクリックする

(2) Athenaを選択します。

 Athenaを選択する

(3) データソース名、ワークグループを選択します。

データベース名 日付+Comprehendなどわかりやすい名前を入力しましょう。
Athenaワークグループ primaryを選択します。
 データソース名、ワークグループを選択します。

③ テーブルの選択

Catalog AwsDataCatalogを選択します。
データベース 手順3「AWS Glueでカタログ化」で作成したデータベース名を選択します。
テーブル 手順3「AWS Glueでカタログ化」で作成したテーブル名を選択します。
テーブルの選択を手順に則り、おこなう

④ データセットの作成

デフォルト設定のまま、Visualizeをクリックします。

デフォルト設定のまま、Visualizeをクリックします。

⑤ データセットを編集

(1) データセットより、作成したデータセットをクリックします。

データセットより、作成したデータセットをクリックする

(2) データセットの編集をクリックします。

データセットの編集をクリックする

(3) 計算フィールドの追加をクリックします。

計算フィールドの追加をクリックする

(4) 4つの計算フィールドを追加します。

名称 計算式
positive parseDecimal(parseJson(sentimentscore,'$.positive'))
negative parseDecimal(parseJson(sentimentscore,'$.negative'))
neutral parseDecimal(parseJson(sentimentscore,'$.neutral'))
mixed parseDecimal(parseJson(sentimentscore,'$.mixed'))
左上に形式を入力、計算式を入力、入力完了後保存をクリックする

(5) 保存をクリックします。

さらに、保存をクリックする

動作確認手順

① 結果確認

(1) データセットのページから、データセットのプロパティを開きデータの更新を行います。今すぐ更新をクリックします。

データセットのページから、データセットのプロパティを開きデータの更新を行う

(2) 更新をクリックします。

更新をクリックする。

(3) 分析の作成をクリックします。

分析の作成をクリックする。

(4) 分析結果を確認します。これで、感情分析の完了です。

分析結果を確認する。

まとめ

この記事では、Amazon ConnectとAmazon Comprehendを活用し、通話データの感情分析を実装しました。
今回は1つの通話データで感情分析を行いましたが、時間毎に区切ることで感情の変化も可視化して分析に利用することが可能です。

今回の記事の技術や、AWS導入にご興味がある方は、是非お問い合わせ新規ウィンドウで開くください。

関連サービス

導入のお問い合わせはこちら

AWSやAmazon WorkSpacesの導入から接続回線、運用・保守まで何でもお任せください。

お問い合わせ・資料請求