أدوات المعالجة المسبقة مفتوحة المصدر للبيانات غير المهيكلة
توفر المكتبة unstructured مكونات مفتوحة المصدر لتلاعب الصور والمستندات النصية المسبقة ، مثل PDFs و HTML ومستندات الكلمات وغيرها الكثير. تدور حالات استخدام unstructured حول تبسيط وتحسين سير عمل معالجة البيانات لـ LLMs. تشكل الوظائف والموصلات المعيارية unstructured نظامًا متماسكًا يبسط ابتلاع البيانات والمعالجة المسبقة ، مما يجعله قابلاً للتكيف مع منصات مختلفة وفعالة في تحويل البيانات غير المنظمة إلى مخرجات منظمة.
هل تبحث عن أداء أفضل قبل المعالجة وإعداد أقل؟ تحقق من واجهة برمجة تطبيقات الخادم الجديدة لدينا! واجهة برمجة تطبيقات الخادم غير المهيكلة هي أكثر واجهة برمجة التطبيقات (API) الأكثر تنظيماً ، حيث توفر حلًا أكثر استجابةً للرقم الإنتاجي لدعم احتياجاتك بشكل أفضل. توجه إلى صفحة صفحة التسجيل الخاصة بنا لتبدأ مجانًا.
هناك عدة طرق لاستخدام المكتبة unstructured :
conda على نظام Windows ، يرجى الرجوع إلى الوثائق تهدف الإرشادات التالية إلى مساعدتك في الصعود والتشغيل باستخدام Docker للتفاعل مع unstructured . انظر هنا إذا لم يكن لديك بالفعل Docker مثبت على جهازك.
ملاحظة: نقوم ببناء صور متعددة المنصات لدعم كل من أجهزة X86_64 و Apple Silicon. يجب على docker pull تنزيل الصورة المقابلة للهندسة المعمارية الخاصة بك ، ولكن يمكنك تحديد --platform (على سبيل المثال --platform linux/amd64 ) إذا لزم الأمر.
نحن نبني صور Docker لجميع الدفعات إلى main . نقوم بتمييز كل صورة مع تجزئة الالتزام القصير المقابل (مثل fbc7a69 ) وإصدار التطبيق (على سبيل المثال 0.5.5-dev1 ). نحن أيضا علامة على أحدث صورة مع latest . للاستفادة من هذا ، docker pull من مستودع الصور لدينا.
docker pull downloads.unstructured.io/unstructured-io/unstructured:latestبمجرد سحبها ، يمكنك إنشاء حاوية من هذه الصورة والقذيفة إليها.
# create the container
docker run -dt --name unstructured downloads.unstructured.io/unstructured-io/unstructured:latest
# this will drop you into a bash shell where the Docker image is running
docker exec -it unstructured bash يمكنك أيضًا بناء صورة Docker الخاصة بك. لاحظ أن الصورة الأساسية هي wolfi-base ، والتي يتم تحديثها بانتظام. إذا كنت تقوم ببناء الصورة محليًا ، فمن المحتمل أن يفشل docker-build بسبب التغييرات في المنبع في wolfi-base .
إذا كنت تخطط فقط لحلية نوع واحد من البيانات ، فيمكنك تسريع بناء الصورة من خلال التعليق على بعض الحزم/المتطلبات اللازمة لأنواع البيانات الأخرى. انظر DockerFile لمعرفة الخطوط الضرورية لحالة الاستخدام الخاصة بك.
make docker-build
# this will drop you into a bash shell where the Docker image is running
make docker-start-bashبمجرد الوصول إلى الحاوية الجارية ، يمكنك تجربة الأشياء مباشرة في الوضع التفاعلي لمترجم Python.
# this will drop you into a python console so you can run the below partition functions
python3
>>> from unstructured.partition.pdf import partition_pdf
>>> elements = partition_pdf(filename= " example-docs/layout-parser-paper-fast.pdf " )
>>> from unstructured.partition.text import partition_text
>>> elements = partition_text(filename= " example-docs/fake-text.txt " ) استخدم الإرشادات التالية للاستعداد والتشغيل مع unstructured واختبار التثبيت الخاص بك.
قم بتثبيت Python SDK لدعم جميع أنواع المستندات مع pip install "unstructured[all-docs]"
pip install unstructuredpip install "unstructured[docx,pptx]"قم بتثبيت تبعيات النظام التالية إذا لم تكن متوفرة بالفعل على نظامك. اعتمادًا على أنواع المستندات التي تقوم بتحليلها ، قد لا تحتاج إلى كل هذه.
libmagic-dev (اكتشاف النموذج)poppler-utils (الصور و PDFS)tesseract-ocr (الصور و PDFs ، قم بتثبيت tesseract-lang للحصول على دعم لغوي إضافي)libreoffice (MS Office Docs)pandoc (EPUBS ، RTFS ومستندات المكتب المفتوحة). يرجى ملاحظة أنه للتعامل مع ملفات RTF ، تحتاج إلى الإصدار 2.14.2 أو الأحدث. تشغيل إما make install-pandoc أو ./scripts/install-pandoc.sh يقوم بتثبيت الإصدار الصحيح لك.للحصول على اقتراحات حول كيفية التثبيت على Windows والتعرف على التبعيات للميزات الأخرى ، راجع وثائق التثبيت هنا.
في هذه المرحلة ، يجب أن تكون قادرًا على تشغيل الرمز التالي:
from unstructured . partition . auto import partition
elements = partition ( filename = "example-docs/eml/fake-email.eml" )
print ( " n n " . join ([ str ( el ) for el in elements ])) تهدف الإرشادات التالية إلى مساعدتك في الاستعداد والتشغيل مع unstructured محليًا إذا كنت تخطط للمساهمة في المشروع.
يوصى باستخدام pyenv لإدارة VirtualEnv ولكن ليس ضروريًا
brew install pyenv-virtualenvpyenv install 3.10 قم بإنشاء VirtualEnv للعمل فيه وتفعيله ، على سبيل المثال لواحد اسمه unstructured :
pyenv virtualenv 3.10 unstructured
pyenv activate unstructured
تشغيل make install
خياري:
make install-local-inference .tesseract . انظر هنا للحصول على تعليمات التثبيت.tesseract و poppler . تحتوي مستندات PDF2Image على تعليمات حول تثبيت poppler عبر منصات مختلفة. بالإضافة إلى ذلك ، إذا كنت تخطط للمساهمة في unstructured ، فنحن نوفر لك ملف تكوين pre-commit الاختياري لضمان مطابقة الكود مع معايير التنسيق والبطانة المستخدمة في unstructured . إذا كنت تفضل عدم إجراء تغييرات في التعليمات البرمجية قبل كل الالتزام ، فيمكنك استخدام make check لمعرفة ما إذا كان ينبغي تطبيق أي تغييرات في تنسيق أو تنسيق ، وجعل make tidy لتطبيقها.
إذا كنت تستخدم pre-commit الاختياري المسبق ، فستحتاج فقط إلى تثبيت الخطافات مع pre-commit install نظرًا لأن حزمة pre-commit مثبتة كجزء من make install المذكورة أعلاه. أخيرًا ، إذا قررت استخدام pre-commit فيمكنك أيضًا إلغاء تثبيت الخطافات مع pre-commit uninstall .
بالإضافة إلى التطوير في نظام التشغيل المحلي الخاص بك ، فإننا نوفر أيضًا مساعد لاستخدام Docker لتوفير بيئة تطوير:
make docker-start-dev يبدأ هذا حاوية Docker مع ريبو محلي مثبت على /mnt/local_unstructured . تتيح لك صورة Docker هذه التطور دون القلق بشأن توافق نظام التشغيل الخاص بك مع الريبو وتبعياته.
للحصول على المزيد من الوثائق شمولية ، تفضل بزيارة https://docs.unstructuction.io. يمكنك أيضًا معرفة المزيد عن منتجاتنا الأخرى على صفحة الوثائق ، بما في ذلك API SAAS.
فيما يلي بعض الصفحات من صفحة الوثائق المفتوحة المصدر والتي تساعد على مراجعة المستخدمين الجدد:
unstructured توضح الأمثلة التالية كيفية البدء في المكتبة unstructured . أسهل طريقة لتحليل وثيقة في غير منظمة هي استخدام وظيفة partition . إذا كنت تستخدم وظيفة partition ، فسوف يكتشف unstructured نوع الملف وتوجيهه إلى وظيفة التقسيم الخاصة بالملف المناسبة. إذا كنت تستخدم وظيفة partition ، فقد تحتاج إلى تثبيت تبعيات إضافية لكل نوع مستند. على سبيل المثال ، لتثبيت تبعيات DOCX ، تحتاج إلى تشغيل pip install "unstructured[docx]" . انظر دليل التثبيت الخاص بنا لمزيد من التفاصيل.
from unstructured . partition . auto import partition
elements = partition ( "example-docs/layout-parser-paper.pdf" ) قم بتشغيل print("nn".join([str(el) for el in elements]))
LayoutParser : A Unified Toolkit for Deep Learning Based Document Image Analysis
Zejiang Shen 1 ( (cid:0) ), Ruochen Zhang 2 , Melissa Dell 3 , Benjamin Charles Germain Lee 4 , Jacob Carlson 3 , and
Weining Li 5
Abstract. Recent advances in document image analysis (DIA) have been primarily driven by the application of neural
networks. Ideally, research outcomes could be easily deployed in production and extended for further investigation.
However, various factors like loosely organized codebases and sophisticated model configurations complicate the easy
reuse of important innovations by a wide audience. Though there have been ongoing efforts to improve reusability and
simplify deep learning (DL) model development in disciplines like natural language processing and computer vision, none
of them are optimized for challenges in the domain of DIA. This represents a major gap in the existing toolkit, as DIA
is central to academic research across a wide range of disciplines in the social sciences and humanities. This paper
introduces LayoutParser, an open-source library for streamlining the usage of DL in DIA research and applications.
The core LayoutParser library comes with a set of simple and intuitive interfaces for applying and customizing DL models
for layout detection, character recognition, and many other document processing tasks. To promote extensibility,
LayoutParser also incorporates a community platform for sharing both pre-trained models and full document digitization
pipelines. We demonstrate that LayoutParser is helpful for both lightweight and large-scale digitization pipelines in
real-word use cases. The library is publicly available at https://layout-parser.github.io
Keywords: Document Image Analysis · Deep Learning · Layout Analysis · Character Recognition · Open Source library ·
Toolkit.
Introduction
Deep Learning(DL)-based approaches are the state-of-the-art for a wide range of document image analysis (DIA) tasks
including document image classification [11,
راجع قسم التقسيم في وثائقنا للحصول على قائمة كاملة بالخيارات والتعليمات حول كيفية استخدام وظائف التقسيم الخاصة بالملف.
راجع سياسة الأمان الخاصة بنا للحصول على معلومات حول كيفية الإبلاغ عن ثغرات الأمن.
واجهت خطأ؟ يرجى إنشاء مشكلة github جديدة واستخدام قالب تقرير الأخطاء لدينا لوصف المشكلة. لمساعدتنا في تشخيص المشكلة ، استخدم أمر python scripts/collect_env.py لجمع معلومات بيئة نظامك وإدراجها في تقريرك. مساعدتك تساعدنا على تحسين برنامجنا بشكل مستمر - شكرًا لك!
| قسم | وصف |
|---|---|
| موقع الشركة | unstrument.io المنتجات والشركة |
| الوثائق | وثائق API كاملة |
| معالجة الدُفعات | تناول مجموعات من الوثائق من خلال غير منظمة |
لقد عقدنا شراكة مع Scarf (https://scarf.sh) لجمع إحصائيات المستخدم المجهولة لفهم ما ميزات مجتمعنا الذي يستخدمه وكيفية تحديد أولويات اتخاذ القرارات في المستقبل. لمعرفة المزيد حول كيفية جمع هذه البيانات واستخدامها ، يرجى قراءة سياسة الخصوصية الخاصة بنا. لإلغاء الاشتراك في جمع البيانات هذه ، يمكنك تعيين البيئة المتغير SCARF_NO_ANALYTICS=true قبل تشغيل أي أوامر unstructured .