"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > استخراج البيانات من ملفات PDF الصعبة باستخدام Google Gemini في خطوط Python

استخراج البيانات من ملفات PDF الصعبة باستخدام Google Gemini في خطوط Python

تم النشر بتاريخ 2024-08-17
تصفح:910

في هذا الدليل، سأوضح لك كيفية استخراج البيانات المنظمة من ملفات PDF باستخدام نماذج لغة الرؤية (VLMs) مثل Gemini Flash أو GPT-4o.

أظهرت سلسلة Gemini، أحدث سلسلة من نماذج الرؤية واللغة من Google، أداءً متطورًا في فهم النص والصور. هذه القدرة المحسنة متعددة الوسائط ونافذة السياق الطويلة تجعلها مفيدة بشكل خاص لمعالجة بيانات PDF المعقدة بصريًا والتي تواجهها نماذج الاستخراج التقليدية، مثل الأشكال والمخططات والجداول والرسوم البيانية.

من خلال القيام بذلك، يمكنك بسهولة إنشاء أداة استخراج البيانات الخاصة بك لاستخراج الملفات المرئية والويب. وإليك الطريقة:

إن نافذة السياق الطويلة لـ 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

الآن، أنت بحاجة إلى تعيين هذا كمتغير بيئة. تختلف العملية حسب نظام التشغيل الخاص بك:

  • انسخ مفتاح API من قائمة الإعدادات على منصة thepi.pe

لنظام التشغيل Windows:

  1. البحث عن "متغيرات البيئة" في قائمة ابدأ
  2. انقر على "تحرير متغيرات بيئة النظام"
  3. انقر على زر "متغيرات البيئة"
  4. ضمن "متغيرات المستخدم"، انقر على "جديد"
  5. قم بتعيين اسم المتغير كـ THEPIPE_API_KEY والقيمة كمفتاح API الخاص بك
  6. انقر على "موافق" للحفظ

بالنسبة لنظامي التشغيل MacOS وLinux:
افتح المحطة الطرفية الخاصة بك وأضف هذا السطر إلى ملف تكوين Shell الخاص بك (على سبيل المثال، ~/.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",
}

يمكنك تعديل المخطط حسب رغبتك على منصة thepi.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"
)

هنا، قمنا بـchunking_method="chunk_by_page" لأننا نريد إرسال كل صفحة إلى نموذج الذكاء الاصطناعي بشكل فردي (ملف PDF كبير جدًا بحيث لا يمكن تغذية كل صفحة مرة واحدة). قمنا أيضًا بتعيين multiple_extractions=True لأن كل صفحة من صفحات PDF تحتوي على صفوف متعددة من البيانات. إليك الشكل الذي تبدو عليه صفحة من ملف PDF:

Image description

نتائج استخراج جدول الكميات PDF كما هي معروضة على منصة thepi.pe

معالجة النتائج

يتم إرجاع نتائج الاستخراج كقائمة من القواميس. يمكننا معالجة هذه النتائج لإنشاء إطار بيانات الباندا:

import pandas as pd
df = pd.DataFrame(results)
# Display the first few rows of the DataFrame
print(df.head())

يؤدي هذا إلى إنشاء DataFrame بجميع المعلومات المستخرجة، بما في ذلك المحتوى النصي وأوصاف العناصر المرئية مثل الأشكال والجداول.

التصدير إلى صيغ مختلفة

الآن بعد أن أصبح لدينا بياناتنا في DataFrame، يمكننا بسهولة تصديرها إلى تنسيقات مختلفة. فيما يلي بعض الخيارات:

التصدير إلى إكسل

df.to_excel("extracted_research_data.xlsx", index=False, sheet_name="Research Data")

يؤدي هذا إلى إنشاء ملف Excel باسم "extracted_research_data.xlsx" مع ورقة باسم "Research Data". تمنع المعلمة Index=False تضمين فهرس DataFrame كعمود منفصل.

التصدير إلى CSV

إذا كنت تفضل تنسيقًا أبسط، يمكنك التصدير إلى ملف CSV:

df.to_csv("extracted_research_data.csv", index=False)

يؤدي هذا إلى إنشاء ملف CSV يمكن فتحه في Excel أو أي محرر نصوص.

ملاحظات النهاية

يكمن مفتاح الاستخراج الناجح في تحديد مخطط واضح واستخدام القدرات المتعددة الوسائط لنموذج الذكاء الاصطناعي. عندما تصبح أكثر ارتياحًا مع هذه التقنيات، يمكنك استكشاف المزيد من الميزات المتقدمة مثل طرق التجميع المخصصة، ومطالبات الاستخراج المخصصة، ودمج عملية الاستخراج في خطوط أنابيب بيانات أكبر.

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/emcf/extracting-data-from-tricky-pdfs-with-google-gemini-in-10-lines-of-python-7ni?1 إذا كان هناك أي انتهاك يرجى الاتصال بـ Study_golang @163.comdelete
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3