برنامه نویسی

استخراج هوشمند اطلاعات PDF و ایجاد پایگاه داده

هدف پروژه: برای ایجاد سیستمی که داده های ساختاریافته و بدون ساختار را از پی دی اف های بارگذاری شده توسط فروشنده استخراج می کند و این داده ها را در یک پایگاه داده برای نمایه سازی و پرس و جو ذخیره می کند. این سیستم همچنین باید از یک ربات چت پشتیبانی کند که قادر به پاسخگویی به سوالات مربوط به محتوای PDF باشد.

جزئیات پروژه:

الزامات ورودی:

PDF با ساختارهای متنوع، از جمله متن ساده، سرفصل ها، پاراگراف ها، جداول و نقاط گلوله.
به عنوان مثال می توان به درخواست ها برای نقل قول ها (RFQs)، قراردادها، دستورالعمل ها و گزارش ها اشاره کرد.

ویژگی های کلیدی:

تمام داده های مرتبط را از فایل های PDF استخراج کنید، بخش های نامربوط مانند سرصفحه ها و پاورقی ها را نادیده بگیرید.
جداول را به طور دقیق تشخیص داده و ساختار دهید، آنها را با عنوان یا عنوان مربوطه مرتبط کنید (در متن پررنگ، معمولاً با دو نقطه دنبال می شود). در صورت وجود، داده‌های تودرتو در جداول را مدیریت کنید.
نقاط گلوله را در پاراگراف ها شناسایی و استخراج کنید و آنها را به عنوان لیست های تودرتو سازماندهی کنید.
ساختار پویا محتوای متن را با استفاده از سرفصل ها به عنوان کلید و متن متناظر آنها به عنوان مقادیر.
پاک کردن داده های استخراج شده با حذف نمادهای غیر ضروری و عادی سازی فضاها.

ذخیره سازی داده ها و پرس و جو:

ذخیره داده های استخراج شده در Elasticsearch برای نمایه سازی کارآمد و قابلیت های جستجو.
اطمینان حاصل کنید که طرح پایگاه داده از داده های ساخت یافته (مثلاً جداول) و متن بدون ساختار پشتیبانی می کند.

چالش های فنی:

دقت داده ها: حصول اطمینان از اینکه جداول، نقاط گلوله و متن به درستی استخراج شده و با عناوین مناسب مرتبط هستند.
حذف سرصفحه/پانویس: نادیده گرفتن محتوای نامربوط سرصفحه/پانویس بدون تأثیر بر داده های اصلی به صورت پویا.
تشخیص عنوان برای جداول: مرتبط کردن جداول با عناوین صحیح با استفاده از مجاورت و نشانه های قالب بندی.
محتوای تودرتو: ساختار پاراگراف های حاوی نقاط گلوله در قالب های سلسله مراتبی برای وضوح بهتر.

نتیجه مطلوب:
یک اسکریپت یا خط لوله که می تواند یک PDF را برای خروجی داده های JSON ساختار یافته پردازش کند. فرمت نمونه:

{
    "Heading 1": "Text under heading 1",
    "Heading 2": [
        "Bullet point 1",
        "Bullet point 2",
        "Bullet point 3"
    ],
    "Table Title": [
        {"Column 1": "Value 1", "Column 2": "Value 2"},
        {"Column 1": "Value 3", "Column 2": "Value 4"}
    ]
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ادغام با Elasticsearch برای نمایه سازی این داده های ساخت یافته.

یک API چت بات که قادر به پاسخگویی به سوالات زبان طبیعی در مورد داده های استخراج شده است.

پیشرفت فعلی:

اسکریپت های پایه پایتون را با استفاده از pdfplumber و Apache Tika برای استخراج متن و جدول توسعه داده است.
منطق پیاده سازی شده برای حذف هدرها و پاورقی ها و اعتبار سنجی جداول استخراج شده.
ساختار داده‌ها را در جفت‌های کلید-مقدار با استفاده از سرفصل‌ها به عنوان کلید و نقاط گلوله تودرتو به عنوان مقادیر.

کمک مورد نیاز:

تقویت منطق استخراج جدول به:
از تشخیص دقیق عنوان جدول از متن پررنگ اطمینان حاصل کنید.
جداول پیچیده با سلول های ادغام شده یا ساختارهای نامنظم را مدیریت کنید.
بهینه‌سازی حذف سرصفحه‌ها و پاورقی‌ها برای اطمینان از از دست رفتن داده‌های مرتبط.
توصیه هایی برای ادغام ربات چت با Elasticsearch برای پرس و جو موثر.
بهترین روش ها برای مدیریت فایل های PDF بزرگ با ساختارهای پیچیده.

حمایت مورد انتظار جامعه:
به دنبال نمونه کد، توصیه‌های معماری، و بهترین روش‌ها برای:
استخراج داده های PDF را اصلاح کنید (بر روی دقت و کارایی تمرکز کنید).
سازماندهی داده های تودرتو و جدولی را بهبود بخشید.
راه حل را برای حجم بالای داده مقیاس کنید.
توانایی ربات چت در تفسیر و پاسخگویی موثر به سوالات را افزایش دهید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا