Rumah > Artikel > pembangunan bahagian belakang > Mengekstrak Data daripada PDF Tricky dengan Google Gemini dalam baris Python
Dalam panduan ini, saya akan menunjukkan kepada anda cara mengekstrak data berstruktur daripada PDF menggunakan model bahasa penglihatan (VLM) seperti Gemini Flash atau GPT-4o.
Gemini, siri terbaharu model bahasa penglihatan Google, telah menunjukkan prestasi seni dalam pemahaman teks dan imej. Keupayaan multimodal yang dipertingkatkan dan tetingkap konteks panjang menjadikannya amat berguna untuk memproses data PDF yang kompleks secara visual yang bergelut dengan model pengekstrakan tradisional, seperti rajah, carta, jadual dan rajah.
Dengan berbuat demikian, anda boleh membina alat pengekstrakan data anda sendiri dengan mudah untuk fail visual dan pengekstrakan web. Begini caranya:
Tetingkap konteks panjang Gemini dan keupayaan multimodal menjadikannya amat berguna untuk memproses data PDF yang kompleks secara visual di mana model pengekstrakan tradisional bergelut.
Sebelum kita menyelami pengekstrakan, mari kita sediakan persekitaran pembangunan kita. Panduan ini menganggap anda telah memasang Python pada sistem anda. Jika tidak, muat turun dan pasang dari https://www.python.org/downloads/
⚠️ Ambil perhatian bahawa, jika anda tidak mahu menggunakan Python, anda boleh menggunakan platform awan di thepi.pe untuk memuat naik fail anda dan memuat turun hasil anda sebagai CSV tanpa menulis sebarang kod.
Buka terminal atau command prompt anda dan jalankan arahan berikut:
pip install git+https://github.com/emcf/thepipe pip install pandas
Bagi mereka yang baru menggunakan Python, pip ialah pemasang pakej untuk Python, dan arahan ini akan memuat turun dan memasang perpustakaan yang diperlukan.
Untuk menggunakan paip, anda memerlukan kunci API.
Penafian: Walaupun thepi.pe ialah alat sumber terbuka percuma, API mempunyai kos, kira-kira $0.00002 setiap token. Jika anda ingin mengelakkan kos sedemikian, lihat arahan persediaan setempat pada GitHub. Harap maklum bahawa anda masih perlu membayar pembekal LLM pilihan anda.
Berikut ialah cara untuk mendapatkan dan menyediakannya:
Sekarang, anda perlu menetapkan ini sebagai pembolehubah persekitaran. Prosesnya berbeza-beza bergantung pada sistem pengendalian anda:
Untuk Windows:
Untuk macOS dan Linux:
Buka terminal anda dan tambahkan baris ini pada fail konfigurasi shell anda (cth., ~/.bashrc atau ~/.zshrc):
export THEPIPE_API_KEY=your_api_key_here
Kemudian, muat semula konfigurasi anda:
source ~/.bashrc # or ~/.zshrc
Kunci kepada pengekstrakan yang berjaya ialah mentakrifkan skema yang jelas untuk data yang ingin anda keluarkan. Katakan kami mengekstrak data daripada dokumen Bil Kuantiti:
Contoh halaman daripada dokumen Bil Kuantiti. Data pada setiap halaman adalah bebas daripada halaman lain, jadi kami melakukan pengekstrakan "setiap halaman". Terdapat berbilang keping data untuk diekstrak setiap halaman, jadi kami menetapkan berbilang pengekstrakan kepada Benar
Melihat nama lajur, kami mungkin mahu mengekstrak skema seperti ini:
schema = { "item": "string", "unit": "string", "quantity": "int", }
Anda boleh mengubah suai skema mengikut keinginan anda di Platform thepi.pe. Mengklik "Lihat Skema" akan memberi anda skema yang boleh anda salin dan tampal untuk digunakan dengan API Python
Sekarang, mari gunakan extract_from_file untuk menarik data daripada 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" )
Di sini, kami telah chunking_method="chunk_by_page" kerana kami ingin menghantar setiap halaman ke model AI secara individu (PDF terlalu besar untuk disuap sekaligus). Kami juga menetapkan multiple_extractions=True kerana setiap halaman PDF mengandungi berbilang baris data. Begini rupa halaman daripada PDF:
Hasil pengekstrakan untuk Bil Kuantiti PDF seperti yang dilihat pada Platform thepi.pe
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.
Now that we have our data in a DataFrame, we can easily export it to various formats. Here are some options:
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.
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.
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.
Atas ialah kandungan terperinci Mengekstrak Data daripada PDF Tricky dengan Google Gemini dalam baris Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!