Treinar e usar modelos personalizados
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:
- 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.jsonarquivo para cada formulário de exemplo (gerado usando a função Analisar documento). - Um único
fields.jsonarquivo que descreve os campos que você deseja extrair. - Um arquivo
labels.jsonpara cada formulário de amostra, mapeando os campos para sua localização específica no formulário.
- Um
- Gere uma URL de SAS (assinatura de acesso compartilhado) para o contêiner.
- Use a função Build model da API REST ou o método equivalente do SDK.
- 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.