Научитесь использовать Python для извлечения текста из PDF-файлов

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

Чтобы помочь ему в моем исследовании по выявлению самых популярных библиотек Python, я просмотрел StackOverflow, Reddit и вообще множество поисковых запросов в Google. Я обнаружил множество пакетов, каждый со своими сильными и слабыми сторонами. В частности, пользователи в Интернете, похоже, используют: PyPDF2, Textract, tika, pdfPlumber, pdfMiner.

Однако во время моего исследования по той или иной причине мне удалось заставить работать только 3 из этих библиотек, как ожидалось. Для некоторых из этих библиотек настройка была слишком сложной (отсутствовали зависимости, странные сообщения об ошибках и т. Д.)

В любом случае давайте быстро рассмотрим все эти библиотеки.

PyPDF2

Рейтинг: 3/5

Хорошая новость о PyPDF2 заключалась в том, что его было легко установить. В документации несколько не хватает простых примеров для подражания, но уделите им достаточно внимания, и вы со временем сможете в этом разобраться.

Плохая новость заключается в том, что результаты были невысокими.

Как видите, он определил правильный текст, но по какой-то причине разбил его на несколько строк.

Код:

import PyPDF2
fhandle = open(r'D:\examplepdf.pdf', 'rb')
pdfReader = PyPDF2.PdfFileReader(fhandle)
pagehandle = pdfReader.getPage(0)
print(pagehandle.extractText())

Textract

Рейтинг: 0/5

Впереди многообещающее начало с большим количеством людей, восторженных этой библиотекой. Документация тоже хороша.

К сожалению, в последней версии есть ошибка, которая выдает ошибку каждый раз, когда вы пытаетесь извлечь текст из PDF. После сообщения об ошибке на форуме разработчиков библиотеки, возможно, исправление находится в разработке. Скрещенные пальцы.

Апач Тика

Рейтинг: 2/5

Apache Tika имеет библиотеку Python, которая, по-видимому, позволяет извлекать текст из PDF-файлов. Установить библиотеку Python достаточно просто, но она не будет работать, если у вас не установлена ​​JAVA.

По крайней мере, это теория. Я не хотел устанавливать JAVA; поэтому я остался на: «RuntimeError: невозможно запустить сервер Tika». ошибка.

Согласно этому среднему блогу (без принадлежности), однако, как только вы заставите его работать, это будет просто потрясающе. Итак, давайте оценим 2/5.

Код, по-видимому, будет выглядеть примерно так:

from tika import parser
file = r'D:\examplepdf.pdf'
file_data = parser.from_file(file)
text = file_data['content']
print(text)

pdfСантехник

Рейтинг: 5/5

Когда я начал терять веру в существование простой в использовании библиотеки Python для извлечения текста из файлов PDF, мне попался pdfPlumber.

Документация неплохая; через несколько минут все начнется. Результаты настолько хороши, насколько это возможно.

Однако стоит отметить, что в библиотеке конкретно указано, что она лучше всего работает с автоматически созданными PDF-документами, а не со сканированными документами; что я и использовал.

Код:

import pdfplumber
with pdfplumber.open(r'D:\examplepdf.pdf') as pdf:
    first_page = pdf.pages[0]
    print(first_page.extract_text())

pdfMiner3

Рейтинг: 4/5

Я буду честен; типичным питоническим способом я взглянул на документацию (дважды!) и не понял, как я должен был запускать этот пакет; это включает pdfMiner (не версию 3, которую я также рассматриваю здесь). Я даже установил его и попробовал несколько вещей, но безуспешно.

Увы, мне на помощь приходит добрый незнакомец в StackOverflow. После того, как вы пройдете по приведенному примеру, вам будет легко следовать. Да, и результаты такие хорошие, как и следовало ожидать:

Код можно найти в связанной публикации StackOverflow.

PDF - ›JPEG -› Текст

Другой способ решения этой проблемы - преобразование файла PDF в изображение. Это можно сделать программно или сделать снимок экрана каждой страницы.

Когда у вас есть файлы изображений, вы можете использовать библиотеку tesseract для извлечения текста из них:



Перед тем как уйти, если вам понравилась эта статья, вам также могут понравиться: