Habilidade cognitiva de Reconhecimento de Entidade (v2)

A habilidade de Reconhecimento de Entidade (v2) extrai entidades de diferentes tipos do texto. Essa habilidade usa os modelos de machine learning fornecidos pela Análise de Texto nos serviços de IA do Azure.

Importante

A habilidade de Reconhecimento de Entidade (v2) (Microsoft.Skills.Text.EntityRecognitionSkill) foi descontinuada e substituída porMicrosoft.Skills.Text.V3.EntityRecognitionSkill. Siga as recomendações em Habilidades preteridas para migrar para uma habilidade compatível.

Observação

À medida que você expande o escopo aumentando a frequência de processamento, adicionando mais documentos ou adicionando mais algoritmos de IA, será necessário anexar um recurso de serviços de IA do Azure faturável. Os encargos são acumulados ao chamar APIs nos serviços de IA do Azure e para extração de imagem como parte do estágio de quebra de documento na Pesquisa de IA do Azure. Não há encargos para extração de texto em documentos.

A execução de habilidades internas é cobrada pelo preço pago conforme o uso dos serviços de IA do Azure existentes. O preço de extração de imagem é descrito na página de preços da IA do Azure Search.

@odata.type

Microsoft.Skills.Text.EntityRecognitionSkill

Limites de dados

O tamanho máximo de um registro deve ser de 50.000 caracteres conforme medido por String.Length. Se você precisar interromper o backup de seus dados antes de enviá-la para o extrator de frases-chave, considere o uso de habilidade de Texto Dividido. Se você usar uma habilidade de divisão de texto, defina o comprimento da página como 5000 para obter o melhor desempenho.

Parâmetros de habilidades

Os parâmetros diferenciam maiúsculas de minúsculas e são todos opcionais.

Nome do parâmetro Descrição
categories Matriz de categorias que devem ser extraídas. Os tipos possíveis de categoria: "Person", "Location", "Organization", "Quantity", "Datetime", "URL", "Email". Se nenhuma categoria for fornecida, todos os tipos são retornados.
defaultLanguageCode Código de idioma do texto de entrada. Há suporte para vários idiomas: ar, cs, da, de, en, es, fi, fr, hu, it, ja, ko, nl, no, pl, pt-BR, pt-PT, ru, sv, tr, zh-hans. Não há suporte para todas as categorias de entidade em todos os idiomas; veja a observação abaixo.
minimumPrecision Um valor entre 0 e 1. Se a pontuação de confiança (na saída namedEntities) for menor do que esse valor, a entidade não será retornada. O padrão é 0.
includeTypelessEntities Defina como true se você quiser reconhecer entidades conhecidas que não se ajustam às categorias atuais. As entidades reconhecidas são retornadas no entities campo complexo de saída. Por exemplo, "Windows 10" é uma entidade (um produto) conhecida, mas como "produtos" não é uma categoria compatível, essa entidade seria incluída no campo de saída de entidades. O padrão é false

Entradas de habilidades

Nome de entrada Descrição
languageCode Opcional. O padrão é "en".
text O texto para analisar.

Saídas de habilidades

Observação

Não há suporte para todas as categorias de entidade em todos os idiomas. Os tipos de categoria de entidade "Person", "Location" e "Organization" têm suporte para a lista completa de idiomas acima. Somente os pares de idiomas de, en, es, fre zh-Hans dão suporte à extração dos tipos "Quantity", "Datetime", "URL" e "Email". Para obter mais informações, consulte Suporte a idiomas e regiões para o API de Análise de Texto.

Nome de saída Descrição
persons Uma matriz de cadeias de caracteres onde cada cadeia de caracteres representa o nome de uma pessoa.
locations Uma matriz de cadeias de caracteres onde cada cadeia de caracteres representa um local.
organizations Uma matriz de cadeias de caracteres onde cada cadeia de caracteres representa uma organização.
quantities Um array de strings onde cada cadeia de caracteres representa uma quantidade.
dateTimes Uma matriz de cadeia de caracteres onde cada cadeia de caracteres representa um valor DateTime (como aparece no texto).
urls Uma matriz de cadeia de caracteres onde cada cadeia de caracteres representa um URL
emails Uma matriz de cadeia de caracteres onde cada cadeia de caracteres representa um e-mail
namedEntities Uma matriz de tipos complexos que contêm os seguintes campos:
  • category
  • valor (nome de entidade real)
  • deslocamento (o local onde ele foi encontrado no texto)
  • confiança (um maior valor significa que é mais provável se tratar de uma entidade real)
entities Uma matriz de tipos complexos que contém informações ricas sobre as entidades extraídas do texto, com os seguintes campos
  • name (o nome real da entidade. Isso representa um formulário "normalizado" )
  • wikipediaId
  • wikipediaLanguage
  • wikipediaUrl (um link para a página da Wikipedia para a entidade)
  • bingId
  • tipo (a categoria da entidade reconhecida)
  • subType (disponível apenas para algumas categorias; oferece uma exibição mais granular do tipo de entidade)
  • correspondências (uma coleção complexa que contém)
    • texto (texto bruto para a entidade)
    • deslocamento (o local onde ele foi encontrado)
    • comprimento (o comprimento do texto bruto de entidade)

Definição de exemplo

  {
    "@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"
      }
    ]
  }

Entrada de exemplo

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

Saída de exemplo

{
  "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
            }]
          }
        ]
      }
    }
  ]
}

Observe que os deslocamentos retornados para entidades na saída dessa habilidade são retornados diretamente da API de Análise de Texto, o que significa que, se você os estiver usando para indexar na cadeia de caracteres original, deverá usar a classe StringInfo no .NET para extrair o conteúdo correto. Encontre mais detalhes aqui.

Casos de aviso

Se o código do idioma do documento não for suportado, um aviso será retornado e nenhuma entidade será extraída.

Confira também