

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Extraia automaticamente conteúdo de arquivos PDF usando o Amazon Textract
<a name="automatically-extract-content-from-pdf-files-using-amazon-textract"></a>

*Tianxia Jia, Amazon Web Services*

## Resumo
<a name="automatically-extract-content-from-pdf-files-using-amazon-textract-summary"></a>

Muitas organizações precisam extrair informações de arquivos PDF que são enviados para seus aplicativos de negócios. Por exemplo, uma organização pode precisar extrair com precisão as informações de arquivos PDF fiscais ou médicos para análise tributária ou processamento de reclamações médicas.

Na nuvem da Amazon Web Services (AWS), o Amazon Textract extrai automaticamente informações (por exemplo, texto impresso, formulários e tabelas) de arquivos PDF e produz um arquivo formatado em JSON que contém informações do arquivo PDF original. Você pode usar o Amazon Textract no Console de Gerenciamento da AWS ou implementando chamadas de API. Recomendamos que você use [chamadas de API programáticas](https://aws.amazon.com/textract/faqs/) para escalar e processar automaticamente grandes quantidades de arquivos PDF.

Quando o Amazon Textract processa um arquivo, ele cria a seguinte lista de objetos `Block`: páginas, linhas e palavras de texto, formulários (pares de valores-chave), tabelas e células e elementos de seleção. Outras informações do objeto também estão incluídas, por exemplo, [caixas delimitadoras](https://docs.aws.amazon.com/textract/latest/dg/API_BoundingBox.html) IDs, intervalos de confiança e relacionamentos. O Amazon Textract extrai as informações do conteúdo como sequências de caracteres. Valores de dados identificados e transformados corretamente são necessários porque podem ser usados com mais facilidade por seus aplicativos downstream. 

Esse padrão descreve um step-by-step fluxo de trabalho para usar o Amazon Textract para extrair automaticamente conteúdo de arquivos PDF e processá-lo em uma saída limpa. O padrão usa uma técnica de correspondência de modelos para identificar corretamente o campo obrigatório, o nome da chave e as tabelas e, em seguida, aplica correções de pós-processamento a cada tipo de dados. Você pode usar esse padrão para processar diferentes tipos de arquivos PDF e, em seguida, escalar e automatizar esse fluxo de trabalho para processar arquivos PDF que tenham um formato idêntico.   

## Pré-requisitos e limitações
<a name="automatically-extract-content-from-pdf-files-using-amazon-textract-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um bucket existente do Amazon Simple Storage Service (Amazon S3) para armazenar os arquivos PDF após serem convertidos para o formato JPEG para processamento pelo Amazon Textract. Para obter mais informações sobre buckets do S3, consulte [Visão geral dos buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingBucket.html) na documentação do Amazon S3.
+ O caderno Jupyter `Textract_PostProcessing.ipynb` (anexado), instalado e configurado. Para obter mais informações sobre os cadernos Jupyter, consulte [Criar um caderno Jupyter na](https://docs.aws.amazon.com/sagemaker/latest/dg/ex1-prepare.html) documentação da Amazon. SageMaker 
+ Arquivos PDF existentes que têm um formato idêntico.
+ Uma compreensão do Python.

**Limitações**
+ Seus arquivos PDF devem ser de boa qualidade e claramente legíveis. Arquivos PDF nativos são recomendados, mas você pode usar documentos digitalizados que são convertidos em formato PDF se todas as palavras individuais estiverem claras. Para obter mais informações sobre isso, consulte [Pré-processamento de documentos PDF com o Amazon Textract: detecção e remoção de imagens](https://aws.amazon.com/blogs/machine-learning/process-text-and-images-in-pdf-documents-with-amazon-textract/) no blog do AWS Machine Learning.
+ Para arquivos de várias páginas, você pode usar uma operação assíncrona ou dividir os arquivos PDF em uma única página e usar uma operação síncrona. Para obter mais informações sobre essas duas opções, consulte [Detecção e análise de texto em documentos de várias páginas](https://docs.aws.amazon.com/textract/latest/dg/async.html) e [Detecção e análise de texto em documentos de uma única página](https://docs.aws.amazon.com/textract/latest/dg/sync.html) na documentação do Amazon Textract.

## Arquitetura
<a name="automatically-extract-content-from-pdf-files-using-amazon-textract-architecture"></a>

O fluxo de trabalho desse padrão primeiro executa o Amazon Textract em um arquivo PDF de amostra (*primeira execução*) e depois o executa em arquivos PDF que têm um formato idêntico ao primeiro PDF (*execução repetida*). O diagrama a seguir mostra o fluxo de trabalho combinado de *primeira execução* e *execução repetida* que extrai automaticamente e repetidamente conteúdo de arquivos PDF com formatos idênticos.

![\[Usando o Amazon Textract para extrair conteúdo de arquivos PDF\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/2d724523-2cab-42c9-a773-65857014d9ec/images/9e20070f-3e0c-46aa-aa98-a8b1eb3395dc.png)


 

O diagrama a seguir mostra o fluxo de trabalho desse padrão:

1. Converta um arquivo PDF em formato JPEG e armazene-o em um bucket do S3. 

1. Chame a API Amazon Textract e analise o arquivo JSON de resposta do Amazon Textract. 

1. Edite o arquivo JSON adicionando o par `KeyName:DataType` correto para cada campo obrigatório. Crie um arquivo `TemplateJSON` para o estágio de *execução repetida*.

1. Defina as funções de correção de pós-processamento para cada tipo de dados (por exemplo, flutuante, inteiro e data).

1. Prepare os arquivos PDF que tenham um formato idêntico ao seu primeiro arquivo PDF.

1. Chame a API Amazon Textract e analise o JSON de resposta do Amazon Textract.

1. Combine o arquivo JSON analisado com o arquivo `TemplateJSON`.

1. Implemente correções de pós-processamento.

O arquivo de saída JSON final tem o campo correto `KeyName` e `Value` para cada campo obrigatório.

**Pilha de tecnologias de destino**
+ Amazon SageMaker 
+ Amazon S3 
+ Amazon Textract

**Automação e escala**

Você pode automatizar o fluxo de trabalho de *repetição de execução* usando uma função do Lambda da AWS que inicia o Amazon Textract quando um novo arquivo PDF é adicionado ao Amazon S3. Em seguida, o Amazon Textract executa os scripts de processamento e a saída final pode ser salva em um local de armazenamento. Para obter mais informações sobre isso, consulte [Usar um acionador do Amazon S3 para invocar uma função do Lambda na documentação do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html).

## Ferramentas
<a name="automatically-extract-content-from-pdf-files-using-amazon-textract-tools"></a>
+  SageMakerA [Amazon](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html) é um serviço de ML totalmente gerenciado que ajuda você a criar e treinar modelos de ML de forma rápida e fácil e, em seguida, implantá-los diretamente em um ambiente hospedado pronto para produção.
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
+ [O Amazon Textract](https://docs.aws.amazon.com/textract/latest/dg/what-is.html) facilita a adição de detecção e análise de texto de documentos aos seus aplicativos.

## Épicos
<a name="automatically-extract-content-from-pdf-files-using-amazon-textract-epics"></a>

### Primeira execução
<a name="first-time-run"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Converta o arquivo PDF. | Prepare o arquivo PDF para sua primeira execução dividindo-o em uma única página e convertendo-o em formato JPEG para a [operação síncrona](https://docs.aws.amazon.com/textract/latest/dg/sync.html) do Amazon Textract (`Syn API`).Você também pode usar a [operação assíncrona](https://docs.aws.amazon.com/textract/latest/dg/async.html) do Amazon Textract (`Asyn API`) para arquivos em PDF com várias páginas. | Cientista de dados, desenvolvedor | 
| Analise a resposta JSON do Amazon Textract. | Abra o caderno Jupyter `Textract_PostProcessing.ipynb` (anexado) e chame a API Amazon Textract usando o seguinte código:<pre>response = textract.analyze_document(<br />Document={<br />        'S3Object': {<br />            'Bucket': BUCKET,<br />            'Name': '{}'.format(filename)<br />                    }<br />                },<br />        FeatureTypes=["TABLES", "FORMS"])</pre>Analise a resposta JSON em um formulário e uma tabela usando o código a seguir:<pre>parseformKV=form_kv_from_JSON(response)<br />parseformTables=get_tables_fromJSON(response)</pre> | Cientista de dados, desenvolvedor | 
| Edite o arquivo TemplateJSON. | Edite o JSON analisado para cada `KeyName` e `DataType` correspondentes (por exemplo, string, ponto flutuante, número inteiro ou data) e cabeçalhos de tabela (por exemplo, `ColumnNames` e `RowNames`).Esse modelo é usado para cada tipo de arquivo PDF individual, o que significa que o modelo pode ser reutilizado para arquivos PDF com formato idêntico. | Cientista de dados, desenvolvedor | 
| Defina as funções de correção de pós-processamento. | Os valores na resposta do Amazon Textract para o arquivo `TemplateJSON` são sequências de caracteres. Não há diferenciação para data, valor flutuante, número inteiro ou moeda. Esses valores devem ser convertidos no tipo de dados correto para seu caso de uso posterior. Corrija cada tipo de dados de acordo com o arquivo `TemplateJSON` usando o código a seguir:<pre>finalJSON=postprocessingCorrection(parsedJSON,templateJSON)</pre> | Cientista de dados, desenvolvedor | 

### Repita a execução
<a name="repeat-run"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Prepare os arquivos PDF. | Prepare os arquivos PDF dividindo-os em uma única página e convertendo-os em formato JPEG para a [operação síncrona](https://docs.aws.amazon.com/textract/latest/dg/sync.html) do Amazon Textract (`Syn API`).Você também pode usar a [operação assíncrona](https://docs.aws.amazon.com/textract/latest/dg/async.html) do Amazon Textract (`Asyn API`) para arquivos em PDF com várias páginas. | Cientista de dados, desenvolvedor | 
| Chame a API do Amazon Textract. | Chame a API Amazon Textract usando o seguinte código:<pre>response = textract.analyze_document(<br />        Document={<br />        'S3Object': {<br />            'Bucket': BUCKET,<br />            'Name': '{}'.format(filename)<br />                    }<br />                },<br />        FeatureTypes=["TABLES", "FORMS"])</pre> | Cientista de dados, desenvolvedor | 
| Analise a resposta JSON do Amazon Textract. | Analise a resposta JSON em um formulário e uma tabela usando o código a seguir:<pre>parseformKV=form_kv_from_JSON(response)<br />parseformTables=get_tables_fromJSON(response)</pre> | Cientista de dados, desenvolvedor | 
| Carregue o arquivo TemplateJSON e combine-o com o JSON analisado. | Use o arquivo `TemplateJSON` para extrair os pares de valores-chave e a tabela corretos usando os seguintes comandos:<pre>form_kv_corrected=form_kv_correction(parseformKV,templateJSON)<br />form_table_corrected=form_Table_correction(parseformTables, templateJSON)<br />form_kv_table_corrected_final={**form_kv_corrected , **form_table_corrected}</pre> | Cientista de dados, desenvolvedor | 
| Correções de pós-processamento. | Use `DataType` nos perfis de arquivo `TemplateJSON` e pós-processamento para corrigir dados usando o seguinte código: <pre>finalJSON=postprocessingCorrection(form_kv_table_corrected_final,templateJSON)</pre> | Cientista de dados, desenvolvedor | 

## Recursos relacionados
<a name="automatically-extract-content-from-pdf-files-using-amazon-textract-resources"></a>
+ [Extraia automaticamente texto e dados estruturados de documentos com o Amazon Textract](https://aws.amazon.com/blogs/machine-learning/automatically-extract-text-and-structured-data-from-documents-with-amazon-textract/)
+ [Extraia texto e dados estruturados com o Amazon Textract](https://aws.amazon.com/getting-started/hands-on/extract-text-with-amazon-textract/)
+ [Recursos do Amazon Textract](https://aws.amazon.com/textract/resources/?blog-posts-cards.sort-by=item.additionalFields.createdDate&blog-posts-cards.sort-order=desc)

## Anexos
<a name="attachments-2d724523-2cab-42c9-a773-65857014d9ec"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: [ attachment.zip](samples/p-attach/2d724523-2cab-42c9-a773-65857014d9ec/attachments/attachment.zip)