Maison >développement back-end >Tutoriel Python >Python pour le NLP : Comment gérer le texte PDF contenant des images intégrées ?

Python pour le NLP : Comment gérer le texte PDF contenant des images intégrées ?

王林
王林original
2023-09-28 22:53:17725parcourir

Python for NLP:如何处理包含嵌入式图像的PDF文本?

Python pour le NLP : Comment gérer le texte PDF contenant des images intégrées ?

Résumé :
Cet article expliquera comment utiliser Python pour traiter du texte PDF contenant des images intégrées. Nous utiliserons la bibliothèque PyPDF2 pour analyser les documents PDF, puis utiliserons la bibliothèque d'imagerie Python (PIL) pour traiter les images intégrées.

Citation :
Dans le traitement du langage naturel (NLP), le traitement du texte PDF contenant des images intégrées est une tâche courante. Ce texte est généralement obtenu à partir de documents numérisés ou de livres électroniques, et le texte et l'image doivent être séparés pour un traitement ultérieur. Python est un langage de programmation puissant doté de nombreuses bibliothèques pour le NLP. Dans cet article, nous montrerons comment traiter ce type de texte PDF à l'aide de Python.

Étapes :

  1. Installer les bibliothèques nécessaires :
    Avant de commencer, vous devez installer les bibliothèques PyPDF2 et PIL. Ces bibliothèques peuvent être installées à l'aide de la commande suivante :

    pip install PyPDF2
    pip install pillow
  2. Importez les bibliothèques requises :
    Avant d'écrire le code, importez d'abord les bibliothèques requises :

    import PyPDF2
    from PIL import Image
  3. Analysez le document PDF :
    Utilisez la méthode PdfFileReader depuis PyPDF2 bibliothèque Pour analyser un document 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
  4. Obtenir des images intégrées :
    Utilisez la méthode getPage dans la bibliothèque PyPDF2 pour obtenir des pages individuelles du document PDF. Ensuite, utilisez la méthode extract_images de l'objet renvoyé par la méthode getPage pour extraire les images incorporées. L'image extraite sera renvoyée sous forme de dictionnaire, où la clé est le numéro d'objet de l'image et la valeur est un tuple contenant les données binaires de l'image et les informations d'image de l'image.

    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
  5. Enregistrement des images intégrées :
    Après avoir obtenu l'image intégrée, vous pouvez utiliser la méthode Image.frombytes dans la bibliothèque PIL pour créer un objet image PIL. L'image peut ensuite être enregistrée dans un fichier local à l'aide de la méthode de sauvegarde.

    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)
  6. Exemple de code complet :
    Voici un exemple de code complet qui montre comment gérer le texte PDF contenant des images intégrées :

    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.')

Conclusion :
L'utilisation de Python pour traiter du texte PDF contenant des images intégrées peut devenir un lien important dans le flux de travail PNL. Cet article explique comment utiliser PyPDF2 et la bibliothèque PIL pour analyser des documents PDF et traiter les images intégrées. En utilisant ces bibliothèques, le texte et les images peuvent être facilement séparés, puis traités et analysés.

Références :

  1. PyPDF2 : https://pythonhosted.org/PyPDF2/
  2. PIL : https://pillow.readthedocs.io/introduction.html

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn