O que é processamento de documentos?
O processamento de documentos é o processo de automatizar a extração de dados estruturados de documentos. Isso pode ser para qualquer documento, como uma fatura, um currículo, carteiras de identidade, etc. A parte desafiadora aqui não é apenas o OCR. Existem muitas opções disponíveis a baixo custo que podem extrair texto e fornecer a localização. O verdadeiro desafio é rotular esses trechos de texto de maneira precisa e automática.
Impacto comercial do processamento de documentos
Vários setores dependem fortemente do processamento de documentos para suas operações diárias. As organizações financeiras precisam de acesso aos registros da SEC, registros de seguros, uma empresa de comércio eletrônico ou cadeia de suprimentos pode precisar de acesso às faturas que estão sendo usadas, e a lista continua. A precisão dessas informações é tão importante quanto a economia de tempo, por isso sempre recomendamos o uso de métodos avançados de aprendizagem profunda que generalizem mais e sejam mais precisos.
De acordo com este relatório da PwC, [link] mesmo a quantidade mais rudimentar de extração de dados estruturados pode ajudar a economizar de 30 a 50% do tempo gasto pelos funcionários na cópia e colagem manual de dados de PDFs em planilhas do Excel. Modelos como o LayoutLM certamente não são rudimentares; eles foram construídos como agentes extremamente inteligentes, capazes de extrair dados precisos em escala, em diferentes casos de uso. Mesmo com muitos de nossos próprios clientes, reduzimos o tempo necessário para extrair dados manualmente de 20 minutos por documento para menos de 10 segundos. Esta é uma mudança massiva, que permite que os trabalhadores sejam mais produtivos e tenham um rendimento geral mais elevado.
Então, onde a IA semelhante ao LayoutLM pode ser aplicada? Na Nanonets, usamos essa tecnologia para
- Automatizando o processamento de faturas
- Extração de dados de tabela
- Extração de dados do formulário
- Retomar análise
e muitos outros casos de uso.
Por que LayoutLM?
Como um modelo de aprendizagem profunda entende se um determinado trecho de texto é a descrição de um item em uma fatura ou o número da fatura? Simplificando, como um modelo aprende a atribuir rótulos corretamente?
Um método é usar incorporações de texto de um modelo de linguagem massivo como BERT ou GPT-3 e executá-lo por meio de um classificador – embora isso não seja muito eficaz. Há muitas informações que não podem ser avaliadas apenas por meio de texto. Ou pode-se fazer uso de informações baseadas em imagens. Isso foi conseguido usando os modelos R-CNN e Faster R-CNN. No entanto, isso ainda não utiliza integralmente as informações disponíveis nos documentos. Outra abordagem utilizada foi com Redes Neurais Convolucionais de Grafos, que combinavam informações locacionais e textuais, mas não levavam em consideração informações de imagem.
Então, como usamos todas as três dimensões da informação, ou seja, o texto, a imagem e também a localização de um determinado texto? É aí que entram modelos como o LayoutLM. Apesar de ser uma área de pesquisa ativa há muitos anos, o LayoutLM foi um dos primeiros modelos que obteve sucesso combinando as peças para criar um modelo singular que realiza rotulagem usando informações posicionais, informações baseadas em texto, e também informações de imagem.
Tutorial do LayoutLM
Este artigo pressupõe que você entenda o que é um modelo de linguagem. Se não, não se preocupe, escrevemos um artigo sobre isso também! Se você quiser saber mais sobre o que são modelos de transformadores e o que é atenção, aqui é um artigo incrível de Jay Alammar.
Supondo que já tenhamos resolvido essas coisas, vamos começar com o tutorial. Usaremos o artigo LayoutLM original como referência principal.
Extração de texto OCR
A primeira coisa que fazemos com um documento é extrair as informações baseadas em texto do documento e encontrar suas respectivas localizações. Por localização, nos referimos a algo chamado “caixa delimitadora”. Uma caixa delimitadora é um retângulo que encapsula o trecho de texto na página.
Na maioria dos casos, assume-se que a caixa delimitadora tem origem no canto superior esquerdo e que o eixo x positivo é direcionado da origem para a direita da página, e o eixo y positivo é direcionado da origem para na parte inferior da página, sendo um pixel considerado a unidade de medida.
Incorporações de idioma e localização
A seguir, usamos cinco camadas de incorporação diferentes. Uma delas é codificar as informações relacionadas ao idioma – ou seja, incorporações de texto.
Os outros quatro são reservados para incorporações de localização. Supondo que conhecemos os valores de xmin, ymin, xmax e ymax, podemos determinar toda a caixa delimitadora (se você não consegue visualizá-lo, aqui está um link para você). Essas coordenadas são passadas através de suas respectivas camadas de incorporação para codificar informações de localização.
Os cinco embeddings – um para texto e quatro para coordenadas – são então somados para criar o valor final do embedding que é passado pelo LayoutLM. A saída é conhecida como incorporação do LayoutLM.
Incorporações de imagens
Ok, conseguimos encontrar as informações relacionadas ao texto e à localização combinando seus embeddings e passando-os por um modelo de linguagem. Agora, como contornamos o processo de combinação de informações relacionadas à imagem?
Enquanto as informações de texto e layout são codificadas, paralelamente, utilizamos Faster R-CNN para extrair as regiões de texto relacionadas ao documento. Faster R-CNN é um modelo de imagem usado para detecção de objetos. No nosso caso, usamos isso para detectar diferentes pedaços de texto (assumindo que cada frase é um objeto) e depois passar as imagens segmentadas por uma camada totalmente conectada para ajudar a gerar embeddings para as imagens também.
Os embeddings do LayoutLM, bem como os embeddings de imagem, são combinados para criar um embedding final, que pode então ser usado para realizar o processamento downstream.
LayoutLM pré-treinamento
Tudo o que foi dito acima só faz sentido se entendermos o método no qual o LayoutLM foi treinado. Afinal, não importa que tipo de conexões estabeleçamos em uma rede neural, até e a menos que ela seja treinada com o objetivo de aprendizagem correto, ela não será muito inteligente. Os autores do LayoutLM queriam seguir um método semelhante ao usado para o pré-treinamento do BERT.
Modelo de linguagem visual mascarado (MVLM)
Para ajudar o modelo a aprender que texto poderia haver em um determinado local, os autores mascararam aleatoriamente alguns tokens de texto, mantendo informações e incorporações relacionadas ao local. Isso permitiu que o LayoutLM fosse além da simples modelagem de linguagem mascarada e também ajudou a associar incorporações de texto a modalidades relacionadas à localização.
Classificação de documentos multi-rótulos (MDC)
Usar todas as informações do documento para classificá-lo em categorias ajuda o modelo a entender quais informações são relevantes para uma determinada classe de documentos. Contudo, os autores observam que, para conjuntos de dados maiores, os dados sobre classes de documentos podem não estar prontamente disponíveis. Conseqüentemente, eles forneceram resultados com base tanto no treinamento MVLM sozinho quanto no treinamento MVLM + MDC.
Ajuste fino do LayoutLM para tarefas downstream
Existem várias tarefas downstream que podem ser executadas com LayoutLM. Estaremos discutindo aqueles que os autores empreenderam.
Compreensão do formulário
Esta tarefa envolve vincular um tipo de rótulo a um determinado trecho de texto. Com isso, podemos extrair dados estruturados de qualquer tipo de documento. Dado o resultado final, ou seja, embeddings LayouLM + embeddings de imagens, eles são passados por uma camada totalmente conectada e depois por um softmax para prever as probabilidades de classe para o rótulo de um determinado trecho de texto.
Compreensão do recibo
Nesta tarefa, vários slots de informação foram deixados vazios nos recibos, e o modelo teve que posicionar corretamente os trechos de texto em seus respectivos slots.
Classificação de imagens de documentos
As informações do texto e da imagem do documento são combinadas para ajudar a compreender a classe do documento, simplesmente passando-o por uma camada softmax.
Abraçando o LayoutLM
Um dos principais motivos pelos quais o LayoutLM é tão discutido é porque o modelo era de código aberto há algum tempo. Isso é disponível em Hugging Face, portanto, usar o LayoutLM é significativamente mais fácil agora.
Antes de nos aprofundarmos nos detalhes de como você pode ajustar o LayoutLM de acordo com suas próprias necessidades, há algumas coisas a serem levadas em consideração.
Instalando Bibliotecas
Para executar o LayoutLM, você precisará da biblioteca de transformadores do Hugging Face, que por sua vez depende da biblioteca PyTorch. Para instalá-los (se ainda não estiverem instalados), execute os seguintes comandos
Em caixas delimitadoras
Para criar um esquema de incorporação uniforme, independentemente do tamanho da imagem, as coordenadas da caixa delimitadora são normalizadas em uma escala de 1000
Configuração
Usando a classe transformers.LayoutLMConfig, você pode definir o tamanho do modelo para melhor atender aos seus requisitos, uma vez que esses modelos geralmente são pesados e precisam de bastante poder de computação. Configurá-lo para um modelo menor pode ajudá-lo a executá-lo localmente. Você pode saiba mais sobre a aula aqui.
LayoutLM para classificação de documentos (Ligação)
Se desejar realizar a classificação de documentos, você precisará da classe transformers.LayoutLMForSequenceClassification. A sequência aqui é a sequência de texto do documento que você extraiu. Aqui está um pequeno exemplo de código do Hugging Face.co que explicará como usá-lo
LayoutLM para rotulagem de texto (Ligação)
Para realizar a rotulagem semântica, ou seja, atribuir rótulos a diferentes partes do texto do documento, você precisará da classe transformers.LayoutLMForTokenClassification. Você pode encontrar mais detalhes no o mesmo aqui.Aqui está um pequeno exemplo de código para você ver como ele pode funcionar para você
Alguns pontos a serem observados sobre o layout de rosto abraçadoLM
- Atualmente, o modelo Hugging Face LayoutLM faz uso da biblioteca de código aberto Tesseract para extração de texto, o que não é muito preciso. Você pode considerar o uso de uma ferramenta de OCR paga diferente, como AWS Textract ou Google Cloud Vision
- O modelo existente fornece apenas o modelo de linguagem, ou seja, os embeddings do LayoutLM, e não as camadas finais que combinam recursos visuais. LayoutLMv2 (discutido na próxima seção) também usa a biblioteca Detectron para permitir incorporações de recursos visuais.
- A classificação dos rótulos ocorre em nível de palavra, portanto cabe ao mecanismo de extração de texto OCR garantir que todas as palavras em um campo estejam em uma sequência contínua, ou um campo possa ser previsto como dois.
LayoutLMv2
LayoutLM surgiu como uma revolução na forma como os dados eram extraídos de documentos. No entanto, no que diz respeito à investigação em aprendizagem profunda, os modelos só melhoram cada vez mais com o tempo. O LayoutLM foi sucedido de forma semelhante pelo LayoutLMv2, onde os autores fizeram algumas mudanças significativas na forma como o modelo foi treinado.
Incluindo incorporações espaciais 1-D e incorporações de tokens visuais
O LayoutLMv2 incluiu informações sobre a localização relativa 1-D, bem como informações gerais relacionadas à imagem. A razão pela qual isto é importante é devido aos novos objetivos de treinamento, que discutiremos agora
Novos objetivos de treinamento
LayoutLMv2 incluiu alguns objetivos de treinamento modificados. São os seguintes:
- Modelagem de linguagem visual mascarada: é igual ao LayoutLM
- Alinhamento de imagem de texto: o texto foi coberto aleatoriamente a partir da imagem, enquanto os tokens de texto foram fornecidos ao modelo. Para cada token, o modelo precisava saber se o texto fornecido estava ou não coberto. Com isso, o modelo foi capaz de combinar informações das modalidades visual e textual
- Correspondência de imagem de texto: O modelo é solicitado a verificar se a imagem fornecida corresponde ao texto fornecido. Amostras negativas são alimentadas como imagens falsas ou nenhuma incorporação de imagem é fornecida. Isso é feito para garantir que o modelo aprenda mais sobre como o texto e as imagens estão relacionados.
Usando esses novos métodos e incorporações, o modelo foi capaz de obter pontuações F1 mais altas em quase todos os conjuntos de dados de teste como LayoutLM.
- Sobre
- Acesso
- Conta
- preciso
- alcançado
- em
- ativo
- avançado
- agentes
- AI
- Todos os Produtos
- já
- Apesar
- quantidade
- Outro
- abordagem
- ÁREA
- por aí
- artigo
- autores
- disponível
- AWS
- base
- ser
- MELHOR
- Pouco
- Caixa
- Cartões
- casos
- desafiar
- classificação
- Na nuvem
- código
- combinado
- Empresa
- Computar
- Configuração
- Coneções
- consideração
- custos
- poderia
- Clientes
- dados,
- dia
- Apesar de
- Detecção
- DID
- diferente
- INSTITUCIONAIS
- down
- e-commerce,
- Eficaz
- permitindo
- estabelecer
- Excel
- Rosto
- mais rápido
- Característica
- Funcionalidades
- Alimentado
- financeiro
- Primeiro nome
- seguinte
- gerar
- GitHub
- ajudar
- ajuda
- SUA PARTICIPAÇÃO FAZ A DIFERENÇA
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTTPS
- imagem
- Impacto
- importante
- melhorar
- incluído
- indústrias
- INFORMAÇÕES
- com seguro
- Inteligente
- IT
- marcação
- Rótulos
- língua
- Maior
- APRENDER
- aprendizagem
- Nível
- Biblioteca
- LINK
- Lista
- localmente
- localização
- locais
- manualmente
- maciço
- correspondente
- Importância
- modelo
- modelos
- a maioria
- rede
- redes
- aberto
- open source
- Operações
- Opções
- ordem
- organizações
- Outros
- pago
- Papel
- peça
- poder
- processo
- fornece
- PWC
- razões
- recomendar
- Denunciar
- requeridos
- Requisitos
- pesquisa
- Resultados
- currículo
- Execute
- Escala
- esquema
- SEC
- sentido
- conjunto
- contexto
- mudança
- periodo
- semelhante
- simples
- Tamanho
- pequeno
- smart
- So
- algo
- começado
- sucesso
- supply
- cadeia de suprimentos
- tarefas
- Equipar
- teste
- Através da
- tempo
- token
- Tokens
- topo
- Training
- compreender
- usar
- utilizar
- valor
- O Quê
- se
- palavras
- Atividades:
- trabalhadores
- anos