NLP 用 Python: 埋め込み画像を含む PDF テキストを処理するには?
要約:
この記事では、Python を使用して画像が埋め込まれた PDF テキストを処理する方法を紹介します。 PyPDF2 ライブラリを使用して PDF ドキュメントを解析し、Python Imaging Library (PIL) を使用して埋め込み画像を処理します。
はじめに:
自然言語処理 (NLP) では、埋め込み画像を含む PDF テキストを処理するのが一般的なタスクです。このようなテキストは通常、スキャンされた文書または電子書籍から取得され、後続の処理のためにテキストと画像を分離する必要があります。 Python は、NLP 用のライブラリを多数備えた強力なプログラミング言語です。この記事では、Python を使用してこのタイプの PDF テキストを処理する方法を説明します。
手順:
必要なライブラリのインストール:
開始する前に、PyPDF2 ライブラリと PIL ライブラリをインストールする必要があります。これらのライブラリは、次のコマンドを使用してインストールできます:
pip install PyPDF2 pip install pillow
必要なライブラリをインポートします:
コードを記述する前に、まず必要なライブラリをインポートします:
import PyPDF2 from PIL import Image
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
埋め込まれた画像を取得する:
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
埋め込みイメージの保存:
埋め込みイメージを取得した後、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)
完全なサンプル コード:
埋め込み画像を含む 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 ドキュメントを解析し、埋め込まれた画像を処理する方法について説明します。これらのライブラリを使用すると、テキストと画像を簡単に分離し、さらに処理および分析できます。
参考資料:
以上がNLP 用 Python: 埋め込み画像を含む PDF テキストを処理するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。