هذا الموضوع يحتوي على 14 رد و 4 مشاركون وتمّ تحديثه آخر مرة بواسطة  AboAlabbas قبل 4 سنوات، 1 شهر.

أضف رد جديد
الحالة: بحاجة لحل
  • منشئ
    موضوع
  • #17024

    السلام عليكم ورحمة الله وبركاته،،

    ووردبريس 3.7 قدمت ميزة جديدة و هي ترتيب نتائج البحث عبر الأفضلية، في خوارزمية البحث الجديدة للووردبريس، تقوم بحذف كلمات تسمى “الكلمات المستبعدة” لكي يتم تحسين طريقة البحث في قاعدة البيانات.

    ما هي الكلمات المستبعدة؟

    الكلمات المستبعدة (stop-words) هي الكلمات التي تستبعد قبل المعالجة اللغوية الآلية للبيانات (نصوص). وهي الكلمات التي تتكرر في النصوص مثل (في، من، إلى،…) ويستحسن تجاهلها وعدم فهرستها من أجل تحسين البحث. ويرجع الفضل لهانس بيتر لوهن (من الرواد في استرجاع المعلومات) في استعمال هذا المصطلح والمفهوم في التطوير

    إقتباس من مشروع “الكلمات العربية المستبعدة“.

    ما المطلوب؟
    حسب البحث الذي قمت حول أي مشاريع سابقة لتجميعات “الكلمات المستبعدة العربية”، بعض القوائم تتعدى 1000 كلمة! نحن نحتاج إلى ما يقارب 100 كلمة كحد اقصى في الترجمة الأساسية للووردبريس.

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

    إلى ذلك الحين، هذا الموضوع مفتوح لأي إقتراح بهذا الخصوص..

    ربما تحتاج خدمات ووردبريس مدفوعة؟ ندعوك لزيارة عرب ووردبريس بريميوم - الفرع التجاري الرسمي لموقع عرب ووردبريس.

الوسوم: 

مشاهدة 10 ردود - 1 حتى 10 (من مجموع 14)
  • الكاتب
    الردود
  • #17025

    أعمل حالياً على برمجة إضافة WP Arabic Stopwords وظيفتها هي إدارة الكلمات المستبعدة العربية و توفير نظام سهل لإستخدمها في إضافات آخرى. حالياً الإضافة مازالت في وضع التطوير، و سأكتب أي تحديثات بخصوصها في هذا الموضوع.

    رابط الإضافة على الـ Github
    https://github.com/nash-ye/wp-arabic-stopwords

    #17041

    Ibrahim Elaidy
    Participant

    هذه هي الكلمات المقترحة :

    انا،الي،من،هل،بكم،كيف،في،عن،علي،على،ما،ماذا،كلما،ثم،كي،و،او،كان،اصبح،امسى،متى،متي،من،بين،سوف،مع،انما،حول،بعد،منذ،الكل،تقريبا،صباحا،مساء،ايضا،اي،حول،لا،نعم،مثل،يكن،قبل،لكن،بـ،نكن،حتى،حتي،كل،لي،هي،هو،هما،هؤلاء،هاتن،هن،اريد،لو،كلنا،كلكم،كلكن،انه،انهم،انهن،لايمكن،لايمكنه،دائما،دوما،فقط،انما،هذا،هذه،هناك،اتمني،اتمنى،وجدت،ولكن،وليست،وليس،ممكن،وممكن،الذي،التي،لذلك،وهذا،الذي،طبعا،بالطبع،الان،اكيد،بدون،يبدو،ما،وانا،فعلا،بالفعل،عليكم،ربما،بما،وهذا،عندما،انه،ال،لديك

    وستجدها في ملف في المرفقات

    المصدر المستخدم هو : arabicstopwords.sourceforge.net هناك كلمات اضفتها بنفسي وقمت بفلتره الكلمات الموجودة بالمشروع لكي يتم التركيز علي اكثر الكلات شيوعا واستبعاد الكلمات المركبة ( لانها ربما تسبب مشاكل )

    فكرة StopWords معروفة بالنسبة لي كوني اعمل في مجال السيو منذ سنوات طوية وكنت اقوم باختيار كلمات Slug يدويا عند انشاء اي مقالة جديدة بعد ان يأست في العثور علي اضافة تقوم بذلك تلقائيا ..

    #17042

    Ibrahim Elaidy
    Participant

    الملف المرفق

    الملفات المرفقة:
    1. stopwords.rar
    #17049

    AboAlabbas
    Participant

    أعمل حالياً على برمجة إضافة WP Arabic Stopwords وظيفتها هي إدارة الكلمات المستبعدة العربية و توفير نظام سهل لإستخدمها في إضافات آخرى. حالياً الإضافة مازالت في وضع التطوير، و سأكتب أي تحديثات بخصوصها في هذا الموضوع.

    رائع جدا هناك ملاحظة واقتراح:

    اولا هذا السطر:

    self::$stopwords += $stopwords;

    بما ان self::$stopwords عبارة عن مصفوفة اليس من المفترض ان يكون هكذا:

    self::$stopwords = array_merge(self::$stopwords , $stopwords);

    ثانيا:
    لاحظت وجود قائمتين من الكلمات المستبعدة احدهما افتراضية وهي المستخدمة حاليا والاخرى بها كلمات اضافية .. افترض انك تنوي ان تجعل المستخدم يختار ما بين القائمتين، واقتراحي كالتالي:
    ان تكون القائمة الثانية تحوي الكلمات المختلفة عن القائمة الافتراضية ثم عند استدعائها يتم دمجها مع الافتراضية فمثلا تكون دالة استدعاء القائمة الاضافية هكذا:

    	public static function load_extra_list() {
    		$default = self::load_default_list(); // Now $stopwords array contains the default list
    		
    		if(!$default)
    		return false;
    		
    		$words = file( ArSWs_PATH . 'data/ar-extra-stopwords.txt', FILE_IGNORE_NEW_LINES );
    		
    		if(!empty($words))
    		self::set_list( $words, true ); // Now the extra words are appended to the  default list
    		
    		return true;
    
    	}
    #17068

    بما ان self::$stopwords عبارة عن مصفوفة اليس من المفترض ان يكون هكذا:

    ملاحظة جيدة، ولكن علامة “+” تعمل في المصفوفات أيضاً، رغم وجود إختلافات بسيطة بينها و بين array_merge، راجع:
    http://php.net/manual/en/function.array-merge.php

    ان تكون القائمة الثانية تحوي الكلمات المختلفة عن القائمة الافتراضية ثم عند استدعائها يتم دمجها مع الافتراضية فمثلا تكون دالة استدعاء القائمة الاضافية هكذا:

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

    #17069

    أخي @dawnbirth بإمكانك إرسال أي مقترحات على الكود عبر الـ Github – Pull Requests مباشرة 🙂

    #17073

    AboAlabbas
    Participant

    ملاحظة جيدة، ولكن علامة “+” تعمل في المصفوفات أيضاً، رغم وجود إختلافات بسيطة بينها و بين array_merge، راجع:

    تمام معلومة جيدة .. هذه الطريقة تتجاهل المفاتيح المتماثلة دائما

    أخي @dawnbirth بإمكانك إرسال أي مقترحات على الكود عبر الـ Github – Pull Requests مباشرة 🙂

    أوك

    #17085

    رائع جداً أخي @pioneer و جهد مشكور عليه،، عدلت في القائمة التي أرسلتها قليلاً و حذفت و أضفت بعض الكلمات.

    أهم الملاحظات:
    1- تم حذف أي همزات للألف.
    2 تم حذف أي علامات تشكيل للحروف.
    3- تم إعادة ترتيب الكلمات بحيث تصبح الحروف، الاسماء الموصولة، الإشارة مجمعة مع بعض.
    4- تم إزالة “الأسماء” و لنكتفي بوضع الحروف و أسماء الإشارة و الأسماء الموصولة في نواة الووردبريس.

    الملف في المرفقات، أرجوا منكم مراجعته.

    الملفات المرفقة:
    1. primary-arabic-stopwords.zip
    #17129

    Ibrahim Elaidy
    Participant

    هناك فكرة لا اعلم ان كانت ستفلح ام لا …
    ما رأيك في اضافة جميع احرف التشكيل (منفصلة) في الكلمات الممنوعة … فمن المعروف ان كل تشكيل = حرف وبالتالي سهل منع وجوده ..
    من المعروف ان التشكيل يضر بالسيو بشكل عام ..

    السؤال الاهم : هل هذا الاجراء يمكنه ان يؤثر علي الاداء او قد يولد اخطاء ؟

    #17132

    AboAlabbas
    Participant

    حذف الهمزات والتشكيل شيء جيد وسيقلل حجم القائمة كثيرا ولكن بالطبع سيجعلنا نضطر لمعالجة مدخل البحث لازالة الهمزات والتشكيل منها ايضا قبل عمل مقارنة بقائمة الكلمات المستبعدة وهذا -ازالة الهمزات بالذات- سيؤثر في نتائج البحث بطريقة سلبية لان عملية المعالجة ستطبق على المدخل كله.

مشاهدة 10 ردود - 1 حتى 10 (من مجموع 14)

يجب تسجيل الدخول للرد على هذا الموضوع.

الحالة: بحاجة لحل