エンティティ認識の認知スキル (V2)

エンティティ認識スキル (V2) によってテキストからさまざまな種類のエンティティが抽出されます。 このスキルでは、Azure AI サービスの Text Analytics によって提供される機械学習モデルが使用されます。

重要

エンティティの認識スキル (V2) (Microsoft.Skills.Text.EntityRecognitionSkill) は廃止となり、Microsoft.Skills.Text.V3.EntityRecognitionSkill に置き換えられました。 「非推奨のスキル」に記載されている推奨事項に従い、サポートされているスキルに移行してください。

Note

処理の頻度を増やす、ドキュメントを追加する、または AI アルゴリズムを追加することによってスコープを拡大する場合は、課金対象の Azure AI サービス リソースをアタッチする必要があります。 Azure AI サービスの API を呼び出すとき、および Azure AI Search のドキュメント解析段階の一部として画像抽出するときに、料金が発生します。 ドキュメントからのテキストの抽出には、料金はかかりません。

組み込みスキルの実行は、既存の Azure AI サービスの従量課金制の価格で課金されます。 画像抽出の価格は、Azure AI Search の価格ページで説明されています。

@odata.type

Microsoft.Skills.Text.EntityRecognitionSkill

データ制限

レコードのサイズは、String.Length で測定して 50,000 文字以下にする必要があります。 データをキー フレーズ エクストラクターに送信する前に分割する必要がある場合は、テキスト分割スキルの使用を検討してください。 テキスト分割スキルを使用する場合は、最適なパフォーマンスを得るためにページの長さを 5000 に設定します。

スキルのパラメーター

パラメーターでは大文字と小文字が区別されます。パラメーターはすべて任意です。

パラメーター名 説明
categories 抽出する必要があるカテゴリの配列。 可能なカテゴリの型は、"Person""Location""Organization""Quantity""Datetime""URL""Email" です。 カテゴリが指定されていない場合、すべての型が返されます。
defaultLanguageCode 入力テキストの言語コード。 次の言語がサポートされます。ar, cs, da, de, en, es, fi, fr, hu, it, ja, ko, nl, no, pl, pt-BR, pt-PT, ru, sv, tr, zh-hans すべての言語ですべてのエンティティ カテゴリがサポートされているわけではありません。以下の注意事項を参照してください。
minimumPrecision 0 から 1 の値。 (namedEntities 出力の) 信頼度スコアがこの値よりも小さい場合は、エンティティは返されません。 既定値は 0 です。
includeTypelessEntities 現在のカテゴリに当てはまらない既知のエンティティを認識するには、true に設定します。 認識されたエンティティは、entities 複合出力フィールドに返されます。 たとえば、"Windows 10" は既知のエンティティ (製品) ですが、"製品" はサポートされているカテゴリではないため、このエンティティはエンティティ出力フィールドに含まれます。 既定値は false です

スキルの入力

入力名 説明
languageCode 省略可。 既定値は "en" です。
text 分析対象テキストです。

スキルの出力

Note

言語によっては、一部のエンティティ カテゴリがサポートされていません。 "Person""Location"、および "Organization" エンティティ カテゴリの種類は、上記の言語のすべてでサポートされています。 "Quantity""Datetime""URL"、および "Email" の種類の抽出をサポートするのは、deenesfr、および zh-hans のみです。 詳細については、「Text Analytics API の言語と地域のサポート」を参照してください。

出力名 説明
persons 各文字列が人物の名前を表す文字列の配列。
locations 各文字列が場所を表す文字列の配列。
organizations 各文字列が組織を表す文字列の配列。
quantities 各文字列が数量を表す文字列の配列。
dateTimes 各文字列が DateTime (テキストに表示される) 値を表す文字列の配列。
urls 各文字列が URL を表す文字列の配列。
emails 各文字列が電子メールを表す文字列の配列。
namedEntities 次のフィールドが含まれる複合型の配列。
  • category
  • value (実際のエンティティ名)
  • offset (テキスト内で見つかった場所)
  • confidence (値が高いほど、実際のエンティティに近づきます)
entities 複合型の配列。テキストから抽出されたエンティティに関する豊富な情報と次のフィールドが含まれます。
  • name (実際のエンティティ名。これは "正規化された" 形式を表します)
  • wikipediaId
  • wikipediaLanguage
  • wikipediaUrl (エンティティの Wikipedia ページのリンク)
  • bingId
  • type (認識されたエンティティのカテゴリ)
  • subType (特定のカテゴリのみで利用可能。エンティティ型がより詳しく表示されます)
  • matches (次を含む複合コレクション)
    • text (エンティティの未加工テキスト)
    • offset (それが見つかった場所)
    • length (未加工エンティティ テキストの長さ)

定義例

  {
    "@odata.type": "#Microsoft.Skills.Text.EntityRecognitionSkill",
    "categories": [ "Person", "Email"],
    "defaultLanguageCode": "en",
    "includeTypelessEntities": true,
    "minimumPrecision": 0.5,
    "inputs": [
      {
        "name": "text",
        "source": "/document/content"
      }
    ],
    "outputs": [
      {
        "name": "persons",
        "targetName": "people"
      },
      {
        "name": "emails",
        "targetName": "contact"
      },
      {
        "name": "entities"
      }
    ]
  }

サンプル入力

{
    "values": [
      {
        "recordId": "1",
        "data":
           {
             "text": "Contoso corporation was founded by John Smith. They can be reached at contact@contoso.com",
             "languageCode": "en"
           }
      }
    ]
}

サンプル出力

{
  "values": [
    {
      "recordId": "1",
      "data" : 
      {
        "persons": [ "John Smith"],
        "emails":["contact@contoso.com"],
        "namedEntities": 
        [
          {
            "category":"Person",
            "value": "John Smith",
            "offset": 35,
            "confidence": 0.98
          }
        ],
        "entities":  
        [
          {
            "name":"John Smith",
            "wikipediaId": null,
            "wikipediaLanguage": null,
            "wikipediaUrl": null,
            "bingId": null,
            "type": "Person",
            "subType": null,
            "matches": [{
                "text": "John Smith",
                "offset": 35,
                "length": 10
            }]
          },
          {
            "name": "contact@contoso.com",
            "wikipediaId": null,
            "wikipediaLanguage": null,
            "wikipediaUrl": null,
            "bingId": null,
            "type": "Email",
            "subType": null,
            "matches": [
            {
                "text": "contact@contoso.com",
                "offset": 70,
                "length": 19
            }]
          },
          {
            "name": "Contoso",
            "wikipediaId": "Contoso",
            "wikipediaLanguage": "en",
            "wikipediaUrl": "https://en.wikipedia.org/wiki/Contoso",
            "bingId": "349f014e-7a37-e619-0374-787ebb288113",
            "type": null,
            "subType": null,
            "matches": [
            {
                "text": "Contoso",
                "offset": 0,
                "length": 7
            }]
          }
        ]
      }
    }
  ]
}

このスキルの出力のエンティティに対して返されるオフセットは、Text Analytics API から直接返されることに注意してください。つまり、これらを使用して元の文字列にインデックスを作成する場合は、正しい内容を抽出するために .NET の StringInfo クラスを使用する必要があります。 詳細については、こちらで確認できます

警告のケース

ドキュメントの言語コードがサポートされていない場合、警告が返され、エンティティは抽出されません。

関連項目