Document AI Workbench — Extrator de documentos personalizado

1. Introdução

A Document AI é uma solução para compreensão de dados não estruturados, como documentos, e-mails e assim por diante, que facilita o entendimento, a análise e o consumo desses dados.

Com o Document AI Workbench, é possível criar modelos totalmente personalizados usando seus próprios dados de treinamento para alcançar maior acurácia no processamento de documentos.

Neste laboratório, você vai criar um processador de extração de documentos personalizado, importar um conjunto de dados, rotular documentos de exemplo e treinar o processador.

O conjunto de dados do documento usado neste laboratório faz parte de um W-2 (declaração fiscal dos EUA) falso da Kaggle com uma CC0: licença de domínio público.

Pré-requisitos

Este codelab se baseia no conteúdo apresentado em outros codelabs da Document AI.

Recomendamos que você conclua os codelabs a seguir antes de continuar.

O que você vai aprender

  • Como criar um processador do extrator de documentos personalizado.
  • Como rotular os dados de treinamento da Document AI usando a ferramenta de anotação.
  • Como treinar uma nova versão do modelo.
  • Como avaliar a acurácia da nova versão do modelo.

O que é necessário

  • Um projeto do Google Cloud
  • Um navegador, como o Chrome ou o Firefox

2. Etapas da configuração

Este codelab parte do princípio de que você concluiu as etapas de configuração da Document AI listadas no Codelab básico.

Conclua as etapas a seguir antes de continuar:

3. Crie um processador

Primeiro, crie um processador do extrator de documentos personalizado para usar neste laboratório.

  1. No console, navegue até a página de visão geral da Document AI.

DocAIOverviewConsole

  1. Clique em Criar processador personalizado e selecione Extrator de documentos personalizado.

docai-custom-codelab-02

  1. Nomeie como codelab-custom-extractor ou de outra maneira, desde que você se lembre. Em seguida, selecione a região mais próxima na lista.

docai-custom-codelab-03

  1. Clique em Criar para criar o processador. Assim, você exibe a página de aspectos gerais do processador.

docai-custom-codelab-04

4. Crie um conjunto de dados

Para treinar o processador, vamos criar um conjunto de dados de treinamento e teste para ajudar o processador a identificar as entidades que queremos extrair.

  1. Na página "Visão geral do processador", clique em Configurar seu conjunto de dados.

docai-custom-codelab-04

  1. Agora você deve estar na página Configurar conjunto de dados. Caso queira especificar o próprio bucket para armazenar os documentos e rótulos de treinamento, clique em Show Advanced Options. Caso contrário, clique em Continuar.

docai-custom-codelab-05

  1. Aguarde a criação do conjunto de dados para ser direcionado para a página de Treinamento.

docai-custom-codelab-07

5. Importe um documento de teste

Agora importe o PDF de amostra do W2 para o conjunto de dados.

  1. Clique em Importar documentos.

docai-custom-codelab-08

  1. Há um PDF de amostra para você usar neste laboratório. Copie e cole o link a seguir na caixa Caminho de origem. Deixe a "Divisão de dados" como "Não atribuída" por enquanto. Deixe todas as outras caixas desmarcadas. Clique em Importar.
cloud-samples-data/documentai/codelabs/custom/extractor/pdfs

docai-custom-codelab-09

  1. Aguarde a importação do documento. Isso deve levar menos de um minuto.
  2. Quando a importação for concluída, você verá o documento na página Treinamento.

docai-custom-codelab-10

6. Crie rótulos

Como estamos criando um novo tipo de processador, é preciso criar rótulos personalizados para informar à Document AI quais campos queremos extrair.

  1. Clique em Editar esquema no canto inferior esquerdo.

docai-custom-codelab-11

  1. Agora você deve estar no console de gerenciamento de esquema.

docai-custom-codelab-12

  1. Crie os rótulos a seguir usando o botão Criar rótulo.

Nome

Tipo de dado

Ocorrência

CONTROL_NUMBER

Número

Obrigatória várias vezes

EMPL_SSN

texto simples

Obrigatória várias vezes

EMPLR_ID_NUMBER

texto simples

Obrigatória várias vezes

EMPLR_NAME_ADDRESS

Endereço

Obrigatória várias vezes

FEDERAL_INCOME_TAX_WH

Dinheiro

Obrigatória várias vezes

SS_TAX_WH

Dinheiro

Obrigatória várias vezes

SS_WAGES

Dinheiro

Obrigatória várias vezes

WAGES_TIPS_OTHER_COMP

Dinheiro

Obrigatório várias vezes

  1. O console vai ficar assim quando for concluído. Clique em Salvar quando terminar.

docai-custom-codelab-13

  1. Clique na seta para retornar à página Treinamento. Observe que os rótulos criados aparecem no canto inferior esquerdo.

docai-custom-codelab-14

7. Rotule o documento de teste

Agora vamos identificar elementos do texto e rótulos das entidades que queremos extrair. Esses rótulos são usados para treinar o modelo para analisar essa estrutura de documento específica e identificar os tipos corretos.

  1. Clique duas vezes no documento que você importou anteriormente para acessar o console de rotulagem. A aparência será semelhante a esta.

docai-custom-codelab-15

  1. Clique na "Caixa delimitadora" e destaque o texto "1173038" e atribuir o rótulo CONTROL_NUMBER. É possível usar o filtro de texto para pesquisar nomes de rótulos.

docai-custom-codelab-16

  1. Faça a mesma coisa para a outra instância de CONTROL_NUMBER. Depois de ser rotulada, o resultado será este.

docai-custom-codelab-17

  1. Destaque todas as instâncias dos valores textuais a seguir e atribua os rótulos apropriados.

Nome do rótulo

Texto

EMPLR_ID_NUMBER

24-3188810

FEDERAL_INCOME_TAX_WH

19127.2

SS_TAX_WH

5093.71

SS_WAGES

66584.46

WAGES_TIPS_OTHER_COMP

56081.18

EMPL_SSN

714-32-2105

EMPLR_NAME_ADDRESS

Adams, Chase and Gilbert Inc 972 Gonzalez Dam South Katherine NC 95869-5178

  1. Quando concluído, o documento rotulado deve ficar assim. Clique na caixa delimitadora do documento ou no nome/valor do rótulo no menu lateral esquerdo para ajustar esses rótulos. Clique em Marcar como rotulado quando terminar de rotular e volte para o console de gerenciamento do conjunto de dados.

docai-custom-codelab-20

8. Atribua o documento ao conjunto de treinamento

Você está de volta ao console de gerenciamento do conjunto de dados. Observe que o número de documentos com e sem rótulos e o número de instâncias por rótulo mudaram.

docai-custom-codelab-21

  1. É preciso atribuir esse documento ao conjunto de treinamento ou teste. Clique no documento e depois em Atribuir ao conjunto. Em seguida, clique em Treinamento.

docai-custom-codelab-22

  1. Observe que os números da Divisão de dados mudaram.

docai-custom-codelab-23

9. Importe os dados pré-rotulados

Os processadores personalizados da Document AI precisam de no mínimo 10 documentos nos conjuntos de treinamento e teste, além de 10 instâncias de cada rótulo em cada conjunto.

Recomendamos que cada conjunto tenha pelo menos 50 documentos e 50 instâncias de cada rótulo, para melhor desempenho. Mais dados de treinamento geralmente significam maior acurácia.

Rotular manualmente todos os documentos vai demorar muito tempo, então você pode importar alguns documentos pré-rotulados para este laboratório.

É possível importar arquivos de documentos pré-rotulados no formato Document.json. Eles podem ser resultantes da chamada de um processador e da verificação da acurácia usando Human in the loop (HITL).

aside negative

OBSERVAÇÃO: ao importar dados pré-rotulados, é altamente recomendado revisar manualmente as anotações antes do treinamento de um modelo.

  1. Clique em Importar documentos.

docai-custom-codelab-24

  1. Copie e cole o caminho do Cloud Storage a seguir e atribua-o ao conjunto de Treinamento.
cloud-samples-data/documentai/codelabs/custom/extractor/training
  1. Clique em Adicionar outra pasta. Depois, copie e cole o caminho do Cloud Storage a seguir e atribua-o ao conjunto de Teste.
cloud-samples-data/documentai/codelabs/custom/extractor/test

docai-custom-codelab-25

  1. Clique em Importar e aguarde os documentos. Isso vai demorar mais do que da última vez porque há mais documentos para processar. Isso deve levar cerca de 6 minutos. Você pode sair desta página e continuar mais tarde.

docai-custom-codelab-26

  1. Após a conclusão, os documentos devem aparecer na página de Treinamento.

docai-custom-codelab-27

10. Treine o modelo

Agora está tudo pronto para treinar o extrator de documentos personalizado.

  1. Clique em Treinar nova versão

docai-custom-codelab-28

  1. Dê à versão um nome que você vai lembrar, como codelab-custom-1. Em "Método de treinamento", selecione "Treinar do zero".

docai-custom-codelab-29

  1. (Opcional) Também é possível selecionar Exibir estatísticas de rótulos para conferir métricas sobre os rótulos do conjunto de dados.

docai-custom-codelab-30

  1. Clique em Iniciar treinamento para começar o processo de treinamento. Você será redirecionado para a página de gerenciamento do conjunto de dados. Confira o status do treinamento no lado direito. O treinamento leva algumas horas para ser concluído. Você pode sair desta página e continuar mais tarde.

docai-custom-codelab-31

  1. Clique no nome da versão para acessar a página Gerenciar versões, que mostra o ID da versão e o status atual do job de treinamento.

docai-custom-codelab-32

11. Teste a nova versão do modelo

Após a conclusão do job de treinamento (nos testes, levou cerca de 1 hora), é possível testar a nova versão do modelo e começar a usá-la para previsões.

  1. Acesse a página Gerenciar versões. Aqui é possível conferir o status atual e a pontuação F1.

docai-custom-codelab-33

  1. É preciso implantar essa versão do modelo antes que ela possa ser usada. Clique nos pontos verticais do lado direito e selecione Implantar versão.

docai-custom-codelab-34

  1. Selecione Implantar na janela pop-up e aguarde a implantação da versão. Esse processo leva alguns minutos. Depois da implantação, é possível definir essa versão como a padrão.

docai-custom-codelab-35

  1. Depois da conclusão da implantação, acesse a guia Avaliar. Nessa página, confira as métricas de avaliação, incluindo a pontuação F1, precisão e recall do documento completo, bem como de rótulos individuais. Leia mais sobre essas métricas na documentação do AutoML.

docai-custom-codelab-36

  1. Faça o download do arquivo PDF pelo link abaixo. É uma amostra do W2 que não foi incluída no conjunto de treinamento nem de teste.

  1. Clique em Fazer upload de documento de teste e selecione o arquivo PDF.
  2. As entidades extraídas vão ficar assim.

docai-custom-codelab-37

12. Opcional: rotule automaticamente documentos recém-importados

Depois de implantar uma versão do processador treinado, use a Rotulagem automática para poupar tempo ao importar novos documentos.

  1. Na página Treinar, clique em Importar documentos.
  2. Copie e cole o caminho a seguir. Esse diretório contém 5 PDFs W2 sem rótulo. Na lista suspensa Divisão de dados, selecione Treinamento.
    cloud-samples-data/documentai/Custom/W2/AutoLabel
    
  3. Na seção Rotulagem automática, marque a caixa de seleção Importar com a rotulagem automática.
  4. Selecione uma versão do processador atual para rotular os documentos.
  • Por exemplo: 2af620b2fd4d1fcf
  1. Clique em Importar e aguarde os documentos. Você pode sair desta página e continuar mais tarde.
  • Depois de importados, os documentos aparecem na página Treinar, na seção Rotulados automaticamente.
  1. Não é possível usar documentos com rótulos automáticos para treinamento ou teste sem marcá-los como rotulados. Acesse a seção Rotulados automaticamente para conferir os documentos com rótulos automáticos.
  2. Selecione o primeiro documento para acessar o console de rotulagem.
  3. Verifique se os rótulos, as caixas delimitadoras e os valores estão corretos. Rotule todos os valores que foram omitidos.
  4. Selecione Marcar como rotulado quando terminar.
  5. Repita a verificação de cada documento com rótulo automático e volte à página Treinar para usar os dados para o treinamento.

13. Conclusão

Parabéns, você usou corretamente a Document AI para treinar um processador do extrator de documentos personalizado. Agora você pode usar esse processador para analisar documentos nesse formato da mesma maneira que faria com qualquer processador especializado.

Consulte o Codelab de processadores especializados para analisar como lidar com a resposta de processamento.

Limpeza

Para evitar cobranças dos recursos usados neste tutorial na conta do Google Cloud, siga estas etapas:

  • No console do Cloud, acesse a página Gerenciar recursos.
  • Na lista de projetos, selecione o projeto e clique em "Excluir".
  • Na caixa de diálogo, digite o ID do projeto e clique em "Encerrar" para excluí-lo.

Recursos

Licença

Este conteúdo está sob a licença Atribuição 2.0 Genérica da Creative Commons.