Especifique e extraia informações de documentos usando o novo recurso de consultas no Amazon Textract PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Especifique e extraia informações de documentos usando o novo recurso de consultas no Amazon Textract

amazontext é um serviço de aprendizado de máquina (ML) que extrai automaticamente texto, manuscrito e dados de qualquer documento ou imagem. O Amazon Textract agora oferece flexibilidade para especificar os dados que você precisa extrair de documentos usando o novo recurso Queries na API Analyze Document. Você não precisa conhecer a estrutura dos dados no documento (tabela, formulário, campo implícito, dados aninhados) nem se preocupar com variações entre versões e formatos do documento.

Neste post, abordamos os seguintes tópicos:

  • Histórias de sucesso de clientes da AWS e benefícios do novo recurso Consultas
  • Como a API Analyze Document Queries ajuda a extrair informações de documentos
  • Um passo a passo do console Amazon Textract
  • Exemplos de código para utilizar a API Analisar Consultas de Documentos
  • Como processar a resposta com a biblioteca do analisador Amazon Textract

Benefícios do novo recurso Consultas

As soluções tradicionais de OCR lutam para extrair dados com precisão da maioria dos documentos semiestruturados e não estruturados devido a variações significativas na forma como os dados são dispostos em múltiplas versões e formatos desses documentos. Você precisa implementar um código de pós-processamento personalizado ou revisar manualmente as informações extraídas desses documentos. Com o recurso Consultas, você pode especificar as informações necessárias na forma de perguntas em linguagem natural (por exemplo, “Qual é o nome do cliente”) e receber as informações exatas (“John Doe”) como parte da resposta da API. O recurso usa uma combinação de modelos visuais, espaciais e de linguagem para extrair as informações que você procura com alta precisão. O recurso Consultas é pré-treinado em uma grande variedade de documentos semiestruturados e não estruturados. Alguns exemplos incluem recibos de pagamento, extratos bancários, W-2s, formulários de solicitação de empréstimo, notas de hipoteca e cartões de vacina e seguro.

"O Amazon Textract nos permite automatizar as necessidades de processamento de documentos de nossos clientes. Com o recurso Consultas poderemos extrair dados de diversos documentos com ainda maior flexibilidade e precisão," disse Robert Jansen, CEO da TekStream Solutions. "Vemos isso como um grande ganho de produtividade para nossos clientes empresariais, que poderão usar o recurso de Consultas como parte de nossa solução IDP para obter rapidamente informações importantes de seus documentos."

"O Amazon Textract nos permite extrair texto e elementos estruturados, como formulários e tabelas, de imagens com alta precisão. O Amazon Textract Queries nos ajudou a melhorar drasticamente a qualidade da extração de informações de vários documentos essenciais aos negócios, como fichas de dados de segurança ou especificações de materiais" disse Thorsten Warnecke, Diretor | Chefe de PC Analytics, Consultores de Gerenciamento Camelot. "O sistema de consulta em linguagem natural oferece grande flexibilidade e precisão, o que reduziu nossa carga de pós-processamento e nos permitiu adicionar novos documentos às nossas ferramentas de extração de dados com mais rapidez."

Como a API Analyze Document Queries ajuda a extrair informações de documentos

As empresas aumentaram a adoção de plataformas digitais, especialmente à luz da pandemia da COVID-19. A maioria das organizações oferece agora uma forma digital de adquirir os seus serviços e produtos utilizando smartphones e outros dispositivos móveis, o que oferece flexibilidade aos utilizadores, mas também aumenta a escala em que os documentos digitais precisam de ser revistos, processados ​​e analisados. Em algumas cargas de trabalho onde, por exemplo, documentos de hipotecas, cartões de vacinação, contracheques, cartões de seguros e outros documentos devem ser analisados ​​digitalmente, a complexidade da extração de dados pode tornar-se exponencialmente agravada porque esses documentos não possuem um formato padrão ou apresentam variações significativas no formato dos dados. em diferentes versões do documento.

Mesmo soluções poderosas de OCR têm dificuldade para extrair dados com precisão desses documentos, e talvez seja necessário implementar pós-processamento personalizado para esses documentos. Isso inclui o mapeamento de possíveis variações de chaves de formulário para nomes de campos nativos do cliente ou a inclusão de aprendizado de máquina personalizado para identificar informações específicas em um documento não estruturado.

A nova API Analyze Document Queries no Amazon Textract pode responder a perguntas escritas em linguagem natural, como “Qual é a taxa de juros?” e execute análises poderosas de IA e ML no documento para descobrir as informações desejadas e extraí-las do documento sem qualquer pós-processamento. O recurso Consultas não requer nenhum treinamento de modelo personalizado ou configuração de modelos ou configurações. Você pode começar rapidamente fazendo upload de seus documentos e especificando perguntas sobre eles por meio do console do Amazon Textract, o Interface de linha de comando da AWS (AWS CLI) ou AWS SDK.

Nas seções subsequentes desta postagem, veremos exemplos detalhados de como usar essa nova funcionalidade em casos de uso de carga de trabalho comuns e como usar a API Analisar Consultas de Documentos para adicionar agilidade ao processo de digitalização de sua carga de trabalho.

Use o recurso Consultas no console do Amazon Textract

Antes de começarmos com a API e os exemplos de código, vamos revisar o console do Amazon Textract. A imagem a seguir mostra um exemplo de cartão de vacinação no Consultas da API Analyze Document no console do Amazon Textract. Depois de fazer upload do documento para o console do Amazon Textract, escolha Consultas no Configurar documento seção. Você pode então adicionar consultas na forma de perguntas em linguagem natural. Depois de adicionar todas as suas consultas, escolha Aplicar configuração. As respostas às perguntas estão localizadas no Consultas aba.

Especifique e extraia informações de documentos usando o novo recurso de consultas no Amazon Textract PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Exemplos de código

Nesta seção, explicamos como invocar a API Analisar Documento com o parâmetro Queries para obter respostas a perguntas de linguagem natural sobre o documento. O documento de entrada está em um formato de matriz de bytes ou localizado em um Serviço de armazenamento simples da Amazon (Amazon S3) balde. Você passa bytes de imagem para uma operação de API do Amazon Textract usando a propriedade Bytes. Por exemplo, você pode usar o Bytes propriedade para passar um documento carregado de um sistema de arquivos local. Bytes de imagem passados ​​usando o Bytes a propriedade deve ser codificada em base64. Talvez seu código não precise codificar bytes de arquivo de documento se você estiver usando um AWS SDK para chamar operações de API do Amazon Textract. Como alternativa, você pode passar imagens armazenadas em um bucket do S3 para uma operação de API do Amazon Textract usando o comando S3Object propriedade. Os documentos armazenados em um bucket S3 não precisam ser codificados em base64.

Você pode usar o recurso Consultas para obter respostas de diferentes tipos de documentos, como recibos de pagamento, cartões de vacinação, documentos de hipoteca, extratos bancários, formulários W-2, formulários 1099 e outros. Nas seções a seguir, examinaremos alguns desses documentos e mostraremos como funciona o recurso Consultas.

Contracheque

Neste exemplo, percorremos as etapas para analisar um contracheque usando o recurso Consultas, conforme mostrado na imagem de exemplo a seguir.

Especifique e extraia informações de documentos usando o novo recurso de consultas no Amazon Textract PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Usamos o seguinte exemplo de código Python:

import boto3
import json #create a Textract Client
textract = boto3.client('textract') image_filename = "paystub.jpg" response = None
with open(image_filename, 'rb') as document: imageBytes = bytearray(document.read()) # Call Textract AnalyzeDocument by passing a document from local disk
response = textract.analyze_document( Document={'Bytes': imageBytes}, FeatureTypes=["QUERIES"], QueriesConfig={ "Queries": [{ "Text": "What is the year to date gross pay", "Alias": "PAYSTUB_YTD_GROSS" }, { "Text": "What is the current gross pay?", "Alias": "PAYSTUB_CURRENT_GROSS" }] })

O código a seguir é um exemplo de comando da AWS CLI:

aws textract analyze-document —document '{"S3Object":{"Bucket":"your-s3-bucket","Name":"paystub.jpg"}}' —feature-types '["QUERIES"]' —queries-config '{"Queries":[{"Text":"What is the year to date gross pay", "Alias": "PAYSTUB_YTD_GROSS"}]}' 

Vamos analisar a resposta que obtemos para as duas consultas que passamos para a API Analyze Document no exemplo anterior. A resposta a seguir foi cortada para mostrar apenas as partes relevantes:

{ "BlockType":"QUERY", "Id":"cbbba2fa-45be-452b-895b-adda98053153", #id of first QUERY "Relationships":[ { "Type":"ANSWER", "Ids":[ "f2db310c-eaa6-481d-8d18-db0785c33d38" #id of first QUERY_RESULT ] } ], "Query":{ "Text":"What is the year to date gross pay", #First Query "Alias":"PAYSTUB_YTD_GROSS" } }, { "BlockType":"QUERY_RESULT", "Confidence":87.0, "Text":"23,526.80", #Answer to the first Query "Geometry":{...}, "Id":"f2db310c-eaa6-481d-8d18-db0785c33d38" #id of first QUERY_RESULT }, { "BlockType":"QUERY", "Id":"4e2a17f0-154f-4847-954c-7c2bf2670c52", #id of second QUERY "Relationships":[ { "Type":"ANSWER", "Ids":[ "350ab92c-4128-4aab-a78a-f1c6f6718959"#id of second QUERY_RESULT ] } ], "Query":{ "Text":"What is the current gross pay?", #Second Query "Alias":"PAYSTUB_CURRENT_GROSS" } }, { "BlockType":"QUERY_RESULT", "Confidence":95.0, "Text":"$ 452.43", #Answer to the Second Query "Geometry":{...}, "Id":"350ab92c-4128-4aab-a78a-f1c6f6718959" #id of second QUERY_RESULT }

A resposta tem um BlockType of QUERY que mostra a pergunta que foi feita e um Relationships seção que contém o ID do bloco que contém a resposta. A resposta está no BlockType of QUERY_RESULT. O alias transmitido como entrada para a API Analisar Documento é retornado como parte da resposta e pode ser usado para rotular a resposta.

Usamos o Analisador de resposta do Amazon Textract para extrair apenas as perguntas, o alias e as respostas correspondentes a essas perguntas:

import trp.trp2 as t2 d = t2.TDocumentSchema().load(response)
page = d.pages[0] # get_query_answers returns a list of [query, alias, answer]
query_answers = d.get_query_answers(page=page)
for x in query_answers: print(f"{image_filename},{x[1]},{x[2]}") from tabulate import tabulate
print(tabulate(query_answers, tablefmt="github"))

O código anterior retorna os seguintes resultados:

|------------------------------------|-----------------------|-----------|
| What is the current gross pay? | PAYSTUB_CURRENT_GROSS | $ 452.43 |
| What is the year to date gross pay | PAYSTUB_YTD_GROSS | 23,526.80 |

Mais perguntas e o código completo podem ser encontrados no notebook no GitHub repo.

Nota de hipoteca

A API Analisar Consultas de Documentos também funciona bem com notas de hipoteca como as seguintes.

Especifique e extraia informações de documentos usando o novo recurso de consultas no Amazon Textract PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

O processo para chamar a API e processar os resultados é igual ao exemplo anterior. Você pode encontrar o exemplo de código completo no GitHub repo.

O código a seguir mostra os exemplos de respostas obtidas usando a API:

|------------------------------------------------------------|----------------------------------|---------------|
| When is this document dated? | MORTGAGE_NOTE_DOCUMENT_DATE | March 4, 2022 |
| What is the note date? | MORTGAGE_NOTE_DATE | March 4, 2022 |
| When is the Maturity date the borrower has to pay in full? | MORTGAGE_NOTE_MATURITY_DATE | April, 2032 |
| What is the note city and state? | MORTGAGE_NOTE_CITY_STATE | Anytown, ZZ |
| what is the yearly interest rate? | MORTGAGE_NOTE_YEARLY_INTEREST | 4.150% |
| Who is the lender? | MORTGAGE_NOTE_LENDER | AnyCompany |
| When does payments begin? | MORTGAGE_NOTE_BEGIN_PAYMENTS | April, 2022 |
| What is the beginning date of payment? | MORTGAGE_NOTE_BEGIN_DATE_PAYMENT | April, 2022 |
| What is the initial monthly payments? | MORTGAGE_NOTE_MONTHLY_PAYMENTS | $ 2500 |
| What is the interest rate? | MORTGAGE_NOTE_INTEREST_RATE | 4.150% |
| What is the principal amount borrower has to pay? | MORTGAGE_NOTE_PRINCIPAL_PAYMENT | $ 500,000 |

Cartão de vacinação

O recurso Amazon Textract Queries também funciona muito bem para extrair informações de cartões de vacinação ou cartões semelhantes, como no exemplo a seguir.

Especifique e extraia informações de documentos usando o novo recurso de consultas no Amazon Textract PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

O processo para chamar a API e analisar os resultados é o mesmo usado para um contracheque. Depois de processarmos a resposta, obtemos as seguintes informações:

|------------------------------------------------------------|--------------------------------------|--------------|
| What is the patients first name | PATIENT_FIRST_NAME | Major |
| What is the patients last name | PATIENT_LAST_NAME | Mary |
| Which clinic site was the 1st dose COVID-19 administrated? | VACCINATION_FIRST_DOSE_CLINIC_SITE | XYZ |
| Who is the manufacturer for 1st dose of COVID-19? | VACCINATION_FIRST_DOSE_MANUFACTURER | Pfizer |
| What is the date for the 2nd dose covid-19? | VACCINATION_SECOND_DOSE_DATE | 2/8/2021 |
| What is the patient number | PATIENT_NUMBER | 012345abcd67 |
| Who is the manufacturer for 2nd dose of COVID-19? | VACCINATION_SECOND_DOSE_MANUFACTURER | Pfizer |
| Which clinic site was the 2nd dose covid-19 administrated? | VACCINATION_SECOND_DOSE_CLINIC_SITE | CVS |
| What is the lot number for 2nd dose covid-19? | VACCINATION_SECOND_DOSE_LOT_NUMBER | BB5678 |
| What is the date for the 1st dose covid-19? | VACCINATION_FIRST_DOSE_DATE | 1/18/21 |
| What is the lot number for 1st dose covid-19? | VACCINATION_FIRST_DOSE_LOT_NUMBER | AA1234 |
| What is the MI? | MIDDLE_INITIAL | M |

O código completo pode ser encontrado no caderno no GitHub repo.

Cartão de seguro

O recurso Consultas também funciona bem com cartões de seguro como os seguintes.

Especifique e extraia informações de documentos usando o novo recurso de consultas no Amazon Textract PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

O processo para chamar a API e processar os resultados é o mesmo mostrado anteriormente. O exemplo de código completo está disponível no notebook no GitHub repo.

A seguir estão os exemplos de respostas obtidas usando a API:

|-------------------------------------|-----------------------------------|---------------|
| What is the insured name? | INSURANCE_CARD_NAME | Jacob Michael |
| What is the level of benefits? | INSURANCE_CARD_LEVEL_BENEFITS | SILVER |
| What is medical insurance provider? | INSURANCE_CARD_PROVIDER | Anthem |
| What is the OOP max? | INSURANCE_CARD_OOP_MAX | $6000/$12000 |
| What is the effective date? | INSURANCE_CARD_EFFECTIVE_DATE | 11/02/2021 |
| What is the office visit copay? | INSURANCE_CARD_OFFICE_VISIT_COPAY | $55/0% |
| What is the specialist visit copay? | INSURANCE_CARD_SPEC_VISIT_COPAY | $65/0% |
| What is the member id? | INSURANCE_CARD_MEMBER_ID | XZ 9147589652 |
| What is the plan type? | INSURANCE_CARD_PLAN_TYPE | Pathway X-EPO |
| What is the coinsurance amount? | INSURANCE_CARD_COINSURANCE | 30% |

Práticas recomendadas para elaboração de consultas

Ao elaborar suas consultas, considere as seguintes práticas recomendadas:

  • Em geral, faça uma pergunta em linguagem natural que comece com “O que é”, “Onde está” ou “Quem é”. A exceção é quando você está tentando extrair pares de valores-chave padrão; nesse caso, você pode passar o nome da chave como uma consulta.
  • Evite perguntas mal formuladas ou gramaticalmente incorretas, pois podem resultar em respostas inesperadas. Por exemplo, uma consulta mal formada é “Quando?” enquanto uma pergunta bem formulada é “Quando foi administrada a primeira dose da vacina?”
  • Sempre que possível, use palavras do documento para construir a consulta. Embora o recurso Consultas tente fazer correspondência de acrônimos e sinônimos para alguns termos comuns do setor, como “SSN”, “ID fiscal” e “Número do seguro social”, usar a linguagem diretamente do documento melhora os resultados. Por exemplo, se o documento disser “progresso do trabalho”, tente evitar o uso de variações como “progresso do projeto”, “progresso do programa” ou “status do trabalho”.
  • Construa uma consulta que contenha palavras do cabeçalho da linha e do cabeçalho da coluna. Por exemplo, no exemplo anterior do cartão de vacinação, para saber a data da segunda vacinação, pode enquadrar a consulta como “Em que data foi administrada a 2ª dose?”
  • Respostas longas aumentam a latência da resposta e podem levar a tempos limite. Tente fazer perguntas que respondam com menos de 100 palavras.
  • Passar apenas o nome da chave como a pergunta funciona ao tentar extrair pares de valores-chave padrão de um formulário. Recomendamos formular perguntas completas para todos os outros casos de uso de extração.
  • Seja o mais específico possível. Por exemplo:
    • Quando o documento contiver múltiplas seções (como “Mutuário” e “Co-Mutuário”) e ambas as seções tiverem um campo chamado “SSN”, pergunte “Qual é o SSN do Mutuário?” e “Qual é o SSN do Co-Mutuário?”
    • Quando o documento tiver vários campos relacionados à data, seja específico na linguagem de consulta e pergunte “Qual é a data em que o documento foi assinado?” ou “Qual é a data de nascimento do pedido?” Evite fazer perguntas ambíguas como “Qual é a data?”
  • Se você conhece o layout do documento de antemão, dê dicas de localização para melhorar a precisão dos resultados. Por exemplo, pergunte “Qual é a data no topo?” ou “Qual é a data à esquerda?” ou “Qual é a data na parte inferior?”

Para obter mais informações sobre o recurso Consultas, consulte o Textract documentação.

Conclusão

Nesta postagem, fornecemos uma visão geral do novo recurso de consultas do Amazon Textract para recuperar informações de documentos como recibos de pagamento, notas de hipoteca, cartões de seguro e cartões de vacinação de forma rápida e fácil com base em perguntas em linguagem natural. Também descrevemos como você pode analisar o JSON de resposta.

Para mais informações, consulte Analisando Documentos ou confira o console do Amazon Textract e experimente esse recurso.


Sobre os autores

Especifique e extraia informações de documentos usando o novo recurso de consultas no Amazon Textract PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Uday Narayanan é arquiteto de soluções sênior na AWS. Ele gosta de ajudar os clientes a encontrar soluções inovadoras para desafios de negócios complexos. Suas principais áreas de foco são análise de dados, sistemas de big data e aprendizado de máquina. Nas horas vagas, ele gosta de praticar esportes, assistir programas de TV e viajar.

Especifique e extraia informações de documentos usando o novo recurso de consultas no Amazon Textract PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Rafael Caixeta é arquiteto de soluções sênior na AWS e mora na Califórnia. Ele tem mais de 10 anos de experiência desenvolvendo arquiteturas para nuvem. Suas principais áreas são serverless, contêineres e aprendizado de máquina. Nas horas vagas, gosta de ler livros de ficção e viajar pelo mundo.

Especifique e extraia informações de documentos usando o novo recurso de consultas no Amazon Textract PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai. Navneeth Nair é gerente de produto sênior técnico da equipe Amazon Textract. Ele está focado na construção de serviços baseados em aprendizado de máquina para clientes da AWS.

Especifique e extraia informações de documentos usando o novo recurso de consultas no Amazon Textract PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Martin Schade é um Senior ML Product SA da equipe do Amazon Textract. Ele tem mais de 20 anos de experiência com tecnologias relacionadas à Internet, engenharia e soluções de arquitetura. Ele ingressou na AWS em 2014, primeiro orientando alguns dos maiores clientes da AWS sobre o uso mais eficiente e escalável dos serviços da AWS e, posteriormente, focado em IA/ML com foco em visão computacional. Atualmente, ele está obcecado em extrair informações de documentos.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS