Tutorial: ¿Cómo extraer texto de PDF usando Python?


Los archivos de formato de documento portátil (PDF) se utilizan comúnmente para compartir documentos electrónicamente. Las personas y las empresas utilizan archivos PDF para compartir información por igual. A menudo necesitamos extraer alguna información de los archivos PDF para su posterior procesamiento. Sin embargo, extraer texto de un archivo PDF puede ser un desafío, especialmente si el documento contiene un formato y un diseño complejos. Afortunadamente, hay varias maneras de hacer esto.

Aquí, proporcionaremos el método más utilizado para extraer texto de archivos PDF usando Python. Python comprende varias bibliotecas que permiten la extracción eficiente de texto PDF.

El artículo explora algunas bibliotecas populares de Python para extraer texto de archivos PDF y el proceso de extracción de texto paso a paso de archivos PDF.


Bibliotecas de Python para el procesamiento de PDF

Python tiene varias bibliotecas bien integradas que manejan con eficacia fuentes de datos no estructurados, como archivos PDF. Aquí hay una lista de algunas bibliotecas de Python para el procesamiento de PDF.

  • PyPDF2: Es una biblioteca de Python para PDF que puede ayudar a dividir, fusionar, recortar y transformar páginas de archivos PDF. PyPDF2 también le permite extraer texto de archivos PDF.
  • PyMuPDF: PyMuPDF es un contenedor de Python para la biblioteca MuPDF C. Le permite leer, escribir y manipular archivos PDF en Python. Además, puede acceder a los metadatos del documento PDF, extraer texto e imágenes y descifrar un documento PDF con PyMuPDF.
  • ReportLab: Es una biblioteca Python de código abierto que se puede usar para crear y manipular archivos PDF. Proporciona una API de alto nivel para crear documentos PDF desde cero y admite la incrustación de imágenes y fuentes.
  • Pdf2dox: Es una biblioteca de Python para extraer datos utilizando la biblioteca PyMuPDF de archivos PDF.

Convierta archivos PDF complejos a formato de texto al instante usando el convertidor de PDF a texto. Pruébalo free of charge.


Configuración del entorno de desarrollo

Antes de discutir los pasos para la extracción de texto de PDF, es esencial configurar un entorno de desarrollo e instalar las bibliotecas de Python necesarias para extraer texto.

  • Instalar Pitón: Si aún no lo ha hecho, deberá instalar Python en su sistema. Puede descargar la última versión de Python desde aquí.
  • Instalar pipa: Para verificar si tiene pip instalado en Python, ejecute
py -m ensurepip --default-pip 

Si pip no se ejecuta automáticamente, descárguelo aquí y ejecute el siguiente código para instalar o actualizar

pip.python get-pip.py
  • Instale la biblioteca necesaria: Instale cualquier biblioteca de Python para trabajar con archivos PDF. Aquí, instalaremos la biblioteca de uso común, PyPDF2. Para instalarlo, ejecute el siguiente comando.
pip set up PyPDF2

Una vez que haya instalado Python y las bibliotecas requeridas, su entorno de desarrollo estará configurado. Puede usar cualquier editor de texto o IDE para escribir código de Python, como Visible Studio Code, PyCharm o Elegant Textual content.

Usaremos la biblioteca Python PyPDF2 para extraer archivos.

PDF de entrada:

# importando módulos requeridos
de PyPDF2 importar Lector PDF

# creando un objeto lector de pdf
lector = PdfReader(‘nanonet.pdf’)

# imprimiendo el número de páginas en un archivo pdf
imprimir (len (lector.páginas))

# obtener una página específica del archivo pdf
pagina = lector.paginas(0)

# extrayendo texto de la página
texto = pagina.extraer_texto()
imprimir (texto)

Producción:

Ahora, entendamos cada código por separado.

  • lector = PdfReader(‘nanonets.pdf’)

Desde el módulo PyPDF2, creamos un objeto de la clase PDFReader. Tomará el argumento posicional requerido de la ruta al archivo pdf.

La propiedad de las páginas proporciona una Lista de PageObjects. Aquí, podemos usar la función incorporada de Python len() para obtener el número de páginas en el archivo pdf.

También podemos obtener una página de archivo pdf específica tocando el índice de la página. La indexación de listas comienza desde 0 en Python, por lo que este comando nos dará la primera página del archivo.

  • texto = pagina.extraer_texto()

imprimir (texto)

Usaremos este comando para extraer texto de la página pdf.

Preprocesamiento del texto extraído para limpiarlo y normalizarlo

Se utilizan diferentes técnicas de preprocesamiento, como la eliminación de palabras vacías, minúsculas, eliminación de puntuación, derivación o lematización, para limpiar y normalizar el texto extraído en Python.

Aporte: Python es un lenguaje de programación common utilizado para el análisis de datos y el aprendizaje automático. Es fácil de aprender y tiene una amplia gama de bibliotecas para diversas aplicaciones.

Código:

texto = “Python es un lenguaje de programación common que se utiliza para el análisis de datos y el aprendizaje automático. Es fácil de aprender y tiene una amplia gama de bibliotecas para diversas aplicaciones”.
fichas = word_tokenize(texto)
stop_words = set(stopwords.phrases(‘inglés’))
texto_filtrado = (palabra para palabra en fichas si no palabra.inferior() en Para las palabras)
texto_limpio = (palabra.inferior() para palabra en texto_filtrado si palabra.isalpha())

imprimir (texto_limpio)

Producción: (‘python’, ‘common’, ‘programación’, ‘lenguaje’, ‘usado’, ‘datos’, ‘análisis’, ‘máquina’, ‘aprendizaje’, ‘fácil’, ‘aprender’, ‘ancho’ ‘ rango,’ ‘bibliotecas’, ‘varios’, ‘aplicaciones’)

Este paso eliminó palabras vacías como “es”, “un”, “para”, “y”, “eso” y “tiene”, y también puso en minúsculas todas las palabras del texto.

Guardar texto extraído en un archivo o base de datos

Ejecute el siguiente código:

con abierto(‘texto_extraído.txt’, ‘w’) como F:
f.escribir(‘ ‘.be part of(texto_limpio))

Este código abrirá un archivo llamado texto_extraído.txt en modo escritura. El f.escribir() El método escribe el texto preprocesado en el archivo. Convierte la lista de palabras en texto_limpio a una cadena uniendo las palabras con un carácter de espacio (‘ ‘), luego escribe la cadena resultante en el archivo.

Entonces, el resultado es que el texto preprocesado se guarda en un archivo llamado texto_extraído.txt en el directorio de trabajo precise.


Convierta archivos PDF complejos a formato de texto al instante usando el convertidor de PDF a texto. Pruébalo free of charge.


Se pueden utilizar varias técnicas avanzadas para mejorar la precisión de la extracción de texto. Aquí hay algunas técnicas:

  • Reconocimiento óptico de caracteres (OCR): OCR es un proceso que convierte imágenes escaneadas en texto codificado por máquina. OCR se puede utilizar para extraer texto de archivos PDF que contienen imágenes o páginas escaneadas. Hay varios motores de OCR disponibles, incluidos Tesseract, Google Cloud Imaginative and prescient y Amazon Textract.
  • Técnicas de preprocesamiento: Las técnicas de preprocesamiento implican manipular el archivo PDF antes del proceso de extracción actual. Esto incluye técnicas como eliminación de sesgo, eliminación de ruido y umbralización para eliminar el ruido, el sesgo y otras distorsiones que pueden afectar la precisión del proceso de extracción.
  • Análisis de diseño: Implica identificar y clasificar los diferentes elementos de un archivo PDF, como bloques de texto, tablas e imágenes. Esta información puede mejorar la precisión de la extracción de texto al identificar la estructura del documento.
  • Herramientas de aprendizaje automático: Varias herramientas de extracción de texto, como nanoredesuse técnicas de aprendizaje automático para extraer texto de archivos PDF con precisión.

Sugerencias para optimizar el rendimiento y reducir el uso de memoria en Python

La gestión eficaz de la memoria en Python puede ser compleja y requiere comprender las estructuras de datos y los objetos de Python. Aquí hay algunos consejos para optimizar el rendimiento y reducir el uso de memoria mientras se ejecuta código en Python.

1. Utilice funciones y bibliotecas de Python integradas

El uso de las funciones integradas de Python es una forma efectiva de acelerar su código. Se recomienda incorporar estas funciones en su código cuando sea apropiado porque están optimizadas y probadas para el rendimiento.

Estas funciones son rápidas porque se ejecutan en C, un lenguaje de alto rendimiento. Ejemplos de estas funciones incluyen max, min, all, map y muchas otras.

2. Utilice el cargador de datos Pytorch

El entrenamiento de un gran conjunto de datos puede consumir mucha memoria. El uso de DataLoader de PyTorch brinda una solución a este problema al permitir la creación de múltiples mini lotes de datos de todo el conjunto de datos. Cada mini lote, que puede contener varias muestras determinadas por la memoria disponible, se carga sin problemas en el modelo, lo que permite el entrenamiento eficiente de grandes conjuntos de datos.

3. Usa la comprensión de listas sobre bucles

En Python, los bucles son comunes, pero las listas por comprensión ofrecen una forma más concisa y rápida de crear nuevas listas. Es mejor que el método de agregar para agregar elementos a una lista de Python.

4. Gastos generales de declaración de importación

En Python, la ubicación de la declaración de importación puede afectar el rendimiento y el uso de la memoria de su código. Importar un paquete fuera de una función puede resultar en una ejecución de código más rápida, pero también puede requerir más memoria que importar el paquete dentro de una función. Es importante tener en cuenta las compensaciones entre el rendimiento y el uso de la memoria al decidir dónde colocar las declaraciones de importación en Python.

5. Trozos de datos

La fragmentación o carga de datos en lotes pequeños es una técnica útil para evitar errores de memoria cuando se trabaja con grandes conjuntos de datos en Python. En muchos casos, no se necesitan todos los datos a la vez, e intentar cargar todo en un solo lote puede hacer que el programa se bloquee debido a limitaciones de memoria. Al procesar los datos en fragmentos más pequeños, es posible evitar estos errores de memoria y guardar los resultados según sea necesario. Por lo tanto, la fragmentación de datos es común en el procesamiento y análisis de datos para evitar problemas relacionados con la memoria.

6. Concatenación de cadenas

Dos formas comunes de concatenar cadenas en Python son usar el operador ‘+’ o el método be part of(). Si bien el operador ‘+’ se usa mucho, el método be part of() es más efectivo y rápido para concatenar cadenas. La razón principal es que en cada paso, el operador ‘+’ crea una nueva cadena y copia la anterior, mientras que el método be part of() funciona de manera diferente, lo que resulta en una concatenación más rápida.


Convierta archivos PDF complejos a formato de texto al instante usando el convertidor de PDF a texto. Pruébalo free of charge.


Llevar

El manejo de errores de memoria en Python puede ser un desafío, pero existen varios métodos para optimizar el uso de la memoria y evitar los desbordamientos de memoria. El primer paso es identificar el motivo principal del problema y aplicar los métodos de optimización de memoria aplicables. Si el problema persiste, los procesos relacionados se pueden optimizar o la operación se puede dividir en partes más pequeñas utilizando un servicio de base de datos externo.

Con estos consejos y técnicas, es posible optimizar el uso de la memoria y evitar problemas relacionados con la memoria cuando se trabaja con grandes conjuntos de datos en Python. Si bien las bibliotecas de Python ofrecen una forma conveniente de extraer texto de archivos PDF, vale la pena considerar otras herramientas automatizadas para la extracción de texto, como Nanoredes.

Related Articles

Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Same Category

spot_img

Stay in touch!

Follow our Instagram