استخراج البيانات الهيكلية من النصوص غير المهيكلة باستخدام مكتبة LangExtract مفتوحة المصدر من جوجل

في عالمنا الذي يعتمد بشكل كبير على البيانات، غالباً ما تُدفن المعلومات القيّمة داخل نصوص غير مهيكلة، سواء كانت ملاحظات طبية، أو عقود قانونية طويلة، أو تعليقات عملاء. يُشكل استخراج المعلومات ذات المغزى والقابلة للتتبع من هذه الوثائق تحديًا تقنيًا وعمليًا على حد سواء. لذلك، تقدم جوجل للذكاء الاصطناعي مكتبة LangExtract مفتوحة المصدر بلغة بايثون، مصممة خصيصاً لمعالجة هذه المشكلة، وذلك باستخدام نماذج اللغات الكبيرة مثل Gemini لتوفير استخراج آلي قوي مع تتبع وشفافية تامين.

الابتكارات الرئيسية في LangExtract

تتميز مكتبة LangExtract بالعديد من الابتكارات التي تجعلها أداة قوية وفعالة لاستخراج البيانات:

  • استخراج وصفي وقابل للتتبع: تتيح LangExtract للمستخدمين تحديد مهام الاستخراج المخصصة باستخدام تعليمات بلغة طبيعية وأمثلة قليلة عالية الجودة. يُمكّن هذا المطورين والمحللين من تحديد الكيانات، والعلاقات، أو الحقائق المراد استخراجها، وهيكليتها بدقة. والأهم من ذلك، يتم ربط كل قطعة معلومات مستخرجة مباشرة بالنص المصدر، مما يسمح بالتحقق، والفحص، والتتبع الشامل.

  • التنوع في المجالات: لا تعمل المكتبة فقط في عروض التوضيح التقنية، بل تعمل أيضاً في مجالات حقيقية مهمة، بما في ذلك:

    • الصحة: الملاحظات السريرية، والتقارير الطبية.
    • التمويل: الملخصات، ووثائق المخاطر.
    • القانون: العقود.
    • البحث العلمي: الأبحاث المنشورة.
    • الفنون: تحليل أعمال شكسبير على سبيل المثال.

    ومن الأمثلة على حالات الاستخدام الأصلية: الاستخراج التلقائي للأدوية، والجرعات، وتفاصيل الإعطاء من الوثائق السريرية، بالإضافة إلى العلاقات والعواطف من المسرحيات أو الأدب.

  • فرض المخططات باستخدام نماذج اللغات الكبيرة: تعمل LangExtract، المدعومة بنموذج Gemini ومتوافقة مع نماذج اللغات الكبيرة الأخرى، على فرض مخططات الإخراج المخصصة (مثل JSON)، لذلك لا تكون النتائج دقيقة فحسب، بل قابلة للاستخدام مباشرة في قواعد البيانات، أو التحليلات، أو أنابيب الذكاء الاصطناعي الأخرى. تحل هذه المكتبة مشاكل نماذج اللغات الكبيرة التقليدية المتعلقة بالهلوسة وانحراف المخطط من خلال ربط المخرجات بتعليمات المستخدم والنص المصدر الفعلي.

  • التوسع وقابلية التصور:

    • معالجة الكميات الكبيرة من البيانات: تعالج LangExtract الوثائق الطويلة بكفاءة من خلال تقسيمها، ومعالجتها بالتوازي، وجمع النتائج.
    • التصور التفاعلي: يمكن للمطورين إنشاء تقارير HTML تفاعلية، وعرض كل كيان مستخرج مع سياقه من خلال تمييز موقعه في الوثيقة الأصلية، مما يجعل عملية الفحص وتحليل الأخطاء سلسة.
    • التكامل السلس: تعمل في Google Colab، وJupyter، أو كملفات HTML مستقلة، مما يدعم حلقة تغذية راجعة سريعة للمطورين والباحثين.
  • التثبيت والاستخدام:

    يمكن تثبيت المكتبة بسهولة باستخدام pip install langextract.

أمثلة على استخدام LangExtract

يوضح المثال التالي كيفية استخراج معلومات الشخصيات من نص لشكسبير:

import langextract as lx
import textwrap

# 1. تحديد التعليمات
prompt = textwrap.dedent("""
Extract characters, emotions, and relationships in order of appearance. 
Use exact text for extractions. Do not paraphrase or overlap entities. 
Provide meaningful attributes for each entity to add context.
""")

# 2. تقديم مثال عالي الجودة
examples = [
    lx.data.ExampleData(
        text="ROMEO. But soft! What light through yonder window breaks? It is the east, and Juliet is the sun.",
        extractions=[
            lx.data.Extraction(extraction_class="character", extraction_text="ROMEO", attributes={"emotional_state": "wonder"}),
            lx.data.Extraction(extraction_class="emotion", extraction_text="But soft!", attributes={"feeling": "gentle awe"}),
            lx.data.Extraction(extraction_class="relationship", extraction_text="Juliet is the sun", attributes={"type": "metaphor"}),
        ],
    )
]

# 3. استخراج من نص جديد
input_text = "Lady Juliet gazed longingly at the stars, her heart aching for Romeo"
result = lx.extract(text_or_documents=input_text, prompt_description=prompt, examples=examples, model_id="gemini-2.5-pro")

# 4. حفظ النتائج وتصورها
lx.io.save_annotated_documents([result], output_name="extraction_results.jsonl")
html_content = lx.visualize("extraction_results.jsonl")
with open("visualization.html", "w") as f:
    f.write(html_content)

ينتج هذا الكود مخرجات JSON منظمة مرتبطة بالمصدر، بالإضافة إلى عرض HTML تفاعلي للمراجعة والتوضيح السهل.

التطبيقات المتخصصة وعالمية

  • الطب: تستخرج الأدوية، والجرعات، والتوقيت، وتربطها بجمل المصدر. بناءً على رؤى من الأبحاث التي أجريت حول تسريع استخراج المعلومات الطبية، فإن نهج LangExtract قابل للتطبيق مباشرة على تنظيم التقارير السريرية والأشعة، مما يحسن الوضوح ويدعم التشغيل البيني.

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

  • البحث واستخراج البيانات: يُسرّع استخراج البيانات من آلاف الأوراق العلمية. يوفر الفريق حتى عرضًا توضيحيًا يسمى RadExtract لتنظيم تقارير الأشعة، مع تسليط الضوء ليس فقط على ما تم استخراجه، ولكن تحديدًا مكان ظهور المعلومات في المدخل الأصلي.

مقارنة LangExtract بالنهج التقليدية

الميزة النهج التقليدية نهج LangExtract
اتساق المخطط يدوي/ عرضة للأخطاء غالباً مفروض عبر التعليمات والأمثلة
إمكانية تتبع النتائج ضئيلة جميع المخرجات مرتبطة بالنص المدخل
التوسع إلى نصوص طويلة مقسمة، مع فقدان معلومات مقسمة + استخراج متوازي، ثم تجميع
التصور مخصص، غائب عادةً تقارير HTML تفاعلية مدمجة
النشر جامد، محدد بالنموذج يعمل أولاً مع Gemini، مفتوح لأنماط أخرى

الخلاصة

تمثل LangExtract حقبة جديدة لاستخراج البيانات الهيكلية القابلة للتنفيذ من النصوص، حيث توفر:

  • استخراج وصفي وقابل للتفسير.
  • نتائج قابلة للتتبع مدعومة بسياق المصدر.
  • تصور فوري للتكرار السريع.
  • تكامل سهل في أي سير عمل بايثون.

يمكنكم زيارة صفحة GitHub للحصول على المزيد من المعلومات، والتعليمات البرمجية، ودفاتر الملاحظات.

المصدر: MarkTechPost