الوجه التقني لشمرا، أول محرك بحث سوريّ
المكتب الإعلامي >>>> مقابلات
لقاء مع م. شادي صالح المؤسس والمدير التنفيذي لمحرّك البحث السوري "شمرا"
1- شادي، ما هو مفهوم محرّك البحث؟ وما الفكرة من وجود محرّك بحث محلّي بوجود محرّكات بحث عالميّة؟
محرّك البحث هو نظام يشمل عدداً كبيراً من المكونات البرمجيّة التي تعمل بشكل متكاملٍ لتقديم واجهة بسيطة يستطيع من خلالها المستخدمون التعبير عن معلوماتٍ يريدون العثور عليها من خلال سلسلة من الكلمات المفتاحية ندعوها استعلام. يقوم المحرك بالبحث في صفحات وملفات نصية مفهرسة مسبقاً، ثمَّ يعرض نتائج البحث بشكل مرتّب Ranked اعتماداً على نموذج استرجاع بيانات Retrieval Model.
إنّ وجود محرّك بحث محليّ ليس مجرّد فكرة بَل ضرورة تلبّي حاجات المجتمع السوريّ، فهو يوفّر قيمة مضافة هامّة وهي كَون المعلومات من المصادر السوريّة وهي غالباً ما يطلبه المستخدم عندما يبحث باللغة العربيّة. فعندما يبحث المستخدم عن "وزارة التربية" على سبيل المثال فإنّ نتيجة البحث ستتعامل مع بحثه أنّ وزارة التربية التي يبحث عنها هي وزارة التربية السورية وليس الكويتيّة مثلاً، وسيظهر له أبرز البيانات وأكثرها طلباً من قِبَل المستخدمين.
Image: Syrian Researchers
2- مزحة مع "الباحثون السوريون":
بما ان جميع البيانات في شمرا هي ملكنا، نستطيع القيام بعمليات تحليل بيانات والوصول إلى معلومات هامة، لذلك قمت بتحليل بعض البيانات من موقع الباحثون السوريون قبل جلستنا وحصلت على بعض النتائج الشيقة:
- عدد الصفحات المفهرسة هو 9205 حتى تاريخه.
- عدد الكلمات الفريدة بعد حذف كلمات التوقف (كلمات التوقف Stopword هي كلمات لا تعطي أهمية للنص اي لا تحمل معلومات مثل "لا، إذا، كان،في …") ١٦٤٠٣٤ كلمات.
- بالنسبة لعناوين الصفحات، جاءت "طابعة ثلاثية ابعاد" بالدرجة الأولى بتكرار ١٨ مرة، ثم "سلسلة فيتامينات" بالدرجة الثانية ثم "شركات كبرى" بالدرجة الثالثة.
- بالنسبة للمقالات، وردت كلمة "عالم" بالدرجة الأولى أكثر من ٦٠٥٨ مرة، يليها "خلايا" ٥٦٥٢ ثم "جديدة" ٥٢٨٢ ثم "حياة".
- أما الكلمات الثنائية او مايعرف ب Bigram، ورد بالدرجة الأولى "خلايا جذعية" حوالي ٥٩٢ مرة، يليها "قام باحثون" ٥٣٥ ثم "علم الفضاء" ٥٣٢.
- اما الكلمات الثلاثية Trigram جائت بالمرتبة الأولى "طابعة ثلاثية الابعاد" ٢٠٤ مرة، يليها "ثاني اكسيد الكربون" ٢٠٤ ثم "اشعة تحت الحمراء" ١٧٦ مرة.
أضيفي إلى ذلك، أثناء عملية الفهرسة تكونت لدينا تقارير هامة عن بعض المواقع السورية من حيث عدد الصفحات في الموقع، عدد الزيارات، تصنيف المحتوى، كما استطعنا في بعض الحالات اكتشاف بعض الاخطاء التقنية في بناء بعض المواقع وعدم اتفاق تصميم الموقع مع المعايير العالمية، قمنا في هذه الحالات بمراسلة اصحاب هذه المواقع وبالفعل تم تصحيح الأخطاء وأصبحت عملية الفهرسة وترتيب المواقع عالمياً افضل، وهو ما يؤكد أن محرك البحث شمرا يساهم بشكل كبير في تطوير المحتوى السوري على الانترنت في حال استطعنا تحليل واستخدام البيانات التي لدينا بافضل شكل.
3- ولكن كيف سينافس شمرا محرّكات البحث العالمية التي اعتاد المستخدم عليها؟ ومتى يتوقّع أن يلجأ المستخدم للبحث على شمرا قَبل أي محرّك بحث آخر؟
المقارنة بين شمرا ومحرّك بحث عالميّ ستذهب إلى مصلحة محرّك البحث العالمي بالنسبة لعدد النتائج. لكنّ هذه المقارنة غَير ناجحة عند مقارنة نوعيّة البيانات ومدى تلبيتها لطلب المستخدم. فعندما يبحث المستخدم عن كلمة "مطعم" فرضاً سيعطيه شمرا المطاعم السورية مباشرةً بدل أن يعرض له كلّ مطاعم العالم. نحنُ في هذه الحالة ننافس على نوعيّة الاستجابة خصوصاً في ظلّ ضعف المحتوى العربي والسوري على الانترنت ممّا يجعلها أقلّ ظهوراً في نتائج البحث الآخر.
Image: Syrian Researchers
4- هل توجَد سياسة تحريرية في شمرا لتقوم بترجيح نتائج دون أخرى؟
لا، لا توجد سياسة تحريرية فهذا يتناقض مع الحيادية وسياسة الخصوصية المتّبعة وأخلاقيات محرّك البحث. في حال وجود نتيجة بحث إعلانيّة، فإن محرّك البحث يقوم بإخبار المستخدم بأنّ هذه النتيجة إعلانيّة مدفوعة وذلك للمحافظة على شفافيّة البحث وألا يتم تضليل المستخدم، كما أننا لا نقوم بفلترة أيّ موقع وتتمّ عملية فهرسة المواقع بشكل حيادي مع الابتعاد عن المحتوى.
5- يقول البعض بأن إنجاز محرك بحثٍ عربيّ يعدّ مهمّةً شبه مستحيلة بسبب صعوبة التعامل مع اللغة العربية بوجود أدوات التعريف أو حروف الجرّ أو ما شابَه، فكيف قمتم بتجاوز ذلك؟
لا يمكننا أن نقول عن أيّ مهمّة أنّها مستحيلة، كما أنّ صعوبتها تجعل تحقيقها أمراً أكثر جاذبيّة. نستخدم الكثير من تقنيات المعالجة اللغوية الخاصة باللغة العربية، على سبيل المثال، نستخدم تقنيّة الـ stemming التي تقوم بتحليل الكلمة إلى منشئها الأصلي. فمثلاً نتعامل مع كلِمتيّ "حيوانيّ" و "الحيوان" بطريقة متشابهة وهي إرجاعها لكلمة "حيوان". طبعاً هذه العملية خطيرة فالمبالغة بها ستؤدي إلى فقدان الكثير من المعلومات، ولكن بدونها لن تنجح عمليّة البحث باللغة العربية. لذلك نقوم بالموازنة بحيث لا نجحف في قصّ الكلمة. ولا أخفيك بأن دراستي الحالية في درجة الدكتوراه في قسم تحليل اللغويات في جامعة تشارلز في براغ تساعد فريق العمل في اتّباع أحدث ما توصّل إليه العلم من أساليب تحليل اللغة.
6- ما هي شمرا أكاديميا؟ وماذا تخطط شمرا لتقدّم للباحثين والطلّاب؟ وهل من مشروع لوجود مخبر بحثي خاص بشمرا؟
شمرا أكاديميا هي خدمة شمرا المخصصة للباحثين والطلّاب. تقوم حالياً هذه الخدمة بمهمّتين رئيسيتين: الأولى هي نشر جميع الأبحاث المنشورة في الجامعات السورية وهو ما يهمّ طلبة الدراسات العليا والهيئة التدريسية، فقد تعذّر سابقاً الحصول على هذه المعلومات من قِبل أيّ منصّة أخرى. الآن يستطيع الباحث معرفة الأبحاث المنشورة قَبله قبل البدء بالعمل على بحثه وهو ما كان يكلّف الطلاب وقتاً لمراسلة جميع جامعات سوريا قبل معرفة المعلومات الكافية عن الأبحاث في المجال الذي يريده الباحث، وبإمكانه الاطلاع على النتائج وأحدث ما تمّ الوصول إليه خصوصاً إذا كُنّا نطمح لبناء حقلِ بحثيّ أكثر تطوراً لسوريا في المستقبل. أمّا الخدمة الثانية فهي خدمة البحث عن المنح وهو أيضاً ما يتمثّل بضرورة هامّة وتسريع لخطوات الحصول على منحة. كلّ هذه الخطوات هي أوّل ما بدأ به شمرا لدعم الباحثين وسنقدّم المزيد من خلال نتائج عملنا ونطمح لإنشاء مختبر بحثي علميّ يصدّر الأبحاث من قلب سوريا.
Image: Syrian Researchers
7- ما هي اللغة البرمجية المستخدمة في الـ Crawler (وهو الوسيلة التقنيّة المستخدمة لفهرسة الويب)؟
تم بناء الCrawlers انطلاقاً من المشروع مفتوح المصدر الشهير Apache Nutch، المبني باستخدام لغة البرمجة Java. قمنا بإضافة الكثير من التخصيصات عليه وجعله يتوافق مع التقنيات الحديثة في تطوير مواقع الإنترنت، حيث لاحظنا أنَّ عمليّة تطويره بطيئة جدًا لذلك قررنا أن نقوم بتطوير نسخة منه خاصة بشمرا، وقمنا ايضاً ببناء مئات السكربتات والإضافات باستخدام لغات برمجة مثل Python Java C++and PHP.
نقوم بمسح الوب Crawling وجلب نسخة من جميع صحفات الانترنت والملفات النصية (pdf، word، etc) عن طريق Cluster أو عنقود يحوي عدداً كبيراً من السيرفرات التي تعمل ٢٤ ساعة على ذلك، نقوم بشكل أساسيّ بالتركيز على الموقع ذات اللاحقة SY، وهنا أعني بالتركيز زيادة تواتر زيارة هذه المواقع من قبل زواحف شمرا لكي نضمن وجود نسخة حديثة من أخر المقالات المضافة لدينا، ثم نقوم بالدرجة الثانية بالتركيز على المواقع المتصلة مع مواقع سورية اي التي تحوي رابط إليها من داخل المواقع السورية، ثم مؤخرًا بدأنا بفهرسة الموقع الأنكليزية المهمة وبدأنا بوكيبيديا الانكليزية.
الجدير بالذكر هنا ان عملية الزحف هي عملية مكلفة جداً من حيث المعالجة CPU ومن حيث التخزين، من أجل سرعة التخزين وتقليل زمن الخطاأ تحوي جميع مخدماتنا اقراص تخزين SSD وهي اقراص غالية الثمن، لذلك فإن عمليّة توسيع فهرس شمرا لضم مواقع وصفحات أكثر هي عملية مكلفة جدًا لن نستطيع القيام بها في هذه المرحلة المبكرة من إطلاق المشروع.
8- هل وضعتم خوارزمية جديدة للبحث أم أنّكم استخدمتم إحدى الخوارزميات الموجودة ضمن أي محرك بحث سواء غوغل او بينغ او ياهو؟
ما أريد ان أؤكد عليه اننا لا نستعين بأي محرك بحث أخر، كل ما يتم عرضه ضمن خدمات شمرا تم بناءه وتجمعيه من قبل شمرا وتعود ملكيته بشكل كامل إلينا.
أما ما يخص البرمجيات بشكل خاص، فبالطبع قمنا باستخدام الكثير من البرمجيات مفتوحة المصدر لتحقيق وتنفيذ المحرك، وخصوصاً المشاريع الفرعية الصادرة عن Apache Project. ما يميز هذه المشاريع انه يعمل عليها عشرات الآلاف من المطورين من كافة انحاء العالم ومن كبرى الشركات، بالتالي اصبحت مستقرة وشبه خالية من الأخطاء.
استخدمنا هذه البرمجيات كنقطة بداية، وبالتأكيد قمنا بتخصيصها وإجراء الكثير من التعديلات عليها، حتى أن فريقنا قام عدة مرات ب مساهمات لهذه البرمجيات عن طريق تقديم اقتراحات لتعديلات تم اعتمادها لاحقاً.
9- ما هي التقنية التي اتبعتها أثناء إنشاء دليل الصفحات index؟
قبل أن نتحدث عن بناء الفهرس، هناك مرحلة سابقة، و وفيها يتم تنظيف صحفات الانترنت التي قامت ال Crawlers بجمعها من الانترنت، وحذف مايعرف بال Noise او المعلومات غير المهمة ثم إجراء عمليات لغوية عليها مثل حذف كلمات التوقف و اجراء عملية Stemming، ثم تاتي مرحلة بناء الفهرس عن طريق بناء لوائح Posting Lists وتخزينها ضمن بيئة تخزين بيانات مشهورة لمعالجة البيانات الضخمة تدعى Apache Hadoop.
10- كيف تعالج الـ queries في محرك البحث؟
يتم في البداية اجراء معالجة لغوية للاستعلام، ثم يتم اجراء تصنيف آلي للاستعلام باستخدام نموذج إحصائي تم بنائه باستخدام Machine learning algorithm، قادر على تحديد نوع الاستعلام اذا كان اخبار، طقس وعملات، أو عام.
في حال كان الاستعلام إخبارياً يتم في البداية عرض نتائج من الأخبار، اذا كان استعلام عن الطقس يتم عرض حالة الطقس في المنطقة الجغرافية للمستخدم، في حال كان استفسار عن صرف العملات يتم عرض الاسعار، وإلا يتم عرض نتائج من الصحفات المفهرسة.
11- أي IR model اعتمدت عليه؟ وهل جمعت بين أكثر من نموذج ؟
نستخدم نموذج استرجاع بيانات يعتمد على Language Models وقمنا بتضمين DFR Divergence from Randomness لحل مشكلة الضجيج الموجود في صفحات الانترنت ( أي وجود تكرار لكلمة مفتاحية بشكل كبير في صفحة انترنت ليس بالضرورة ان يعطي لهذه الصفحة وزن أكثر من غيرها فيما يتعلق باستعلام آلي يحوي هذه الكلمة. تخيلوا معي صفحة انترنت تتحدث عن الطبخ مثلاً، يقوم أحياناً مدراء الموقع بوضع كلمات مفتاحية في الصفحة بشكل مخفي لا تمت للموضوع بصلة لجلب محركات البحث الى هذه الصفحة عند البحث عن واحدة من هذه الكلمات، هذه الكلمات تدعى ضجيج ونحاول جاهدين العمل لتجاهلها).
12- ماهي العوامل التي تحدد مدى أهمية الصفحة في الخوازمية التي استعملتها؟
جميل العوامل إحصائية، مثلا كمية المعلومات التي تحملها الصفحة او ال Entropy ، تمايز الصفحة في احتوائها كلمات مفتاحية لا تحويها صحفات أخرى، طول الصفحة او عدد الكلمات الفريدة، الوصلات التي تشير إلى هذه الصفحة، كما قمنا بإضافة معيار يسمى بمعيار Hits، أي عدد المرات التي قام المستخدمون فيها بزيارة هذه الصفحة، لأنه في هذه الحالة سنعتبر أن الصفحة أكثر أهميّة من غيرها.
هناك أيضاً عوامل أخرى مهمة مثل عنوان الصفحة وطوله، تاريخ إنشاء الصفحة، والكثير من العوامل الأخرى التي ندعوها Features.
13- هل يعمل شمرا بنظام خوارزميات التعلّم الذاتيّ؟ وما هي مرجعيّة تقييم نتائج جودة الأداء؟
بالتأكيد، الأنظمة الخاصة بالتعلم الذاتي موجودة مثلاً في خوارزمية الإكمال التلقائي للاستعلام، اقتراح تصحيح (أي عندما تبحثين عن كلمة غير صحيحة باللغة العربية نسالك هل تقصدين "الكلمة الصحيحة")، عرض نتائج البحث (كما ذكرت في الأعلى عدد مرات الزيارة يلعب دوراً في تحديد أهمية الصفحة وهذا جزء من التعلم، أيضاً تحديد نوع الاستعلام في حال كان عن الأخبار او غير ذلك.
في خوارزميات التعلم الذاتي هناك نوعان أساسيان، نوع يدعى تعلم بإشراف Supervised Learning ونوع أخر بدون اشراف unsupervised learning.
في التعلم باشراف، نقوم باستخدام بيانات خاصة لدينا تم بناؤها من قبلنا. قياس تقييم النتائج في هذه الخوارزميات يتم عن طريق سياسة اخفاء جزء من الداتا للاختبار وجزء اخر للتدريب، لنحصل بالنهاية على معيار دقة.
في التعلم بدون إشرف يكون التقييم أصعب، فيما يخص نتائج البحث نقوم باعتماد معيار Precision @ top K، وهو يعني نسبة الصحفات الملائمة لبحث المستخدم ضمن ال K صفحة الاولى المسترجعة. يتم ذلك عن طريق بناء مايعرف ب Relevance Assessment من قبل كادر بشري. نقوم بذلك من أجل الحكم في اختيار خوارزمية او بارامترات معينة للوصول إلى نتائج أفضل. نطلق على P@10 في هذا السياق Gold standard.
14- هل ستطلق شمرا خدمة البحث بالصور وهل سيعتمد ذلك على تحليل الصورة أم على النص المرافق لها؟
بالتأكيد، سنطلق خدمة البحث عن صور. نقوم الآن في مخابرنا بدراسة الموضوع وسنقوم ببناء نظام ذكي قادر على تحليل مكونات الصورة وعرض الصور المشابهة، واستخلاص النص من صورة إلخ.. ولكن لا أخفيكي أن هذا المشروع لا يملك أولوية عالية لدينا. نطمح بداية لإطلاق نظام ترجمة آلية قوي بعد أن استطعنا بناء نظام تجريبي أظهر حالة نجاح جيدة جداً واستطاع في بعض الجمل والنصوص التغلب على المترجمات الشهيرة. فملكيتنا للبيانات التي نجمعها يجعل تطوير هكذا انظمة شيئاً ممكناً من الناحية العملية.
كلّ الشكر لك شادي، والتوفيق لشمرا.