次の方法で共有


データを準備し、カスタム Text Analytics for health のスキーマを定義する方法

カスタム TA4H モデルを作成するには、それをトレーニングするための高品質なデータが必要です。 この記事では、スキーマの定義と共に、データの選択と準備を行う方法について説明します。 スキーマの定義は、プロジェクト開発ライフサイクルの最初のステップであり、実行時にテキストからモデルで抽出する必要があるエンティティの種類またはカテゴリを定義します。

スキーマの設計

カスタム Text Analytics for health を使用すると、Text Analytics for health のエンティティ マップを拡張およびカスタマイズできます。 プロセスの最初の手順はスキーマを作成することです。これにより、実行時に Text Analytics for health の既存エンティティに加えて、テキストからモデルで抽出する必要がある新しいエンティティの種類またはカテゴリを定義できます。

  • データセット内のドキュメントを確認して、その形式と構造を理解します。

  • データから抽出するエンティティを特定します。

    たとえば、サポート電子メールからエンティティを抽出する場合は、"顧客名"、"製品名"、"要求日"、"連絡先情報" を抽出する必要がある場合があります。

  • エンティティ型のあいまいさを回避します。

    あいまいさは、選択したエンティティ型が互いに似ている場合に発生します。 スキーマがあいまいであればあるほど、より多くのラベル付きデータを使用したエンティティ型の識別が必要になります。

    たとえば、法的な契約からデータを抽出する場合、"第一当事者の名前" と "第二当事者の名前" を抽出するには、両当事者の名前が似ているので、あいまいさを解決するためにより多くの例を追加する必要があります。 あいまいさを回避することで、時間と労力を節約し、より良い結果を得ることができます。

  • 複雑なエンティティを避けます。 複雑なエンティティは、テキストから正確に選択するのが難しい場合があります。複数のエンティティに分割することを検討してください。

    たとえば、"住所" の抽出は、より小さなエンティティに分解されていない場合は困難です。 アドレスの表示方法には非常に多くのバリエーションがあります。アドレスを分解せずに全体として抽出するようにモデルに教えるには、多くのラベル付けされたエンティティが必要になります。 ただし、"Address" を "Street Name"、"PO Box"、"City"、"State"、"Zip" に置き換えた場合、モデルではエンティティごとに必要なラベルが少なくなります。

複数エンティティの追加

プロジェクトにエンティティを追加するには、次のようにします。

  1. ページの上部から [エンティティ] ピボットに移動します。

  2. Text Analytics for health のエンティティは、プロジェクトに自動的に読み込まれます。 追加のエンティティ カテゴリを追加するには、上部のメニューから [追加] を選びます。 エンティティの作成を完了する前に、名前の入力を求められます。

  3. エンティティの作成後、エンティティの詳細ページに誘導され、そこでそのエンティティのコンポジション設定を定義できます。

  4. エンティティは、エンティティ コンポーネント (学習、リスト、または事前構築済み) によって定義されます。 Text Analytics for health のエンティティは、既定で事前構築済みコンポーネントが設定され、学習したコンポーネントを持つことはできません。 新しく定義されたエンティティには、データでそれらのラベルを追加した後に、学習したコンポーネントを設定できますが、事前構築済みコンポーネントを設定することはできません。

  5. リスト コンポーネントは、任意のエンティティに追加できます。

リスト コンポーネントを追加する

リスト コンポーネントを追加するには、[新しいリストの追加] を選択します。 エンティティごとに複数のリストを追加できます。

  1. 新しいリストを作成するには、[値の入力] ボックスに値を入力します。これは、いずれかの類義語の値が抽出されたときに返される正規化された値です。

  2. 多言語プロジェクトの場合、[言語] ドロップダウン メニューから類義語リストの言語を選択し、類義語を入力します。1 つ入力するごとに Enter キーを押してください。 類義語のリストは、複数の言語で用意することをお勧めします。

エンティティのオプションを定義する

エンティティの詳細ページの [Entity options] (エンティティのオプション) ピボットに切り替えます。 1 つのエンティティに対して複数のコンポーネントが定義されている場合、それらの予測が重複する可能性があります。 重複があった場合、この手順で選択したエンティティ オプションに基づいて、各エンティティの最終的な予測が決定されます。 このエンティティに適用したいものを選び、上部の [保存] ボタンを選択します。

作成したエンティティは、後で戻って編集できます。 トップ メニューから該当するオプションを選択することで、エンティティのコンポーネントを編集したり、それらを削除したりできます。

データの選択

モデルをトレーニングするデータの品質は、モデルのパフォーマンスに大きく影響します。

  • ドメインの問題空間を反映した実際のデータを使用して、モデルを効果的にトレーニングします。 合成データを使用すると、最初のモデル トレーニング プロセスを加速できますが、実際のデータとは異なる可能性が高く、使用したときにモデルから得られる効果が少なくなることがあります。

  • 実際の分布から大きく離れることなく、可能な限りデータ分散のバランスを取ります。 たとえば、さまざまな形式や言語で提供される可能性がある法的ドキュメントからエンティティを抽出するためにモデルをトレーニングする場合は、実際に見られるような多様性を示す例を提供する必要があります。

  • モデルのオーバーフィットを回避するために、可能な限り多様なデータを使用します。 トレーニング データの多様性が低いと、実際のデータに存在しない場合がある偽の相関関係をモデルが学習する可能性があります。

  • データ内のドキュメントが重複しないようにします。 重複するデータは、トレーニング プロセス、モデル メトリック、モデルのパフォーマンスに悪影響を及ぼす可能性があります。

  • データの取得場所を検討します。 1 人の人物、1 つの部署、またはシナリオの一部からデータを収集する場合は、モデルが学ぶべき重要な多様性が欠落している可能性があります。

Note

ドキュメントで複数の言語が使われている場合は、プロジェクトの作成[複数言語を有効にする] オプションを選択し、[言語] オプションをドキュメントの主要な言語に設定します。

データ準備

プロジェクトを作成するための前提条件として、トレーニング データをストレージ アカウントの BLOB コンテナーにアップロードする必要があります。 トレーニング ドキュメントの作成とアップロードは、Azure から直接行うことも、Azure Storage Explorer ツールを使って行うこともできます。 Azure Storage Explorer を使用すると、より多くのデータをすばやくアップロードできます。

.txt ドキュメントのみを使用できます。 データが他の形式の場合は、CLUtils 解析コマンドを使用してドキュメント形式を変更できます。

注釈付きデータセットをアップロードするか、注釈の付いていないデータセットをアップロードし、Language Studio でデータにラベル付けすることができます。

テスト セット

テスト セットを定義するときは、トレーニング セットに存在しないドキュメントの例を必ず含めてください。 テスト セットの定義は、モデルのパフォーマンスを計算するための重要な手順です。 また、テスト セットに、プロジェクトで使用されるすべてのエンティティを表すドキュメントが含まれていることを確認します。

次のステップ

カスタム Text Analytics for health のプロジェクトをまだ作成していない場合は、作成します。 カスタム Text Analytics for health を初めて使用する場合は、クイックスタートに従ってサンプル プロジェクトを作成することを検討してください。 また、プロジェクトを作成するために必要な内容について詳しくは、ハウツー記事を参照してください。