テキスト分類の開始

未加工のテキストを理解することは、領収書から財務データを理解すること、コードベースのデータ セキュリティ リスクと脆弱性を見つけること、または上司に送信する重要な電子メールを改善することのいずれであっても、ホットなトピックです。

テキストの分類は、機械学習 (ML)、より具体的には自然言語処理 (NLP) ツールを利用するか、パターン マッチング (正規表現とも呼ばれます) を使用したより決定論的なアプローチを使用することで解決できるタスクです。 どちらの方法にもそれぞれ長所と短所があり、多くの場合、両方の方法を組み合わせて使用​​すると効果的です。

この記事では、それらの両方と、開始方法について説明します。

分類戦略を作成する

分類を開始する前に、分類するデータを分析し、ラベル付け戦略をどのように設計するかを知らせるデータ構造を識別できるかどうかを確認する必要があります。

食品の分類を例にとると、最初の分類レベルは固体または液体です。 商品を液体として分類すると、水、炭酸飲料、ジュースなど、より具体的な分類が続きます。 水カテゴリの場合、次のレイヤーは火花を散らして静止します。 理想的には、これらのレイヤーは製品戦略によって通知されます。 ただし、明確な方向性がない場合は、エンジニアリング チームが主導権を握る必要があります。

このラベル付け構造により、作業はまず上位レベルのカテゴリに一致するように指示され、次に詳細に進みます。これについては、この記事で詳しく説明します。 将来的には、ラベル付けプロセスの効率を測定するためにも使用できます。 たとえば、あなたのソリューションは、ソーダ製品のラベル付けには効果的ですが、ジュースには失敗する可能性があります。 この分類は、問題点を絞り込むのに役立ちます。

パターンマッチング

正規表現 (regex) を使用することは、ML を使用するほど刺激的ではないかもしれませんが、少ないリソースで短時間で分類結果を得る強力なツールです。 正規表現も、大量のデータに対してすばやく実行できるため効率的です。 開始するには、データ セットを選択し、意味を理解しようとするデータの最も一般的な反復を特定します。 次に、それらのそれぞれについて、関連する正規表現を考え出します。 次に、洗い流して繰り返し、一般的な反復が一致するようになると、エッジ ケースを掘り下げることができます。

パターン マッチング関数を整理するには、JSON または YAML 形式を使用することをお勧めします。 それらをナビゲートしやすくするだけでなく、パターン オブジェクト フィールドを追加、削除、および更新することもできます。 正規表現リストを作成するときは、ラベル付け戦略を念頭に置いてください。 より高いレベルの一致のための一致パターン関数を構築することから始めて、リストを下に続けます。 正規表現を効率的にテストする優れたツールには、Pythex (Python 用)、Rubular (Ruby 用)、Regex Tester (Javascript 用) などがあります。

パターン マッチング戦略を使用すると、出現の 90% をすばやくキャッチできますが、制限があります。 最大の 1 つは偽陰性です。テキスト内の特定の文字シーケンスに基づいてパターンを照合することしかできないため、何を見つけられなかったのかわかりません。 通常、正規表現は、テキストの感情を識別したり、テキストを複数のカテゴリに分類したりするなど、より高度な言語処理を必要とするタスクには効果的ではありません。 また、エンジニアリング チームが数百万行のデータを確認して、正規表現がキャッチできなかった関心のある要素をキャッチすることは、非常に時間とリソースを消費します。これにより、パターン リストを拡張する方法がわかります。 そこで ML の出番です。

NLP

ML モデルを使用する利点は、新しく導入されたデータに対して正確なテキスト分類を生成できることです。 開始するには、同様の問題を解決するようにトレーニングされたモデルを見つけます。 この例を使用して、食品を分類できるモデルを探します。 完全に一致するモデルが見つからない場合は、同様のことを行う事前トレーニング済みのモデルを見つけてトレーニングします。 たとえば、アイスクリームを分類できるモデルを見つけることができます。 それはまさにあなたが必要としているものではないかもしれませんが、似たようなことを行い、目標を達成するために訓練することができます.

Hugging Face の TensorFlow Hub には、多くの NLP (自然言語処理) モデルがあります。 テキスト分類タスクで個人的に気に入っているのは Bert と DistilBERT です。 Bert は最も包括的なモデルであり、DistilBERT はトレーニング用の小型、軽量、高速のモデルです。 どのアルゴリズムを使用すればよいかわからない場合は、複数のアルゴリズムを試して、テスト セットでのパフォーマンスを比較してみてください。

さらにトレーニングした事前トレーニング済みのモデルは、データとトレーニングが不足しているため、最初の反復で精度が非常に低くなる可能性があります。 忍耐強く、整然としてください。 より多くのデータを収集してモデルをトレーニングするには、時間と労力が必要になります。 UCI Machine Learning Repository や Kaggle Datasets など、多くの公開データセットをテキスト分類に使用できます。

トレーニング データを見つけることが問題である場合は、トレーニング データセットを充実させるために、正規表現戦略を使用してラベル付けされたデータの品質を高めるという振り出しに戻る必要がある場合があります。 さらに、データ拡張を使用して、単語を同義語に置き換えることでトレーニング データセットを拡大できます。 オープン ソースの GloVe と Word2Vec は、どちらもこのタスクに最適なツールです。 もう 1 つのトリックは、逆変換を使用することです。 他の言語に翻訳して元に戻します。 Google と Yandex は、その目的で使用できる API を提供しています。

十分なデータが得られたら、データをトレーニング セットとテスト セットに分割します。 トレーニング セットを使用して NLP モデルをトレーニングし、テスト セットでモデルのパフォーマンスを評価します。 2 つの一意のデータ セットを持つことは重要です。なぜなら、モデルをトレーニング データにオーバーフィットさせて誤解を招く高効率の数値に導くことを避けたいからです。これにより、新しい目に見えないデータのパフォーマンスが低下する可能性があります。

次のステップは、トレーニング セットをモデルにフィードすることです。 モデルをトレーニングした後、テスト セットのパフォーマンス評価部分が来ます。 モデルを評価するには、精度、精度、再現率、F1 スコアなどの指標を計算します。 これらのメトリックを取得する方法を説明する良いブログ投稿があります。 モデルのパラメーターの微調整、前処理手順、モデルのハイパーパラメーターの調整、入力データへの追加機能の追加、または単にまったく異なるモデルでの実験による改善。

優れたパフォーマンスを発揮する ML モデルの構築は、知識、時間、リソースを必要とする複雑な開発プロセスです。 しかし、この 100% カバレッジの目標を達成できるツールであるため、それだけの価値があります。

結論

正規表現は、MVP を構築したり、最初の分類結果をより迅速に取得したり、データにラベルを付けたりするための優れた方法ですが、既知のパターン リストによってすぐに制限されます。 一方、ML アプローチは時間がかかり、計算集約的ですが、一度達成されると、より高い精度が得られます。

Khosla Ventures は、NLP が今後 5 年間で最も重要なテクノロジ トレンドであり、市場が現在の 1,400 万ドルから 2032 年までに 490 億ドルを超えると予想されていると考えているため、NLP アプローチはますます使いやすくなると予想されます。

グループ スケッチで作成。

Leave a Comment

Your email address will not be published. Required fields are marked *