Python を使用したソーシャル メディア感情分析の入門

Python を使用したソーシャル メディア感情分析の入門

[[265146]]

自然言語処理の基礎を学び、2 つの便利な Python パッケージを調べます。

自然言語処理 (NLP) は、話し言葉や書き言葉と、これらの言語のコンピューター支援分析との間の相関関係に対処する機械学習の一種です。私たちは日常生活の中で、文章作成の支援や提案からリアルタイムの音声翻訳や通訳まで、数え切れないほどの NLP イノベーションを経験しています。

この記事では、NLP の特定の領域である感情分析について学習します。入力言語の肯定的、否定的、または中立的な性質を判断することに重点が置かれます。このセクションでは、NLP と感情分析の背景を説明し、2 つのオープンソース Python パッケージについて説明します。パート 2 では、独自のスケーラブルな感情分析サービスの構築を開始する方法を説明します。

感情分析を学ぶときは、NLP の一般的な理解が役立ちます。この記事では数学の細かい点については詳しく説明しません。代わりに、私たちの目標は、これらの方法をソリューションに実際に組み込むために重要な NLP の主要概念を明らかにすることです。

自然言語とテキストデータ

論理的に始めるべき場所は、「自然言語とは何か」という定義です。自然言語とは、主に話し言葉と書き言葉を通じて、人間が互いにコミュニケーションをとる方法です。さらに一歩進んで、テキストによるコミュニケーションのみに焦点を当てることもできます。結局のところ、Siri や Alexa などが普及している時代に生きている私たちは、音声がテキストとはまったく関係のない計算の集合体であることを知っています。

データの展望と課題

テキストデータの使用のみを検討していますが、言語とテキストで何ができるでしょうか? 1 つ目は、言語、特に英語には、ルールの例外、意味の多様性、文脈の違いが多くあり、コンピューター翻訳はおろか、人間の通訳者をも混乱させる可能性があるということです。小学校では冠詞や句読点について学び、母国語を話すことで、独特の意味を直感的に伝える言葉を見つける能力を身につけます。たとえば、「a」、「the」、「or」などの冠詞は、NLP ではストップワードと呼ばれます。これは、従来の NLP アルゴリズムでは、これらの単語が連続して見つかると検索が停止するためです。

私たちの目標はテキストを感情クラスに自動的に分類することなので、テキスト データを計算的に処理する方法が必要です。したがって、テキストデータを機械にどのように表現するかを考える必要があります。言語の利用と解釈のルールは非常に複雑で、入力テキストのサイズと構造は大きく異なる可能性があります。テキストデータを数値データに変換する必要がありますが、これは機械と数学にとって最適な方法です。この変換は特徴抽出のカテゴリに分類されます。

入力テキスト データの数値表現を抽出した後、次のような改善が考えられます。テキスト入力の本文が与えられた場合、上記の記事のベクトル統計のセットを決定し、これらのデータに基づいてドキュメントを分類します。たとえば、副詞が多すぎるとコピーライターがイライラするかもしれませんし、ストップワードを使いすぎると、内容が詰め込まれた学期末レポートだと判断されるかもしれません。確かに、これは感情分析の目的とはあまり関係がないかもしれません。

言葉の袋

テキストの記述が肯定的か否定的かを評価するとき、その極性を評価するためにどのようなコンテキストを使用しますか? (例: テキストに肯定的、否定的、または中立的な感情があるかどうか) 1 つの方法は、形容詞を暗示することです。「不快」と呼ばれるものは否定的であると見なされますが、同じものが「美しい」と呼ばれている場合は肯定的であると考えるでしょう。定義上、口語表現は親しみを伝え、通常は肯定的な意味を持ちますが、一方、冒とく的な表現は敵意の表れとなる場合があります。テキスト データには、固定された感情を伝える絵文字も含めることができます。

テキストとしての個々の単語の極性の影響を理解する言葉の袋言葉の袋(BoW) モデルが基礎を提供します。単語または語彙のセットを分析し、入力テキスト内のこれらの単語の存在に関する尺度を抽出します。語彙は、既知の極性のテキストをトークンと呼ばれるトレーニング データに処理することによって形成されます。このラベル付きデータのセットから特徴が抽出され、特徴間の関係が分析され、ラベルがデータに関連付けられます。

「bag of words」という名前は、空間的な位置や文脈に関係なく個々の単語を分類するという目的を表しています。語彙は通常、トレーニング セットに出現するすべての単語から構築され、トレーニング後に削除されることがよくあります。トレーニング前にストップワードがクリーンアップされていない場合、ストップワードは頻度が高くコンテキストが低いため削除されます。一般的な入力インスタンスに提供された情報が不足しているため、あまり使用されない単語も削除される可能性があります。

しかし、さらに進んで、単語が単一のトレーニングデータインスタンスの外に存在するケースを考慮することができる(そしてそうすべきである)ことに注意することが重要です。これは、単語の頻度用語頻度(TF)。また、すべてのトレーニングインスタンスにおける入力データの単語数も考慮する必要があります。通常、すべてのドキュメントで出現する頻度の低い単語の方が重要です。これは逆テキスト頻度インデックス逆文書頻度(IDF)。これらの指標は、このトピック シリーズの他の記事やパッケージでも必ず言及されるので、知っておくと役立ちます。

Bag of Words は、多くのドキュメント分類アプリケーションで役立ちます。しかし、感情分析では、状況認識の欠如が悪用されると、問題が発生する可能性があります。次の文を考えてみましょう。

  • 私たちはこの戦争を好まない。
  • 雨の日は嫌いですが、今日は晴れていてよかったです。
  • これは生死に関わる問題ではありません。

これらのフレーズの感情を理解するのは人間の通訳者にとっては難しいだけでなく、個々の単語のインスタンスに厳密に焦点を当てた機械翻訳にとっても困難です。

NLP では、「n-gram」と呼ばれる単語のグループも使用されます。バイグラムは、単一の単語群の代わりに(またはそれに加えて)、隣接する 2 つの単語のグループを考慮します。これにより、上記の「嫌い」のような状況は緩和されるはずですが、文脈上の意味が欠如しているため、依然として問題が残ります。さらに、上記の 2 番目の文では、後半の感情的な文脈が前半を否定していると理解できます。したがって、このアプローチでは、文脈的手がかりの空間的局所性も失われます。実用的な観点から問題を複雑にしているのは、与えられた入力テキストから抽出された特徴の希薄性です。完全な大規模語彙の場合、各単語にはカウントがあり、これは整数のベクトルとして考えることができます。ほとんどのドキュメントには、ベクトル内に多数のゼロカウント ベクトルが含まれており、操作に不要なスペースと時間の複雑さが追加されます。この複雑さを軽減するために多くの簡単な方法が提案されていますが、依然として問題は残っています。

単語埋め込み

単語埋め込み単語埋め込み類似した意味を持つ単語に類似した表現を持たせることができる分散表現です。これは、実数値のベクトルを使用して周囲と関連付けることに基づいています。単語の有無だけでなく、単語の使用方法に重点が置かれます。さらに、単語埋め込みの大きな実用的な利点は、密なベクトルに焦点を当てていることです。対応する数のゼロ値のベクトル要素を持つ単語カウント モデルから離れることで、単語埋め込みは時間とストレージの点でより効率的な計算パラダイムを提供します。

以下に、2 つの優れた単語埋め込み方法を示します。

ワード2ベク

1 つ目は、Google が開発した Word2vec です。 NLP と感情分析を深く掘り下げていくと、このタイプの埋め込みアプローチに遭遇する可能性があります。それは、連続した言葉の袋連続した言葉の袋(CBOW)、または連続スキップグラム モデルを使用します。 CBOW では、単語の前後の単語に基づいてトレーニング中に単語の文脈が学習されます。継続的なスキップグラム学習では、特定の単語の周囲の単語を学習する傾向があります。これは解決する必要のある問題の範囲を超えているかもしれませんが、独自の単語埋め込みを生成する必要がある場合、Word2vec の作者は、速度と頻出単語の評価には CBOW 方式を使用し、まれな単語のより重要な埋め込みには skip-gram 方式を使用することを推奨しています。

グローブ

2つ目は単語表現のグローバルベクトル単語表現のためのグローバルベクトル(GloVe)はスタンフォード大学で開発されました。これは Word2vec メソッドの拡張であり、従来のグローバル テキスト統計特徴抽出によって取得された情報と、Word2vec によって決定されたローカル コンテキスト情報とを組み合わせようとします。実際、GloVe は一部のアプリケーションでは Word2vec よりもパフォーマンスが優れていますが、他のアプリケーションでは Word2vec よりもパフォーマンスが劣っています。最終的には、単語埋め込みのターゲット データセットによって、どの方法が最適かが決まります。したがって、遭遇する可能性が高いので、それらの存在と高度なメカニズムを認識しておくことが最善です。

単語埋め込みの作成と使用

***、単語埋め込みを取得する方法を知っておくと便利です。パート 2 では、コミュニティ内の他の人たちによる実質的な作業を活用して、私たちがどのように巨人の肩の上に立っているかについて説明します。これは、既存のトレーニング済みおよび検証済みのモデルを使用して単語埋め込みを取得する 1 つの方法です。英語やその他の言語で利用できるモデルは文字通り無数にあるため、すぐにアプリケーションで使用できるモデルが必ず見つかります。

そうでない場合、開発労力の点でもう一方の極端な方法は、アプリケーションを考慮せずに独自のスタンドアロン モデルをトレーニングすることです。基本的には、大量のラベル付きトレーニング データが提供され、おそらく上記のいずれかの方法を使用してモデルをトレーニングすることになります。それでも、理解できるのは入力したテキストデータだけです。次に、アプリケーション用の特定のモデル (ソフトウェア バージョン管理メッセージの感情値の分析など) を開発する必要がありますが、これには独自の時間と労力が必要になります。

アプリケーション固有のデータに対して単語埋め込みをトレーニングすることもできます。これにより時間と労力を削減できますが、単語埋め込みはアプリケーション固有になるため、再利用性が低下します。

利用可能なツールオプション

膨大な時間と計算能力が必要であることを考えると、どうやって問題の解決策を見つけることができるのか疑問に思うかもしれません。実際、信頼性の高いモデルを開発することは、非常に複雑なため、困難な場合があります。しかし、良いニュースもあります。私たちが必要とするもののほとんどを提供できる、実績のあるモデル、ツール、ソフトウェア ライブラリがすでに数多く存在します。 Python はこれらのアプリケーションに便利なツールを多数提供しているため、ここでは Python に焦点を当てます。

スパシー

SpaCy は、入力テキスト データを解析して特徴を抽出するための多くの言語モデルを提供します。高度に最適化されており、同種のライブラリの中で最も高速なライブラリとして知られています。何よりも素晴らしいのは、オープンソースだということです! SpaCy は、トークン化、品詞分類、依存関係の注釈付けを実行します。この機能を実行するための単語埋め込みモデルと、46 を超える言語のその他の特徴抽出操作が含まれています。このシリーズの第 2 回目の記事では、テキスト分析と特徴抽出にどのように使用できるかについて説明します。

vaderSentiment

vaderSentiment パッケージは、肯定的、否定的、中立的な感情の尺度を提供します。元の論文のタイトル (VADER: ソーシャル メディア テキストの感情分析のためのルールベース モデル) が示すように、これらのモデルはソーシャル メディアのテキスト データ用に特別に開発され、調整されています。 VADER は、一般的な絵文字、UTF-8 でエンコードされた絵文字、口語的な用語や略語 (meh、lol、sux など) を含む、人間がラベル付けした完全なデータ セットでトレーニングされました。

与えられた入力テキスト データに対して、vaderSentiment は極性スコアのパーセンテージのトリプレットを返します。また、 vaderSentiment 複合メトリックと呼ばれる単一のスコアリング メトリックも提供します。これは[-1, 1]範囲の実数値で、スコアが0.05より大きい場合は感情は肯定的、スコアが-0.05より小さい場合は否定的、それ以外の場合は中立的とみなされます。

<<:  機械学習でサプライチェーンを改善する10の方法

>>:  マイクロソフトリサーチアジアと教育省が協力し、AI産業と教育の統合に向けた双方にメリットのあるエコシステムの構築に取り組んでいます。

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

OpenAIの創設者は、Nvidiaに対抗するチップを設計・製造するためのグローバルなチップ工場ネットワークを構築したいと考えている

OpenAIの共同創設者サム・アルトマン氏は最近、Nvidiaに対抗するために世界中にAIチップ工場...

AI コンピューティング センター構築熱の背後で、お金を無駄にしているのは誰か?

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

...

馬化騰氏は「人工知能の4つの主要な発展傾向が今後10年間で世界を変えるだろう」と述べた。

今後10年間で世界を変える人工知能の4つの主要な発展トレンドの分析61歳のビル・ゲイツ氏は大学卒業生...

今後数年間の人工知能研究が避けられない3つの重要な問題

現在、人工知能は産業のアップグレードを積極的に推進しており、製品の品質とコア能力を向上させています。...

...

AIの今後の4つの動向、人類は集団的に失業するのか?

人工知能、特に機械学習とディープラーニングは 2018 年にあらゆるところで話題になりましたが、今後...

5月にGitHubで最も人気のある機械学習プロジェクトはこちら

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

米国の自動車所有者調査:自動運転車に楽観的な自動車所有者が増えている

一般の人々は自動運転車についてどう思っているのだろうか?市場調査会社CarGurusは最近、将来の自...

漫画解釈: よく使われる機械学習アルゴリズムのトップ 10 を簡単に理解する

この記事を通じて、ML でよく使用されるアルゴリズムについて常識的に理解することができます。コードや...

ディープラーニングによるマラリア検出

​​ [[266327]]​​人工知能とオープンソースのハードウェアツールを組み合わせることで、深刻...

オートメーション・エニウェア、世界初のウェブベースRPAプラットフォームを発表

RPA(ロボティック・プロセス・オートメーション)業界のリーダーであるオートメーション・エニウェアは...

Javaソートアルゴリズムの概要(I):挿入ソート

挿入ソートの基本的な操作は、ソートされた順序付けられたデータにデータを挿入し、それによって番号が 1...