Uso de AWS Textract para procesar PDF

Oct 08 2020

Quiero utilizar el servicio Textract OCR para leer texto de un archivo pdf. Tengo un problema con eso porque quiero hacerlo localmente, sin el bucket de S3. Lo probé para archivos de imagen y funciona bien, pero no funciona para archivos PDF.

Este es el código donde aparece un error:

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

Error:

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

Código2:

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

Error:

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

Código3:

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

Error:

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

¿Qué debo hacer? ¿Existe alguna manera de hacer que Textract funcione para documentos PDF sin s3?

Respuestas

ehrene Oct 23 2020 at 15:40

La respuesta corta a su pregunta es "No".

Textract funciona con S3 solo para entrada. y \ Deberá seguir el formato para la entrada esperada que se describe para el servicio en la documentación de boto3 aquí:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/textract.html#Textract.Client.start_document_text_detection

Esencialmente, el servicio quiere una entrada estructurada y usted debe completarla correctamente de acuerdo con su especificación. Aquí está la entrada del diccionario DocumentLocation que espera boto3.

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

Actualmente también tengo algunos problemas similares para que esto funcione en boto3, pero seguiré trabajando con los documentos para ver qué puedo averiguar.