Treinar e usar modelos personalizados

Concluído

Sugestão

Consulte a guia Texto e imagens para obter mais detalhes!

Quando os modelos pré-construídos não cobrem os seus tipos específicos de documentos, pode treinar modelos personalizados para extrair dados dos seus próprios formulários. O Azure Document Intelligence suporta aprendizagem automática supervisionada, onde se rotulam documentos de exemplo com os campos que se querem extrair, e o serviço treina um modelo para reconhecer esses campos em novos documentos.

Tipos de modelos personalizados

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

Modelos de templates personalizados

Modelos de templates personalizados baseiam-se num template visual consistente para a extração de dados rotulados. Funcionam melhor para formulários estruturados onde o layout é estático de uma instância de documento para outra, como questionários, candidaturas ou formulários governamentais padrão.

Os modelos de template extraem com precisão pares chave-valor rotulados, caixas de seleção, tabelas, regiões e assinaturas. O treino demora apenas alguns minutos e são suportadas mais de 100 línguas. Como os modelos de template são rápidos de treinar e económicos de operar, constituem um bom ponto de partida quando os seus documentos têm um layout visual uniforme.

Modelos neurais personalizados

Modelos neurais personalizados utilizam aprendizagem profunda e são afinados com os seus dados rotulados. Combinam características de layout e linguagem para extrair campos de documentos estruturados, semi-estruturados e não estruturados. Os modelos neurais suportam:

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

Os modelos neurais oferecem maior precisão do que os modelos modelo, especialmente para documentos semi-estruturados ou não estruturados, onde o layout varia entre instâncias. No entanto, demoram mais tempo a treinar e consomem mais recursos.

Escolha entre modelos template e modelos neurais

Ao decidir que tipo de modelo personalizado usar, considere as desvantagens:

Fator Modelo personalizado Neural personalizado
Melhor para Formas estruturadas com um layout visual consistente Documentos semi-estruturados ou não estruturados com layouts variados
Tempo de treino Minutos Mais longo (depende do tamanho do conjunto de dados)
Custo do treino Baixo Mais alto
Accuracy Alta para formulários de layout fixo; diminui quando o layout varia Maior no geral, especialmente para documentos com variação de formato
Suporte de idiomas 100+ línguas Menos línguas (consulte a documentação para o suporte atual)
Suporte a funcionalidades Pares chave-valor, marcas de seleção, tabelas, regiões, assinaturas Campos sobrepostos, deteção de assinatura, confiança em tabelas/linhas/células

Sugestão

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

Classificadores personalizados

Modelos de classificação personalizados identificam o tipo de documento antes de invocar um modelo de extração. Podes usar um classificador para encaminhar documentos recebidos para o modelo de extração apropriado quando estás a lidar com vários tipos de formulários.

Preparar um modelo personalizado

Para treinar um modelo de extração personalizado:

  1. Armazene formulários de exemplo num contentor de blob Azure, juntamente com ficheiros JSON contendo informações de layout e campos de etiquetas:
    • Um ocr.json ficheiro para cada formulário de exemplo (gerado usando a função Analisar documentos).
    • Um único fields.json ficheiro que descreve os campos que pretende extrair.
    • Um labels.json ficheiro para cada formulário de exemplo, mapeando os campos para a sua localização no formulário.
  2. Gerar uma URL de assinatura de acesso partilhada (SAS) para o contentor.
  3. Utilize a função REST API do modelo Build ou o método equivalente do SDK.
  4. Use a função Get model REST API para recuperar o ID treinado do modelo.

Também pode treinar modelos personalizados visualmente usando o Document Intelligence Studio, conforme descrito na unidade Use the Document Intelligence Studio .

Sugestão

Use pelo menos cinco ou seis formulários de exemplo para formação. Um conjunto de dados maior e mais variado produz modelos mais precisos.

Usar um modelo personalizado

Para extrair dados de formulários com um modelo personalizado, chame a função Analisar documento com o ID do seu modelo. Pode usar um SDK suportado 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 um conjunto de páginas com informações sobre o documento.

Modelos compostos

Podes combinar vários modelos personalizados num único modelo composto. Quando submete um documento a um modelo composto, a Inteligência de Documentos classifica-o para determinar o modelo de componentes mais apropriado e depois devolve os resultados de extração desse modelo. Esta abordagem é útil quando se lidam com múltiplos tipos de forma, cada um requerendo o seu próprio modelo de extração.

Mais informações