20

خوارزمية تجذيع عربية لعدّة لغات برمجة (Stemmer)

  • عاصم

السلام عليكم،

أعرّفكم بمشروعي لصنع خوارزمية تجذيع للغة العربية تكون سريعة ومتوفرة لجميع لغات البرمجة وقد وجدت ضالتي مع Snowball framework (

http://snowballstem.org

) . الخوارزمية بدأت فكرتها في إطار صيف غوغل للتطوير عام 2014 مع مشروع Xapian .

الغاية الأساسية لهذا المجذع هي البحث وبالتالي لا يشترط أن يكون الجذع صحيحا لغويا ولكن يشترط أن يجمع أغلب كلمات العائلة.

البذرة الأولى للمجذع مستوحاة من توثيق في موقع أعجوبة:

http://ojuba.org/thawab/ste...

يمكن الإطلاع على المشروع وتجريبه في الرابط التالي:

http://www.arabicstemmer.com

الخوارزمية استعمالها سهل مثلا في البايثون يمكن استعمالها كما يلي (بعد تثبيتها):

 from snowballstemmer import stemmer
 ar_stemmer = stemmer("arabic")
 ar_stemmer.stemWord(u"فسميتموها")

شفرة المصدر:

لمن يريد المساهمة ، هناك أربع مجالات:

  • تحسين الخوارزمية الأساسية

  • إنشاز الخوارزمية إلى لغة برمجة جديدة مع توثيقها مثلا GO

  • ادماج الخوارزمية في مكتبات البحث والمعالجة المشهورة مثل NLTK و whoosh...

  • تحسين الموقع


التعليق السابق

هل هناك حصر للشواذ؟

وفي حالة حصرنا الشواذ، هل نعطي كل الاحتمالات والد-ين أو وال-دين.

أعتقد أنّ كشف هذه الحالات، يؤدي إلى الخروج عن إطار التجذيع الخفيف، ويستلزم تحليلا سياقيا

نعم لقد عملت خوارزمية تجذيع حصرت جميع شواذها. لكن كان علي التضحية بالكثير من السوابق واللواحق التي لم يمكنني حصرها.

مثلا لقد حصرت كل ألف لام الأصلية لذا يمكنني حذف ال التعريف

لكني لم أتمكن من حصر الواوات الأصلية مثل ولد لذا لا أقوم بتجذيف واو العطف.

أردت أن تكون الخوارزمية حرة من أي قائمة معدّة مسبقا ، لكن قد أضطر لإضافة بعض القوائم القصيرة للتخلص من بعض المشاكل ، هل يمكنك مشاركتي بالقوائم التي صنعتها ؟