Научитесь использовать 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 для извлечения текста из них:
Перед тем как уйти, если вам понравилась эта статья, вам также могут понравиться: