感情分析(Sentiment Analysis)とはどんなタスクか【自然言語処理タスク紹介2】

感情分析(感情分類、評判分析、センチメント分析、Sentiment Analysisなど)は、自然言語処理の応用として分かりやすいタスクです。
この記事では、感情分析とはどのようなタスクかを説明し、代表的な感情分析の手法を紹介します。

 

感情分析は文書分類のひとつ

自然言語処理の分野でSentiment Analysis、つまり日本語で感情分析という時は、一般的にテキストに含まれる感情を予測する多値分類の文書分類タスクを指すことが多いです。

たとえば、以下のような例文の感情(ポジティブ・ネガティブ)を考えてみましょう。

A. この店のアップルティーがすごく美味しい

B. 商品到着が遅く、一週間程度で壊れてしまった

Aの文は店や商品に対して好意的な内容を含んでいるため、文全体で「ポジティブ」であると考えられます。
一方でBの文は配達の内容や商品の耐久性に難を述べており、文全体が「ネガティブ」であると考えられます。

このような、文全体が持つ感情の特徴(専門的には、感情極性と呼んだりします)を予測するタスクを感情分析と呼びます。
また、文に対応づく感情ラベルを当てるタスクとみなせることから、文書分類タスクの代表的なタスクとして扱われることもあります。

ところで、人間がポジティブ/ネガティブな文を書くときは、たいていの場合、商品やお店、人物などを対象としています。
そのため、文に含まれる感情は、ある商品やお店などに対する評判と見なすことができ、ここから感情分析を評判分析と言い換える場合も多くあります。

 

感情分析は何に使える?

感情分析は、私たちが利用する様々なウェブサービスで活躍しています。

例えばAmazonなどの通販サイトでは、ネガティブな内容のレビューにあえて星5をつけることで、好印象のレビューを読みたいユーザーに、ネガティブな内容を表示させるという攻撃が問題となります。
そこで、書き込まれたレビューに対して感情分析を行うことで、ユーザーが正しくレートを設定しているかをチェックし、内容とレートがかけ離れているレビューを非表示にするなどの対応をとることができます。

また、Youtubeなどの動画サイトやTwitterなどのSNSでも、極端に攻撃的であるようなネガティブなコメントを感情分析によって自動で検出し、コメントを削除したり、悪質ユーザーとして監視するなどの対応をとることができます。

感情分析を用いた画期的なサービスとして、マシュマロというサービスが挙げられます。
マシュマロは登録ユーザーに匿名でメッセージを送ることができるサービスです。
匿名のメッセージサービスでは、悪口などのネガティブなメッセージを送信するといった、悪質な利用が後を絶えません。
そこでマシュマロでは、送信されたメッセージに対して感情分析を行い、攻撃的などのネガティブなメッセージを自動で削除し、相手に届かないようにフィルタリングしています。

このように、私たちが日々利用できる様々なサービスで、感情分析は活躍しているのです。

 

感情分析の代表的な解き方

感情分析は文書分類タスクの仲間であるため、文書分類器を用いて解かれることが一般的です。
しかし、ニュース分類などの文書分類タスクとは異なり、感情分析では感情をあらわす単語が大きな手掛かりになるという点で特徴的です。

たとえば、「おいしい」「好き」などの単語を含む文は、多くの場合でポジティブであることが容易に想像されます。
同様に、「まずい」「嫌い」といった単語を含む文は、おそらくネガティブであると想像されます。
このように、感情を含む単語をあらかじめリストアップしておき、辞書として登録しておくことで、単純な単語のマッチングだけで高性能な感情分析器を作ることができます。

もちろん、TFIDFやWord2Vecなどによる単語分散表現を用いたSVMを用いることで、より複雑な感情分析ができるようになりますし、BERTなどの大規模な事前学習モデルを用いることで、さらなる性能の向上を目指すこともできます。

 

感情分析の難しさ

一見すると、感情分析は簡単なタスクに見えます。
しかし、実際のサービスで運用する場合は、ほかの自然言語処理タスクと同様、複数の困難に立ち向かう必要があります。

例えば、以下の文の感情を考えてみましょう。

C. 前回行ったときは接客が最悪だったけど、今回はそうでもなく、社員教育の変化を感じました

人間がこの文の感情を判断すると、ややポジティブくらいかな?と思う方が多いでしょう。
しかし、文に出現する単語は「最悪」「そうでもない」など、ネガティブな内容を想起させるものが多いため、機械はこの文を誤ってネガティブと判断してしまいます。

また、この文から分かる通り、人間が書く文はポジティブな内容とネガティブな内容が混在することが多く、文節などを考慮して適切に文を読解しなければ、正しく感情分析を行うことができません。
さらに、明らかにネガティブ、明らかにポジティブ、といった文は珍しく、多くの場合において、文Cのように曖昧な感情を持ってます。

こうした感情の度合いなどを適切に、かつ高性能に予測することは、現在のAI技術をもってしても簡単ではなく、いまでも多くの研究者が適切な感情分析に向けて研究を進めています。

機械学習
固有表現抽出(NER)とはどんなタスクか【自然言語処理タスク紹介1】

自然言語処理には固有表現抽出と呼ばれるタスクがあります。 機械学習の授業や自然言語処理の研究を始めた …

機械学習
機械学習の検証データ(dev、valid)はなぜ必要か

機械学習の勉強を始めると「検証データ」や「devセット」「validセット」といった言葉を必ず目にし …

機械学習
1
自然言語処理に出てくるn-gramとはなに?

  授業や業務などで自然言語処理について学ぶと、当然の知識として「n-gram」あるいは「 …