本記事はBIPROGY / ユニアデックス社内AWSコミュニティ「BIPROGY AWS Ambassador」の定期投稿企画第6回目の記事です。
他の定期投稿企画の記事は、
#BIPROGY_AWS_Ambassadorタグ またはOrganizationページをご覧ください。
AWSの文章解析サービス 「Amazon Comprehend」 を使い、社内チャットを分析対象として、感情分析機能の精度を検証してみました!
本記事では、Comprehendの基本機能と、実際に分析した結果をわかりやすく紹介します。
(そもそも)みなさんは 「Amazon Comprehend」 をご存知でしょうか?
おそらく資格勉強(SAAやAIF)の際に名前を聞いたことがあると思いますが、私自身、触れる機会がほとんどなかったので、復習を兼ねて試してみました。何かの参考にしていただければ幸いです。
Amazon Comprehend
機械学習を利用した自然言語処理(NLP)サービスで、感情分析含め5つの機能があります。
1. 感情分析
文章の感情を分析します。
「Positive(肯定的)」「Negative(否定的)」「Mixed(肯定と否定の混合)」「Neutral(いずれの感情にも分類されず感情的な賛否がはっきりしない中立)」の4つの指標があります。それぞれの指標は最大で1.0(100%)までの割合で示され、各指標を足すと1(100%)になります。
これにより、文章内の感情割合を確認できます。
2.キーフレーズ抽出
文章内のフレーズを抽出します。
3.エンティティ認識
文章内で言われている “人物・場所・モノ・組織 “などの名前を抽出します。
4.言語検出
文章の主要言語を分析します。
5.構文解析
文章内の各単語の品詞を分析します。
公式ドキュメントはこちら
実行方法
以下の手順で、チャット分析を実行しました。
1. Amazon Comprehend画面を開く
2. 分析モードを選択する:「Real-time analysis」
・「Real-time analysis」
→「リアルタイムで文章を入力して即時に分析できるモード」
その場で入力した文章を即座に分析するモードで少量のテキストや、メッセージ単位での分析に適しています。
・「Analysis jobs」
→「複数のテキストファイルを一括で処理するバッチ分析モード」
S3にアップロードしたテキストファイルを対象にジョブ形式で分析を実行しま
す。大量データの一括分析に適しており、出力結果もS3に保存されます。
※今回は以下の理由により「Real-time analysis」を選択しました。
・データ量が少ない
・メッセージ毎に分析を実施したい
3.分析対象データを「Input data」に貼り付ける
※今回はタイトルにあるように、上司・先輩・同僚とのチャット
(10メッセージ×3人分)を貼り付けました。
結果
高精度な分析ができていたが、
造語や口語表現、リアクションなどは正しく処理できていない!
概ね主観と乖離はなく、総じて高精度な分析結果であると個人的には評価しました!
ただ、以下のカテゴリでは主観と大きく異なる結果が多く見られました。
1. 単語
「Cato(プロダクトの略称)」にネガティブを0.61つけてしまう。
エンティティ認識にてカテゴリをperson(人)と認識。
専門用語はComprehendの学習外。
#AWS Comprehendの学習不足が原因なので、この点に関しては今後に期待です!
##超個人的に「Cato」を映画『ハンガー・ゲーム』の登場人物である「カトー」と間違えたという仮説を立てています。知らない人は調べてみてください^^
2. 造語
「オサンクス」にネガティブを0.35をつけてしまう。
造語や口語的表現はComprehendの学習外。
#超個人的には「おサンクス」であれば正確に「サンキュー」の進化系であることを分析できたのかと思っています。(進化系か退化系かはおいといて。)
とはいえ、口語表現ならではの崩れた表現まで機械に理解されても、たまったもんじゃないので、ここは人類が紡いできた言葉の歴史が勝ったということで。
3. 感嘆符
感嘆符が複数ついたメッセージでも、一貫して「ニュートラル」に0.99をつける。。。
Comprehendにとって、感嘆符は評価対象外。
これはなんとなくですが(これといったチャット文があるわけではないのですが)、全体を通して、感嘆符(!)が含まれる文章は体感と異なる評価になることが多かったです。
個人的な感覚として、感嘆符が付いているとメッセージに感情が強く乗っているように感じてしまい、「ニュートラル」と評価がしづらくなります。
(実際、人間は感嘆符に対して感情的な印象を受けやすい傾向があります。)
そのため、推測ではありますが、Comprehendは感嘆符を評価指標としないことが原因という結論に至りました。
結論
機械が人間同士の会話を完全に理解するのは難しい!
ただ、上記で記載した点を除けば、今回のサンプルでは、ほぼ完璧に感情分析できていました。
生成AIが注目される今、感情分析の精度はさらに向上していく(AWSが頑張ってくれる)と思われますので、定期的にAmazon Comprehendの分析結果をチェックしながら、より信頼性の高い活用を目指していきたいと思います。
引き続き、アップデートがあればこちらで共有していきますので、お楽しみに!!
We Are Hiring!



