Пошаговый процесс извлечения определенного текста из нескольких файлов PDF

По необходимости я написал некоторый код Python для извлечения текста из нескольких файлов PDF и записи вывода в файлы Excel.

Я думаю, что это будет очень короткая статья о применении машинного обучения.

Проблема. Моему другу поручили прочитать несколько PDF-файлов и записать некоторую информацию в таблицу Excel. Как правило, это означает, что ему придется просматривать все более 20 файлов один за другим и вводить ключевые слова, которые его просят найти, в таблицу Excel/Google.

Предлагаемое решение:

Решение этой проблемы заключалось в том, чтобы просто достичь оптимальных конечных результатов самым ленивым способом, ха-ха.

Итак, я написал программу, которую можно отнести к категории оптического распознавания символов.

Примененные идеи:

Идею извлечения текста из PDF-файлов можно реализовать с помощью технологии оптического распознавания символов (OCR).

OCR — это технология распознавания текста на «цифровом изображении. Он обычно используется для распознавания текста в отсканированных документах, но служит и многим другим целям». ["источник"]

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

Лул, не странно ли, что той же компьютерной системе, которая печатала и печатала документ, нужна помощь в его чтении? Хорошо, компьютер не умный от природы, пока вы его не научите.

Пошаговый процесс:

Я попробовал пример кода после изучения YouTube — с использованием библиотеки python Py2PDF. Это должно было прочитать один файл PDF и экспортировать извлеченные слова в текстовый файл (.txt). Найдите полное видео здесь:

Во-вторых, я использовал библиотеку pdfplumber для чтения одного PDF-файла. Легенда гласит, что он работает быстрее, чем Py2PDF.

В приведенном выше коде вам нужно указать путь к файлу PDF, из которого вы извлекаете текст. Затем вы перебираете страницы в файле. Для каждой страницы в файле извлеките текст и сохраните его в переменной text1. Откройте новый текстовый файл и запишите результаты извлечения в файл .txt. Закройте файл.

Файл будет сохранен на вашем компьютере.

Затем я попробовал несколько файлов с помощью pdfplumber и получил свои результаты.

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

Импортируйте библиотеку glob. Эта библиотека позволит вам читать все файлы в папке. Разница между извлечением из одного файла и нескольких файлов заключается в использовании библиотеки glob. После каждого чтения из файла создайте новую строку и прочитайте следующий файл. Откройте новый текстовый файл и запишите результаты извлечения в файл .txt. Закройте файл.

Обратите внимание на расширение *.file в конце пути к файлу. Узнайте больше о различных параметрах, которые вы можете выбрать при использовании библиотеки glob.

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

Обязательно импортируйте необходимые библиотеки (csv, glob, pandas). В этом коде мы создадим список, в который будут помещены результаты нашего кода. Создайте свой поисковый запрос. У меня "ВСЕГО".

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

Создайте новый файл csv, в который будут записаны наши результаты. Используйте функцию glob для доступа к файлам в указанном каталоге файлов. Вызовите метод csv.writer для только что созданного CSV-файла. Этот метод возвращает объект записи, который преобразует данные пользователя в строки с разделителями. По сути, он вставляет данные в файл CSV.

Используйте pdfplumber, как в приведенных выше примерах, чтобы открыть каждый файл и просмотреть каждую страницу в каждом файле PDF. Используйте метод extract_text для чтения текста каждой страницы и сохранения в переменной page. Текст каждой страницы разделен новой строкой для ясности отдельных страниц.

На каждой странице прокручивайте строки. Если искомый термин находится в строке, разделите строку пробелом по умолчанию. Используйте метод writerow для записи разделенных слов в CSV-файл.

Закройте CSV-файл.

Файлы CSV можно открыть с помощью приложения Microsoft Excel.

Вуаля! Вы сэкономили себе время в два раза меньше, чем потратили бы на просмотр нескольких PDF-файлов в поисках ключевых слов.

Обратите внимание, что установка pip — это одноразовая команда. Вам нужно установить только один раз, если библиотека не была удалена перед использованием.

Альтернативой этому подходу является использование уже созданных платформ, включающих технологию OCR. Одним из них является UIPath Studio — платформа автоматизации оцифровки текста. Пока я работал над своим кодом, мой коллега занимался изучением опции UIPath. Узнайте, как извлечь текст с помощью UIPath Studio.

Благодарность моему другу, который помог мне, когда я столкнулся с препятствиями со своим кодом.

Ограничения:

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

"Дополнительные ресурсы"