Usando AWS Textract para processamento de PDF

Oct 08 2020

Quero usar o serviço Textract OCR para ler texto de arquivo pdf. Estou com um problema porque quero fazer localmente, sem o balde S3. Eu testei para arquivos de imagem e funciona bem, mas não funciona para arquivos PDF.

Este é o código em que obtenho um erro:

response = textract.start_document_text_detection(DocumentLocation="sample2.pdf")

Erro:

Invalid type for parameter DocumentLocation, value: sample2.pdf, type: <class 'str'>, valid types: <class 'dict'>

Código 2:

response = textract.start_document_text_detection(DocumentLocation={"name":"sample2.pdf"})

Erro:

Unknown parameter in DocumentLocation: "name", must be one of: S3Object

Código 3:

response = textract.start_document_text_detection(Document={'Bytes': "sample2.pdf"})

Erro:

Unknown parameter in input: "Document", must be one of: DocumentLocation, ClientRequestToken, JobTag, NotificationChannel, OutputConfig

O que devo fazer, existe uma maneira de fazer o Textract funcionar para documentos PDF sem o s3?

Respostas

ehrene Oct 23 2020 at 15:40

A resposta curta à sua pergunta é "Não".

Textract funciona com S3 apenas para entrada. y \ Você precisará seguir o formato para a entrada esperada que é descrito para o serviço na documentação do boto3 aqui:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/textract.html#Textract.Client.start_document_text_detection

Essencialmente, o serviço deseja uma entrada estruturada e você precisa preenchê-la corretamente de acordo com suas especificações. Aqui está a entrada do dicionário DocumentLocation esperada por boto3.

DocumentLocation={
    'S3Object': {
        'Bucket': 'string',
        'Name': 'string',
        'Version': 'string'
    }
}

Estou tendo alguns problemas semelhantes para fazer isso funcionar no boto3 atualmente também, mas vou continuar trabalhando através dos documentos para ver o que posso descobrir.