Python für NLP: Wie gehe ich mit PDF-Text um, der eingebettete Bilder enthält?
Zusammenfassung:
In diesem Artikel wird erläutert, wie Sie mit Python PDF-Text mit eingebetteten Bildern verarbeiten. Wir werden die PyPDF2-Bibliothek verwenden, um PDF-Dokumente zu analysieren und dann die Python Imaging Library (PIL) verwenden, um eingebettete Bilder zu verarbeiten.
Zitat:
Bei der Verarbeitung natürlicher Sprache (NLP) ist die Verarbeitung von PDF-Text mit eingebetteten Bildern eine häufige Aufgabe. Solche Texte werden in der Regel aus gescannten Dokumenten oder E-Books gewonnen und müssen für die spätere Verarbeitung von Text und Bild getrennt werden. Python ist eine leistungsstarke Programmiersprache mit vielen Bibliotheken für NLP. In diesem Artikel zeigen wir, wie man diese Art von PDF-Text mit Python verarbeitet.
Schritte:
Erforderliche Bibliotheken installieren:
Bevor Sie beginnen, müssen Sie PyPDF2- und PIL-Bibliotheken installieren. Diese Bibliotheken können mit dem folgenden Befehl installiert werden:
pip install PyPDF2 pip install pillow
Importieren Sie die erforderlichen Bibliotheken:
Bevor Sie den Code schreiben, importieren Sie zunächst die erforderlichen Bibliotheken:
import PyPDF2 from PIL import Image
Parsen Sie das PDF-Dokument:
Verwenden Sie die PdfFileReader-Methode aus PyPDF2 Bibliothek So analysieren Sie ein PDF-Dokument:
def extract_text_from_pdf(pdf_path): text = '' with open(pdf_path, 'rb') as file: pdf = PyPDF2.PdfFileReader(file) for page in range(pdf.getNumPages()): text += pdf.getPage(page).extractText() return text
Eingebettete Bilder abrufen:
Verwenden Sie die getPage-Methode in der PyPDF2-Bibliothek, um einzelne Seiten des PDF-Dokuments abzurufen. Verwenden Sie dann die Methode extract_images des von der getPage-Methode zurückgegebenen Objekts, um die eingebetteten Bilder zu extrahieren. Das extrahierte Bild wird als Wörterbuch zurückgegeben, wobei der Schlüssel die Objektnummer des Bildes und der Wert ein Tupel ist, der die Binärdaten des Bildes und die Bildinformationen des Bildes enthält.
def extract_images_from_pdf(pdf_path): images = {} with open(pdf_path, 'rb') as file: pdf = PyPDF2.PdfFileReader(file) for page in range(pdf.getNumPages()): page_images = pdf.getPage(page).extract_images() for obj_num, image in page_images.items(): images[obj_num] = image[0] return images
Eingebettete Bilder speichern:
Nachdem Sie das eingebettete Bild erhalten haben, können Sie die Methode Image.frombytes in der PIL-Bibliothek verwenden, um ein PIL-Bildobjekt zu erstellen. Das Bild kann dann mit der Speichermethode in einer lokalen Datei gespeichert werden.
def save_images(images, output_dir): for obj_num, image_data in images.items(): image = Image.frombytes(**image_data) image_path = f"{output_dir}/{obj_num}.jpg" image.save(image_path)
Vollständiger Beispielcode:
Hier ist ein vollständiger Beispielcode, der zeigt, wie PDF-Text mit eingebetteten Bildern verarbeitet wird:
import PyPDF2 from PIL import Image def extract_text_from_pdf(pdf_path): text = '' with open(pdf_path, 'rb') as file: pdf = PyPDF2.PdfFileReader(file) for page in range(pdf.getNumPages()): text += pdf.getPage(page).extractText() return text def extract_images_from_pdf(pdf_path): images = {} with open(pdf_path, 'rb') as file: pdf = PyPDF2.PdfFileReader(file) for page in range(pdf.getNumPages()): page_images = pdf.getPage(page).extract_images() for obj_num, image in page_images.items(): images[obj_num] = image[0] return images def save_images(images, output_dir): for obj_num, image_data in images.items(): image = Image.frombytes(**image_data) image_path = f"{output_dir}/{obj_num}.jpg" image.save(image_path) if __name__ == '__main__': pdf_path = 'example.pdf' output_dir = 'output' text = extract_text_from_pdf(pdf_path) print('Extracted Text:', text) images = extract_images_from_pdf(pdf_path) save_images(images, output_dir) print('Images Saved.')
Fazit:
Die Verarbeitung von PDF-Text mit eingebetteten Bildern mit Python kann zu einem wichtigen Link in der werden NLP-Workflow. In diesem Artikel wird erläutert, wie Sie PyPDF2 und die PIL-Bibliothek verwenden, um PDF-Dokumente zu analysieren und eingebettete Bilder zu verarbeiten. Mithilfe dieser Bibliotheken können Text und Bilder einfach getrennt und weiterverarbeitet und analysiert werden.
Referenzen:
Das obige ist der detaillierte Inhalt vonPython für NLP: Wie gehe ich mit PDF-Text um, der eingebettete Bilder enthält?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!