Извлечение текста из PDF-документов с помощью Python: подробное руководство

Извлечение текста из PDF-документов — распространенная задача при анализе данных, обработке естественного языка и обработке документов. В этой статье блога мы рассмотрим различные методы извлечения текста из PDF-файлов с помощью Python, уделяя особое внимание библиотеке PyPDF2. Мы предоставим примеры кода для каждого метода, чтобы помочь вам начать работу.

Метод 1: использование библиотеки PyPDF2
Библиотека PyPDF2 — популярный выбор для работы с PDF-файлами в Python. Он обеспечивает простой и интуитивно понятный интерфейс для извлечения текста из документов PDF. Вот пример использования PyPDF2 для извлечения текста из PDF-файла:

from PyPDF2 import PdfReader
def extract_text_from_pdf(file_path):
    pdf_reader = PdfReader(file_path)
    texts = []
    for page in pdf_reader.pages:
        texts.append(page.extract_text())
    return texts
# Usage
pdf_file = "example.pdf"
extracted_texts = extract_text_from_pdf(pdf_file)
print(extracted_texts)

Метод 2: использование библиотеки pdfminer.six
Еще одна мощная библиотека для обработки PDF-файлов в Python — pdfminer.six. Он обеспечивает более низкоуровневый подход к извлечению текста из файлов PDF. Вот пример использования pdfminer.six для извлечения текста:

from pdfminer.high_level import extract_text
def extract_text_from_pdf(file_path):
    return extract_text(file_path)
# Usage
pdf_file = "example.pdf"
extracted_text = extract_text_from_pdf(pdf_file)
print(extracted_text)

Метод 3: использование библиотеки PyMuPDF
PyMuPDF — это привязка Python для библиотеки MuPDF, которая позволяет извлекать текст из файлов PDF. Он обеспечивает быстрый и эффективный способ извлечения текста из PDF-документов. Вот пример использования PyMuPDF:

import fitz
def extract_text_from_pdf(file_path):
    doc = fitz.open(file_path)
    texts = []
    for page in doc:
        texts.append(page.get_text())
    return texts
# Usage
pdf_file = "example.pdf"
extracted_texts = extract_text_from_pdf(pdf_file)
print(extracted_texts)

Метод 4: использование библиотеки PDFMiner
PDFMiner — еще одна популярная библиотека для извлечения текста из PDF-файлов. Он предоставляет ряд функций для работы с PDF-документами. Вот пример использования PDFMiner:

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from io import StringIO
def extract_text_from_pdf(file_path):
    texts = []
    rsrcmgr = PDFResourceManager()
    output_string = StringIO()
    laparams = LAParams()
    device = TextConverter(rsrcmgr, output_string, laparams=laparams)
    with open(file_path, 'rb') as fp:
        interpreter = PDFPageInterpreter(rsrcmgr, device)
        for page in PDFPage.get_pages(fp, check_extractable=True):
            interpreter.process_page(page)
            texts.append(output_string.getvalue())
    return texts
# Usage
pdf_file = "example.pdf"
extracted_texts = extract_text_from_pdf(pdf_file)
print(extracted_texts)

В этой статье блога мы рассмотрели различные методы извлечения текста из PDF-документов с помощью Python. Мы рассмотрели четыре разные библиотеки: PyPDF2, pdfminer.six, PyMuPDF и PDFMiner. Каждая библиотека предлагает свой набор функций и преимуществ. Используя предоставленные примеры кода, вы можете выбрать метод, который лучше всего соответствует вашим требованиям. Приятного извлечения текста из PDF-файлов!