Jak extrahovat slova z PDF pomocí Pythonu

Analyzovat celý text

Jak jsem zmínil v předchozím článku: Jak se připojit k Tabulkám Google s Pythonem, spolupracoval jsem s klientem, který jim pomohl analyzovat stovky souborů PDF a extrahovat klíčová slova, aby je bylo možné prohledávat.

Součástí řešení problému bylo vymyslet, jak extrahovat textová data ze všech těchto souborů PDF. Možná vás překvapí, když zjistíte, že to není tak jednoduché. Jak vidíte, soubory PDF jsou proprietárním formátem společnosti Adobe, který přichází s vlastními maličkostmi, pokud jde o automatizaci procesu získávání informací z každého souboru.

Naštěstí máme pro tuto práci ten správný jazyk: Python. Teď jsem dal najevo svou lásku k Pythonu: Je to snadno čitelné pro člověka, má spoustu úžasných knihoven, které vám umožňují dělat v podstatě cokoli. Je to perfektní nástroj ve vašem pomocném pásu. Jak jsem již zmínil, dělá vás batmanem.

Následuje návod, jak můžete analyzovat soubor PDF a převést jej na seznam klíčových slov:

Založit:

V tomto tutoriálu budu používat Python 3.6.3, můžete použít libovolnou verzi, která se vám líbí (pokud podporuje příslušné knihovny).

Abyste se mohli řídit tímto tutoriálem, budete potřebovat následující pythonové knihovny:

  • PyPDF2 (Převod jednoduchých textových souborů PDF na text čitelný pomocí Pythonu)
  • textract (Chcete-li převést netriviální, naskenované soubory PDF do textu čitelného Pythonem)
  • nltk (Vyčistit a převést fráze na klíčová slova)

Každá z těchto knihoven lze nainstalovat pomocí následujících příkazů do postranního terminálu (v systému MacOS):

pip nainstalujte PyPDF2
pip install texttract
pip install nltk

Tím stáhnete knihovny, které potřebujete, dokumenty t0 parsePDF a extrahujete klíčová slova. Za tímto účelem zkontrolujte, zda je váš soubor PDF uložen ve složce, do které píšete skript.

Spusťte svůj oblíbený editor a napište:

Poznámka: Všechny řádky začínající na # jsou komentáře.

Krok 1: Importujte všechny knihovny:

importovat PyPDF2
importovat text
z nltk.tokenize import word_tokenize
z nltk.corpus importujte stopwords

Krok 2: Čtení souboru PDF

#write for-loop pro otevření mnoha souborů - zanechte komentář, pokud chcete # se dozvědět, jak
filename = 'zde zadejte název souboru'
#open vám umožní číst soubor
pdfFileObj = open (název souboru, 'rb')
# Proměnná pdfReader je čitelný objekt, který bude analyzován
pdfReader = PyPDF2.PdfFileReader (pdfFileObj)
#discerning počet stránek nám umožní rozebrat všechny # stránky
num_pages = pdfReader.numPages
count = 0
text = ""
#Smyčka while přečte každou stránku
zatímco počet 
#Tento příkaz existuje, pokud chcete zkontrolovat, zda výše uvedená knihovna vrátila #words. Je to hotovo, protože PyPDF2 nemůže číst naskenované soubory.
pokud text! = "":
   text = text
# Pokud se výše uvedené vrátí jako FALSE, spustíme text knihovny OCR na #convert naskenovaných / obrazových souborů PDF do textu
jiný:
   text = textract.process (fileurl, method = 'tesseract', language = 'eng')
# Nyní máme textovou proměnnou, která obsahuje veškerý text odvozený z našeho souboru PDF. Zadejte print (text) a podívejte se, co obsahuje. Pravděpodobně obsahuje spoustu mezer, možná nevyžádané, například '\ n' atd.
# Nyní vyčistíme textovou proměnnou a vrátíme ji jako seznam klíčových slov.

Krok 3: Převeďte text na klíčová slova

# Funkce word_tokenize () rozdělí naše textové fráze na # individuální slova
tokens = word_tokenize (text)
# vytvoříme nový seznam, který bude obsahovat interpunkci, kterou chceme vyčistit
interpunkce = ['(', ')', ';', ':', '[', ']', ',']
# Inicializujeme proměnnou stopwords, což je seznam slov jako # "The", "I", "and" atd., Které jako klíčová slova nemají příliš velkou hodnotu
stop_words = stopwords.words ('anglicky')
#Vytváříme seznam s porozuměním, které vrací pouze seznam slov #, která NEJSOU IN stop_words a NOT IN interpunkce.
keywords = [slovo pro slovo v žetonech, pokud ne slovo v stop_words a ne slovo v interpunkcích]

Nyní máte pro svůj soubor uložena klíčová slova jako seznam. Můžete s tím dělat, co chcete. Pokud si přejete, aby bylo PDF možné prohledávat, nebo jej rozebrat spoustu souborů a provést analýzu clusteru, uložte ji do tabulky. Můžete jej také použít k vytvoření systému doporučení pro pokračování úloh;)

Doufám, že jste tento tutoriál hodnotili! Pokud máte nějaké dotazy, chtěli byste nějaké vysvětlení, nebo najděte chybu, dejte mi prosím vědět!

Rizwan je technofil a spoluzakladatel Autonomous Tech, agentura pro design, marketing a technologické služby ve Vancouveru v BC.