لِلهِ دُرُّ صَاحِبِ هَذَا المَوْقِعِ الرَّائِعِ ... كَيْفَ تَعْمَلُ خَوَارِزْمِيَتُهُ بِالضَبْطِ ؟
سبحان الله! اليوم أرسله لي أحد الإخوة وتناقشنا حوله، وإن كان ليس مثالياً، لكن أظنه خير الموجود، وذلك مُبرَّر لأن هذا مجال ليس من السهولة الإحاطة به بشكل كامل.
وفي أثناء النقاش حوله مر عينا موقع آخر وهو مشكال والذي هو تطبيق من بين العديد من التطبيقات الهامة مفتوحة المصدر في اللغة العربية للأخ طه زروقي الذي نال جائزة أفضل التطبيقات في هذا المجال
صراحة موقع جميل ، و أريد أن أعرف الخوارزمية المتبعة بشدة . . . منذ عام تقريبا كنت قد برمجت موقع عكسه .. حيث أنك تقوم بإدخال نص مشكول و هو يقوم بتحويله لنص عادي .
للمعاينة
حينَ شاهدتُ موقع اكنس لأوّلِ مرّة (منذُ زمن) أرسلتُهُ لِمن أكتبُ لهُ المقالات كي يكنُسها من حركاتي إن تعِبَ مِنها، موقِعُكَ مُفيدٌ وأشكُرُكَ عليه.
شكرا لك على كلامك أخي زيد.
فقط للإشارة أنا لست صاحب الموقع أو المالك له ، أنا فقط قمت بتصميمه و برمجته.
جربت أن أكتب كلمات غير مفهمومة (ممممتبتنبتن) فلم يشكلها
هذا يدل على أنه يخزن الكلمات الصحيحة في قاعدة بيانات ضخمة ثم يستبدل الكلمة غير المشكلة بالمشكلة ولا علاقة للنحو بذلك
أكل محمد التفاحة >>>> كل كلمة ستكون Object مكون من اسم الكلمة و رقمها
مثلا" كلمة أكل هي اوبجكت له متغيرين النص أكل و الرقم 1 .. يقوم باستبدال أكل بـ أُكُلٌ
اما الرقم فهو بمثابة id لترتيب الكلمات لاحقا"
حيث آي دي أكل = 1
آي دي محمد = 2
آي دي التفاحة = 3
بدالة If صغيرة نستطيع ترتيب الكلمات من الأصغر id إلى الأعلى
نعم يستعمل قاعدة بيانات للكلمات لكن الخوارزمية المتبعة في جلب الكلمة الصحيحة ليست بتلك السهولة فهو يبحث في الكلمات و الأحرف و البعد بين كل حرف و كلمة ليعطيك كلمة ان كانت في بداية الكلام فقد تكون فعل ماض, مضارع او امر
كمثال لديك كلمة ك "بن" عند تشكيلها واتيان معناها في سياق جملة فسوف يكون تشكيلها مختلف !
لذلك لا بد من وجود خوارزمية ولا يمكن ان تكون دالة شرطية بسيطة :).
مَوْقِعٌ رَائِعٌ فِعْلًا، اِعْتَقَدَ أَنَّ طَرِيقَةَ عَمَلِهِ هِيَ أَنَّهُ يَسْتَخْرِجُ كَلِمَاتٍ مُشَكِّلَةٌ مِنْ مَقَالَاتٍ طَوِيلَةٍ، وَيَخُزُّنَّهَا بِقَاعِدَةٍ البَيَانَاتُ بِتَشْكِيلٍ وَبِدُونِ تَشْكِيلٍ، وَعِنْدَمَا تَدْخُلُ كَلِمَةٌ يَبْحَثُ عَنْ المدخلات فِي قَاعِدَةِ البَيَانَاتِ الغُيُرَ مُشْكِلَةٌ وَيَظْهَرُ الكَلِمَاتِ المُشَكِّلَةَ، هَذَا هُوَ التَّحْلِيلُ الَّذِي أَرَاهُ مَنْطِقِيًّا و يُمْكِن برمَجَتُه .
اِعْتَقَدَ أَنَّ طَرِيقَةَ عَمَلِهِ هِيَ أَنَّهُ يَسْتَخْرِجُ كَلِمَاتٍ مُشَكِّلَةٌ مِنْ مَقَالَاتٍ طَوِيلَةٍ
هذا سهل جدا ،لكن الصعوبة تكمن في تشكيل الكلمات بناءا على محلها من الاعراب ، قد يستخرج كلمة كـ "كَتَبْتُ" من مقال طويل كما ذكرت وتشكيلها هنا في حال كان محلها المتكلم لكن كيف سيعرف تشكيلها في حال وظفتها أنا في ضمير المخاطب لتصبح "كَتَبْتَ".
ومع ذلك ففي تعليقك هنا بعض الأخطاء الواجب تصحيحه ك:
أََعْتَقِدُ ، مُشَكَّلَةً ، يُخَزِّنُهَا ، بقاعدةِ بياناتٍ ، تُدْخِلُ كَلِمَةً ، غَيْرِ المُشَكَّلَةِ (غير كلمة لا تُعَرّفْ وهذا خطأ شائع بل يعرف ما بعدها)...
أرى أنه من الأفضل على الفريق المطور أن يتيح خاصية كالموجودة في قوقل ترجمة ، بحيث تسمح بتصحيح الأخطاء وإرسالها لهم حال حدوثها كي يتم إضافتها لقاعدة البيانات.
الإعراب فيه ضعيف، إليك هاتين:
١. أَكَلَ خَالِدُ التُّفَّاحَةُ
٢. أَكْلُ التُّفَّاحَةِ خَالِدُ
الجملة الثانية إعرابيًا مقبولة -إلا منع خالد من الصرف- ولكن معناها ليس ما أردته، وهذه مشكلة مركبة.
مَوْقِعٌ جَمِيلٌ يُشَكِّلُ الكَلَامُ بِاللُّغَةِ العَرَبِيَّةِ، عِنْدَ كِتَابَتِهَا بِحُرُوفٍ عَرَبِيَّةٍ أَوْ أَجْنَبِيَّةٍ
يَبْدُو أَنَّهُ رَائِعٌ
رَغْمَ أَنَّي لَا أَحَبَّ التَّشْكِيلُ فِي الكَثِيرِ مِنْ الخُطُوطِ
حَقًّا أَنَّهُ لِمَوْقِعٍ رَائِعٍ وَأَيْضًا يَقُومُ بِالتَّرْجَمَةِ أَفْضَلَ مِنْ جُوجْل فِي اللُّغَاتِ مِنْ العَرَبِيَّةِ إِلَى الإِنْجْلِيزِيَّةِ وَالعَكْسِ وَبَعْضِ اللُّغَاتِ الأُخْرَى مِثْلَ الرُّوسِيَّةِ وَالصِّّينِيَّةِ وَغَيْرِهَا. وَمِنْ النَّادِرُ عِنْدَمَا تَجِدُّ مَوْقِعٌ هَكَذَا فِي المُحْتَوَى العَرَبِيِّ.
الدكتور طه زروقي هو مصمم هذه الخوازميات ويعمل في هذا المجال منذ سنين هو ممكن يزودك بالتفاصيل @linuxscout
التعليقات