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

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

O processamento inteligente de documentos (IDP) da Amazon ajuda você a acelerar seus ciclos de decisão de negócios e reduzir custos. Em vários setores, os clientes precisam processar milhões de documentos por ano no curso de seus negócios. Para clientes que processam milhões de documentos, esse é um aspecto crítico para a experiência do usuário final e uma das principais prioridades da transformação digital. Devido aos formatos variados, a maioria das empresas processa manualmente documentos como W2s, reivindicações, documentos de identificação, faturas e contratos legais, ou usa soluções de OCR (reconhecimento óptico de caracteres) herdadas que são demoradas, propensas a erros e caras. Um pipeline de IDP com serviços de IA da AWS permite que você vá além do OCR com extração de informações mais precisa e versátil, processe documentos com mais rapidez, economize dinheiro e transfira recursos para tarefas de maior valor.

Nesta série, apresentamos uma visão geral do pipeline do IDP para reduzir a quantidade de tempo e esforço necessários para ingerir um documento e obter as principais informações em sistemas downstream. A figura a seguir mostra os estágios que normalmente fazem parte de um fluxo de trabalho 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. Dentro parte 1, discutimos as três primeiras fases do fluxo de trabalho do IDP. Neste post, discutimos as fases restantes do fluxo de trabalho.

Visão geral da solução

A arquitetura de referência a seguir mostra como você pode usar os serviços de IA da AWS, como amazontext e Amazon Comprehend, juntamente com outros serviços da AWS para implementar o fluxo de trabalho do IDP. Na parte 1, descrevemos as etapas de captura de dados e classificação de documentos, onde categorizamos e etiquetamos documentos como extratos bancários, faturas e documentos de recebimento. Também discutimos o estágio de extração, onde você pode extrair informações comerciais significativas de seus documentos. Nesta postagem, estendemos o pipeline do IDP analisando as entidades padrão e personalizadas do Amazon Comprehend na fase de extração, realizando o enriquecimento de documentos e também analisando brevemente os recursos do IA aumentada da Amazon (Amazon A2I) para incluir uma força de trabalho de revisão humana na fase de revisão e validação.

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

Nós também usamos Amazon Comprehend Medical como parte desta solução, que é um serviço para extrair informações de texto médico não estruturado com precisão e rapidez e identificar relações entre informações de saúde extraídas e vincular a ontologias médicas como ICD-10-CM, RxNorm e SNOMED CT.

O Amazon A2I é um serviço de machine learning (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. Amazon A2I integra-se com amazontext e Amazon Comprehend para fornecer a você a capacidade de introduzir etapas de revisão humana em seu fluxo de trabalho de IDP.

Pré-requisitos

Antes de começar, consulte parte 1 para obter uma visão geral de alto nível do IDP e detalhes sobre os estágios de captura, classificação e extração de dados.

Fase de extração

Na parte 1 desta série, discutimos como podemos usar os recursos do Amazon Textract para extração de dados precisa para qualquer tipo de documento. Para estender essa fase, usamos entidades pré-treinadas do Amazon Comprehend e um reconhecedor de entidade personalizado do Amazon Comprehend para extração adicional de documentos. O objetivo do reconhecedor de entidade personalizado é identificar entidades específicas e gerar metadados personalizados sobre nossos documentos em formato CSV ou legível para serem analisados ​​posteriormente pelos usuários de negócios.

Reconhecimento de entidade nomeada

O reconhecimento de entidade nomeada (NER) é uma subtarefa de processamento de linguagem natural (NLP) que envolve a triagem de dados de texto para localizar frases nominais, chamadas entidades nomeadas, e categorizar cada uma com um rótulo, como marca, data, evento, local, organizações , pessoa, quantidade ou título. Por exemplo, na declaração “Assinei recentemente o Amazon Prime”, o Amazon Prime é a entidade nomeada e pode ser categorizada como uma marca.

O Amazon Comprehend permite detectar essas entidades personalizadas em seu documento. Cada entidade também tem uma pontuação de nível de confiança que o Amazon Comprehend retorna para cada tipo de entidade. O diagrama a seguir ilustra o processo de reconhecimento de entidade.

Reconhecimento de entidade nomeada com o Amazon Comprehend

Para obter entidades do documento de texto, chamamos o método comprehend.detect_entities() e configure o código do idioma e o texto como parâmetros de entrada:

def get_entities(text):
    try:
        #detect entities
        entities = comprehend.detect_entities(LanguageCode="en", Text=text)  
        df = pd.DataFrame(entities["Entities"], columns = ['Text', 'Type'])
        display(HTML(df.to_html(index=False)))
    except Exception as e:
        print(e)

Nós executamos o get_entities() método no documento bancário e obter a lista de entidades nos resultados.

Resposta do método get_entities do Comprehend.

Embora a extração de entidade tenha funcionado razoavelmente bem na identificação dos tipos de entidade padrão para tudo no documento bancário, queremos que entidades específicas sejam reconhecidas para nosso caso de uso. Mais especificamente, precisamos identificar os números de poupança e conta corrente do cliente no extrato bancário. Podemos extrair esses principais termos de negócios usando o reconhecimento de entidade personalizada do Amazon Comprehend.

Treinar um modelo de reconhecimento de entidade personalizada do Amazon Comprehend

Para detectar as entidades específicas em que estamos interessados ​​no extrato bancário do cliente, treinamos um reconhecedor de entidade personalizado com duas entidades personalizadas: SAVINGS_AC e CHECKING_AC.

Em seguida, treinamos um modelo de reconhecimento de entidade personalizado. Podemos escolher uma das duas maneiras de fornecer dados ao Amazon Comprehend: anotações ou listas de entidades.

O método de anotações geralmente pode levar a resultados mais refinados para arquivos de imagem, PDFs ou documentos do Word porque você treina um modelo enviando um contexto mais preciso como anotações junto com seus documentos. No entanto, o método de anotações pode ser demorado e trabalhoso. Para simplificar esta postagem de blog, usamos o método de listas de entidades, que você só pode usar para documentos de texto simples. Esse método nos fornece um arquivo CSV que deve conter o texto simples e seu tipo de entidade correspondente, conforme mostrado no exemplo anterior. As entidades neste arquivo serão específicas para nossas necessidades de negócios (poupança e números de conta corrente).

Para obter mais detalhes sobre como preparar os dados de treinamento para diferentes casos de uso usando anotações ou métodos de listas de entidades, consulte Preparando os dados de treinamento.

A captura de tela a seguir mostra um exemplo de nossa lista de entidades.

Um instantâneo da lista de entidades.

Criar um endpoint NER personalizado do Amazon Comprehend em tempo real

Em seguida, criamos um endpoint em tempo real do reconhecedor de entidade personalizado usando o modelo que treinamos. Nós usamos o Criar ponto final API através do comprehend.create_endpoint() método para criar o endpoint em tempo real:

#create comprehend endpoint
model_arn = entity_recognizer_arn
ep_name = 'idp-er-endpoint'

try:
    endpoint_response = comprehend.create_endpoint(
        EndpointName=ep_name,
        ModelArn=model_arn,
        DesiredInferenceUnits=1,    
        DataAccessRoleArn=role
    )
    ER_ENDPOINT_ARN=endpoint_response['EndpointArn']
    print(f'Endpoint created with ARN: {ER_ENDPOINT_ARN}')
    %store ER_ENDPOINT_ARN
except Exception as error:
    if error.response['Error']['Code'] == 'ResourceInUseException':
        print(f'An endpoint with the name "{ep_name}" already exists.')
        ER_ENDPOINT_ARN = f'arn:aws:comprehend:{region}:{account_id}:entity-recognizer-endpoint/{ep_name}'
        print(f'The classifier endpoint ARN is: "{ER_ENDPOINT_ARN}"')
        %store ER_ENDPOINT_ARN
    else:
        print(error)

Depois de treinar um reconhecedor de entidade personalizado, usamos o endpoint personalizado em tempo real para extrair algumas informações enriquecidas do documento e, em seguida, executamos a redação do documento com a ajuda das entidades personalizadas reconhecidas pelo Amazon Comprehend e informações de caixa delimitadora do Amazon Textract.

Fase de enriquecimento

No estágio de enriquecimento de documentos, podemos realizar o enriquecimento de documentos redigindo dados de informações de identificação pessoal (PII), extração de termos comerciais personalizados e assim por diante. Nosso documento de amostra anterior (um extrato bancário) contém os números de contas correntes e de poupança dos clientes, que queremos editar. Como já conhecemos essas entidades personalizadas por meio de nosso modelo NER personalizado do Amazon Comprehend, podemos usar facilmente o tipo de dados de geometria do Amazon Textract para redigir essas entidades PII onde quer que apareçam no documento. Na arquitetura a seguir, redigimos os principais termos de negócios (poupança e contas correntes) do documento do extrato bancário.

Fase de enriquecimento de documentos.

Como você pode ver no exemplo a seguir, os números da conta corrente e poupança estão ocultos no extrato bancário agora.

Exemplo de extrato bancário editado.

As soluções de OCR tradicionais lutam para extrair dados com precisão da maioria dos documentos não estruturados e semiestruturados devido a variações significativas na forma como os dados são dispostos em várias versões e formatos desses documentos. Você pode precisar implementar uma lógica de pré-processamento personalizada ou até mesmo extrair manualmente as informações desses documentos. Nesse caso, o pipeline do IDP oferece suporte a dois recursos que você pode usar: NER personalizado do Amazon Comprehend e consultas do Amazon Textract. Ambos os serviços usam NLP para extrair insights sobre o conteúdo dos documentos.

Extração com consultas do Amazon Textract

Ao processar um documento com o Amazon Textract, você pode adicionar o novo recurso de consultas à sua análise para especificar quais informações você precisa. Isso envolve passar uma pergunta de PNL, como "Qual é o número do seguro social do cliente?" para o Amazon Textract. O Amazon Textract encontra as informações no documento para essa pergunta e as retorna em uma estrutura de resposta separada do restante das informações do documento. As consultas podem ser processadas sozinhas ou em combinação com qualquer outro FeatureType, como Tables or Forms.

Extração baseada em consultas usando o Amazon Textract.

Com as consultas do Amazon Textract, você pode extrair informações com alta precisão, independentemente de como os dados são dispostos em uma estrutura de documento, como formulários, tabelas e caixas de seleção, ou armazenados em seções aninhadas em um documento.

Para demonstrar o recurso de consultas, extraímos informações valiosas como o nome e sobrenome do paciente, o fabricante da dosagem e assim por diante de documentos como um cartão de vacinação COVID-19.

Um modelo de cartão de vacinação.

Usamos o textract.analyze_document() função e especifique o FeatureType as QUERIES bem como adicionar as consultas na forma de perguntas de linguagem natural no QueriesConfig.

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 analyze_document().

response = None
with open(image_filename, 'rb') as document:
    imageBytes = bytearray(document.read())

# Call Textract
response = textract.analyze_document(
    Document={'Bytes': imageBytes},
    FeatureTypes=["QUERIES"],
    QueriesConfig={
            "Queries": [{
                "Text": "What is the date for the 1st dose covid-19?",
                "Alias": "COVID_VACCINATION_FIRST_DOSE_DATE"
            },
# code trimmed down for simplification
#..
]
}) 

Para o recurso de consultas, o textract.analyze_document() A função gera todas as PALAVRAS e LINHAS de OCR, informações de geometria e pontuações de confiança na resposta JSON. No entanto, podemos apenas imprimir as informações que consultamos.

Document é uma função wrapper usada para ajudar a analisar a resposta JSON da API. Ele fornece uma abstração de alto nível e torna a saída da API iterável e fácil de obter informações. Para obter mais informações, consulte o Analisador de resposta de texto e Texturizador repositórios do GitHub. Depois de processarmos a resposta, obtemos as seguintes informações, conforme mostrado na captura de tela.

import trp.trp2 as t2
from tabulate import tabulate

d = t2.TDocumentSchema().load(response)
page = d.pages[0]

query_answers = d.get_query_answers(page=page)

print(tabulate(query_answers, tablefmt="github"))

Resposta da extração de consultas.

Fase de revisão e validação

Este é o estágio final do nosso pipeline de IDP. Nesta etapa, podemos usar nossas regras de negócios para verificar a integridade de um documento. Por exemplo, de um documento de sinistro de seguro, o ID do sinistro é extraído com precisão e sucesso. Podemos usar tecnologias sem servidor da AWS, como AWS Lambda para maior automação dessas regras de negócios. Além disso, podemos incluir uma força de trabalho humana para revisões de documentos para garantir que as previsões sejam precisas. O Amazon A2I acelera a criação de fluxos de trabalho necessários para revisão humana para previsões de ML.

Com o Amazon A2I, você pode permitir que revisores humanos interfiram quando um modelo não puder fazer uma previsão de alta confiança ou auditar suas previsões continuamente. O objetivo do pipeline de IDP é reduzir a quantidade de entrada humana necessária para obter informações precisas em seus sistemas de decisão. Com o IDP, você pode reduzir a quantidade de entrada humana para seus processos de documentos, bem como o custo total do processamento de documentos.

Depois de obter todas as informações precisas extraídas dos documentos, você pode adicionar ainda mais regras específicas de negócios usando funções do Lambda e, finalmente, integrar a solução com bancos de dados ou aplicativos downstream.

Fase de revisão e verificação humana.

Para obter mais informações sobre como criar um fluxo de trabalho Amazon A2I, siga as instruções do Preparação para o Módulo 4 passo no final de 03-idp-document-enrichment.ipynb na nossa GitHub repo.

limpar

Para evitar cobranças futuras em sua conta da AWS, exclua os recursos que provisionamos na configuração do repositório navegando até o Seção de limpeza em nosso repositório.

Conclusão

Nesta postagem de duas partes, vimos como criar um pipeline de IDP de ponta a ponta com pouca ou nenhuma experiência em ML. Discutimos os vários estágios do pipeline e uma solução prática com serviços de IA da AWS, como Amazon Textract, Amazon Comprehend, Amazon Comprehend Medical e Amazon A2I para projetar e criar casos de uso específicos do setor. No primeira postagem da série, demonstramos como usar o Amazon Textract e o Amazon Comprehend para extrair informações de vários documentos. Nesta postagem, nos aprofundamos em como treinar um reconhecedor de entidade personalizada do Amazon Comprehend para extrair entidades personalizadas de nossos documentos. Também realizamos técnicas de enriquecimento de documentos, como redação, usando o Amazon Textract, bem como a lista de entidades do Amazon Comprehend. Por fim, vimos como você pode usar um fluxo de trabalho de revisão humana do Amazon A2I para o Amazon Textract incluindo uma equipe de trabalho privada.

Para obter mais informações sobre os exemplos de código completos neste post, consulte o GitHub repo.

Recomendamos que você revise as seções de segurança do amazontext, Amazon Comprehend e Amazônia A2I documentação e siga 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 2 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai. Queixo 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.

Processamento inteligente de documentos com serviços de IA da AWS: Parte 2 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. Suas principais áreas de foco são 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 2 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Anjan Biswas é um arquiteto de soluções sênior especialista em IA/ML. Anjan trabalha com clientes corporativos e é apaixonado por desenvolver, implantar e explicar soluções de IA/ML, análise de dados e big data. 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 na AWS.

Processamento inteligente de documentos com serviços de IA da AWS: Parte 2 PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Suprakash Dutta é Arquiteto de Soluções na 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. Ele faz parte da comunidade de IA/ML da AWS e projeta soluções inteligentes de processamento de documentos.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS