カスタム NER モデルを作成するには、それをトレーニングするための品質データが必要です。 この記事では、スキーマの定義と共に、データの選択と準備を行う方法について説明します。 スキーマの定義は、プロジェクト開発ライフサイクルの最初のステップであり、実行時にテキストから抽出するためにモデルが必要なエンティティの種類またはカテゴリを定義します。
スキーマの設計
スキーマは、実行時にモデルがテキストから抽出する必要があるエンティティの種類やカテゴリを定義します。
データセット内のドキュメントを確認して、その形式と構造を理解します。
データから抽出するエンティティを特定します。
たとえば、サポート メールからエンティティを抽出する場合は、"顧客名"、"製品名"、"要求日"、"連絡先情報" を抽出する必要がある場合があります。
エンティティ型のあいまいさを回避します。
あいまいさは、選択したエンティティ型が互いに似ている場合に発生します。 スキーマがあいまいになるほど、異なるエンティティ型を区別するために必要なラベル付けされたデータが増えます。
たとえば、法的契約からデータを抽出する場合、"ファースト パーティの名前" と "第 2 者の名前" を抽出するには、両当事者の名前が似ているため、あいまいさを克服するための例をさらに追加する必要があります。 あいまいさを回避することで、時間と労力を節約し、より良い結果を得ることができます。
複雑なエンティティを避けます。 複雑なエンティティは、テキストから正確に選択するのが難しい場合があります。 複数のエンティティに分割することを検討してください。
たとえば、小さなエンティティに分割しないと、"Address" を抽出するのは困難です。 アドレスの表示方法には非常に多くのバリエーションがあります。アドレスを分解せずに全体として抽出するようにモデルに教えるには、多くのラベル付けされたエンティティが必要になります。 ただし、"Address" を "Street Name"、"PO Box"、"City"、"State"、"Zip" に置き換える場合、モデルではエンティティごとに必要なラベルが少なくなります。
データの選択
モデルをトレーニングするデータの品質は、モデルのパフォーマンスに大きく影響します。
ドメインの問題空間を反映した実際のデータを使用して、モデルを効果的にトレーニングします。 合成データを使用して最初のモデル トレーニング プロセスを高速化できますが、実際のデータとは異なり、使用するとモデルの効果が低下します。
実際の分布から大きく離れることなく、可能な限りデータ分散のバランスを取ります。
モデルのオーバーフィットを回避するために、可能な限り多様なデータを使用します。 トレーニング データの多様性が低いと、実際のデータに存在しない場合がある偽の相関関係をモデルが学習する可能性があります。
データ内のドキュメントが重複しないようにします。 重複するデータは、トレーニング プロセス、モデル メトリック、モデルのパフォーマンスに悪影響を及ぼす可能性があります。
データの取得場所を検討します。 1 人のユーザー、部署、またはシナリオの一部からデータを収集する場合、モデルが学習するために重要な可能性がある多様性が不足している可能性があります。
Note
ドキュメントが複数の言語の場合は、プロジェクトの作成時に [多言語を有効にする] オプションを選択し、言語オプションをほとんどのドキュメントの言語に設定します。
データ準備
プロジェクトを作成するための前提条件として、トレーニング データをストレージ アカウントの BLOB コンテナーにアップロードする必要があります。 トレーニング ドキュメントの作成とアップロードは、Azure から直接行うことも、Azure Storage Explorer ツールを使って行うこともできます。 Azure Storage Explorer を使用すると、より多くのデータをすばやくアップロードできます。
.txt ドキュメントのみを使用できます。 データが他の形式の場合は、CLUtils 解析コマンドを使用してドキュメント形式を変更できます。
注釈付きデータセットをアップロードすることも、未示のデータセットをアップロードしてデータにラベルを付けることもできます。
テスト セット
テスト セットを定義するときは、トレーニング セットに存在しないドキュメントの例を必ず含めるようにしてください。 テスト セットの定義は、 モデルのパフォーマンスを計算するための重要な手順です。 また、テスト セットに、プロジェクトで使用されるすべてのエンティティを表すドキュメントが含まれていることを確認します。
次のステップ
まだ作成していない場合は、カスタム NER プロジェクトを作成します。 カスタム NER を初めて使用する場合は、クイック スタートに従ってサンプル プロジェクトを作成することを検討してください。 詳細については、ハウツー記事を参照してください。