感情分析:2022年の感情分析の背後にある直感
公開: 2021-01-02目次
序章
テキストは、人間にとって情報を認識するための最も重要な手段です。 人間が得る知性の大部分は、周囲のテキストや文章の意味を学び、理解することによって得られます。 一定の年齢の後、人間は、知らないうちに単語/テキストの推論を理解するための内因性反射を発達させます。
マシンの場合、このタスクは完全に異なります。 テキストと文の意味を理解するために、機械は自然言語処理(NLP)の基本に依存しています。 自然言語処理の深層学習は、コンピュータービジョンが画像のピクセルに適用されるパターン認識であるのとほぼ同じ方法で、単語、文、および段落に適用されるパターン認識です。
これらの深層学習モデルはどれも、人間の意味でテキストを真に理解していません。 むしろ、これらのモデルは、書かれた言語の統計的構造をマッピングすることができます。これは、多くの単純なテキストタスクを解決するのに十分です。 感情分析はそのようなタスクの1つです。たとえば、文字列や映画レビューの感情をポジティブまたはネガティブに分類します。
これらは、業界でも大規模なアプリケーションを持っています。 例:商品およびサービス会社は、特定の製品について受け取った肯定的および否定的なレビューの数のデータを収集して、製品ライフサイクルに取り組み、売上高を改善し、顧客からのフィードバックを収集したいと考えています。
世界のトップ大学から機械学習オンラインコースを学びましょう。 マスター、エグゼクティブPGP、または高度な証明書プログラムを取得して、キャリアを迅速に追跡します。
読む:機械学習プロジェクトのアイデア

前処理
感情分析のタスクは、単純な教師あり機械学習アルゴリズムに分解できます。通常、入力Xは、 次に、予測を真の値Yと比較します。これにより、テキスト処理モデルのパラメーターこれまでに見られなかったテキストのストリームから感情を抽出するタスクに取り組むための基本的なステップは、肯定的な感情と否定的な感情を別々に持つラベル付きデータセットを収集することです。 これらの感情には、良いレビューまたは悪いレビュー、皮肉な発言または非皮肉な発言などがあります。
次のステップは、次元Vのベクトルを作成することです。ここで、 この語彙ベクトルには、データセットに存在するすべての単語が含まれ(単語は繰り返されません) 、参照できるマシンのレキシコンとして機能します。 次に、語彙ベクトルを前処理して冗長性を削除します。 次の手順が実行されます。
- URLやその他の重要な情報を排除する(文の意味を判断するのに役立ちません)
- 文字列を単語にトークン化する:「機械学習が大好き」という文字列があるとします。トークン化することで、文を1つの単語に分割し、[I、love、machine、learning]としてリストに保存します。
- 「and」、「am」、「or」、「I」などのストップワードを削除します。
- ステミング:各単語をその語幹形式に変換します。 「tune」、「tuning」、「tuned」などの単語は意味的に同じ意味であるため、それらを「tun」という語幹形式に縮小すると、語彙のサイズが縮小されます。
- すべての単語を小文字に変換する
前処理ステップを要約すると、例を見てみましょう。 「upGrad.comの新製品が大好きです」という肯定的な文字列があるとします。 最終的な前処理された文字列は、URLを削除し、文を単一の単語リストにトークン化し、「I、am、the、at」などのストップワードを削除してから、「loving」から「lov」および「product」への語幹を作成することによって取得されます。 「produ」に変換し、最後にすべてを小文字に変換すると、リスト[lov、new、produ]になります。
特徴抽出
コーパスが前処理された後、次のステップは、文のリストから特徴を抽出することです。 他のすべてのニューラルネットワークと同様に、深層学習モデルは生のテキストを入力として受け取りません。数値テンソルでのみ機能します。
したがって、前処理された単語のリストを数値に変換する必要があります。 これは、次の方法で実行できます。 次のような正と負の文字列を含む文字列のコンパイルが与えられたと仮定します(これをデータセットと仮定します) :

正の文字列 | 負の文字列 |
|
|
次に、これらの文字列のそれぞれを次元3の数値ベクトルに変換するために、単語と、その単語が出現したクラス(正または負)を、その単語が対応するクラスに出現した回数にマップする辞書を作成します。
単語 | 正の周波数 | 負の周波数 |
私 | 3 | 3 |
午前 | 3 | 3 |
ハッピー | 2 | 0 |
なぜなら | 1 | 0 |
学ぶ | 1 | 1 |
NLP | 1 | 1 |
悲しい | 0 | 2 |
いいえ | 0 | 1 |
前述の辞書を生成した後、各文字列を個別に調べ、文字列に表示される単語の正と負の頻度の数を合計して、文字列に表示されない単語を残します。 「悲しい、NLPを学んでいない」という文字列を取り、次元3のベクトルを生成してみましょう。
「私は悲しいです、私はNLPを学んでいません」
単語 | 正の周波数 | 負の周波数 |
私 | 3 | 3 |
午前 | 3 | 3 |
ハッピー | 2 | 0 |
なぜなら | 1 | 0 |
学ぶ | 1 | 1 |
NLP | 1 | 1 |
悲しい | 0 | 2 |
いいえ | 0 | 1 |
合計=8 | 合計=11 |
「悲しい、NLPを学んでいない」という文字列の場合、語彙に「幸せだから」という2つの単語しか含まれていないことがわかります。ここで、特徴を抽出して上記のベクトルを作成するために、正と負の頻度を合計します。文字列に存在しない単語の頻度番号を個別に省略した列。この場合、「happy、because」を残します。 合計は、正の周波数で8、負の周波数で9として得られます。

したがって、 「私は悲しい、私はNLPを学習していない」という文字列は、ベクトルインデックス0に存在する数字「1」はバイアスユニットであり、今後のすべてのストリングで「1」のままになります。数字「8」、「11」は、それぞれ正と負の周波数の合計を表します。
同様の方法で、データセット内のすべての文字列を次元3のベクトルに快適に変換できます。
また読む:機械学習モデルの説明
ロジスティック回帰の適用
特徴抽出を使用すると、文の本質を簡単に理解できますが、マシンには、見えない文字列に正または負のフラグを立てる、より鮮明な方法が必要です。 ここで、ベクトル化された文字列ごとに0〜1の確率を出力するシグモイド関数を利用するロジスティック回帰が機能します。
最終的な考え
また、機械学習について詳しく知りたい場合は、機械学習とAIのIIIT-BとupGradのエグゼクティブPGプログラムをご覧ください。このプログラムは、働く専門家向けに設計されており、450時間以上の厳格なトレーニング、30以上のケーススタディと課題を提供しています。 、IIIT-B卒業生のステータス、5つ以上の実践的なキャップストーンプロジェクト、トップ企業との雇用支援。