機械学習による感情分析とは?

2019年12月20日

最も基本的なレベルでは、感情分析はテキストから意見、感情、態度を理解するために利用されます。意見マイニングあるいは感情認識AIとしても知られる感情分析は、特定の単語やフレーズを抽出することによって、そのコンテンツがポジティブ、ネガティブ、ニュートラルのいずれであるかを判別します。感情分析の主な目的は、特定の商品、イベント、人々、アイデアに対する一般消費者の意見を定量化することです。

比較的新しい分野のデータマイニングである感情分析は、ユーザー作成データが飛躍的に増加していることも一因となり、ここ数年、著しい進歩を遂げました。さらに、感情分析は様々な分野で極めて多くの応用が可能であり、大企業や政治、心理学、社会学にインサイトを提供しています。 

この記事では、感情分析の基礎、仕組み、応用や課題など、感情分析の概観を説明します。

 

感情(センチメント)とは?

客観的な事実とは対照的に、感情とは、特定の主題やトピックに対して個人がどのように感じているのかを表すために使われる主観的な表現のことです。「エモーション」と「センチメント」は同じ意味で使われることも多いのですが、この二つのコンセプトの間には基本的な違いがあります。センチメントは、対象となる物に対する整理された感情の傾向を表し、エモーションは無意識の生理的反応を示します。

また、テキストにおいて、感情は二つの異なる方法で表現されます。つまり、意見を直接明言する方法(例: このチョコレートは美味しい)と意見を暗示する方法(例: 私のiPhoneは一週間で壊れた)です。ほとんどの感情分析の研究は、検出や分析が容易なことが多い明示的な感情に焦点を当てています。

感情の対象となるのは、物やコンセプト、イベント、人物など、どのようなものでも構いません。商品のレビューや映画データの場合、テキストのトピックを見つけ出すのは一般的にかなり容易です。

意見を測定するために、感情スコアは通常、極性と強度という二つの要素から構成されます。

  • 感情の極性は、感情の方向性(ネガティブからポジティブまで)を示します。 
  • 感情の強度は、感情の強さ(低から高まで)を表します。

 

機械学習による感情分析とは?

根本的には、感情分析(センチメント分析)とは書かれた文章の意見を判断することです。ポジティブな意見なのか、ネガティブな意見なのか、それともニュートラルなのかを、一連の単語から判断し、分類することです。

感情分析が有益なのは、出来事や製品に対する世間の意見を測るのに役立つためです。消費者はTwitterのような場で不満をぶちまけたり、アマゾンにレビューを書いたり、ポジティブな感情とネガティブな感情の両方をソーシャルメディアで表現するものです。感情分析はそうしたデータの波をかき分けて、人々が実際になにを考えているかを突き止めるのに役立ちます。

 

感情分析はなぜ重要なのか

市場調査を行う場合でも、日常的に単純な決断を下す場合でも、人間は自ら選択する前に他人の意見を参考にします。何百万件の映画の評価やフォーラムスレッド、ソーシャルメディアの投稿、消費者レポート、レストランのレビューなどを掲載したウェブベースのプラットフォームのおかげで、誰でもインターネットで消費者の意見にアクセスすることが可能です。このように豊富に入手できるユーザー生成コンテンツは、テキスト分析に利用できる情報の宝庫です。

優れた感情分析エンジンは、商品やサービス、ブランド、政治などに対する一般消費者の意見を自動的に生の非構造化データから構造化データに変換できます。そして、このようにして作成されたデータは、商用アプリケーション、政策立案者、ソーシャルサイエンティストにとって非常に役立ちます。消費者の態度や意見を積極的に監視することによって、エンドユーザーは意見のわずかな変化を検出し、オーディエンスのニーズの変化に容易に適応することができます。

 

感情分析の目的

自然言語処理を利用した他の複雑なアプリケーションと同様、感情分析は次のような二つの別々のタスクに単純化できます。

   1. 主観性分類: 客観的か主観的かでテキストを分類

      2. 極性分類: ポジティブ、ネガティブ、ニュートラルにテキストを分類

このプロセスは、文書全体から個々の単語まで、様々な構造レベルで行われます。ユースケースに合わせて適切なレベルの感情分析を選択すれば、感情分析モデルの精度やカバレッジが大きく向上します。一般的に、感情分析は三つの異なるレベルで行われます。

  • 書類レベル: このレベルの目標は、文書全体の感情を分類することです。例えば、電子商取引プラットフォームの顧客レビューの場合、全体的に見て製品に対するポジティブな意見なのか、ネガティブな意見なのかを判別します。
  • 文章レベル: このレベルではもう少し詳細な分析を行い、各文章に関するスコアを生成します。これによって、書類レベルより精度やカバレッジを高めることができます。
  • エンティティ/アスペクトレベル: アスペクトレベルの感情分析は、言語構成要素(段落や文章)を分析するのではなく、意見そのものを直接見つけ出そうする、よりきめ細かなアプローチです。このレベルでは、全てのエンティティを分析し、各エンティティに対してきめの細かい感情スコアリングが行われます。

 

感情分析のアプローチ

大規模な感情分析には主に二つのアプローチがあります。

  • ルールベースのアプローチ: セマンティックアプローチとも呼ばれるこのアプローチでは、手動で定義された一連のルールに基づいて感情分析が行われます。ドメインエキスパートの知識をエミュレート(模倣)するルールを基にするので、しばしばドップダウンのアプローチになります。
  • 自動アプローチ: テキストの感情を抽出、識別、特徴付けるために機械学習技術を活用するアプローチは全てこれに属します。専門家の知識をエミュレートするのではなく、パターンや規則性を見つけ出して構造を生成するという、より帰納的な方法が用いられることが多いです。

これらのアプローチはどちらも、少なくとも最初はかなり人間の関与を必要とします。感情分析モデルを機能させるためには、アノテーターがまず、個々の単語や短いテキストの感情を判別してラベル付けしなければなりません。この感情分析用のラベル付けは言語や分野、トピックに応じて行われます。

 

機械学習による感情分析の仕組み

例えば、貴社は小さなコーヒーチェーン店で、自社のコーヒーがお客様にどう見られているのか知りたいと考えています。そこで、自分の会社に対するツイートを読み始めます。

「このコーヒー、大好き」

「コーヒーの味は大嫌い」

じつにシンプルです。どんなに基本的な感情分析ツールでも、最初のツイートはポジティブで、2つ目のツイートはネガティブだと教えてくれるでしょう。ところが、人のつぶやき(というより、表現)は、たいていはこれよりもはるかに複雑です。ありとあらゆる感情を伝えており、文脈がなければ完全には理解できないことが多いものです。以下のツイートを見てください。

「ここのエスプレッソは大好きだが、マキアートは我慢できない」

「このブランドが梱包を改善してくれたらいいのに!」

「ホットじゃなくてアイスコーヒーを渡すなんて、信じられない-まったく最高!」

最初の文章は「大好き」と「我慢できない」という言葉が使われているため、ニュートラルではなく、ポジティブな感情とネガティブな感情を両方表しています。二番目のツイートは、部分的にはネガティブな感情を表現しているものの、商品を完全にはねつけているわけではなく、願望を表しているに過ぎません。3番目のツイートの「まったく最高!」はポジティブな表現ですが、口調が極めて皮肉っぽいことから、ネガティブです。

 

感情分析のツール

優れた感情分析ツールは、一つ一つのツイートを正確に識別できなければなりません。Googleインサイト、Googleアラート、Facebookインサイトなどの既存プラットフォーム内で、たくさんの基本的な感情分析ツールが使用されています。ほかにもBrandwatch、Hootsuite Insights、Meltwater、オープンテキストなどがあります。とはいえ、どうすればそれができるのでしょうか。あらかじめラベル付けしたデータを何千例と使って、システムを学習させる要があります。文章の手動分類により、機械学習のベースを形作ります。データが多いほどラベル付けは優れたものとなり、ツールはより正確になります。

手動アノテーションの難しさの一つは、人間が文章を確実に、正確に識別することです。上述のとおり、物事をポジティブ、ネガティブ、ニュートラルの3つに分けるだけでは不十分です。感情分析の分類を行う人は、次のような曖昧な領域にも注意する必要があります。

  • 皮肉
  • 部分的にポジティブな言葉遣い
  • 部分的にネガティブな言葉遣い
  • 「複雑な気持ち」

 

感情分析プロジェクトの管理

ラベル付きの感情分析用データセットを利用する場合でも、独自のデータをゼロから作成する場合でも、プロジェクトを立ち上げる際に役立つヒントを以下にまとめました。

 

ガイドラインの設定

質の高い感情分析データを入手するためには、明確でわかりやすい指示を与えることが重要です。これは、非常に単純なアノテーション作業にも当てはまります。感情分析プロジェクトの場合は、ポジティブ、ネガティブ、ニュートラルのいずれであるかを判断してテキストにラベル付けするようアノテーターに指示することが多いです。このアプローチは、「私はコーヒーが大好きだ」のように単純な感情の表現に対してはうまく機能しますが、複雑なテキストサンプルの場合、アノテーターがどのようにラベル付けすればよいか判断できず、一貫性のないラベルになってしまう可能性があります。詳細なガイドラインが欠けていると、皮肉を含んだ文章など複雑なテキストをラベル付けする際に疑義が生じてしまいます。

そのため、プロジェクト開始時に、何を期待しているのかを明確にし、アノテーション作業のベストプラクティスを含めた文書を提供することが重要です。詳細な指示を与えられれば、作業を行うアノテーターも助かります。単純にポジティブ / ネガティブ / ニュートラルに分類するのか、それとももっときめ細かなラベル付けが必要なのかは、プロジェクト開始時に考慮すべき重要なことの一つでしょう。

 

アノテーションの品質管理

一見すると、テキストに感情をラベル付けするのは簡単な作業のように思われます。アノテーターはテキストサンプルを読んで、ポジティブ、ネガティブ、ニュートラルに分類すればよいのです。

しかし、コンテンツサンプルに表現されている感情を判別するのは、それほど簡単ではありません。人間のアノテーターの主観的な判断に大きく依存しているので、アノテーターの間でも意見が分かれることが多いだけでなく、一人一人のアノテーターの判断も常に一貫しているわけではありません。コンテンツ固有の難しさがある、個人的偏向、あるいは単にアノテーションの質が低いなど、理由は様々です。

ヒューマンエラーをできる限り排除するためには、複数のアノテーターにグラウンドトゥルースデータを評価させることが重要です。感情分析の場合は特に、正解や不正解がないことが多いので、精度を測定するのは困難です。アノテーター間の一致率を測定する品質指標としては、コーエンのカッパ係数(κ)、フライスの一致係数(K)、クリッペンドルフのα係数などがあります。これらの指標を利用して、アノテーションの指示とそれに基づくラベルを分析して、アノテーションプロセスを改善し、ラベル付けにおける困難を解消することができます。

 

感情データのの前処理

消費者の意見は一般的に、無秩序な非構造化フォーマットで示されています。これらのデータには様々な語彙やスラング、文脈が含まれるので、手動で分析するのはほぼ不可能です。そこで、テキストをアルゴリズムが理解可能な形に変換する必要があるのですが、これは複雑なプロセスです。この段階では、感情分析に利用できる関連データを識別・抽出するためにテキスト分析と自然言語処理が利用されます。

感情分析によく利用される様々な前処理方法について以下にまとめました。

  • クリーニング: 研究に関係のないデータを識別し、排除します。排除されるデータには、不要な句読点、ASCIIコード、大文字の使用、ストップワードなどが含まれます。
  • 正規化: より均一なシーケンスデータを作成するため、テキストを標準化します。ステミングや見出し語化によって、単語から語頭変化や語尾変化(-ed, -ize, -deなど)を除き、基本形に戻します。例えば、runs、running、ranは全て見出し語である「run」の語形変化です。
  • トークン化: テキストを個々の単語(「トークン」と呼ばれる)に分解し、構文解析など他のタイプの分析やタスクでインプットとして利用します。

 

Lionbridge AIの感情分析サービス

ここで、貴社は幅広い国際市場で販売している巨大なコーヒー多国籍企業の責任者だとしましょう。英語のTwitterのタイムラインが貴社のコーヒーについて主観的にどのように感じているかを知るだけでなく、中国語やアラビア語のTwitterのタイムラインについても知る必要があります。

ツイートを分析する感情分析ツールをお持ちで、英語における精度は70%で、アラビア語では60%だと仮定しましょう。80〜90%に引き上げるには、当社が役立ちます。300言語のそれぞれに千人以上の認定言語エキスパートを擁し、市場で最も正確な感情分類を提供いたします。翻訳業界で20年近い経験を持つ当社は、感情分析に必要なデータとノウハウを提供し、感情分析モデルの開発をサポートします。詳細はこちらからお問い合わせください。

AI開発に肝心な学習データをご提供します

メディア掲載結果

AI・機械学習の最新情報を配信中

Lionbridge AIのブログで紹介している事例記事やトレンドニュースといったビジネスに役立つ情報はもちろん、オープンデータセット集なども合わせてメール配信しております。