Treinar e usar modelos personalizados

Concluído

Quando modelos predefinidos não abrangem seus tipos de documento específicos, você pode treinar modelos personalizados para extrair dados de seus próprios formulários. O Azure Document Intelligence dá suporte ao aprendizado de máquina supervisionado, em que você rotula documentos de exemplo com os campos que deseja extrair e o serviço treina um modelo para reconhecer esses campos em novos documentos.

Tipos de modelo personalizados

O Azure Document Intelligence oferece dois tipos de modelos de extração personalizados, além de um modelo de classificação:

Modelos personalizados de template

Modelos de template personalizados dependem de um template visual consistente para extrair dados rotulados. Eles funcionam melhor para formulários estruturados em que o layout é estático de uma instância de documento para a próxima, como questionários, aplicativos ou formulários governamentais padrão.

Os modelos de modelo extraem com precisão pares chave-valor rotulados, marcas de seleção, tabelas, regiões e assinaturas. O treinamento leva apenas alguns minutos e há suporte para mais de 100 idiomas. Modelos de template são rápidos para treinar e econômicos para executar, portanto são um bom ponto de partida quando os documentos têm um layout visual uniforme.

Modelos neurais personalizados

Modelos neurais personalizados usam aprendizado profundo e são refinados com base nos seus dados rotulados. Eles combinam recursos de layout e linguagem para extrair campos de documentos estruturados, semiestruturados e não estruturados. Suporte a modelos neurais:

  • Campos sobrepostos
  • Detecção de assinatura
  • Confiança em nível de tabela, linha e célula

Os modelos neurais oferecem maior precisão do que os modelos de modelo, especialmente para documentos semiestruturados ou não estruturados em que o layout varia entre instâncias. No entanto, eles levam mais tempo para treinar e consumir mais recursos.

Escolher entre modelos e modelos neurais

Ao decidir qual tipo de modelo personalizado usar, considere as compensações:

Fator Modelo personalizado Neural personalizado
Mais adequado para Formulários estruturados com um layout visual consistente Documentos semiestruturados ou não estruturados com layouts variados
Tempo de treinamento Minutos Mais longo (depende do tamanho do conjunto de dados)
Custo de treinamento Baixo Superior
Exatidão Alta para formulários de layout fixo; diminui quando o layout varia Maior no geral, especialmente para documentos com variação de formato
Suporte a idiomas Mais de 100 idiomas Menos idiomas (verifique a documentação para suporte atual)
Suporte a funcionalidades Pares chave-valor, marcas de seleção, tabelas, regiões, assinaturas Campos sobrepostos, detecção de assinatura, confiança de tabelas/linhas/células

Tip

Comece com um modelo de modelo personalizado se os formulários tiverem um layout visual consistente. É mais rápido e mais barato treinar. Se a precisão for insuficiente ou os documentos variarem em formato, alterne para um modelo neural personalizado.

Classificadores personalizados

Modelos de classificação personalizados identificam o tipo de um documento antes de invocar um modelo de extração. Você pode usar um classificador para rotear documentos de entrada para o modelo de extração apropriado ao lidar com vários tipos de formulário.

Treinar um modelo personalizado

Para treinar um modelo de extração personalizado:

  1. Armazene formulários de exemplo em um contêiner de blob do Azure, juntamente com arquivos JSON que contêm informações de campo de layout e rótulo:
    • Um ocr.json arquivo para cada formulário de exemplo (gerado usando a função Analisar documento).
    • Um único fields.json arquivo que descreve os campos que você deseja extrair.
    • Um arquivo labels.json para cada formulário de amostra, mapeando os campos para sua localização específica no formulário.
  2. Gere uma URL de SAS (assinatura de acesso compartilhado) para o contêiner.
  3. Use a função Build model da API REST ou o método equivalente do SDK.
  4. Use a função de API REST Get model para recuperar o ID do modelo treinado.

Você também pode treinar modelos personalizados visualmente usando o Document Intelligence Studio, conforme descrito na unidade Usar o Document Intelligence Studio .

Tip

Use pelo menos cinco a seis formulários de exemplo para treinamento. Um conjunto de dados maior e mais variado produz modelos mais precisos.

Usar um modelo personalizado

Para extrair dados de formulário com um modelo personalizado, chame a função Analisar documento com a ID do modelo. Você pode usar um SDK com suporte ou a API REST.

C#

string endpoint = "<endpoint>";
string apiKey = "<apiKey>";
AzureKeyCredential credential = new AzureKeyCredential(apiKey);
DocumentAnalysisClient client = new DocumentAnalysisClient(new Uri(endpoint), credential);

string modelId = "<modelId>";
Uri fileUri = new Uri("<fileUri>");

AnalyzeDocumentOperation operation = await client.AnalyzeDocumentFromUriAsync(WaitUntil.Completed, modelId, fileUri);
AnalyzeResult result = operation.Value;

Python

endpoint = "YOUR_DOC_INTELLIGENCE_ENDPOINT"
key = "YOUR_DOC_INTELLIGENCE_KEY"

model_id = "YOUR_CUSTOM_BUILT_MODEL_ID"
formUrl = "YOUR_DOCUMENT"

document_analysis_client = DocumentAnalysisClient(
    endpoint=endpoint, credential=AzureKeyCredential(key)
)

task = document_analysis_client.begin_analyze_document_from_url(model_id, formUrl)
result = task.result()

Uma resposta bem-sucedida contém um analyzeResult objeto com o conteúdo extraído e uma matriz de páginas contendo informações sobre o documento.

Modelos compostos

Você pode combinar vários modelos personalizados em um único modelo composto. Quando você envia um documento para um modelo composto, o Document Intelligence o classifica para determinar o modelo de componente mais apropriado e retorna os resultados de extração desse modelo. Essa abordagem é útil quando você lida com vários tipos de formulário que exigem seu próprio modelo de extração.

Saiba mais