Как да извличате думи от PDF файлове с Python

Разбор на ВСИЧКИ текст

Както споменах в предишната си статия: Как да се свържа с Google Таблици с Python, работих с клиент, за да им помогна да разберат стотици PDF файлове, за да извлекат ключови думи, за да ги направят търсещи.

Част от решаването на проблема беше измислянето как да извлечете текстови данни от всички тези PDF файлове. Може да се изненадате да научите, че не е толкова просто. Виждате ли, PDF файловете са патентован формат на Adobe, които идват със собствени малки странности, когато става въпрос за автоматизиране на процеса на извличане на информация от всеки файл.

За щастие, ние имаме правилния език за работата: Python. Сега, изясних любовта си към Python: Той е лесно четим от хора, има много страхотни библиотеки, които ви позволяват да правите всичко. Това е перфектният инструмент във вашия колан за полезност. Както вече споменах, това ви прави батман.

Това, което следва, е урок за това как можете да анализирате PDF файл и да го преобразувате в списък с ключови думи:

Настройвам:

За този урок ще използвам Python 3.6.3, можете да използвате всяка версия, която харесвате (стига да поддържа съответните библиотеки).

Ще се нуждаете от следните библиотеки на python, за да следвате този урок:

  • PyPDF2 (За да конвертирате прости текстови PDF файлове в текст, четим от Python)
  • textract (За да конвертирате нетривиални, сканирани PDF файлове в текст, четим от Python)
  • nltk (За почистване и конвертиране на фрази в ключови думи)

Всяка от тези библиотеки може да бъде инсталирана със следните команди в страничния терминал (на macOS):

пип инсталиране PyPDF2
pip инсталирайте textract
пип инсталиране nltk

Това ще изтегли необходимите библиотеки t0 parsePDF документи и извлечете ключови думи. За да направите това, уверете се, че вашият PDF файл се съхранява в папката, в която пишете скрипта си.

Стартирайте любимия си редактор и напишете:

Забележка: Всички редове, започващи с #, са коментари.

Стъпка 1: Импортиране на всички библиотеки:

импортиране на PyPDF2
импортиране на текста
от nltk.tokenize import word_tokenize
от стопбутовете за импортиране nltk.corpus

Стъпка 2: Прочетете PDF файл

# напишете for-loop за отваряне на много файлове - оставете коментар, ако # харесвате да научите как
filename = 'въведете името на файла тук'
#open ви позволява да четете файла
pdfFileObj = отворен (име на файл, 'rb')
# Променливата pdfReader е четим обект, който ще бъде анализиран
pdfReader = PyPDF2.PdfFileReader (pdfFileObj)
#различаването на броя страници ще ни позволи да разберем всички # страници
num_pages = pdfReader.numPages
брой = 0
текст = ""
# Докато цикълът ще прочете всяка страница
докато брой 
#Това, ако съществува изявление, за да проверите дали горната библиотека върна #words. Прави се, защото PyPDF2 не може да чете сканирани файлове.
ако текст! = "":
   текст = текст
# Ако горното се върне като невярно, ние стартираме текстовата библиотека на OCR в #convert сканирани / базирани на изображения PDF файлове в текст
друго:
   text = textract.process (fileurl, method = 'tesseract', language = 'eng')
# Сега имаме текстова променлива, която съдържа целия изведен текст # от нашия PDF файл. Въведете печат (текст), за да видите какво съдържа. Той #likely съдържа много пространства, вероятно боклуци като '\ n' и т.н.
# Сега ще почистим текстовата ни променлива и ще я върнем като списък с ключови думи.

Стъпка 3: Преобразувайте текст в ключови думи

# Функцията word_tokenize () ще разбие нашите текстови фрази на #индивидуални думи
символи = word_tokenize (текст)
# ще създадем нов списък, който съдържа препинателни знаци, които искаме да почистим
препинателни знаци = ['(', ')', ';', ':', '[', ']', ',']
# Ние инициализираме променливата на стопсбукове, която е списък на думи като # "The", "I", "и" и т.н., които не имат голяма стойност като ключови думи
stop_words = stopwords.words ('английски')
# Ние създаваме разбиране на списъка, което връща само списък с думи # които НЕ са в Stop_words, а НЕ в препинателни знаци.
ключови думи = [дума за дума в символи, ако не дума в stop_words, а не дума в пунктуации]

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

Надявам се, че сте намерили този урок ценен! Ако имате някакви искания, бихте искали малко пояснение или да намерите грешка, моля, уведомете ме!

Rizwan е технофил и съосновател на Autonomous Tech, агенция за дизайн, маркетинг и технологични услуги във Ванкувър, пр.н.е.