يتكون هذا المستودع من المشروع المصغر الذي تم إجراؤه كجزء من استرجاع معلومات الدورة التدريبية واستخراجها - ربيع 2014. تم تعليمات الدورة الدكتورة Vasudeva Varma.
## متطلبات Python 2.6 أو أعلى
مكتبات بيثون:
## مشكلة يتضمن مشروع MINI إنشاء محرك بحث على تفريغ بيانات ويكيبيديا دون استخدام أي فهرس خارجي. لهذا المشروع ، نستخدم تفريغ البيانات لعام 2013 بحجم 43 جيجابايت. تعود نتائج البحث في الوقت الحقيقي. يتم تطبيق Word Word و Multi Field Search على Wikipedia Corpus. يستخدم Sax Earser لتحليل مجموعة XML. بعد تحليل العمليات المورفولوجية التالية:
يتم إنشاء الفهرس ، الذي يتكون من الكلمات الجذعية وقائمة النشر للجسم بعد إجراء العمليات المذكورة أعلاه مع العنوان والتعيين الفريد الذي استخدمته لكل مستند. وبالتالي يتم تجاهل معرف المستند لصفحة ويكيبيديا. يساعد هذا في تقليل الحجم لأن معرف المستند لا يبدأ برقم رقم واحد في المجموعة. نظرًا لأن حجم المجموعة لن يتناسب مع الذاكرة الرئيسية يتم إنشاء العديد من ملفات الفهرس. بعد ذلك ، يتم دمج ملفات الفهرس هذه باستخدام K-Way Merge إلى جانب إنشاء ملفات مؤشرات قائمة على الحقل.
على سبيل المثال ، يتم إنشاء index0.txt ، index1.txt ، index2.txt. قد تحتوي هذه الملفات على نفس الكلمة. وبالتالي ، يتم تطبيق K Way Merge ويتم إنشاء الملفات المستندة إلى الحقل إلى جانب إزاحة كل منها. يتم إنشاء هذه الملفات القائمة على الحقل باستخدام متعدد الخيوط. هذا يساعد في القيام بالعديد من الإدخال/الإخراج في وقت واحد. جنبا إلى جنب مع هذا ملف المفردات يتم إنشاؤه أيضا.
إلى جانب هذه ، قمت أيضًا بتخزين إزاحة كل ملف من ملفات الحقل. هذا يقلل من وقت البحث إلى O (logm * logn) حيث M هو عدد الكلمات في ملف المفردات و M هو عدد الكلمات في أكبر ملف حقل.
يحتوي مجلد SRC على الملفات التالية:
### الوظائف الرئيسية:
من أجل تشغيل هذا الرمز ، قم بتشغيل ما يلي: Python wikiindexer.py ./sampletext ./outputfolderpath
من أجل تشغيل هذا الرمز قم بتشغيل ما يلي: python search.py ./outputfolderpath
### وظائف المساعد:
TextProcessing.py وظيفة المساعد هذه تقوم بكل المعالجة المسبقة. يعمل كمساعد للبحث.
FileHandler.py هذه الوظيفة تقوم بجميع المعالجة المسبقة للملف. يعمل كمساعد لـ wikiindexer.py