خوارزمية تجذيع عربية لعدّة لغات برمجة (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...
تحسين الموقع
الخوارزمية التي عملتها أبسط من ذلك. إن كان هناك أكثر من احتمال لا تجذع واعتبر الكلمة جذعا كما هي.
عندما نكون بين احتمالين to over stem or to under stem أختار الثانية.
يعني ليس مطلوبا مني إعادة الكلمة لجذرها بل هو تحويل كثير لواحد من الكلمة إلى كلمة مفتعلة ليس بالضرورة لها معنى الهدف منها ربط أكثر من كلمة لهما دلالة متقاربة بحيث تزيد من ال relevancy ما أمكن ولا تقللها من خلال ربط كلمات بعيدة الدلالة مثل الدين والأولاد
التعليقات