👈🏻 الإجابة تكمن في علم استخراج المعلومات (Information Retrieval - IR)، والذي يعد جزءًا من معالجة اللغة الطبيعية (NLP). هذه الأخيرة هي مجموعة من الخطوات التي تمكّن الأجهزة من التعامل مع اللغة البشرية بذكاء.
يتكون نظام معالجة النصوص من مكونين رئيسيين.
1- الأمر (Query): الطلب الذي يستخدمه المستخدم للبحث، ويكون مكتوبا بلغة طبيعية.
2- المستندات (Documents): النصوص والبيانات المخزنة في قواعد بيانات مُحرك البحث وهي التي تحتوي على الإجابة، ولكن نظرا لكثرتها يجب أن تُعالج وتُخزن بطريقة تجعل الوصول إليها سريعًا ودقيقًا.
🔸 هذه المرة، سنركز على العنصر الأول: ماهي الخطوات التي يقوم بها الكمبيوتر حتى يفهم لغتنا الطبيعية ونصوصنا بإختلافها؟ دعونا نستعرض الخطوات:
🔻 1. مجانسة البيانات (Data Preprocessing):
يتم تحويل جميع الأحرف الكبيرة إلى أحرف صغيرة (Upper to Lower Case).
تُحذف علامات الترقيم (Punctuation).
🔻 2. تقسيم البيانات (Segmentation):
تقسيم النصوص الطويلة إلى جمل أصغر للتعامل معها بسهولة.
مثال:
"Ahmed is interested in programming and wants to be a talented programmer."
تُقسم إلى:
•Ahmed is interested in programming.
•He wants to be a talented programmer
🔻 3. تجزئة الكلمات (Tokenizing):
تُقسم الجمل إلى كلمات فردية. لتُصبح :
[Ahmed], [is], [interested], [in], [programming].
🔻 4. إزالة الكلمات الشائعة (Stop Words Removal):
الكلمات الشائعة التي لا تضيف معنى مميزا للنص تُستبعد، مثل:
"the, and, a".
فـ تُصبح الجملة:
[Ahmed], [interested], [programming], [talented], [programmer].
🔻 5. تقطيع الكلمات (Stemming):
يتم إرجاع الكلمات إلى جذورها وأصلها.
مثال: "programming" و"programmer" تصبحان "program"
🔻 6. التصريف (Lemmatization):
تُحول الكلمات المختلفة ذات المعنى الواحد إلى صيغة أساسية.
مثال:
"is"، "was"، "to be"
تصبح جميعها: "be".
🔻 7. تمييز الأجزاء (Part-of-Speech Tagging):
تُضاف علامات تُحدد إذا كانت الكلمة اسمًا، فعلًا، أو حرفًا.
مثال: "Ahmed was"
• Ahmed: اسم (Noun).
• Was: فعل (Verb).
🔻 8. التعرف على الكيانات (Named Entity Recognition):
يتم تحديد أسماء العلم مثل الأشخاص أو الأماكن أو ما هو مشهور:
مثال: Ahmed (اسم شخص)، Algeria (اسم مكان).
👈🏻 بعد تطبيق هاته الخطوات على النصوص الطويلة المعقدة، تصبح لدينا قوائم عدة تُخزن فيها الكلمات المستخرجة، مع معلومات أُخرى تساعد في فهم النص لنتائج بحث أدق مثل:
• عدد مرات تكرار كل كلمة (Frequency)،
• موقعها في النص (Position)
• والعلاقة مع الكلمات الأخرى
لكن، ولكثرة هاته المعلومات، كيف يمكننا تخزينها بمساحةٍ كافية و بشكل أكثر كفاءة يسمح للخوارزميات بالبحث السريع ؟ 🤔
هذا ما سنتعرف عليه في الجزء القادم! 👀
ابقوا مترقبين 🔥


