تطوير مكون بحث عربي مفتوح المصدر (دلفي)

لمن يريد تطويرمكون بحث باللغة العربية (+شفرة مجانية)
Arabic Finder :

هذا المكون عبارة عن مكون بسيط يحوي بعض الخيارات الإضافية من أجل البحث باللغة العربية .

فحسب ما رأيت على الإنترنت أن كل مكونات (طرق البحث) من أجل كلمة في نص تحوي خيارات توافق النصوص الأجنبية فقط مثل (حساسية الأحرف الكبيرة والصغيرة) , ونظرا لما للغة العربية من تنوع وتشكيل ونظرا لدخول أحيانا بعض الكتابات العامية . أصبح من الصعب البحث في نص عربي .. .؟

على سبيل المثال إذا كان النص يحوي تشاكيل مثل الضمة والفتحة و و و فإن أي تشكيلة واحدة سوف تغيير نتائج البحث فالبحث عن كلمة " بَحْثٌ " لا يطابق البحث عن كلمة " بحث " , لذلك كان لا بد من بعض الخيارات المناسبة للغة العربية ... حيث أن كل تشكيلة أو مدة تعتبر محرف وتغير من نتائج البحث

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

وهنا بعض الخيارات التي يحويها البرنامج :

خيارات عامة لكل اللغات) مثل

*- كامل الكلمة فقط : وهذا الخيار يحدد ما إذا كنا نريد البحث ومطابقة كامل الكلمة فقط , أي البحث عن كلمة مستقلة بذاتها أم أنها جزء من كلمة . فأحيانا كثيرة يتم البحث عن الهدف ضمن أجزاء الكلمات , مثال
للبحث عن كلمة حاسوب في نص فإذا كان الخيار (كامل الكلمة فقط ) غير مفعل فإن الكلمة حاسوبية سوف تدرج مع نتائج البحث لإنها تحوي أحرف كلمة حاسوب بنفس التسلسل ضمنها ..

خيارات تنسيقية ومساعدة :

*- إظهار النتائج فقط : هذا الخيار يحدد ما إذا كنا نريد تحديد الكلمات المطابقة للبحث ضمن نص كما هو ,, أو إظهار الأسطر التي تحوي على نتائج بحث فقط ,.. فإذا كان غير مفعل , فإن المكون سوف يعيد النص كما هو كنتيحة بحث ويضع النتائج المطابقة بلون أسود عريض ضمنة (على سبيل المثال) , وإلا فلن تظهر سوى السطور التي تحوي نتائج بحث

*- تنسيق النتائج : وهنا نحدد كيف نريد إظهار الكلمات المطابقة للبحث ضمن النص (إما أسود عريض أو مسطر تحتة خط أو كلاهما معا) حسب الرغبة

خيارات اللغة العربية :

*- أولا تجاهل التشاكيل .. هذا الخيار يقوم بالبحث بالنص بغض النظر عن التشاكيل الموجودة , فهو مناسب جدا للبحث في النصوص المكتوبة بالفصحة والمنسقة بشكل جيد (مثال البحث في القرآن الكريم حيث ستكون كل الكلمات مشكلة وتختلف في حالة النصب والجر مثلا ولا يمكن بالتالي تحديد عدد النتائج بدقة إلا بتجربة جميع الحالات وهذا أمر لا ينجح أحيانا ويضيع الوقت والجهد ) وهنا يبدو هذا الخيار كالدواء ..

2- تجاهل المد : هذا الخيار مهم جدا في اللغة العربية ... أولا ما هو المد المد هو إستخدام المحرف "ـ" من لوحة المفاتيح وهو يستخدم لتطويل الكلمة مثال مــــــــــــــــــــــــد وبالتالي لا تعتبر كلمة مــــــــــد مطابقة لكلمة مد لوجود محارف إضافية فيها .. لذلك هذا الخيار لا غنى عنة في برنامج بحث بدقة لنص عربي ..

3- تجاهل التاء المربوطة المنقوطة : مثال "ــة" وهي تختلف عن "ــه" حيث تعتبر حرف آخر وبالتالي تختلف نتيجة البحث كليا ولن تدخل بعض الكلمات بها ...

خصائص تسهيلية وتكميلية:

*- خاصية تحديد RichEdit لنص الخرج ,, حيث سيتولى الكومبونينت إظهار نيجة البحث وتنسيقها حسب الخيارات المضبوطة ,, وهذا الخيار رائع جدا ..
كذلك تحديد ميمو

*- تحديد حدود الكلمة كالأقواس والفراغات التي ربما تختلف حسب طبيعة النصوص (النصوص الأدبية تختلف عن النصوص البرمجية مثلا) وبالتالي تحديد ماهي حدود الكلمة يسمح للمستخدم بتغيرها حسب طبيعة النص

*- تحديد التشاكيل التي يرغب المستخدم بتجاهلها

-----------------------

الأحداث المتوفرة ...

قمت بتصميم ثلاث أنواع من الأحداث أراها مناسبة وهي
1- BeforFind وهذا الحدث ينفذ قبل بدء عملية البحث (يمكن ضبط خصائص البحث منة مثلا) .
2- AfterFind وهذا ينفذ بعد إنتهاء عملية البحث (معرفة عدد النتائج المطابقة مثلا )
3- ONFInd وهو ينفذ كلما وجد الكومبونينت كلمة مطايقة ويعيد موقع الكلمة بالسطر والرقم (رائج جدا ويمكن إستخدامة في كثير من الحالات مثل التنسيق اليدوي للنتائج)

----------------------
إضافات لابد منها :

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

مثلا : إضافة خيار تجاهل الألف المهموزة مثل (إ أ آ ) وهو مهم جدا وتجب إضافتة
إضافة خيار تجاهل أل التعريف مثال القمر تصبح قمر , لإنة من الصعب توقع حالة الكلمة إذا كانت معرفة أو لا .
بالإضافة إلى العديد من الخصائص الأخرى والتحسينات


هذا البرنامج مسموح نسخة و إستخدامة وتوزيعة بكل حرية .. ولكني سأكون ممتنا جدا لكل من يشير إلي كمصدر أول للشفرة البسيطة هذة ..

وأنا بدوري أشير إلى أن بعض الأكواد العامة ترجع لموقع DelphiforFun ولقد ذكر إسمة بجانب الأكواد

بإنتظار تعديلاتكم وإقتراحاتكم

تنزيل المكون مع الشفرة :
www.angelfire.com/mac/orwa/ArabicFinder.zip

تنزيل مثال علية مع الشفرة :
www.angelfire.com/mac/orwa/Demo.zip



إعداد عروة علي عيسى
-------------------------
المنتديات

التعليقات

orwa

أتمنى أن أجد من يهتم بذلك ويساعد في تطوير هذا العنصر .. وكذلك بقية العناصر .. ومن هذا المنتدى أعلن الترحيب التام بإي فكرة لتطوير برمجيات مفتوحة المصدر وبرمجيات مجانية على الأقل بما يخص اللغة دلفي , . وآسف جدا لإني لم أتمم عملي في عنصر البحث هذا الذي لازال يحتاج بعض الإصلاحات الأساسية ولكن ذلك لسببين .. 1- حتى أتيح الفرصة للمبرمجين من غير المحترفين بالإشتراك بالمشروع , لكي يجدو القدرة على فهم العنصر وتطويرة من مرحلة مبكرة بة بدلا من أن يكون قد وصل لمرحلة شفرة معقدة وصعبة 2- ضيق الوقت لدي (خاصة بعد ما بدأت الإمتحانات) , وعدم رغبتي بنشر مكون جاهز بإسمي بقدر رغبتي بنشر مكون مفتوح المصدر للغة العربية وتشجيع هذا النوع من المشاريع الجماعية عن طريق الإنترنت .. فأنا مهتم للفكرة أكثر من المشروع ولا تواخذونا ,, أتمنى التفاعل
bccline

مرحبا عروة: الفكرة جيدة ... اقترح عليك وضع تصور كامل للمشروع واحتياجاته (اهميته والغاية منه .. الجدوى..) في قسم المشاريع في ARABICOS.cOM اعتقد انك ستستطيع ايجاد من يشاركك العمل بالفكرة وتكوين فريق خاص بك ... تحياتي احمد

إضافة تعليق جديد

لا يسمح باستخدام الأحرف الانكليزية في اسم المستخدم. استخدم اسم مستخدم بالعربية

Restricted HTML

  • وسوم إتش.تي.إم.إل المسموح بها: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • تفصل السطور و الفقرات تلقائيا.
  • Web page addresses and email addresses turn into links automatically.

دعوة للمشاركة

موقع الأيهم صالح يرحب بالمشاركات والتعليقات ويدعو القراء الراغبين بالمشاركة إلى فتح حساب في الموقع أو تسجيل الدخول إلى حسابهم. المزيد من المعلومات متاح في صفحة المجتمع.