ホームページ > バックエンド開発 > Python チュートリアル > NLP 用 Python: 埋め込み画像を含む PDF テキストを処理するには?

NLP 用 Python: 埋め込み画像を含む PDF テキストを処理するには?

王林
リリース: 2023-09-28 22:53:17
オリジナル
728 人が閲覧しました

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

NLP 用 Python: 埋め込み画像を含む PDF テキストを処理するには?

要約:
この記事では、Python を使用して画像が埋め込まれた PDF テキストを処理する方法を紹介します。 PyPDF2 ライブラリを使用して PDF ドキュメントを解析し、Python Imaging Library (PIL) を使用して埋め込み画像を処理します。

はじめに:
自然言語処理 (NLP) では、埋め込み画像を含む PDF テキストを処理するのが一般的なタスクです。このようなテキストは通常​​、スキャンされた文書または電子書籍から取得され、後続の処理のためにテキストと画像を分離する必要があります。 Python は、NLP 用のライブラリを多数備えた強力なプログラミング言語です。この記事では、Python を使用してこのタイプの PDF テキストを処理する方法を説明します。

手順:

  1. 必要なライブラリのインストール:
    開始する前に、PyPDF2 ライブラリと PIL ライブラリをインストールする必要があります。これらのライブラリは、次のコマンドを使用してインストールできます:

    pip install PyPDF2
    pip install pillow
    ログイン後にコピー
  2. 必要なライブラリをインポートします:
    コードを記述する前に、まず必要なライブラリをインポートします:

    import PyPDF2
    from PIL import Image
    ログイン後にコピー
  3. PDF ドキュメントを解析する:
    PyPDF2 ライブラリの PdfFileReader メソッドを使用して 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. 埋め込まれた画像を取得する:
    PyPDF2 ライブラリを使用するgetPage メソッドは、PDF ドキュメントの個々のページを取得できます。次に、getPage メソッドによって返されたオブジェクトの extract_images メソッドを使用して、埋め込まれた画像を抽出します。抽出された画像は辞書として返されます。キーは画像のオブジェクト番号、値は画像のバイナリ データと画像の画像情報を含むタプルです。

    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. 埋め込みイメージの保存:
    埋め込みイメージを取得した後、PIL ライブラリの Image.frombytes メソッドを使用して PIL イメージ オブジェクトを作成できます。その後、save メソッドを使用して画像をローカル ファイルに保存できます。

    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. 完全なサンプル コード:
    埋め込み画像を含む PDF テキストを処理する方法を示す完全なサンプル コード:

    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.')
    ログイン後にコピー

結論:
Python を使用して埋め込み画像を含む PDF テキストを処理することは、NLP ワークフローの重要な部分になる可能性があります。この記事では、PyPDF2 と PIL ライブラリを使用して PDF ドキュメントを解析し、埋め込まれた画像を処理する方法について説明します。これらのライブラリを使用すると、テキストと画像を簡単に分離し、さらに処理および分析できます。

参考資料:

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

以上がNLP 用 Python: 埋め込み画像を含む PDF テキストを処理するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート