Processamento inteligente de documentos com serviços de IA da AWS: Parte 1 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Processamento inteligente de documentos com serviços de IA da AWS: parte 1

Organizações em setores como saúde, finanças e empréstimos, jurídico, varejo e manufatura geralmente precisam lidar com muitos documentos em seus processos de negócios diários. Esses documentos contêm informações críticas que são essenciais para a tomada de decisões no prazo, a fim de manter os mais altos níveis de satisfação do cliente, integração mais rápida do cliente e menor rotatividade de clientes. Na maioria dos casos, os documentos são processados ​​manualmente para extrair informações e insights, o que é demorado, propenso a erros, caro e difícil de dimensionar. Há automação limitada disponível hoje para processar e extrair informações desses documentos. O processamento inteligente de documentos (IDP) com os serviços de inteligência artificial (AI) da AWS ajuda a automatizar a extração de informações de documentos de diferentes tipos e formatos, com rapidez e alta precisão, sem a necessidade de habilidades de machine learning (ML). A extração de informações mais rápida com alta precisão ajuda a tomar decisões de negócios de qualidade no prazo, reduzindo os custos gerais.

Embora os estágios em um fluxo de trabalho de IDP possam variar e ser influenciados por caso de uso e requisitos de negócios, a figura a seguir mostra os estágios que normalmente fazem parte de um fluxo de trabalho de IDP. O processamento de documentos como formulários fiscais, reclamações, notas médicas, formulários de novos clientes, faturas, contratos legais e muito mais são apenas alguns dos casos de uso do IDP.

Nesta série de duas partes, discutimos como você pode automatizar e processar documentos de maneira inteligente em escala usando os serviços de IA da AWS. Neste post, discutimos as três primeiras fases do fluxo de trabalho do IDP. Dentro parte 2, discutimos as fases restantes do fluxo de trabalho.

Visão geral da solução

O diagrama de arquitetura a seguir mostra os estágios de um fluxo de trabalho IDP. Começa com uma etapa de captura de dados para armazenar e agregar com segurança diferentes formatos de arquivo (PDF, JPEG, PNG, TIFF) e layouts de documentos. A próxima etapa é a classificação, onde você categoriza seus documentos (como contratos, formulários de reclamação, faturas ou recibos), seguido pela extração de documentos. No estágio de extração, você pode extrair informações comerciais significativas de seus documentos. Esses dados extraídos são frequentemente usados ​​para coletar insights por meio de análise de dados ou enviados para sistemas downstream, como bancos de dados ou sistemas transacionais. O estágio seguinte é o enriquecimento, em que os documentos podem ser enriquecidos pela redação de informações de saúde protegidas (PHI) ou dados de informações de identificação pessoal (PII), extração de termos comerciais personalizados e assim por diante. Por fim, no estágio de revisão e validação, você pode incluir uma força de trabalho humana para revisões de documentos para garantir que o resultado seja preciso.

Processamento inteligente de documentos com serviços de IA da AWS: Parte 1 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Para os fins deste post, consideramos um conjunto de documentos de amostra, como extratos bancários, faturas e recibos de lojas. Os exemplos de documentos, juntamente com o código de exemplo, podem ser encontrados em nosso Repositório GitHub. Nas seções a seguir, orientamos você por esses exemplos de código junto com a aplicação prática real. Demonstramos como você pode utilizar os recursos de ML com amazontext, Amazon Comprehend e IA aumentada da Amazon (Amazon A2I) para processar documentos e validar os dados deles extraídos.

O Amazon Textract é um serviço de ML que extrai automaticamente texto, manuscrito e dados de documentos digitalizados. Ele vai além do simples reconhecimento óptico de caracteres (OCR) para identificar, entender e extrair dados de formulários e tabelas. O Amazon Textract usa ML para ler e processar qualquer tipo de documento, extraindo com precisão texto, manuscrito, tabelas e outros dados sem esforço manual.

O Amazon Comprehend é um serviço de processamento de linguagem natural (NLP) que usa ML para extrair insights sobre o conteúdo dos documentos. O Amazon Comprehend pode identificar elementos críticos em documentos, incluindo referências a idioma, pessoas e lugares, e classificá-los em tópicos ou clusters relevantes. Ele pode realizar análises de sentimento para determinar o sentimento de um documento em tempo real usando um documento único ou detecção de lote. Por exemplo, ele pode analisar os comentários em uma postagem de blog para saber se seus leitores gostam da postagem ou não. O Amazon Comprehend também detecta PII como endereços, números de contas bancárias e números de telefone em documentos de texto em tempo real e trabalhos em lote assíncronos. Ele também pode redigir entidades PII em trabalhos em lote assíncronos.

O Amazon A2I é um serviço de ML que facilita a criação dos fluxos de trabalho necessários para revisão humana. O Amazon A2I leva a revisão humana a todos os desenvolvedores, removendo o trabalho pesado indiferenciado associado à criação de sistemas de revisão humana ou ao gerenciamento de um grande número de revisores humanos, seja executado na AWS ou não. O Amazon A2I integra tanto com amazontext e Amazon Comprehend para fornecer a você a capacidade de introduzir etapas de revisão humana em seu fluxo de trabalho de processamento de documentos inteligente.

Fase de captura de dados

Você pode armazenar documentos em um armazenamento altamente escalável e durável, como Serviço de armazenamento simples da Amazon (Amazônia S3). O Amazon S3 é um serviço de armazenamento de objetos que oferece escalabilidade, disponibilidade de dados, segurança e desempenho líderes do setor. O Amazon S3 foi projetado para 11 9's de durabilidade e armazena dados para milhões de clientes em todo o mundo. Os documentos podem vir em vários formatos e layouts e podem vir de diferentes canais, como portais da web ou anexos de e-mail.

Fase de classificação

Na etapa anterior, coletamos documentos de vários tipos e formatos. Nesta etapa, precisamos categorizar os documentos antes de podermos fazer a extração adicional. Para isso, usamos o Amazon Comprehend classificação personalizada. A classificação de documentos é um processo de duas etapas. Primeiro, você treina um classificador personalizado do Amazon Comprehend para reconhecer as classes de seu interesse. Em seguida, você implanta o modelo com um endpoint em tempo real do classificador personalizado e enviar documentos não rotulados ao endpoint em tempo real para serem classificados.

A figura a seguir representa um fluxo de trabalho típico de classificação de documentos.

Fase de classificação

Para treinar o classificador, identifique as classes de seu interesse e forneça documentos de amostra para cada uma das classes como material de treinamento. Com base nas opções que você indicou, o Amazon Comprehend cria um modelo de ML personalizado que treina com base nos documentos fornecidos. Este modelo personalizado (o classificador) examina cada documento que você envia. Ele retorna a classe específica que melhor representa o conteúdo (se você estiver usando o modo multiclasse) ou o conjunto de classes que se aplicam a ele (se você estiver usando o modo multirrótulo).

Preparar dados de treinamento

A primeira etapa é extrair o texto dos documentos necessários para o classificador personalizado do Amazon Comprehend. Para extrair as informações de texto bruto de todos os documentos no Amazon S3, usamos o Amazon Textract detect_document_text() API. Também rotulamos os dados de acordo com o tipo de documento a ser usado para treinar um classificador personalizado do Amazon Comprehend.

O código a seguir foi reduzido para fins de simplificação. Para o código completo, consulte o GitHub Código de amostra para textract_extract_text(). A função call_textract() é uma função wr4apper que chama o Analisar Documento API internamente, e os parâmetros passados ​​para o método abstraem algumas das configurações que a API precisa para executar a tarefa de extração.

def textract_extract_text(document, bucket=data_bucket):        
    try:
        print(f'Processing document: {document}')
        lines = ""
        row = []
        
        # using amazon-textract-caller
        response = call_textract(input_document=f's3://{bucket}/{document}') 
        # using pretty printer to get all the lines
        lines = get_string(textract_json=response, output_type=[Textract_Pretty_Print.LINES])
        
        label = [name for name in names if(name in document)]  
        row.append(label[0])
        row.append(lines)        
        return row
    except Exception as e:
        print (e)        

Treinar um classificador personalizado

Nesta etapa, usamos a classificação personalizada do Amazon Comprehend para treinar nosso modelo para classificar os documentos. Nós usamos o CreateDocumentClassificador API para criar um classificador que treina um modelo personalizado usando nossos dados rotulados. Veja o seguinte código:

create_response = comprehend.create_document_classifier(
        InputDataConfig={
            'DataFormat': 'COMPREHEND_CSV',
            'S3Uri': f's3://{data_bucket}/{key}'
        },
        DataAccessRoleArn=role,
        DocumentClassifierName=document_classifier_name,
        VersionName=document_classifier_version,
        LanguageCode='en',
        Mode='MULTI_CLASS'
    )

Implante um endpoint em tempo real

Para usar o classificador personalizado do Amazon Comprehend, criamos um endpoint em tempo real usando o CreateEndpoint API:

endpoint_response = comprehend.create_endpoint(
        EndpointName=ep_name,
        ModelArn=model_arn,
        DesiredInferenceUnits=1,    
        DataAccessRoleArn=role
    )
    ENDPOINT_ARN=endpoint_response['EndpointArn']
print(f'Endpoint created with ARN: {ENDPOINT_ARN}')  

Classifique documentos com o endpoint em tempo real

Após a criação do endpoint do Amazon Comprehend, podemos usar o endpoint em tempo real para classificar documentos. Nós usamos o comprehend.classify_document() função com o texto do documento extraído e o endpoint de inferência como parâmetros de entrada:

response = comprehend.classify_document(
      Text= document,
      EndpointArn=ENDPOINT_ARN
      )

O Amazon Comprehend retorna todas as classes de documentos com uma pontuação de confiança vinculada a cada classe em uma matriz de pares chave-valor (nome-pontuação). Escolhemos a classe de documento com a pontuação de confiança mais alta. A captura de tela a seguir é uma resposta de amostra.

Classifique documentos com o endpoint em tempo real

Recomendamos consultar o código de amostra de classificação de documentos detalhado em GitHub.

Fase de extração

O Amazon Textract permite extrair informações de texto e dados estruturados usando o Amazon Textract DetectarDocumentoTexto e Analisar Documento API, respectivamente. Essas APIs respondem com dados JSON, que contêm PALAVRAS, LINHAS, FORMULÁRIOS, TABELAS, geometria ou informações de caixa delimitadora, relacionamentos e assim por diante. Ambos DetectDocumentText e AnalyzeDocument são operações síncronas. Para analisar documentos de forma assíncrona, use IniciarDocumentoTextoDetecção.

Extração de dados estruturados

Você pode extrair dados estruturados, como tabelas de documentos, preservando a estrutura de dados e os relacionamentos entre os itens detectados. Você pode usar o Analisar Documento API com o FeatureType as TABLE para detectar todas as tabelas em um documento. A figura a seguir ilustra esse processo.

Extração de dados estruturados

Veja o seguinte código:

response = textract.analyze_document(
    Document={
        'S3Object': {
            'Bucket': s3BucketName,
            'Name': documentName
        }
    },
    FeatureTypes=["TABLES"])

Nós executamos o analyze_document() método com o FeatureType as TABLES no documento de histórico do funcionário e obtenha a extração da tabela nos resultados a seguir.

Analise a resposta da API do documento para extração de tabelas

Extração de dados semiestruturados

Você pode extrair dados semiestruturados, como formulários ou pares de valores-chave de documentos, preservando a estrutura de dados e os relacionamentos entre os itens detectados. Você pode usar o Analisar Documento API com o FeatureType as FORMS para detectar todos os formulários em um documento. O diagrama a seguir ilustra esse processo.

Extração de dados semiestruturados

Veja o seguinte código:

response = textract.analyze_document(
    Document={
        'S3Object': {
            'Bucket': s3BucketName,
            'Name': documentName
        }
    },
    FeatureTypes=["FORMS"])

Aqui, executamos o analyze_document() método com o FeatureType as FORMS no documento de inscrição do funcionário e obter a extração da tabela nos resultados.

Processamento inteligente de documentos com serviços de IA da AWS: Parte 1 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Extração de dados não estruturados

O Amazon Textract é ideal para extração de texto denso com precisão de OCR líder do setor. Você pode usar o DetectarDocumentoTexto API para detectar linhas de texto e as palavras que compõem uma linha de texto, conforme ilustrado na figura a seguir.

Extração de dados não estruturados

Veja o seguinte código:

response = textract.detect_document_text(Document={'Bytes': imageBytes})

# Print detected text
for item in response["Blocks"]:
	if item["BlockType"] == "LINE":
 		print (item["Text"])

Agora executamos o detect_document_text() método na imagem de amostra e obter a extração de texto bruto nos resultados.

Processamento inteligente de documentos com serviços de IA da AWS: Parte 1 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Faturas e recibos

O Amazon Textract oferece suporte especializado para processar faturas e recibos em escala. o Analisar Despesa A API pode extrair dados explicitamente rotulados, dados implícitos e itens de linha de uma lista detalhada de produtos ou serviços de quase qualquer fatura ou recibo sem nenhum modelo ou configuração. A figura a seguir ilustra esse processo.

Extração de faturas e recibos

Veja o seguinte código:

response = textract.analyze_expense(
    Document={
        'S3Object': {
            'Bucket': s3BucketName,
            'Name': documentName
        }
    })

O Amazon Textract pode encontrar o nome do fornecedor em um recibo, mesmo que seja indicado apenas em um logotipo na página sem um rótulo explícito chamado "fornecedor". Ele também pode localizar e extrair itens de despesas, quantidade e preços que não estão rotulados com cabeçalhos de coluna para itens de linha.

Analise a resposta da API de despesas

Documentos de identidade

O texto da Amazônia Analisar ID A API pode ajudá-lo a extrair automaticamente informações de documentos de identificação, como carteiras de motorista e passaportes, sem a necessidade de modelos ou configuração. Podemos extrair informações específicas, como data de vencimento e data de nascimento, bem como identificar e extrair de forma inteligente informações implícitas, como nome e endereço. O diagrama a seguir ilustra esse processo.

Extração de documentos de identidade

Veja o seguinte código:

textract_client = boto3.client('textract')
j = call_textract_analyzeid(document_pages=["s3://amazon-textract-public-content/analyzeid/driverlicense.png"],boto3_textract_client=textract_client)

Podemos usar tabulate para obter uma saída bem impressa:

from tabulate import tabulate

print(tabulate([x[1:3] for x in result]))

Processamento inteligente de documentos com serviços de IA da AWS: Parte 1 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Recomendamos passar pela extração detalhada do documento Código de amostra no GitHub. Para obter mais informações sobre os exemplos de código completos neste post, consulte o GitHub repo.

Conclusão

Neste primeiro post de uma série de duas partes, discutimos os vários estágios do IDP e uma arquitetura de solução. Também discutimos a classificação de documentos usando um classificador personalizado do Amazon Comprehend. Em seguida, exploramos as maneiras pelas quais você pode usar o Amazon Textract para extrair informações de tipos de documentos não estruturados, semiestruturados, estruturados e especializados.

In parte 2 desta série, continuamos a discussão com os recursos de extração e consulta do Amazon Textract. Analisamos como usar entidades predefinidas e personalizadas do Amazon Comprehend para extrair os principais termos de negócios de documentos com texto denso e como integrar uma revisão human-in-the-loop do Amazon A2I em seus processos de IDP.

Recomendamos revisar as seções de segurança do amazontext, Amazon Comprehend e Amazônia A2I documentação e seguindo as orientações fornecidas. Além disso, reserve um momento para revisar e entender os preços de amazontext, Amazon Comprehend e Amazônia A2I.


Sobre os autores

Processamento inteligente de documentos com serviços de IA da AWS: Parte 1 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai. Suprakash Dutta é arquiteto de soluções da Amazon Web Services. Ele se concentra na estratégia de transformação digital, modernização e migração de aplicativos, análise de dados e aprendizado de máquina.

Processamento inteligente de documentos com serviços de IA da AWS: Parte 1 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Sonali Sahu é líder da equipe de arquitetos de soluções de IA/ML de processamento inteligente de documentos na Amazon Web Services. Ela é uma tecnófila apaixonada e gosta de trabalhar com clientes para resolver problemas complexos usando inovação. Sua principal área de foco é inteligência artificial e aprendizado de máquina para processamento inteligente de documentos.

Processamento inteligente de documentos com serviços de IA da AWS: Parte 1 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Anjan Biswas é um arquiteto sênior de soluções de serviços de IA com foco em IA/ML e análise de dados. Anjan faz parte da equipe mundial de serviços de IA e trabalha com os clientes para ajudá-los a entender e desenvolver soluções para problemas de negócios com IA e ML. Anjan tem mais de 14 anos de experiência trabalhando com organizações globais de cadeia de suprimentos, manufatura e varejo, e está ajudando ativamente os clientes a começar e escalar os serviços de IA da AWS.

Processamento inteligente de documentos com serviços de IA da AWS: Parte 1 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Chinmayee Rane é arquiteto de soluções especialista em IA/ML na Amazon Web Services. Ela é apaixonada por matemática aplicada e aprendizado de máquina. Ela se concentra em projetar soluções inteligentes de processamento de documentos para clientes da AWS. Fora do trabalho, ela gosta de dançar salsa e bachata.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS