1. Estrazione di testo
Quasi tutti noi ci siamo trovati nella situazione di avere bisogno di informazioni da un documento PDF, che sia un rapporto contabile, un'analisi o anche un ebook preferito. Ma come fare se dobbiamo estrarre i dati automaticamente invece che manualmente? Qui entra in gioco Python con la sua incredibile libreria PyPDF2.
Passi principali per l'estrazione di testo
Per estrarre con successo il testo da un PDF, segui alcuni semplici passi:
- Lettura del file PDF.
- Parsing del contenuto del PDF.
- Estrazione del testo per analisi successive.
2. Lettura e parsing di file PDF
Ora vediamo come aprire e leggere un documento PDF in Python. Per iniziare, dobbiamo importare PyPDF2:
import PyPDF2
Ora apriamo un documento PDF. Supponiamo di avere un file sample.pdf che vogliamo analizzare. Carichiamolo e scopriamo quante pagine contiene.
Caricamento del file PDF
# Apertura del file PDF
with open("sample.pdf", "rb") as pdf_file:
# Creiamo un oggetto PDF Reader
pdf_reader = PyPDF2.PdfReader(pdf_file)
# Otteniamo il numero totale di pagine
num_pages = len(pdf_reader.pages)
print(f"Numero totale di pagine nel documento: {num_pages}")
Estrazione di testo
Ora che il documento PDF è aperto, estraiamone il testo. Ecco cosa dobbiamo fare:
PdfReaderapre il file PDF per la lettura.- Usiamo un ciclo
forper percorre tutte le pagine e chiamiamoextract_text()per estrarre il testo. - Il testo estratto viene salvato nella variabile
texte può essere stampato o elaborato.
Ecco un esempio di come potrebbe essere:
import PyPDF2
# Apertura del file PDF
with open("sample.pdf", "rb") as pdf_file:
pdf_reader = PyPDF2.PdfReader(pdf_file)
text = ""
# Estrazione del testo da ogni pagina
for page_num in range(len(pdf_reader.pages)):
page = pdf_reader.pages[page_num]
text += page.extract_text() + "\n"
print(text)
Estrazione di testo da pagine specifiche
E se avessimo bisogno del testo solo da una pagina specifica? Ad esempio, supponiamo di voler estrarre il testo solo dalla terza pagina. Ecco come fare:
import PyPDF2
with open("sample.pdf", "rb") as pdf_file:
pdf_reader = PyPDF2.PdfReader(pdf_file)
page = pdf_reader.pages[2] # Estrazione del testo dalla terza pagina (indice 2)
text = page.extract_text()
print(text)
Questo esempio consente di estrarre il testo solo dalla terza pagina, il che può essere utile se il documento contiene molte pagine e vuoi limitare l'elaborazione. PyPDF2 usa una numerazione delle pagine che parte da 0.
3. Automazione dell'elaborazione del testo dai PDF
Dopo aver estratto il testo dal PDF, possiamo analizzarlo ed elaborarlo per approfondire l'analisi dei dati. PyPDF2 consente di automatizzare questo processo, particolarmente utile quando si lavora con grandi quantità di documenti.
Estrazione e salvataggio del testo in un file separato
Per comodità, possiamo salvare il testo estratto in un file di testo. Questo semplifica l'elaborazione successiva.
import PyPDF2
# Apertura del file PDF
with open("sample.pdf", "rb") as pdf_file:
pdf_reader = PyPDF2.PdfReader(pdf_file)
text = ""
for page_num in range(len(pdf_reader.pages)):
page = pdf_reader.pages[page_num]
text += page.extract_text() + "\n"
# Salvataggio del testo estratto in un file
with open("extracted_text.txt", "w", encoding="utf-8") as text_file:
text_file.write(text)
Elaborazione e analisi del testo estratto
Dopo aver estratto il testo, possiamo analizzarlo con Python. Per farlo, spesso si usano librerie come re (espressioni regolari), nltk (Natural Language Toolkit) o pandas.
Conteggio delle parole e ricerca di frasi chiave
Supponiamo di avere un file di testo extracted_text.txt e vogliamo contare il numero di parole e frasi specifiche nel documento.
import re
# Apertura del testo estratto
with open("extracted_text.txt", "r", encoding="utf-8") as text_file:
text = text_file.read()
# Ricerca e conteggio di parole chiave
keywords = ["rapporto", "dati", "analisi"]
keyword_counts = {keyword: len(re.findall(keyword, text, re.IGNORECASE)) for keyword in keywords}
print("Frequenza delle parole chiave:", keyword_counts)
Qui:
- Apriamo il testo salvato.
- Usiamo le espressioni regolari per contare le parole chiave (indipendentemente dal caso).
- Otteniamo il numero di occorrenze di ciascuna parola chiave.
4. Vantaggi e limitazioni di PyPDF2
Vantaggi:
- Semplicità d'uso per l'estrazione di testo e l'elaborazione di base delle pagine.
- Supporto per operazioni principali: lettura del testo, unione e divisione di documenti.
- Facile integrazione con altre librerie Python.
Limitazioni:
- PyPDF2 non sempre estrae correttamente il testo da PDF complessi con formati multilivello, tabelle e immagini.
- Mancanza di supporto per l'estrazione diretta di immagini e tabelle.
- Non supporta la gestione di file crittografati o protetti da password (anche se è possibile rimuovere la protezione se la password è nota).
GO TO FULL VERSION