スタブ テキスト分類はどのように機能しますか? - Unite.AI
私達と接続
AI マスタークラス:

AI 101

テキスト分類はどのように機能しますか?

mm
更新中 on

テキスト分類は、テキスト シーケンスを分析し、ラベルを割り当て、内容に基づいてグループに分類するプロセスです。テキスト分類は、自然言語処理 (NLP) を含むほぼすべての AI または機械学習タスクの基礎となります。テキスト分類を使用すると、コンピュータ プログラムはスパム認識、感情分析、チャットボット機能などのさまざまなタスクを実行できます。テキスト分類はどのように正確に機能するのでしょうか?テキスト分類を実行するさまざまな方法にはどのようなものがありますか?以下では、これらの質問に対する答えを見ていきます。

テキスト分類の定義

時間をかけて理解することが重要です テキスト分類とは何ですか一般に、テキスト分類を行うさまざまな方法を詳しく調べる前に、 テキスト分類は、さまざまなタスクやアルゴリズムに適用される用語の XNUMX つであるため、テキスト分類を実行するさまざまな方法を検討する前に、テキスト分類の基本概念を確実に理解することが役立ちます。

テキストに対してさまざまなカテゴリを作成し、さまざまなテキスト サンプルにこれらのカテゴリとしてラベルを付けることを伴うものはすべて、テキスト分類と見なされます。 システムがこれらの基本的な手順を実行する限り、テキストの分類に使用される正確な方法やテキスト分類器が最終的にどのように適用されるかに関係なく、システムはテキスト分類器と見なされます。 電子メールのスパムの検出、トピックやタイトルごとのドキュメントの整理、製品のレビューの感情の認識などはすべて、テキストを入力として受け取り、そのテキストのクラス ラベルを出力することによって実現されるため、テキスト分類の例です。

テキスト分類はどのように機能しますか?

写真: Quinn Dombrowski、Flickr 経由、CC BY SA 2.0、(https://www.flickr.com/photos/quinnanya/4714794045)

ほとんどのテキスト分類方法は、ルールベースの方法または機械学習方法の XNUMX つの異なるカテゴリのいずれかに分類できます。

ルールベースの分類方法

ルールベースのテキスト分類方法は、明示的に設計された言語ルールを使用して機能します。 システムは、エンジニアが作成したルールを使用して、特定のテキストがどのクラスに属するかを決定し、意味的に関連するテキスト要素の形で手がかりを探します。 すべてのルールには、テキストが対応するカテゴリに配置されるために一致する必要があるパターンがあります。

より具体的に言うと、天気、映画、食べ物などの一般的な会話のトピックを区別できるテキスト分類器を設計したいとします。 テキスト分類器が天気に関する議論を認識できるようにするには、供給されるテキスト サンプルの本文で天気関連の単語を検索するように指定できます。 トピックを区別するために使用できるキーワード、フレーズ、その他の関連パターンのリストが得られます。 たとえば、「風」、「雨」、「太陽」、「雪」、「雲」などの単語を検索するように分類器に指示できます。 次に、分類子に入力テキストを調べて、テキスト本文にこれらの単語が出現する回数を数えさせ、それらの単語が映画に関連する単語よりも頻繁に出現する場合、そのテキストを天気クラスに属するものとして分類することができます。

ルールベースのシステムの利点は、その入力と出力が人間によって予測および解釈可能であり、エンジニアによる手動介入によって改善できることです。 ただし、ルールベースの分類方法はやや脆弱でもあり、プログラムされた事前定義されたパターンにしか従うことができないため、一般化するのが難しいことがよくあります。たとえば、「雲」という単語は、空気中の水分を指す場合があります。空、またはデータが保存されているデジタル クラウドを指す場合もあります。 エンジニアが手動でこれらの微妙な点を予測して調整するためにかなりの時間を費やさない限り、ルールベースのシステムがこれらの微妙な点を処理することは困難です。

機械学習システム

上で述べたように、ルールベースのシステムには機能とルールを事前にプログラムする必要があるため、制限があります。 対照的に、機械学習ベースの分類システムは、特定のクラスに関連付けられたパターンのデータセットを分析するアルゴリズムを適用することによって動作します。

機械学習アルゴリズムには、事前にラベル付けされた/事前に分類されたインスタンスが供給され、関連する機能が分析されます。 これらの事前にラベル付けされたインスタンスがトレーニング データです。

機械学習分類器はトレーニング データを分析し、さまざまなクラスに関連付けられたパターンを学習します。 この後、目に見えないインスタンスからラベルが剥がされ、インスタンスにラベルを割り当てる分類アルゴリズムに送られます。 次に、割り当てられたラベルを元のラベルと比較して、機械学習分類器の精度を確認し、どのパターンがどのクラスを予測するかをモデルがどの程度学習したかを評価します。

機械学習アルゴリズムは数値データを分析することによって動作します。 これは、テキスト データに対して機械学習アルゴリズムを使用するには、テキストを数値形式に変換する必要があることを意味します。 テキストデータを数値データとしてエンコードし、このデータに基づいて機械学習手法を作成するさまざまな方法があります。 以下では、テキスト データを表現するさまざまな方法のいくつかについて説明します。

言葉の袋

言葉の袋 は、テキスト データをエンコードして表現するために最も一般的に使用されるアプローチの XNUMX つです。 「バッグオブワード」という用語は、基本的に文書内のすべての単語を取り出して、語順や文法に注意を払わずに、単語の内容だけに注意を払い、それらを XNUMX つの「バッグ」に入れるという事実から来ています。 言葉の頻度 カバンの中に。 これにより、入力ドキュメント内のすべての単語の単一表現を含む長い配列、つまりベクトルが生成されます。 したがって、入力ドキュメント内に合計 10000 の一意の単語がある場合、特徴ベクトルの長さは 10000 単語になります。 これが、単語バッグ/特徴ベクトルのサイズの計算方法です。

写真: gk_ (Machinelearning.co 経由) (https://machinelearnings.co/text-classification-using-neural-networks-f5cd7b8765c6)

特徴ベクトルのサイズが決定されると、合計ドキュメントのリスト内のすべてのドキュメントに、現在のドキュメント内で問題の単語が何回出現するかを示す数字で満たされた独自のベクトルが割り当てられます。 これは、XNUMX つのテキスト ドキュメント内に「食べ物」という単語が XNUMX 回出現する場合、対応する特徴ベクトル/特徴配列の対応する位置に XNUMX が含まれることを意味します。

別の言い方をすると、入力ドキュメントに出現するすべての一意の単語がすべて XNUMX つのバッグにまとめられ、各ドキュメントが同じサイズの単語ベクトルを取得し、その単語ベクトルにドキュメント内に異なる単語が出現する回数が埋められます。 。

テキスト データセットには多くの固有の単語が含まれることがよくありますが、そのほとんどはあまり頻繁には使用されません。 このため、通常、単語ベクトルの作成に使用される単語の数は選択された値 (N) に制限され、特徴ベクトルの次元は Nx1 になります。

用語頻度 - 逆文書頻度 (TF-IDF)

文書内の単語に基づいて文書を表現する別の方法は、 用語頻度 - 逆文書頻度 (TF-IDF)。 TF-IDF アプローチでは、文書内の単語に基づいて文書を表すベクトルも作成されますが、Bag-of-words とは異なり、これらの単語は 周波数以上のものによって重み付けされる。 TF-IDF は文書内の単語の重要性を考慮し、その単語が文書の主題とどの程度関連しているかを定量化しようとします。 言い換えれば、TF-IDF は頻度ではなく関連性を分析し、特徴ベクトル内の単語数はデータセット全体に関して計算された TF-IDF スコアに置き換えられます。

TF-IDF アプローチは、最初に用語の頻度、つまり特定の文書内に固有の用語が出現する回数を計算することによって機能します。 ただし、TF-IDF は、「the」、「or」、「and」などの非常に一般的な単語の影響を制限することにも注意を払っています。これらの「ストップワード」は非常に一般的ですが、文書の内容についてほとんど情報を伝えないためです。 これらの単語は割り引く必要があり、これが TF-IDF の「逆ドキュメント頻度」部分で言及されているものです。 これは、特定の単語が出現するドキュメントが増えるほど、すべてのドキュメントのリスト内でその単語を他のドキュメントと区別するのに役に立たなくなるためです。 TF-IDF が単語の重要性を計算するために使用する式は、最も頻繁に使用され、最も意味的に豊富な単語を保持するように設計されています。

TF-IDF アプローチによって作成された特徴ベクトルには、合計が XNUMX になる正規化された値が含まれており、各単語に TF-IDF 式によって計算された重み付けされた値が割り当てられます。

単語の埋め込み

単語の埋め込み は、同様の意味を持つ単語が同様の数値表現になるようにテキストを表現する方法です。

単語の埋め込み 単語を「ベクトル化」して操作するつまり、単語をベクトル空間の実数値ベクトルとして表現します。 ベクトルはグリッドまたは行列内に存在し、方向と長さ (または大きさ) を持ちます。 単語をベクトルとして表す場合、単語は実数値で構成されるベクトルに変換されます。 すべての単語は XNUMX つのベクトルにマッピングされ、意味が似ている単語は方向と大きさも似ています。 このタイプのエンコードにより、機械学習アルゴリズムが単語間の複雑な関係を学習できるようになります。

さまざまな単語を表す埋め込みは、問題の単語がどのように使用されるかに基づいて作成されます。 同様の方法で使用される単語は同様のベクトルを持つため、単語の埋め込みを作成するプロセスでは、単語が持つ意味の一部が自動的に翻訳されます。 対照的に、バッグ オブ ワード アプローチでは、たとえ非常に似た文脈で使用されていたとしても、異なる単語が異なる表現を持つ脆弱な表現が作成されます。

その結果、単語の埋め込みは、文内の単語のコンテキストをより適切に捉えることができます。

単語の埋め込みを作成するために使用されるさまざまなアルゴリズムとアプローチがあります。 最も一般的で信頼性の高い単語埋め込み方法には、埋め込みレイヤー、word2vec、GloVe などがあります。

レイヤーの埋め込み

機械学習/深層学習システムと並行して単語埋め込みを使用する潜在的な方法の XNUMX つは、次のとおりです。 埋め込みレイヤーを使用する。 埋め込み層は、単語を埋め込みに変換し、その後、残りの深層学習システムに供給される深層学習層です。 単語の埋め込みは、ネットワークが特定のテキストベースのタスクをトレーニングするときに学習されます。

単語埋め込みアプローチでは、類似した単語は同様の表現を持ち、異なる単語よりも互いに近くなります。

埋め込みレイヤーを使用するには、最初にテキストを前処理する必要があります。 ドキュメント内のテキストはワンホット エンコードする必要があり、ベクトル サイズを事前に指定する必要があります。 次に、ワンホット テキストが単語ベクトルに変換され、そのベクトルが機械学習モデルに渡されます。

Word2古い

Word2古い これも単語を埋め込む一般的な方法です。 Word2Vec は統計的手法を使用して単語を埋め込みに変換し、ニューラル ネットワーク ベースのモデルで使用するために最適化されています。 Word2Vec は Google の研究者によって開発され、有用で豊富な埋め込みを確実に生成できるため、最も一般的に使用される埋め込み方法の 2 つです。 Word2Vec 表現は、言語の意味論的および構文上の共通点を識別するのに役立ちます。 これは、WordXNUMXVec 表現が同様の概念間の関係を捉えており、「キング」と「クイーン」の共通点が王族であること、「キング」が「男性らしさ」を暗示しているのに対し、クイーンが「女性らしさ」を暗示していることを区別できることを意味します。

グローブ

GloVE、または単語表現のグローバル ベクトル、Word2Vec で使用される埋め込みアルゴリズムに基づいて構築されています。 GloVe 埋め込みメソッドは、Word2Vec と潜在意味分析などの行列分解技術の両方の側面を組み合わせています。 Word2Vec の利点は、コンテキストをキャプチャできることですが、その代償として、グローバル テキスト統計のキャプチャが不十分であることです。 逆に、従来のベクトル表現はグローバルなテキスト統計を決定するのには適していますが、単語やフレーズのコンテキストを決定するのには役に立ちません。 GloVE は両方のアプローチの長所を活用し、グローバルなテキスト統計に基づいて単語コンテキストを作成します。

専門分野を持つブロガーおよびプログラマー 機械学習 & 深層学習 トピック。 ダニエルは、他の人が社会利益のために AI の力を活用できるよう支援したいと考えています。