BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 感情分析で、マシンに感情の理解を教える

感情分析で、マシンに感情の理解を教える

原文(投稿日:2019/06/11)へのリンク

感情分析はコンピュータに、テキストに現れた人間の感情を読み取るように教える。感情分析における基本的なトレードオフは、シンプルさと正確さである。アプローチは、感情に関連した単語のリストを使うことから、分散表現、ニューラルネットワーク、アテンション機構といった技術を用いた深層学習まで多岐に渡る。

Johnson Controlsのリード・データサイエンティストであるDonagh Horgan氏は、RebelCon.io 2019でTwitterの感情分析の構築について講演を行う。カンファレンスは6月19、20日にアイルランドのコークで開催される。RebelConは、2日間に渡る”ソフトウェア業界における最新のテクノロジー、カルチャー、デベロップメントプラクティス”に関するワークショップや講演を通し、コークのソフトウェアエンジニアリングコミュニティを引き合わせることを狙っている。

Horgan氏は講演で、Twitter感情分析用にAIを備えたパイプラインをイテレーティブに作る方法を示すつもりだ。

ここ数年、感情分析はますます多くのアプリケーションで利用されている。カスタマーサポートに入ってくる問題を、顧客が感じる感情の極性によってソートするため、市場調査と世論調査で、あるトピックに関する人々の思考を理解するため、またオンラインフォーラムや掲示板での不正利用、いじめ、炎上を検知するためなど。Johnson Controlsは、顧客や従業員を暴力の脅威からより守れるように感情分析を利用している。

Horgan氏によると、人生の安全における感情分析の大きなチャンスがあるという。ここ数年、容疑者が事前にオープンまたはセミオープンなオンラインフォーラムに警告を投稿する銃乱射事件がいくつか起こっている。彼はこの類のコンテントをマシンに分析させることにより、命を救えるかもしれないチャンスを見出している。このような分析のコストはとても低い。

InfoQはDonagh Horgan氏にインタビューを行い、マシンに感情を理解するように教えるために、感情分析をどう利用できるかについて聞いた。

InfoQ: 感情分析とは何でしょうか。

Donagh Horgan氏: 感情分析は、コンピュータにテキストから人間の感情を読み取るように教えることに関係している人工知能の領域です。感情分析のゴールは、書かれたテキストから感情の種類と強さを理解することです。

通常、これは人間にはたやすいタスクです。例えば、わたしが「この映画はすごくよかった」と言ったら、深く考えなくてもわたしが (3)その映画に関して (1)ポジティブで (2)興奮している とわかるでしょう。しかしマシンにはこれを学ぶのが難しいのです。なぜなら言葉がストレートではないからです。例えばわたしは、「この映画はあの映画よりベター(better)だった」と言えますが、「この映画はあの映画よりグッダー(gooder)だった」とは言いません。そしてこの知識というのは、わたしには非常にたやすいことないのです。

しかしコンピュータはアルゴリズムを介して稼働しています。そのため、英語に出てくる全ての例外を理解する、正確で保守しやすいルールのセットを書き出すのはとても難しいでしょう。さらに悪いことには、様々な言語があるということです。厳しい問題です。

InfoQ: 感情分析はどう機能するのでしょうか?

Horgan氏: 様々なアプローチがありますが、基本的にはシンプルさと正確さのトレードオフです。単純な方法は、追跡したい各感情に関する単語のリストを作ることです。例えば、ポジティブな単語(よい、すごい、すばらしい)のリストを作ったり、ネガティブな単語(よくない、ひどい、とんでもない)のリストを作ったり。それから興味のあるテキストの断片を取って、そこに現れている全てのポジティブ、ネガティブな単語の記録を付けます。もし合計がポジティブなら、テキストはポジティブなものと結論づけられるでしょう。そうでなければ、ネガティブと結論づけられます。

各々の単語に”強度”を与えることで、プロセスをより正確にできます。例えば、”よい”は 60% ポジティブですが、”すごい”はもっとポジティブに聞こえるので 80% のスコアを与えるなど。それほど面倒ではありません - オンラインで無料で誰でもアクセスできる感情リスト(例えば、Pythonライブラリパターン)がありますので、大抵は自作する必要はありません。

しかしシンプルな単語の集計はよく、より専門的で言語的な構成を把握するためのニュアンスを欠きます。例えば、わたしが「この映画はとんでもなくいい」と言ったとしたら、”とんでもなく”という単語の考え方によっては、中間的な、むしろネガティブなスコアが生成されるかもしれません。単語の集計を利用してこの問題を扱う方法はありますが、一般的には問題を完全に把握するほど十分には洗練されていません。

ひとつの解法としては、コンピュータが与えられた感情に関する個々の単語、単語のペア、さらにはテキストの長いビットの確率を学ぶ、機械学習アルゴリズムの利用があります。ここで数学に入ることはしませんが、合理的な単純ベイズモデル(もしくは少なくとも単語の集計より優れたもの)を構築することは難しくありません。

InfoQ: 感情分析はの信頼性はどれほどでしょうか?結果を信じていいものでしょうか?

Horgan氏: 残念ながら、現在知られている全てアプローチは、何らかの形でコンテキストの欠如に悩まされています。例えば、単語の集約が個々の単語に過度な強調を置いてしまうと、”すごい間違い”といったフレーズを理解できなくなります。単純ベイズアルゴリズムを利用すればこの問題を扱うこともできます。なぜならこれは感情を単語のペア、トリプル、もしくはどの長さのフレーズでも関連付けて学習することができるからです。しかし特定の二重否定について十分なサンプルを見せていないと、”わたしはノー満足を得ることができない (I can’t get no satisfaction)”という文にやはりつまづくでしょう。

今の最先端は深層学習です。人間の言葉に現れる複雑な構造を学習するために、分散表現、ニューラルネットワーク、アテンション機構といった技術を用いています。しかし、これらのモデルですら、皮肉や嫌味といった、より複雑な言語構成に混乱する可能性があります。事実、人間の間でも、正確にどの感情が現れているかという同意のレベルが 80% を超えることは滅多にありません。ここでの教訓は、言語と感情は結び付けられているけども、関係性というのは必ずしもクリアではないということです - わたしたちにとってすらです。目下、マシンはわたしたちと同じレベルでしょう。

InfoQ: Twitterの感情分析の構築からどんなことを得ましたか?

Horgan氏: 実に、かなりたくさんのことがあります。聞こえよりも簡単であり、難しくもあります。オフ・ザ・シェルフの方法にトライすることができますし、それなりに機能するでしょうが、もし本当に正確なものを構築したいなら、より具体的にしなければなりません。例えば、ツイートする人のプロファイルを考慮してみるなど。ドナルド・トランプは、非常にポジティブか、非常にネガティブのどちらかという人の非常に良い例です。この類の情報を個々のユーザに関するアルゴリズムに取り入れることで、さらに良い結果を生み出せるでしょう。

InfoQ: InfoQの読者が感情分析についてより深く知りたいという場合には、どこに行けばいいでしょうか?

Horgan氏: Towards Data Scienceには多くのチュートリアル(他のものより少しレベルが高いもの)があります。それらは通常、ただ早く始めたいというハッカーを対象としています。Natural Language Processing with Pythonは無料ではありませんが、概してこの分野の良いスタートポイントでしょう。また、nltkspacytextblobvadergensimといった良いドキュメンテーションとチュートリアルもある便利なPythonライブラリがたくさんあります。

InfoQはRebelCon.io 2019を記事、Q&A、サマリで扱っている。以前にInfoQは、Sabine Wojcieszak氏による記事A Different Meaning of CI - Continuous Improvement, the Heartbeat of DevOpsを発行した。

この記事に星をつける

おすすめ度
スタイル

BT