Kognitivní dovednost vlastního vyhledávání entit

Dovednost Vlastní vyhledávání entit se používá k detekci nebo rozpoznávání entit, které definujete. Během provádění sady dovedností dovednost hledá text z vlastního seznamu slov a frází definovaných uživatelem. Dovednost používá tento seznam k označení všech odpovídajících entit nalezených ve zdrojových dokumentech. Dovednost také podporuje stupeň přibližného párování, které lze použít k vyhledání shod, které jsou podobné, ale nejsou přesné.

Poznámka:

Tato dovednost není vázána na rozhraní API služeb Azure AI, ale vyžaduje klíč služeb Azure AI, který umožňuje více než 20 transakcí. Tato dovednost se měří službou Azure AI Search.

@odata.type

Microsoft.Skills.Text.CustomEntityLookupSkill

Omezení dat

  • Maximální podporovaná velikost vstupního záznamu je 256 MB. Pokud potřebujete data před odesláním do vlastní dovednosti vyhledávání entit rozdělit, zvažte použití dovednosti Rozdělení textu. Pokud používáte dovednost rozdělení textu, nastavte délku stránky na 5 000 pro nejlepší výkon.
  • Maximální velikost definice vlastní entity je 10 MB, pokud je zadána jako externí soubor zadaný prostřednictvím parametru entitiesDefinitionUri.
  • Pokud jsou entity definovány vložené pomocí parametru inlineEntitiesDefinition, maximální velikost je 10 kB.

Parametry dovedností

Parametry rozlišují malá a velká písmena.

Název parametru Popis
entitiesDefinitionUri Cesta k externímu souboru JSON nebo CSV obsahujícímu veškerý cílový text, který se má shodovat. Tato definice entity se čte na začátku spuštění indexeru; Žádné aktualizace tohoto souboru v polovině spuštění nebudou realizovány, dokud se nespustí další spuštění. Tento soubor musí být přístupný přes PROTOKOL HTTPS. Informace o očekávaném schématu CSV nebo JSON najdete v následujícím formátu definice vlastní entity.
inlineEntitiesDefinition Vložené definice entit JSON Tento parametr nahrazuje parametr entitiesDefinitionUri, pokud je k dispozici. Není možné poskytnout více než 10 kB konfigurace. Očekávané schéma JSON najdete níže v definici vlastní entity.
defaultLanguageCode (Volitelné) Kód jazyka vstupního textu použitého k tokenizaci a delineaci vstupního textu. Podporují se následující jazyky: da, de, en, es, fi, fr, it, pt. Výchozí hodnota je angličtina (en). Pokud předáte languagecode-countrycode formát, použije se jenom languagecode část formátu.
globalDefaultCaseSensitive (Volitelné) Výchozí hodnota rozlišují malá a velká písmena pro dovednost. Pokud defaultCaseSensitive není zadaná hodnota entity, stane se defaultCaseSensitive tato hodnota hodnotou dané entity.
globalDefaultAccentSensitive (Volitelné) Výchozí hodnota citlivá na zvýraznění dovednosti Pokud defaultAccentSensitive není zadaná hodnota entity, stane se defaultAccentSensitive tato hodnota hodnotou dané entity.
globalDefaultFuzzyEditDistance (Volitelné) Výchozí přibližná úprava hodnoty vzdálenosti pro dovednost. Pokud defaultFuzzyEditDistance není zadaná hodnota entity, stane se defaultFuzzyEditDistance tato hodnota hodnotou dané entity.

Vstupy dovedností

Název vstupu Popis
text Text, který chcete analyzovat.
languageCode Nepovinné. Výchozí hodnota je "en".

Výstupy dovedností

Název výstupu Popis
entities Pole komplexních typů, které obsahuje následující pole:
  • "name": Entita nejvyšší úrovně; představuje "normalizovaný" formulář.
  • "id": Jedinečný identifikátor entity definované v definici vlastní entity.
  • "description": Popis entity definovaný uživatelem ve formátu Custom Entity Definition Format
  • "type": Typ entity definovaný uživatelem ve formátu Custom Entity Definition Format
  • "subtype": Podtyp entity definovaný uživatelem ve formátu Vlastní definice entity.
  • "matches": Pole komplexních typů, které obsahují:
    • "text" ze zdrojového dokumentu
    • "offset" umístění, kde byla nalezena shoda,
    • "length" textu měřeného v znaznachu
    • "matchDistance" nebo počet znaků, které se liší mezi shodou a entitou "name".

Formát definice vlastní entity

Existují tři přístupy pro poskytnutí seznamu vlastních entit pro dovednost Vyhledávání vlastních entit:

  • . Soubor CSV (kódovaný UTF-8)
  • . Soubor JSON (kódovaný UTF-8)
  • Vložené v definici dovednosti

Pokud je definiční soubor v souboru . CSV nebo . Do souboru JSON zadejte úplnou cestu v parametru entitiesDefinitionUri. Soubor se stáhne na začátku každého spuštění indexeru. Musí zůstat přístupný, dokud indexer nezastaví.

Pokud používáte vloženou definici, zadejte ji pod parametrem dovednosti inlineEntitiesDefinition.

Poznámka:

Indexery podporují specializované režimy analýzy souborů JSON a CSV. Pokud používáte dovednost vyhledávání vlastních entit, ponechte vlastnost parsingMode nastavenou na výchozí. Dovednost očekává JSON a CSV v neparsovaném stavu.

Formát CSV

Definici vlastních entit, které se mají vyhledat v souboru hodnot oddělených čárkami (CSV), můžete zadat cestu k souboru a nastavit ji v parametru dovednosti "entitiesDefinitionUri". Cesta by měla být v umístění https. Definiční soubor může mít velikost až 10 MB.

Formát CSV je jednoduchý. Každý řádek představuje jedinečnou entitu, jak je znázorněno níže:

Bill Gates, BillG, William H. Gates
Microsoft, MSFT
Satya Nadella 

V tomto případě se dají vrátit tři entity (Bill Gates, Satya Nadella, Microsoft). Aliasy následují za hlavní entitou. Shoda u aliasu je součástí primární entity. Pokud je například řetězec "William H. Gates" nalezen v dokumentu, vrátí se shoda pro entitu Bill Gates.

Formát JSON

Můžete také zadat definici vlastních entit, které se mají hledat v souboru JSON. Formát JSON poskytuje větší flexibilitu, protože umožňuje definovat odpovídající pravidla pro jednotlivé termíny. Můžete například zadat přibližnou vzdálenost (Damerau-Levenshtein vzdálenost) pro každý termín, nebo jestli se má rozlišovat malá a velká písmena nebo ne.

Stejně jako u souborů CSV musíte zadat cestu k souboru JSON a nastavit ji v parametru dovednosti entitiesDefinitionUri. Cesta by měla být v umístění https. Definiční soubor může mít velikost až 10 MB.

Nejzásadnější definicí vlastního seznamu entit JSON může být seznam entit, které se mají shodovat:

[ 
    { 
        "name" : "Bill Gates"
    }, 
    { 
        "name" : "Microsoft"
    }, 
    { 
        "name" : "Satya Nadella"
    }
]

Složitější definice můžou poskytovat uživatelem definované ID, popis, typ, podtyp a aliasy. Pokud se termín aliasu shoduje, vrátí se také entita:

[ 
    { 
        "name" : "Bill Gates",
        "description" : "Microsoft founder." ,
        "aliases" : [ 
            { "text" : "William H. Gates", "caseSensitive" : false },
            { "text" : "BillG", "caseSensitive" : true }
        ]
    }, 
    { 
        "name" : "Xbox One", 
        "type": "Hardware",
        "subtype" : "Gaming Device",
        "id" : "4e36bf9d-5550-4396-8647-8e43d7564a76",
        "description" : "The Xbox One product"
    }, 
    { 
        "name" : "LinkedIn" , 
        "description" : "The LinkedIn company", 
        "id" : "differentIdentifyingScheme123", 
        "fuzzyEditDistance" : 0 
    }, 
    { 
        "name" : "Microsoft" , 
        "description" : "Microsoft Corporation", 
        "id" : "differentIdentifyingScheme987", 
        "defaultCaseSensitive" : false, 
        "defaultFuzzyEditDistance" : 1, 
        "aliases" : [ 
            { "text" : "MSFT", "caseSensitive" : true }
        ]
    } 
] 

Následující tabulky popisují konfigurační parametry, které můžete nastavit při definování vlastních entit:

Název pole Popis
name Popisovač entity nejvyšší úrovně. Shody ve výstupu dovednosti budou seskupené podle tohoto názvu a měly by představovat "normalizovanou" formu nalezeného textu.
description (Volitelné) Toto pole lze použít jako průchozí pro vlastní metadata o odpovídajících textech. Hodnota tohoto pole se zobrazí se každou shodou entity ve výstupu dovednosti.
type (Volitelné) Toto pole lze použít jako průchozí pro vlastní metadata o odpovídajících textech. Hodnota tohoto pole se zobrazí se každou shodou entity ve výstupu dovednosti.
subtype (Volitelné) Toto pole lze použít jako průchozí pro vlastní metadata o odpovídajících textech. Hodnota tohoto pole se zobrazí se každou shodou entity ve výstupu dovednosti.
id (Volitelné) Toto pole lze použít jako průchozí pro vlastní metadata o odpovídajících textech. Hodnota tohoto pole se zobrazí se každou shodou entity ve výstupu dovednosti.
caseSensitive (Volitelné) Výchozí hodnota je false. Logická hodnota označující, jestli by porovnání s názvem entity mělo být citlivé na velikost písmen znaků. Ukázkové shody nerozlišující malá a velká písmena "Microsoft" můžou být: microsoft, microSoft, MICROSOFT
accentSensitive (Volitelné) Výchozí hodnota je false. Logická hodnota označující, zda mají být zvýrazněná a nepřipravená písmena, jako je é a e, by měla být shodná.
fuzzyEditDistance (Volitelné) Výchozí hodnota je 0. Maximální hodnota 5. Označuje přijatelný počet divergentních znaků, které by stále představovaly shodu s názvem entity. Vrátí se nejmenší možná fuzziness pro každou danou shodu. Pokud je například vzdálenost úprav nastavená na hodnotu 3, "Windows 10" by stále odpovídala "Windows", "Windows10" a "windows 7".
Pokud je citlivost písmen nastavená na hodnotu false, rozdíly mezi případy se nezapočítávají do tolerance fuzziness, ale jinak.
defaultCaseSensitive (Volitelné) Změní výchozí hodnotu citlivosti písmen pro tuto entitu. Dá se použít ke změně výchozí hodnoty všech hodnot s rozlišováním velkých a malých písmen.
defaultAccentSensitive (Volitelné) Změní výchozí hodnotu citlivosti zvýraznění pro tuto entitu. Dá se použít ke změně výchozí hodnoty všech aliasů s diakrititivními hodnotami.
defaultFuzzyEditDistance (Volitelné) Změní výchozí hodnotu přibližné úpravy vzdálenosti pro tuto entitu. Dá se použít ke změně výchozí hodnoty všech aliasů fuzzyEditDistance hodnot.
aliases (Volitelné) Pole složitých objektů, které lze použít k určení alternativního pravopisu nebo synonym pro název kořenové entity.
Vlastnosti aliasu Popis
text Alternativní pravopis nebo reprezentace názvu cílové entity.
caseSensitive (Volitelné) Funguje stejně jako parametr "caseSensitive" výše, ale vztahuje se pouze na tento jeden alias.
accentSensitive (Volitelné) Funguje stejně jako parametr "accentSensitive" výše, ale vztahuje se pouze na tento jeden alias.
fuzzyEditDistance (Volitelné) Funguje stejně jako parametr "fuzzyEditDistance" výše, ale vztahuje se pouze na tento jeden alias.

Vložený formát

V některých případech může být vhodnější vložit definici vlastní entity tak, aby byla vložena s definicí dovednosti. Můžete použít stejný formát JSON, který je popsaný výše, s tím rozdílem, že je součástí definice dovednosti. Vložené lze definovat pouze konfigurace, které mají velikost menší než 10 kB (serializovaná velikost).

Definice ukázkové dovednosti

Ukázková definice dovednosti používající vložený formát je znázorněna níže:

  {
    "@odata.type": "#Microsoft.Skills.Text.CustomEntityLookupSkill",
    "context": "/document",
    "inlineEntitiesDefinition": 
    [
      { 
        "name" : "Bill Gates",
        "description" : "Microsoft founder." ,
        "aliases" : [ 
            { "text" : "William H. Gates", "caseSensitive" : false },
            { "text" : "BillG", "caseSensitive" : true }
        ]
      }, 
      { 
        "name" : "Xbox One", 
        "type": "Hardware",
        "subtype" : "Gaming Device",
        "id" : "4e36bf9d-5550-4396-8647-8e43d7564a76",
        "description" : "The Xbox One product"
      }
    ],    
    "inputs": [
      {
        "name": "text",
        "source": "/document/content"
      }
    ],
    "outputs": [
      {
        "name": "entities",
        "targetName": "matchedEntities"
      }
    ]
  }

Alternativně můžete odkazovat na definiční soubor externích entit. Ukázková definice dovednosti pomocí entitiesDefinitionUri formátu je znázorněna níže:

  {
    "@odata.type": "#Microsoft.Skills.Text.CustomEntityLookupSkill",
    "context": "/document",
    "entitiesDefinitionUri": "https://myblobhost.net/keyWordsConfig.csv",    
    "inputs": [
      {
        "name": "text",
        "source": "/document/content"
      }
    ],
    "outputs": [
      {
        "name": "entities",
        "targetName": "matchedEntities"
      }
    ]
  }

Ukázková definice indexu

Tato část obsahuje ukázkovou definici indexu. Entity i shody jsou pole komplexních typů. Pro každý dokument můžete mít více entit a více shod pro každou entitu.

{
  "name": "entities",
  "type": "Collection(Edm.ComplexType)",
  "fields": [
    {
      "name": "name",
      "type": "Edm.String",
      "facetable": false,
      "filterable": false,
      "retrievable": true,
      "searchable": true,
      "sortable": false,
    },
    {
      "name": "id",
      "type": "Edm.String",
      "facetable": false,
      "filterable": false,
      "retrievable": true,
      "searchable": false,
      "sortable": false,
    },
    {
      "name": "description",
      "type": "Edm.String",
      "facetable": false,
      "filterable": false,
      "retrievable": true,
      "searchable": true,
      "sortable": false,
    },
    {
      "name": "type",
      "type": "Edm.String",
      "facetable": true,
      "filterable": true,
      "retrievable": true,
      "searchable": false,
      "sortable": false,
    },
    {
      "name": "subtype",
      "type": "Edm.String",
      "facetable": true,
      "filterable": true,
      "retrievable": true,
      "searchable": false,
      "sortable": false,
    },
    {
      "name": "matches",
      "type": "Collection(Edm.ComplexType)",
      "fields": [
        {
          "name": "text",
          "type": "Edm.String",
          "facetable": false,
          "filterable": false,
          "retrievable": true,
          "searchable": true,
          "sortable": false,
        },
        {
          "name": "offset",
          "type": "Edm.Int32",
          "facetable": true,
          "filterable": true,
          "retrievable": true,
          "sortable": false,
        },
        {
          "name": "length",
          "type": "Edm.Int32",
          "facetable": true,
          "filterable": true,
          "retrievable": true,
          "sortable": false,
        },
        {
          "name": "matchDistance",
          "type": "Edm.Double",
          "facetable": true,
          "filterable": true,
          "retrievable": true,
          "sortable": false,
        }
      ]
    }
  ]
}

Ukázková vstupní data

{
    "values": [
      {
        "recordId": "1",
        "data":
           {
             "text": "The company, Microsoft, was founded by Bill Gates. Microsoft's gaming console is called Xbox",
             "languageCode": "en"
           }
      }
    ]
}

Ukázkový výstup

  { 
    "values" : 
    [ 
      { 
        "recordId": "1", 
        "data" : { 
          "entities": [
            { 
              "name" : "Microsoft", 
              "description" : "This document refers to Microsoft the company", 
              "id" : "differentIdentifyingScheme987", 
              "matches" : [ 
                { 
                  "text" : "microsoft", 
                  "offset" : 13, 
                  "length" : 9, 
                  "matchDistance" : 0 
                }, 
                { 
                  "text" : "Microsoft",
                  "offset" : 49, 
                  "length" : 9, 
                  "matchDistance" : 0
                }
              ] 
            },
            { 
              "name" : "Bill Gates",
              "description" : "William Henry Gates III, founder of Microsoft.", 
              "matches" : [
                { 
                  "text" : "Bill Gates",
                  "offset" : 37, 
                  "length" : 10,
                  "matchDistance" : 0 
                }
              ]
            }
          ] 
        } 
      } 
    ] 
  } 

Upozornění

"Reached maximum capacity for matches, skipping all further duplicate matches."

Toto upozornění se vygeneruje, pokud je počet zjištěných shod větší než maximální povolený počet. Nebudou vráceny žádné duplicitní shody. Pokud potřebujete vyšší prahovou hodnotu, můžete vytvořit lístek podpory s žádostí o pomoc s případem individuálního použití.

Viz také