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

王林
Libérer: 2023-09-28 22:53:17
original
690 Les gens l'ont consulté

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
    Copier après la connexion
  2. Importez les bibliothèques requises :
    Avant d'écrire le code, importez d'abord les bibliothèques requises :

    import PyPDF2
    from PIL import Image
    Copier après la connexion
  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
    Copier après la connexion
  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
    Copier après la connexion
  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)
    Copier après la connexion
  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.')
    Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!