Knowledge Bases

إدراج الملفات القديمة في قواعد المعرفة الحديثة

مع انتقال المؤسسات إلى أنظمة المعرفة المدعومة بالذكاء الاصطناعي، لا يكمن التحدي فقط في بناء خط أنابيب RAG، بل في التعامل مع البيانات الموجودة لديك بالفعل. ملايين السجلات المؤسسية مودعة في صيغ قديمة: ملفات Outlook MSG، رسائل EML المستقلة، ووثائق Word 97-2003. تحتوي هذه الملفات على بيانات غير منظمة ومليئة بالضوضاء التي تكسر خطوط الإدراج القياسية. تستكشف هذه الدليل استراتيجيات لتنقية هذه المحتويات القديمة وتحليلها وهيكلتها لتخزين المتجهات الحديثة.

لماذا تكسر الصيغ القديمة خطوط الأنابيب

تتوقع قواعد بيانات المتجهات الحديثة نصًا نظيفًا ودلاليًا. تضيف الصيغ القديمة ثلاثة أنواع من الضوضاء:

  • انتفاخ البيانات الوصفية: تحتوي ملفات MSG على رؤوس ثنائية وخصائص MAPI تحجب المحتوى الفعلي.
  • التعقيد الهيكلي: تخلط ملفات EML بين الرؤوس والأجسام المشفرة بـ base64 والمرفقات في تدفق واحد.
  • آثار التنسيق: تعتمد وثائق Word القديمة (.doc) على ملفات OLE المركبة، مما يؤدي غالبًا إلى نص مشوه عند الاستخراج بشكل ساذج.

معالجة رسائل البريد الإلكتروني EML و MSG

البريد الإلكتروني بيانات عالية القيمة لكن بصيغة منخفضة الجودة. الهدف هو استخراج الجسم والبيانات الوصفية الرئيسية (المرسل، التاريخ) مع إزالة علامات HTML وضوضاء base64.

لملفات EML، مكتبة email في بايثون هي المعيار. لملفات MSG، تحتاج إلى أدوات متخصصة مثل extract-msg.


import email
from email import policy
import extract_msg

def process_eml(filepath):
    with open(filepath, 'rb') as f:
        msg = email.message_from_binary_file(f, policy=policy.default)
    
    # Extract plain text body
    body_part = msg.get_body(preferencelist=('plain', 'html'))
    text = body_part.get_content() if body_part else ""
    
    # Clean HTML if body is rich text
    import re
    text = re.sub(r'<[^>]+>', '', text)
    
    return {
        'subject': msg['subject'],
        'sender': msg['from'],
        'date': msg['date'],
        'content': text.strip()
    }

def process_msg(filepath):
    with extract_msg.Message(filepath) as msg:
        return {
            'subject': msg.subject,
            'sender': msg.sender,
            'date': str(msg.date),
            'content': msg.body
        }

التعامل مع وثائق Word القديمة (.doc)

على عكس .docx (الذي هو أرشيف zip من XML)، فإن .doc هو صيغة ثنائية OLE2. يتطلب تحويل هذه الملفات محرك تحويل بدون واجهة رسومية أو محلل متخصص.

أكثر استراتيجية موثوقية هي تحويل .doc إلى .docx أو .txt أولاً باستخدام LibreOffice في الوضع بدون واجهة رسومية، ثم تحليل النتيجة. هذا يوحّد مصدر البيانات.


# Shell script to convert .doc to .txt via LibreOffice
# Input: /data/legacy/docs
# Output: /data/processed/txt

libreoffice --headless --convert-to txt --outdir /data/processed/txt /data/legacy/docs/*.doc

بمجرد التحويل إلى نص عادي، يمكنك تطبيق تقطيع NLP القياسي. تجنب استخدام خوارزميات تحويل PDF إلى النص الخام على وثائق Word القديمة، لأنها غالبًا تفقد سياق التخطيط وتنتج جملًا مجزأة تقلل من جودة التضمين.

استراتيجية التقطيع للبيانات المليئة بالضوضاء

غالبًا ما تكون هياكل العناوين في المستندات القديمة غير متسقة. سيؤدي التقطيع بحجم ثابت (مثلاً، 500 رمز) إلى تقسيم الجمل أو فصل العناوين عن محتواها بشكل متكرر.

استخدم التقطيع الواعي بالهيكل:

  1. حدد العناوين (حروف كبيرة، عريض، أو أنماط ترقيم محددة).
  2. جمّع المحتوى تحت العنوان الأحدث.
  3. إذا تجاوزت المجموعة الحد الأقصى للرموز، قم بتقسيمها فقط عند حدود الفقرات.

الخاتمة

إدراج الصيغ القديمة هو مهمة نظافة بيانات، وليس مجرد مهمة تحليل. من خلال توحيد البيانات الوصفية لـ EML/MSG وتحويل وثائق Word القائمة على OLE إلى نص نظيف، تحسّن بشكل كبير الجودة الدلالية لتضميناتك. قم دائمًا بتجربة خط أنابيب التحليل على عينة صغيرة ومتنوعة من أرشيفك الفعلي القديم قبل التوسع إلى مجموعة البيانات الكاملة.

Share: