ホームページ > バックエンド開発 > Python チュートリアル > Python 行で Google Gemini を使用してトリッキーな PDF からデータを抽出する

Python 行で Google Gemini を使用してトリッキーな PDF からデータを抽出する

WBOY
リリース: 2024-07-19 15:27:28
オリジナル
897 人が閲覧しました

このガイドでは、Gemini Flash や GPT-4o などのビジョン言語モデル (VLM) を使用して PDF から構造化データを抽出する方法を説明します。

Google の視覚言語モデルの最新シリーズである Gemini は、テキストと画像の理解において最先端のパフォーマンスを示しました。この改善されたマルチモーダル機能と長いコンテキスト ウィンドウにより、図、チャート、表、ダイアグラムなど、従来の抽出モデルでは困難であった視覚的に複雑な PDF データの処理に特に役立ちます。

これにより、ビジュアル ファイルや Web 抽出のための独自のデータ抽出ツールを簡単に構築できます。その方法は次のとおりです:

Gemini の長いコンテキスト ウィンドウとマルチモーダル機能により、従来の抽出モデルでは困難であった視覚的に複雑な PDF データの処理に特に役立ちます。

環境のセットアップ

抽出に入る前に、開発環境をセットアップしましょう。このガイドは、システムに Python がインストールされていることを前提としています。そうでない場合は、https://www.python.org/downloads/

からダウンロードしてインストールします。

⚠️ Python を使用したくない場合は、thepi.pe のクラウド プラットフォームを使用して、コードを記述せずにファイルをアップロードし、結果を CSV としてダウンロードできることに注意してください。

必要なライブラリをインストールする

ターミナルまたはコマンド プロンプトを開き、次のコマンドを実行します。

pip install git+https://github.com/emcf/thepipe
pip install pandas
ログイン後にコピー

Python を初めて使用する人のために説明すると、pip は Python のパッケージ インストーラーであり、これらのコマンドは必要なライブラリをダウンロードしてインストールします。

API キーを設定する

パイプを使用するには、API キーが必要です。

免責事項: thepi.pe は無料のオープンソース ツールですが、API にはトークンあたり約 0.00002 ドルのコストがかかります。このようなコストを回避したい場合は、GitHub でローカル設定手順を確認してください。選択した LLM プロバイダーに引き続き料金を支払う必要があることに注意してください。

入手して設定する方法は次のとおりです:

  1. https://thepi.pe/platform/ にアクセスしてください
  2. アカウントを作成するか、ログインします
  3. 設定ページで API キーを見つけます

Extracting Data from Tricky PDFs with Google Gemini in lines of Python

次に、これを環境変数として設定する必要があります。このプロセスはオペレーティング システムによって異なります:

  • pi.pe プラットフォームの設定メニューから API キーをコピーします

Windows の場合:

  1. スタート メニューで「環境変数」を検索
  2. 「システム環境変数の編集」をクリックします
  3. 「環境変数」ボタンをクリックします
  4. [ユーザー変数] で、[新規] をクリックします
  5. 変数名をTHEPIPE_API_KEY、値をAPIキーとして設定します
  6. 「OK」をクリックして保存します

macOS および Linux の場合:
ターミナルを開き、シェル設定ファイル (例: ~/.bashrc または ~/.zshrc) に次の行を追加します。

export THEPIPE_API_KEY=your_api_key_here
ログイン後にコピー

次に、設定をリロードします:

source ~/.bashrc # or ~/.zshrc
ログイン後にコピー

抽出スキーマの定義

抽出を成功させる鍵は、抽出するデータの明確なスキーマを定義することです。数量明細書ドキュメントからデータを抽出するとします。

Extracting Data from Tricky PDFs with Google Gemini in lines of Python

数量明細書ドキュメントのページの例。各ページのデータは他のページから独立しているため、抽出は「ページごと」に行われます。ページごとに抽出するデータが複数あるため、複数の抽出を True

に設定します。

列名を確認すると、次のようなスキーマを抽出できます。

schema = {
  "item": "string",
  "unit": "string",
  "quantity": "int",
}
ログイン後にコピー

pi.pe プラットフォームでお好みに合わせてスキーマを変更できます。 [スキーマの表示] をクリックすると、コピーして貼り付けて Python API で使用できるスキーマが表示されます

Image description

PDF からのデータの抽出

次に、extract_from_file を使用して PDF からデータを取得しましょう:

from thepipe.extract import extract_from_file
results = extract_from_file(
  file_path = "bill_of_quantity.pdf",
  schema = schema,
  ai_model = "google/gemini-flash-1.5b",
  chunking_method = "chunk_by_page"
)
ログイン後にコピー

ここでは、各ページを AI モデルに個別に送信したいため、chunking_method="chunk_by_page" としています (PDF は大きすぎて一度にすべてを送信できません)。 PDF ページにはそれぞれ複数行のデータが含まれるため、multiple_extractions=True も設定します。 PDF のページは次のようになります:

Image description

pi.pe プラットフォームで表示された数量明細書 PDF の抽出結果

Processing the Results

The extraction results are returned as a list of dictionaries. We can process these results to create a pandas DataFrame:

import pandas as pd
df = pd.DataFrame(results)
# Display the first few rows of the DataFrame
print(df.head())
ログイン後にコピー

This creates a DataFrame with all the extracted information, including textual content and descriptions of visual elements like figures and tables.

Exporting to Different Formats

Now that we have our data in a DataFrame, we can easily export it to various formats. Here are some options:

Exporting to Excel

df.to_excel("extracted_research_data.xlsx", index=False, sheet_name="Research Data")
ログイン後にコピー

This creates an Excel file named "extracted_research_data.xlsx" with a sheet named "Research Data". The index=False parameter prevents the DataFrame index from being included as a separate column.

Exporting to CSV

If you prefer a simpler format, you can export to CSV:

df.to_csv("extracted_research_data.csv", index=False)
ログイン後にコピー

This creates a CSV file that can be opened in Excel or any text editor.

Ending Notes

The key to successful extraction lies in defining a clear schema and utilizing the AI model's multimodal capabilities. As you become more comfortable with these techniques, you can explore more advanced features like custom chunking methods, custom extraction prompts, and integrating the extraction process into larger data pipelines.

以上がPython 行で Google Gemini を使用してトリッキーな PDF からデータを抽出するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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