メインコンテンツへスキップ

感情分析

感情分析とは。仕組みと、日本語での限界

文章が肯定的か否定的かを機械が判定する仕組みと、その結果をどこまで信じてよいのか。日本語で精度が落ちる理由まで整理します。

更新日:

執筆・運営:

BASICS

センチメント分析とも呼ばれ、文章に表れた評価の向き——肯定か否定か——を機械的に判定する技術です。

扱う対象は大きく3つに分かれます。1つめは極性で、肯定・否定・中立のどれに当たるかを判定します。2つめは強度で、どれくらい強い評価かを数値で出します。3つめは対象の切り分けで、「操作は簡単だが価格が高い」のように1文に複数の評価が含まれるとき、何に対する評価かを分けます。

実務でいちばん使われるのは極性の判定ですが、いちばん誤解を招きやすいのもここです。「否定が20%」という数字は一見わかりやすい一方で、何を否定しているのかが分からないと、次の行動につながりません。

HOW

やり方は大きく3種類あり、それぞれ得意な場面と外し方が違います。

どの方式でも共通して言えるのは、書かれている言葉から評価を推定しているだけであって、書いた人の内心を読み取っているわけではないという点です。丁寧に不満を述べる人と、率直に述べる人では、同じ不満でも判定が変わります。

  • 辞書ベース

    「良い」「不満」などの評価語に点数を割り当てた辞書を使い、文中の語を足し引きします。理由が説明できる一方、辞書にない言い回しや業界用語に弱くなります。

  • 機械学習ベース

    正解を付けたデータで学習させ、傾向から判定します。精度は上がりますが、学習させた領域から離れると外れます。判定の理由は説明しにくくなります。

  • 大規模言語モデル

    文脈を踏まえた判定ができ、対象ごとの切り分けも比較的得意です。判定の理由も言語で説明させられますが、その説明が必ずしも実際の判定根拠とは限りません。

JAPANESE

英語向けに作られた仕組みをそのまま持ってくると、日本語では期待より精度が落ちます。理由ははっきりしています。

  • 否定が文末に来る。「使いやすいとは言えません」は、最後まで読まないと向きが決まりません。文の一部だけを見る方式では取りこぼします。
  • 敬語と婉曲表現が多い。「検討させていただきます」「難しいかもしれません」は、実質的な否定でも語としては中立です。
  • 主語が省略される。誰が誰を評価したのかが文中に現れないため、対象の切り分けが難しくなります。
  • 皮肉と称賛が同じ語で表される。「さすがですね」は文脈がないと判定できません。
  • 単語が空白で区切られない。形態素解析の精度がそのまま感情判定の精度に影響します。
  • 評価が文をまたぐ。「価格は想定内でした。ただ」のように、次の文で反転することがあります。

USES

感情分析は「どこを読むか決める」ための道具として使うとよく効き、「結論を出す」ために使うと外します。

用途ごとの、感情分析の向き不向き
用途向き理由
大量のレビューから、読むものを絞る向く多少外れても、読む候補が減れば目的を果たす
時系列で変化に気づく条件つき収集元・判定方法・対象の条件をそろえて確かめる
個人の評価や査定向かない個別の判定精度が足りず、影響が大きすぎる
商談の受注確度の判断向かない発言の丁寧さが評価と一致しない
問い合わせの緊急度の仕分け条件つき誤判定時の救済ルートを用意できるなら有効
報告書に載せる数値指標条件つき母数と判定方法を併記できる場合に限る

READING

感情分析の数字は、単独では意味を持ちません。必ず何かと並べて読みます。

  • 対象とセットで見る。「否定20%」ではなく「価格に関する言及のうち否定20%」まで絞ると、行動につながります。
  • 比較条件をそろえる。収集元の比率、対象期間、文章の長さ、モデルのバージョン、指示文、判定の閾値を記録します。条件が変わった増減を、そのまま顧客の変化と読まないようにします。
  • 極端な事例を実際に読む。最も否定的と判定された数件を読めば、判定がずれているかどうかはすぐ分かります。
  • 中立の扱いを確認する。判定できなかったものを中立に入れている場合、中立の多さは精度の低さを意味します。
  • 判定方法を書き残す。方式を変えると数値が動くため、比較するときに何を変えたかが分からなくなります。

WORKED EXAMPLE

以下は読み方を説明するための架空例です。AIサービスの実測結果ではありません。文章に書かれた評価と、話した人の内心を分けて扱います。

日本語の感情分析で確認する例
原文評価対象・仮の読み方確認すること
使いやすいとは言えません操作への否定文末の否定まで読む
価格は高いが操作は簡単だ価格は否定、操作は肯定文全体の一つのラベルに潰さない
検討させていただきます購入判断は保留前後の会話なしで拒否と断定しない
さすがですね文脈がなければ判断保留称賛か皮肉かを語だけで決めない

WORKED EXAMPLE

Google Cloud Natural Language APIでは、評価の向きをscore、感情表現の量をmagnitudeとして表します。これは同APIの説明であり、Klangの出力項目ではありません。

同APIの数値を読むときの考え方
値の組み合わせ考えられる読み方注意点
scoreが0付近・magnitudeが低い感情表現が少ない可能性中立を必ず正しく判定したとは限らない
scoreが0付近・magnitudeが高い肯定と否定が混在する可能性文ごとの対象と評価を確認する
長文でmagnitudeが大きい表現量が多い可能性長さが違う文章をそのまま比較しない

WORKED EXAMPLE

例題4件の比較用ラベルは説明のために作ったものです。実測精度ではありません。実務では自社の許可された文章を使い、人の判断にも保留欄を設けます。

この例では、人が否定と読んだ2件が、比較用ラベルでは肯定または中立になっています。「否定の見落とし2件 / 人が否定と読んだ2件」と数えられますが、この小さな架空例から製品の精度は評価できません。判断保留は中立に置き換えず別に集計します。

架空ラベルを使った見落としの例
原文評価対象人の仮ラベル比較用の仮ラベル見直す理由
設定が分かりやすい設定肯定肯定一致
使いやすいとは言えません操作否定肯定否定表現の見落とし
価格は高いが操作は簡単だ価格否定中立対象別に分けて再確認
検討させていただきます購入判断判断保留中立前後の会話が必要

Klangは会話を話者ごとに文字起こしし、要約や分析からもとの発言へたどれる形で残します。判定の数字だけを見て判断せずに済みます。

  • 分析の結果から、実際の発言に戻って確認できます。
  • 話者分離は、顧客の発言と自社の発言を区別する助けになります。重なった発話などでは誤りが生じるため、分析前に話者ラベルを確認します。
  • 複数の会話をまたいで、繰り返し出ている論点を取り出せます。
無料で試す
感情分析の精度はどれくらいですか。

対象とする文章の種類、判定方式、どこまでを正解とするかで大きく変わるため、一律の数値は示せません。自社のデータで数十件を人が判定し、機械の判定と突き合わせて確かめるのが唯一確実な方法です。

会議や商談の音声でも使えますか。

文字起こしをすれば対象にできます。ただし話し言葉は言いよどみや言い換えが多く、書き言葉より判定が不安定になります。誰の発言かを分けていない文字起こしでは、顧客と自社の発言が混ざって結果が意味を持ちません。

従業員の発言を感情分析してもよいですか。

個人の評価や監視につながる使い方は避けるべきです。目的と対象範囲、結果を誰が見るかを先に決め、本人に伝えたうえで、組織全体の傾向を見る用途に限るのが安全です。

中立と判定される割合が高いのですが。

事実の記述が多い文章では自然なことです。一方で、判定できなかったものを中立に含めている場合もあります。中立と判定された文章を数十件読めば、どちらなのかはすぐ分かります。

クレジットカードは不要です。数分でお使いいただけます。