IBM Cloud Docs
カスタム・エンティティーの定義

カスタム・エンティティーの定義

エンティティー抽出プログラムを作成して、ビジネスにとって重要な用語について Discovery に学習させます。

エンティティー抽出 は、ビジネス・ニーズまたはユース・ケースにとって重要であることを示す用語を認識し、タグ付けする機械学習モデルです。 エンティティー抽出プログラムを作成すると、検索および抽出する情報の内容と範囲を決定することができます。 抽出プログラムは、以下のいずれかを抽出できます。

  • 料理のレシピからの野菜名や事故レポートからの自動車の製造とモデルなど、物を表す用語
  • オブジェクトの属性 (色や数量など)
  • 短い句 ( 107 deaths in Francerevenue of $343M など)

エンティティー・タイプ は、モノのタイプです。 エンティティー抽出を作成するには、関心のある エンティティー・タイプ のセットを定義します。 次に、抽出する情報のタイプを表す用語または語句を検索し、それらをエンティティー例としてラベル付けすることにより、独自の文書のコレクションにアノテーションを付けます。

エンティティー・タイプとラベル・エンティティーの例を定義した後、機械学習モデルを生成できます。 モデルは、例としてラベル付けした用語または語句がセンテンス内でどのように参照されているかに基づいて、関心のある情報について学習します。 モデルは、トレーニング・データでエンティティーの例を参照するコンテキストと言語から学習します。

エンティティー・タイプを認識できるように機械学習モデルを十分にトレーニングした後、モデルをエンリッチメントとして公開し、そのエンリッチメントを新規文書に適用することができます。 カスタム・エンティティー抽出エンリッチメントは、関心のあるエンティティー・タイプの出現箇所と同じ用語および類似した用語の新しい言及を認識し、タグを付けます。

エンティティー抽出を使用してドメイン・カスタマイズを AI アプリケーションに追加する方法について詳しくは、 Entity Extractor Feature in Watson Discovery v2 のブログ投稿を参照してください。

Discovery には、コレクションに直接適用できる組み込みの エンティティー ・エンリッチメントもあります。 一般的に知られている固有名詞を認識するためのトレーニングは必要ありません。 Watson NLP エンティティー・エンリッチメントについて詳しくは、 エンティティー を参照してください。

Knowledge Studioにエンティティー・タイプ・システムを既に作成していますか? エンティティー抽出トレーニング・データの開始点として、機械学習モデルに関連付けられたコーパスを使用できます。 詳しくは、 コーパスのインポート を参照してください。

エンティティー抽出プログラムを使用できる言語については、 言語サポート を参照してください。

エンティティー抽出プログラムの概要のビデオ

このビデオでは、カスタム・エンティティー・タイプを定義し、それらを使用してデータから関心のある用語を抽出する方法の概要を説明します。

動画の字幕を表示するには、YouTube.com で動画を開き「その他のアクション」 アイコンをクリックしてから、「トランスクリプトを開く (Open transcript)」 を選択します。

組み込みエンティティー・エンリッチメントに精通している場合は、 PersonLocation などの汎用カテゴリーに一致する用語をエンリッチメントが認識できることがわかります。 エンティティー抽出を使用して、意味のある用語または語句を構成するものを制御します。

以下のイメージは、 family members エンティティー・タイプ・メンションを認識するエンリッチメントがテキストから抽出する可能性がある用語を示しています。 この例は、ファミリー・メンバー・メンションとその他のエンティティー・メンション (組み込みエンティティー・エンリッチメントによって認識される) の両方がどのように予測されるかを示しています。

家族 (娘、姉妹、母) のメンションとエンティティー (ミスター・ベネット、ミスター・ビングレー、オランダ、ロングバーン) のメンションがラベル付けされた、プライドと偏見の抜粋です。
Labeled entity examples

この抜粋は、Jane Austen の「 プライドと偏見 」の第 3 章からのものです。

開始前に

Discovery に学習させるエンティティー・タイプのさまざまな例を含む文書を含むコレクションを検索または作成します。 抽出プログラムに学習させるには、エンティティー・タイプの例にラベルを付ける必要があります。 コレクションに有効な例が含まれている場合にのみ、例にラベルを付けることができます。 定義するすべてのエンティティー・タイプの例として機能する、多数のさまざまな用語を持つ文書を検索してみてください。

エンティティー抽出の追加

エンティティ抽出機能を追加するには、以下の手順に従います

  1. エンティティ抽出ツールを作成したいプロジェクトを開きます。

    プロジェクトには、ドメイン・データを表す文書を含むコレクションが少なくとも 1 つ必要です。

  2. 「改善とカスタマイズ (Improve and customize)」 ページの 「改善ツール (Improvement tools)」 パネルで、 「各ドメインの概念 (Teach domain concepts)」 を展開し、 「エンティティーの抽出 (Extract entities)」 をクリックします。

  3. **「新規」**をクリックします。

    IBM Watson® Knowledge Studio コーパスからエンティティー・タイプ・システムに基づくエンティティー抽出を作成する場合は、矢印をクリックして 「 Knowledge Studio コーパスのインポート」 を選択します。 次のステップについては、 Knowledge Studio コーパスのインポート を参照してください。

  4. 抽出プログラム名と説明 (オプション) を追加します。

    この名前は、モデル名として、およびモデルの公開時に作成されるエンリッチメントの名前として使用されます。 この名前は、「エンリッチメント (Enrichments)」ページにエンリッチメント名として表示されます。このページでは、自分と他のユーザーがエンリッチメントをコレクションに適用できます。 また、カスタム・エンティティーが見つかった文書の JSON 表現では、モデル名としても表示されます。 名前は、指定した大文字化とスペースで保管されます。

  5. ドメイン・データの代表的な文書を含むコレクションを選択します。

  6. コレクションの文書にラベルを付ける文書ビューに表示するフィールドを文書から選択します。

    • 「文書タイトル」 は、文書名としてページ・ヘッダーに表示されます。 extracted_metadata.filename フィールドに格納されているファイル名など、文書ごとに固有の値を持つフィールドを選択します。
    • 「文書本文」 は、エンティティー例にラベルを付ける場所です。 文書コンテンツの大部分を含むフィールド ( text フィールドなど) を選択します。

    は、 PP3.docx が文書タイトルであり、メイン・テキスト・パネルに本文フィールドが表示されていることを示しています。
    Label documents page

  7. 「作成」 をクリックします。

選択したコレクションの文書が 「文書にラベルを付ける」 ビューに表示されます。 コレクション内のこの文書および他の文書から Discovery に認識させるエンティティー・タイプの出現箇所にラベルを付けます。

ページの本文にテキストが表示されない場合は、ここで新しいエンティティー抽出プログラムを作成してやり直します。 今回は、 「文書本文」 フィールドの値を選択するときに、テキストを含むフィールドを処理済み文書から必ず選択してください。

エンティティー・タイプの定義

以下のステップを実行して、エンティティー・タイプを定義します。

  1. 「エンティティー・タイプの追加」 をクリックします。

  2. エンティティー・タイプ名とオプションの説明を追加します。

    データに有効な命名規則を使用してください。 組み込みエンティティー・エンリッチメントでは、最初の大文字を使用し、スペースは使用しません (例: EmailAddress)。 エンティティーを、他のエンリッチメントによって抽出されたエンティティーと区別するために、別の規則を使用することができます。

  3. オプション: このエンティティー・タイプの例としてラベル付けする文書内のテキストを強調表示するために使用する色を選択します。

    「ラベルの色」 パレットから色をクリックし、 「色の更新」 アイコンをクリックして、ある色から次の色にタブで移動できます。 カスタム・カラーを使用するには、その 16 進カラー・コード (#fff0f7) を指定します。

  4. 「作成」 をクリックします。

  5. このプロセスを繰り返して、抽出プログラムに認識させるすべてのエンティティー・タイプを追加します。

    エンティティー・タイプに対して何を追加すればよいかわからない場合は、まずコレクション内の文書を確認することをお勧めします。 コンテンツを確認することで、どの用語が重要な意味を持つかを感じ取ることができ、そのような用語をグループ化するための論理的な方法を探すことができます。

有意条件にラベルを付ける

「文書にラベルを付ける (Label documents)」 ビューで、コレクションから文書内の重要な用語を見つけ、それらのエンティティー・タイプを示すためにラベルを付けます。

文書のラベル付けを開始する前に、バルク・ラベル付けを有効にしておくかどうかを決定します。 バルク・ラベル機能は、文書にラベルを付けるプロセスを迅速化するための優れた方法です。 有効にすると、ラベル付けしたすべての用語が、文書内のすべての箇所で自動的にラベル付けされます。 それ以外の場合は、用語の各出現箇所に一度に 1 つずつラベルを付ける必要があります。

例にバルク・ラベルを付けない場合は、 「バルク・ラベル・エンティティーの例 (Bulk label entity examples)」 スイッチを 「オフ (Off)」 に設定します。 詳しくは、 一括でのラベル付けの例 を参照してください。

ラベル付けのヒント

始める前に、以下のヒントを確認してください。

  • ラベルを付ける文書コレクションには、代表的な文書セットが含まれている必要があります。 文書には、エンティティー抽出に認識させるエンティティー・タイプのさまざまな例が多数含まれている必要があります。 エンティティー抽出の作成を開始したときに選択したコレクションが要件を満たしていない場合は、ここで停止して、別の文書コレクションでやり直してください。
  • 明確に区別されるエンティティー・タイプを定義します。
  • 各エンティティー・タイプの少なくとも 40 個の例にラベルを付けることを目的としています。
  • エンティティー・タイプのすべての有効な例にラベルを付けます。 どのオカレンスもスキップしません。 プロセスを高速化するには、バルク・ラベル機能を使用します。

対象のラベル付けの例

定義したエンティティー・タイプの例を表す、文書内の用語にラベルを付けます。 1 つのドキュメントの処理が完了したら、ドキュメントの状況を 「進行中」 から *「完了」*に切り替えて、次のドキュメントに進みます。

エンティティー例にラベルを付けるには、以下のステップを実行します。

  1. 文書のテキストを確認します。 ラベルを付ける対象の例を探します。

    以下の表にいくつかの例を示します。

    エンティティー・タイプと例
    エンティティー・タイプ 文書内のラベル付けの例
    color 白、緑、紫
    自動車 コンバーチブル、SUV、セダン
    自動モデル エクスプローラー、シビック、ソレント
    自動メーカー フォード (起亜自動車)
    clothing シャツ、ブラウス、スコート
    計器 債券、株式、ETF、munis

    識別するエンティティー・タイプがまだ作成されていない場合は、そのエンティティー・タイプを追加します。 「エンティティー・タイプ」 パネルで、 「新規作成」 をクリックします。 エンティティー・タイプの追加について詳しくは、 エンティティー・タイプの定義 を参照してください。

  2. 最初に、 「エンティティー・タイプ」 パネルからエンティティー・タイプをクリックします。

  3. 文書本文で、エンティティーの例を表す単語または句を選択します。

    用語が選択され、用語に色ラベルが適用されます。 エンティティー・タイプ名の最初の 2 文字は、ラベル境界内に大文字の上付き文字で表示されます。 2 文字の ID とラベルの色の両方を使用して、例を表すエンティティー・タイプに関連付けることができます。

    文の中のワード「妻」にラベルが適用されていることを示します。
    A label is applied to an entity example

    この例のテキストは、 「エンティティー・タイプ」 パネルにも追加されます。 シェブロンをクリックして詳細を表示すると、例がリストされていることが分かります。 サンプル・テキストは、元のテキストで使用されている大文字化に関係なく、小文字で保存されます。

  4. 一括ラベル付けが有効になっている場合、現在の文書で検出され、ラベル付けされた用語の出現回数を示す通知が表示されます。

  5. コレクション内のすべての文書にある用語の出現箇所にラベルを付ける場合は、 「すべての文書に適用」 をクリックします。

    このオプションを有効にすると、コレクション内のすべての文書 (既にレビュー済みで完了のマークが付けられている文書を含む) で用語の出現箇所にラベルが付けられます。

    元に戻すことができないため、アクションの確認を求められます。 すべてのドキュメントに一括ラベル付けを適用することを選択するたびにアクションを確認する必要がない場合は、 「確認を要求しない (Do not ask for confirmation again)」 を選択します。 **「実行 (Run)」**をクリックします。

    バルク・ラベル付けの確認ダイアログ・ボックスを表示します。
    Bulk labeling configuration confirmation

    詳しくは、 一括でのラベル付けの例 を参照してください。

  6. 文書をスクロールして、抽出プログラムに認識させるすべてのエンティティー・タイプのすべての有効な例にラベルを付けます。

    エンティティーの例としてラベル付けする用語を検索できます。 詳しくは、 キーワードを使用した例の検索 を参照してください。

    機械学習モデルは、実行する用語としてラベル付けされていない用語からも同じように学習します。

    有効な例のラベル付けを怠ると、モデルは、その用語がそのコンテキストで使用されるときに、エンティティー・タイプの有効な言及ではないことを認識します。 場合によっては、省略することが適切です。 例えば、用語によっては、コンテキストによって異なる意味を持つものがあります。 間違ったコンテキストで使用されている用語にラベルを付けることは望ましくありません。 ただし、用語が正しいコンテキストで使用されていて、ラベルが付けられていない場合は、その用語を無視するようにモデルに教えることになります。 トレーニング・データに不整合があると、モデルの有効性が低下します。

    多数の例にラベルを付けると、エンティティー例の提案が表示されます。 エンティティーの例の提案を受け入れることも拒否することもできます。

    提案を受け入れるかどうかを確認するために表示されるプロンプトを示します。
    Decide whether to accept a suggestion

    提案の例を受け入れることは、ラベル付けプロセスを高速化するもう 1 つの方法です。 詳しくは、 エンティティーの例の提案 を参照してください。 提案に同意した後、用語に一括ラベルを付けることができます。

  7. 誤って誤った単語にラベルを付けたり、バルク・ラベル付けプロセスによって誤って単語にラベルを付けたりした場合は、そのラベルを削除できます。

    ラベル付きの単語の上にカーソルを移動して、 「この例を削除 (Delete this example)」 オプションが表示されたら、それをクリックします。 このメンションのみを削除するか、文書内のすべてのメンションを削除するかを選択できます。 選択を行い、 「削除」 をクリックします。

  8. 現在の文書内のすべてのエンティティの例にラベルを付けた後、文書ステータスを [進行中] から [完了] に変更します。

    コレクションの別の文書が表示されます。

  9. コレクション内の各文書内のエンティティー・タイプの例にラベルを付けます。

    ラベル付けプロセス中はいつでも、 「Save entity extractor」 をクリックして作業を保存できます。

  10. 現在の文書セットに十分な数の例がない場合は、さらに文書を追加できます。

    「文書リスト」 パネルで、 「文書の追加」 をクリックします。 このオプションは、コレクション内でさらに多くの文書が使用可能な場合にのみ使用できます。 最大20件の書類を追加できます。 すべてのドキュメントの一括ラベル付けが有効になっている場合、ラベルは新しく追加されたドキュメントに自動的に適用されます。

  11. コレクション内の必要な数の文書の例にラベルを付けた後、 「Save entity extractor」 をクリックし、 「Train extractor」 ページを開きます。

一括でのラベル付けの例

ほとんどのエンティティー例では、バルク・ラベル機能を有効にすると便利です。 異なるコンテキストで用語に複数の意味がある場合は、スキップすることをお勧めします。 その場合は、各オカレンスを個別に評価してください。 バルク・ラベル機能を有効にすると、自動的に追加されたラベルの正確度を確認し、必要に応じて文書の確認時に修正を行うことができます。

バルク・ラベル機能を有効にすると、現在の文書で見つかったエンティティー例の出現回数を示す通知が表示されます。 ラベル付けツールは、現在のページから他の文書にアクセスして、コレクションの他の文書に存在する出現回数を報告することができません。 ただし、メンション・カウントは 「エンティティー・タイプ」 パネルに表示されます。 最初に他の文書を開いたときに、メンション・カウントを調べて、自動的にラベル付けされたメンションの数を確認できます。

バルク・ラベル機能でオカレンスが欠落していましたか?

用語の出現箇所は、その用語が既にラベル付けされているのと同じ句に出現する場合はラベル付けされません。 例えば、次の文で用語の 2 番目の出現に対してバルク・ラベル機能がオンになっている場合、用語 husband の最初の出現にはラベルが付けられません。

重複する出現箇所に、バルク・ラベル機能によってラベルが付与されていない場合に表示されます。
Treatment of overlapping labels

エンティティーの例の提案

十分な数の例にラベルを付けると、推奨されるエンティティー・タイプの例が表示されます。 システムは、ラベル付けされた例のタイプから学習し、学習内容を適用して潜在的な新しい例を識別します。 例えば、 color エンティティー・タイプの例として redorangeyellowgreen、および blue にラベルを付けた後、 「Example suggestions」 パネルに、ラベル付けの推奨例として indigoviolet が表示される場合があります。 候補は、エンティティー・タイプの多くの例にラベルを付けるまで表示されません。

以下の例は、ファミリー・メンバーのメンションに対して行われる提案を示しています。

ファミリー・メンバー・エンティティーに関する提案を示します。
Entity example suggestions

一括ラベル付けの対象として選択した用語はラベル付けされず、代わりに提案として表示されることがあります。 以下の状況では、用語はスキップされます。

  • この用語は、文書のさまざまなセクション内のさまざまな名詞句に出現する可能性があります。 例えば、 father という用語は、名詞句 the kindest *father* および to her *father* に出現する可能性があります。 形容詞のある名詞句に単語が含まれている場合、意味が変わる可能性があります。 そのため、そのような用語は、自動的にラベル付けされるのではなく、推奨されることがあります。
  • 単語は、単独で、複数の単語による言及の一部として、有効な例である可能性があります。 たとえば、IBM という記述は、*International Business Machines, Corp.*という会社を指しているかもしれませんし、IBM Cloud Pak for Data のように製品名の一部として使われているかもしれません。 ただし、単語または句は 1 つの例にのみ含めることができます。 ラベルの例を重ね合わせることはできません。 したがって、どの提案例が最も正確であるかを選択する必要があります。 この例では、IBMという用語が製品名の一部として使われているので、Product エンティティ・タイプの例として完全なフレーズをラベル付けする方がより正確です。
  • サービスは、1 つの用語が複数のエンティティー・タイプの可能な例であることを認識する場合があります。 例えば、 top という語は、 最良の ことを意味する場合と、 シャツを意味する場合があります。

提案をさらに調査するには、その提案をクリックして、文書内のコンテキスト内の単語を表示します。 コンテキスト内で用語を参照すると、その出現箇所がラベル付けのための有効なエンティティー例であるかどうかを判断するのに役立ちます。

エンティティー抽出のラベル付きデータのエクスポート

エンティティー抽出のラベル付きデータを Discoveryからエクスポートできます。 エクスポートされたラベル付きデータは、 Watson Studio や自然言語処理 (NLP) などのサービスでの大規模言語モデル (LLM) のトレーニングまたは構築に使用できます。

ラベル付けされたデータをエクスポートするには、以下の手順に従います

  1. 「改善とカスタマイズ (Improve and customize)」 ページの 「改善ツール (Improvement tools)」 パネルで、 *「各ドメインの概念 (Teach domain concepts)」*を展開し、 *「エンティティーの抽出 (Extract entities)」*をクリックします。

  2. ラベル付きデータのエクスポート元のエンティティー抽出について、 「アクション」 アイコンをクリックし、 「ラベル付きデータのダウンロード」 を選択します。

    ラベル付きデータを含む圧縮ファイルがダウンロードされます。 圧縮ファイルには、以下のJSONファイルが含まれています。

    • labeled_data.json: テキストとラベルを含みます。 データ・フォーマットは、 Watson Natural Language Processing でのエンティティー抽出の入力データ・フォーマットに基づいています。 詳しくは、 入力データ・フォーマットを参照してください。
    • metadata.json: ワークスペースのメタデータとラベル付きデータが含まれます。

Knowledge Studio コーパスのインポート

インストール済みデプロイメントの場合、 4.6.2 リリースでインポート機能が追加されました。

IBM Watson® Knowledge Studio でアノテーションを付けられた文書のコーパスをインポートして、 Discoveryのエンティティー抽出プログラムのトレーニング・データとして使用できます。

Knowledge Studio で定義されたエンティティー・タイプは、 Discoveryに新規エンティティー・タイプとして表示されます。 エンティティー抽出モデルをカスタマイズするときに、インポートされた文書に引き続きアノテーションを付けることができます。

Knowledge Studio 機械学習モデルからのエンティティー・サブタイプおよび関係は表示されません。また、モデルに関連付けられているカスタム辞書も表示されません。

コーパスをインポートする前に、 Knowledge Studio から .zip ファイルとして文書セットをエクスポートする必要があります。 Knowledge Studio デプロイメント・タイプに基づいて、適切なエクスポート手順に従います。

別の Knowledge Studio ワークスペースにアップロードする文書にアノテーションを含めるには、文書セットとタイプ・システムの両方をダウンロードする必要がありますが、このユース・ケースでは同じことは当てはまりません。 文書セットのみを Discoveryにインポートします。 ドキュメント内のアノテーションはすべて Discoveryで再作成されます。 Knowledge Studio タイプ・システムは必要ありません。

Knowledge Studio コーパスをインポートするには、以下の手順を実行します。

  1. コーパスをインポートしたいプロジェクトを開きます。

  2. 「改善とカスタマイズ (Improve and customize)」 ページの 「改善ツール (Improvement tools)」 パネルで、 「各ドメインの概念 (Teach domain concepts)」 を展開し、 「エンティティーの抽出 (Extract entities)」 をクリックします。

  3. 「新規」 ボタンに関連付けられている矢印をクリックします。 次に、 「 Knowledge Studio コーパスのインポート」 をクリックします。

  4. 抽出プログラム名と説明 (オプション) を追加します。

    この名前は、モデル名として、およびモデルの公開時に作成されるエンリッチメントの名前として使用されます。 この名前は、「エンリッチメント (Enrichments)」ページにエンリッチメント名として表示されます。このページでは、自分と他のユーザーがエンリッチメントをコレクションに適用できます。 また、カスタム・エンティティーが見つかった文書の JSON 表現では、モデル名としても表示されます。 名前は、指定した大文字化とスペースで保管されます。

  5. 「アップロード」 をクリックし、 Knowledge Studioからエクスポートした .zip ファイルを参照して選択します。 「作成 (Create)」 をクリックします。

    アップロードしたアノテーション付き文書は、プロジェクト内の新規コレクションとしてではなく、エンティティー抽出ワークスペースとともに保管されます。 引き続き文書にアノテーションを付けることができます。

Discovery に、機械学習モデル・コーパスをインポートして処理する時間を与えます。 エンティティー抽出プログラムが作成されると、抽出プログラムが 「文書のラベル付け (Label documents)」 ページに開かれます。

抽出プログラムのトレーニング

文書にラベルを付けた後、エンティティー抽出モデルのトレーニングに使用されるトレーニング・データを確認します。

抽出器を訓練するには、次の手順を完了してください

  1. 拡張オプションを適用するかどうかを決定します。 ほとんどのモデルでは、これらのオプションを変更する必要はありません。

    「確認して終了 (Review and finish)」 ページから、以下のカスタマイズを行うことができます。

    • 担当者によってレビューされなかった文書をトレーニング・セットに含めます。

      通常、トレーニング・セットに含める候補にできるのは、ラベル付けされ、レビューされ、明示的に完了とマークされた個人の文書のみです。 ただし、完了のマークが付けられていない文書をトレーニング・セットに含めることを許可する場合は、許可することができます。

    • トレーニング・データを構成する文書セットに含まれる文書の比率を変更します。

      コレクションからの文書は、ランダムに以下のセットに分割されます。

      • トレーニング・セット: ラベルを付け、エンティティー抽出の機械学習モデルをトレーニングするために使用される文書。 トレーニング・セットの目的は、正しいラベルについて機械学習モデルに学習させることです。
      • テスト・セット: トレーニングされたモデルをテストするために使用される文書。 テストを実行した後、結果を確認し、モデルの問題が発生した領域を詳しく分析し、モデルのパフォーマンスを向上させる方法を見つけることができます。
      • ブラインド・セット: テストおよび改善の数回の反復が完了した後に定期的にモデルをテストするために確保され、使用される文書。 ブラインド・セット内の文書は意図的にテープ・オフされます。 テスト・セットからの文書を使用してモデルをテストし、結果を分析すると、基礎となるテスト文書に精通することになります。 テスト文書はモデルの改善のために反復的に使用されるため、間接的にモデルのトレーニングに影響を与えるようになります。 だからこそ、ブラインドセットの書類が重要になるのです。 ブラインド・セットを使用すると、モデルのバイアスのない評価を定期的に生成できます。

      デフォルトの分割では、機械学習トレーニングに一般的に使用される比率 (70 %-23 %-7%) が適用されます。

  2. 「Train extractor」 をクリックします。

抽出プログラムのトレーニング時に、 Discovery は、トレーニング・セットの文書を使用して機械学習モデルを作成します。 モデルが生成されると、テスト・セットからの文書に対してテストが自動的に実行されます。 レビューするテストの結果が表示されます。

トレーニングの問題のトラブルシューティング

考えられるエラー・メッセージとその対処方法について説明します。

トレーニング・データが大きすぎます

トレーニング・データに大容量のテキスト文書が含まれているか、データの処理に必要な多数のエンティティー・タイプおよびリソースが、サービス・インスタンスで使用可能なリソースよりも大きくなっています。 このエラーは、ワークスペースが文書化されたエンティティー抽出の制限を超えていない場合でも発生する可能性があります。 この問題を解決するには、以下のいずれかの方法をお試しください

  • 1 つ以上のエンティティー・タイプを削除して、トレーニング・データのサイズを小さくします。
  • トレーニング・データから余分な大きな文書を削除してください。 例えば、ラベル付き文書の 1 つが非常に大きい場合、その状況を 「完了」 から 「進行中」 に変更して、トレーニング・データから除外します。
  • トレーニング・セットに含まれる文書の数を減らしてください。 トレーニング・データのデフォルトの分割率 (70 %-23 %-7%) では、トレーニング・セット内の文書の 70% が使用されます。 トレーニング・セットで使用される文書のパーセンテージを、より小さい数に変更できます。 例えば、分割率を 60 %-33 %-7% に変更できます。
  • IBM Cloud Pak for DataIBM Software Hub サービスポッドをスケールアップすることで、デプロイ済みのサービスインスタンスの容量を増やします。

抽出プログラムの評価

作成したエンティティー抽出モデルのテスト実行からのメトリックを確認するには、 「Evalute 抽出プログラム」 タブをクリックします。

以下の表では、利用可能な評価指標について説明します。

メトリックの詳細
メトリック 説明
混同行列 アノテーションが付けられた文書セットの詳細な数値明細を提供する表。 これを使用して、機械学習モデルによってラベル付けされたエンティティー・タイプ・メンションを、トレーニング・データ内でラベル付けされたエンティティー・タイプ・メンションと比較します。
F1 スコア 適合率と再現率の間の最適なバランスに達したかどうかを測定します。 F1 スコアは、適合率値とリコール値の加重平均であると解釈できる。 F1 スコアの最高の値は 1、最悪の値は 0 である。 学習元のトレーニング・データがモデルに不足している場合は、全体のスコアが低くなります。
精度 抽出されたメンション全体のうち、正しいエンティティー・タイプとして分類されているものの数を測定します。 誤検出とは、エンティティーを抽出してはならないが、抽出された (Predicted = Positive、Actual = Negative) 場合のことです。 誤検出は通常、精度が低いことを意味します。
再現率 抽出する必要があるエンティティー・タイプ・メンションが抽出される頻度を測定します。 False Negative は、エンティティー・タイプを抽出する必要があるが、抽出されなかった場合です (Predicted = Negative、Actual = Positive)。 通常、False Negative は低いリコールを意味します。
  1. エクストラクター・モデルのテスト実行に関して提供されているメトリックを確認して、追加のトレーニングが必要かどうかを判断します。

  2. 「テスト・セット内のトレーニング結果を確認 (Review training results in test set)」 をクリックして、テスト結果をさらに詳細に検討します。

    テスト・セットの文書は、一方のパネルに表示された予測ラベルと、もう一方のパネルに表示されたグランド・トゥルースとともに表示されます。

    • 予測されたラベルは、エンティティー抽出がエンティティー・タイプとして識別し、ラベル付けした例です。
    • グランド・トゥルース には、個人がラベルを付けた例、または個人が一括でラベルを付けてレビューした例が含まれています。 グランド・トゥルース内のラベルは、正しいラベルと見なされます。

    モデルのパフォーマンスは、予測されたラベルがグランド・トゥルースにどの程度近いかに基づいて評価されます。

抽出プログラムの改善

以下の表に、一般的な問題に対する推奨される修正を示します。

改善アクション
問題点 問題を解決するためのアクション
全体のスコアが低い トレーニング・セット内にラベル付きの例がある文書が不足している可能性があります。 より多くの文書で、より多くの例にラベルを付けます。
低いリコール 抽出プログラムが見逃したエンティティー・タイプの新しい例を使用して、さらに多くの文書にラベルを付けます。
低い精度 よく混同されるエンティティー・タイプを探してください。 各エンティティー・タイプの追加の例を見つけてラベルを付け、エンティティー・エクストラクターがエンティティー・タイプを区別できるようにします。

トレーニング・データへの文書の追加

さらに書類を追加するには、以下の手順に従ってください

  1. 「文書のラベル付け」 タブを開きます。

  2. 「文書リスト」 パネルから、 「文書の追加」 を選択します。

    現在のコレクションからエンティティー抽出に追加できる文書が他にない場合、このボタンは無効になります。 コレクションにさらに文書を追加するには、コレクションの 「アクティビティー」 ページに移動して、 「データのアップロード」 タイルをクリックし、ファイルを参照して追加します。

ラベル付けの目的でコレクションから文書を選択して 文書リスト に表示することはできません。 ラベル付けする特定のタイプの文書がある場合は、エンティティー抽出プログラムの作成に使用できるコレクションに代表的な文書を追加することを検討してください。

トレーニング・データに含めることができる文書の数には制限があります。 ラベル付きのセクションとラベルなしのセクションの組み合わせを含む文書がトレーニング・データに含まれている場合、システムは、ラベルなしのセンテンスからいくつかの例をサンプリングする可能性があります。 サブサンプリングは、トレーニングに使用される正の例と負の例の数のバランスを取るのに役立ちます。 トレーニング・セット内の例のバランスを取ると、トレーニングのパフォーマンスが向上します。

エンリッチメントとしてのエンティティー抽出プログラムの公開

エンティティー抽出の準備ができたら、エンティティー抽出を発行します。 準備ができたらどうやってわかる? 改善を加えたいくつかのテストの実行後にスコアが変わらない場合は、モデルの準備ができています。 モデルを公開した後、戻って更新し、リトレーニングすることができます。

  1. 「Evaluate extractor」 ページで、 「Publish extractor」 をクリックします。
  2. データを適用するをクリックします。
  3. コレクションを選択してから、エンティティー抽出エンリッチメントを適用する文書フィールドを選択します。
  4. **「適用」**をクリックします。

エンティティー抽出のエクスポート

インストール済みデプロイメントの場合、エクスポート機能は 4.6.2 リリースで追加されました。

1 つのプロジェクトで作成およびデプロイするエンティティー抽出モデルは、同じサービス・インスタンス内の任意のプロジェクトからコレクションに適用できるエンリッチメントとして使用できます。

別のサービス・インスタンスからのプロジェクトでエンティティー抽出モデルを使用する場合は、エンティティー抽出プログラムをエクスポートできます。 他の場所で使用するには、 「インポートされた ML モデルを使用してカスタム用語を検索する」 から機械学習モデルを作成する手順に従います。 別のプロジェクトにインポートするエンティティー抽出の編集を続行することはできません。

エクスポートするエンティティー抽出は、完全にトレーニングされている必要があります。

エンティティ抽出器をエクスポートするには、以下の手順に従います

  1. エクスポートするエンティティー抽出が含まれているプロジェクトを開きます。

  2. 「改善とカスタマイズ (Improve and customize)」 ページの 「改善ツール (Improvement tools)」 パネルで、 *「各ドメインの概念 (Teach domain concepts)」*を展開し、 「エンティティーの抽出 (Extract entities)」 をクリックします。

  3. 「エンティティー抽出 (Entity extractors)」 リストから、エクスポートするエンティティー抽出を見つけます。

  4. 抽出プログラムの 「アクション」 アイコンをクリックし、 「モデルのダウンロード」 を選択してモデルをシステムに保存します。

    「モデルのダウンロード」 オプションは、モデルがトレーニングされていない限り使用できません。

エンティティー抽出モデルは、.ent ファイルとして保存されます。 これを別のサービス・インスタンスのプロジェクトに機械学習モデルとしてインポートし、コレクションに適用することができます。 モデルのインポートについて詳しくは、 Use imported ML models to find custom terms を参照してください。

エンティティー抽出エンリッチメントの適用

抽出プログラムを公開するときには、抽出プログラムを適用するフィールドを指定します。 エンリッチを後で別のフィールドまたは複数のフィールドに適用することにした場合は、以下の手順に従って適用できます。

  1. ナビゲーション・パネルで、 「コレクションの管理」 をクリックします。
  2. エンリッチを適用するコレクションをクリックして開きます。
  3. 「エンリッチメント」 をクリックします。
  4. リストでエンティティー抽出プログラム名を見つけ、エンリッチを適用するフィールドを選択します。
  5. **「変更を適用して再処理 (Apply changes and reprocess)」**をクリックします。

コレクションからエンティティー抽出プログラム・エンリッチメントを削除する方法について詳しくは、 エンリッチメントの管理 を参照してください。

エンティティー抽出の出力

エンリッチが文書内のカスタム・エンティティーの 1 つを認識すると、文書の JSON 表現の enriched_text.entities セクションに項目が追加されます。 このセクションには、カスタム・モデルによって認識されるエンティティーのオカレンスと、組み込みのエンティティー・エンリッチメントによって認識されるエンティティーが含まれます。 組み込みエンリッチメントは、 Watson NLP サービスを使用して、 Natural Language Understanding タイプ・システムの一部であるエンティティーを識別します。 組み込みエンティティー・エンリッチメントについて詳しくは、 エンティティー を参照してください。

以下の JSON 出力は、ファミリー・メンバーのメンションを認識する 文献 という名前のカスタム・モデルによって生成されます。

カスタム・エンティティー・メンションを含む文書の JSON 出力を示します。
JSON representation of a custom entity mention

一定期間にわたるパフォーマンスのモニター

エンティティー抽出プログラム・モデルはいつでもリトレーニングできます。 モデルをトレーニングするたびに、パフォーマンス・メトリック・スコアを確認して、最新の変更によってモデルのスコアが増加または減少するかどうかを判別します。

  1. テスト実行を別のテスト実行と比較するには、 「スコア履歴の表示」 をクリックします。

    履歴ビューには、過去 5 回のトレーニング実行が表示されます。

    最近の 5 回を超えるトレーニング実行のスコア情報を保持するには、メトリックをコンマ区切り値形式でエクスポートし、別のアプリケーションでスコアを追跡します。 表形式の表示アイコン 表形式の表示アイコン をクリックし、 「CSV 形式でダウンロード」 をクリックします。

後続のトレーニング実行でスコアが低くなる場合は、そのバージョンのモデルを公開しないでください。

エンティティー抽出の削除

エンティティー抽出が使用されていない場合は、その抽出を削除できます。これは、エンティティー抽出から発行されたエンリッチメントがコレクションに適用されないことを意味します。

例えば、計画に許可されている抽出プログラムの最大数の制限に達した場合に、エンティティー抽出プログラムを削除することができます。

制限は、プロジェクトごとではなく、サービス・インスタンスごとに定義されることに注意してください。 新規エンティティー・エクストラクターを作成できないが、現行プロジェクトに最大数のエクストラクターがない場合は、同じサービス・インスタンス内の他のプロジェクトを確認してください。 削除できる他のプロジェクトで使用されていないエンティティー抽出プログラムが存在する可能性があります。

  1. 使用されているすべてのコレクションから、削除するエンティティー抽出から公開されたエンティティー抽出エンリッチメントを削除します。

    詳しくは、 エンリッチメントの削除 を参照してください。

  2. 「改善とカスタマイズ (Improve and customize)」 ページの 「改善ツール (Improvement tools)」 パネルで、 「各ドメインの概念 (Teach domain concepts)」 を展開し、 「エンティティーの抽出 (Extract entities)」 をクリックします。

  3. 削除するエンティティー抽出を見つけ、 「アクション」 アイコンをクリックし、 「削除」 を選択します。

エンティティー抽出の制限

サービスインスタンスごとに作成できるエンティティ抽出子の数は、 Discovery プランの種類によって異なります。

エンティティー抽出計画の制限
プラン サービス・インスタンスごとのエンティティー抽出[1] 抽出ごとの最大エンティティー・タイプ数 トレーニング・データ内の最大文書数
Cloud Pak for Data Unlimited 18 1.000
プレミアム 10 18 1.000
エンタープライズ 10 18 1.000
プラス (試用版を含む) 3 12 200

  1. この数値は、コレクションに適用されているかどうかにかかわらず、サービス・インスタンスの公開されたエンティティー抽出エンリッチメントの数 (インポートされたエンティティー抽出モデルからのものを含む) を反映します。 ↩︎