Python untuk NLP: Bagaimana untuk mengendalikan teks PDF yang mengandungi imej terbenam?
Abstrak:
Artikel ini akan memperkenalkan cara menggunakan Python untuk memproses teks PDF yang mengandungi imej terbenam. Kami akan menggunakan perpustakaan PyPDF2 untuk menghuraikan dokumen PDF dan kemudian menggunakan Perpustakaan Pengimejan Python (PIL) untuk memproses imej terbenam.
Petikan:
Dalam Pemprosesan Bahasa Semulajadi (NLP), memproses teks PDF yang mengandungi imej terbenam adalah tugas biasa. Teks sedemikian biasanya diperoleh daripada dokumen atau e-buku yang diimbas, dan teks dan imej perlu diasingkan untuk pemprosesan seterusnya. Python ialah bahasa pengaturcaraan yang berkuasa dengan banyak perpustakaan untuk NLP. Dalam artikel ini, kami akan menunjukkan cara memproses teks PDF jenis ini menggunakan Python.
Langkah:
Pasang perpustakaan yang diperlukan:
Sebelum bermula, anda perlu memasang perpustakaan PyPDF2 dan PIL. Pustaka ini boleh dipasang menggunakan arahan berikut:
pip install PyPDF2 pip install pillow
Import perpustakaan yang diperlukan:
Sebelum menulis kod, import dahulu perpustakaan yang diperlukan:
import PyPDF2 from PIL import Image
Uraikan dokumen PDF:
Gunakan kaedah PPDF dari PPDF. perpustakaan Untuk menghuraikan dokumen PDF:
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
Dapatkan imej terbenam:
Gunakan kaedah getPage dalam perpustakaan PyPDF2 untuk mendapatkan halaman individu bagi dokumen PDF. Kemudian, gunakan kaedah extract_images objek yang dikembalikan oleh kaedah getPage untuk mengekstrak imej terbenam. Imej yang diekstrak akan dikembalikan sebagai kamus, di mana kuncinya ialah nombor objek imej dan nilainya ialah tuple yang mengandungi data binari imej dan maklumat imej imej.
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
Menyimpan imej terbenam:
Selepas mendapat imej terbenam, anda boleh menggunakan kaedah Image.frombytes dalam perpustakaan PIL untuk mencipta objek imej PIL. Imej itu kemudiannya boleh disimpan ke fail tempatan menggunakan kaedah simpan.
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)
Kod sampel penuh:
Berikut ialah kod contoh lengkap yang menunjukkan cara mengendalikan teks PDF yang mengandungi imej terbenam:
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.')
Kesimpulan:
Menggunakan Python untuk memproses teks PDF yang mengandungi imej terbenam yang penting boleh menjadi aliran kerja NLP. Artikel ini menerangkan cara menggunakan PyPDF2 dan perpustakaan PIL untuk menghuraikan dokumen PDF dan memproses imej terbenam. Dengan menggunakan perpustakaan ini, teks dan imej boleh diasingkan dengan mudah dan selanjutnya diproses dan dianalisis.
Rujukan:
Atas ialah kandungan terperinci Python untuk NLP: Bagaimana untuk mengendalikan teks PDF yang mengandungi imej terbenam?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!