Treinar e usar modelos personalizados
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:
- 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.jsonficheiro para cada formulário de exemplo (gerado usando a função Analisar documentos). - Um único
fields.jsonficheiro que descreve os campos que pretende extrair. - Um
labels.jsonficheiro para cada formulário de exemplo, mapeando os campos para a sua localização no formulário.
- Um
- Gerar uma URL de assinatura de acesso partilhada (SAS) para o contentor.
- Utilize a função REST API do modelo Build ou o método equivalente do SDK.
- 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.