الرد على تقرير عن برنامجي قطرب ومشكال

الحمد لله على منتّه في إتمام ما عملنا عليه في مجال المعالجة الآلية للغة العربية من أمثال قطرب لتصريف الأفعال وتشكيل الكلمات بمشكال.

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

وموضوع التقرير منشور على صفحة منتدى اللسانيات الحاسوبية على فيسبوك.

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

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

وأحسن دليل على قوة هذه المنهجية  أن ملاحظاتك حول البرنامجين “لم تتعلق بمخرجاتهما تحديداً بل بأسلوب عملهما”، وهذا لا يتأتى لو كان البرنامج غير مفتوح مثل برامجكم.

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

وارى أنّ المسائل المطروحة تندرج في محورين رئيسين هما:

–        منهجية العمل

–        الخيارات التقنية

منهجية العمل

1-   الغرض من البرنامج:

  • قطرب برنامج لتصريف الأفعال العربية فقط، ولا يصرّف ولا يشتقّ الأسماء ولا يتعامل معها. وفكرته أنه يتناول مسألة جزئية من اللغة ويعمل عليها. والغرض منه تبسيط خوارزمية تصريف الأفعال، وبرمجيا موّجه للمطورين أكثر من توجّهه للمستخدم العادي وإن كنّا لم نحرمه من بعض مزاياه.
  • مشكال لتشكيل النصوص العربية لا يزال في طور الزحف ولم يصل بعد درجة الحبو، وإطلاقه هكذا ليس نقيصة في حقّه، فقد سبقتنا شركة غوغل في إطلاق مُشكّلها وهو رضيع، واستفادت من سلوك المستخدم، وتجاربه، لتطوير البرنامج، وقد أوضحنا في الموقع أنّ البرنامج تجريبي، وأنه حاليا مساعد للتشكيل فقط، يمكّن المرء من توفير وقت التشكيل، ولم ندّع أنه مُشكّل آلي.

2-   الموازنة بين حجم البيانات وتعقيد البرنامج:

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

مسألة الخيار الأفضل Optimisation : هذه مسألة تكررت كثيرا وتُجمل الكثير من الملاحظات عن استعمال المختصرات وتوفير الذاكرة، وتقليل الحجم، وغيرها، ورأيي فيها أنها مرحلة لم أصل إليها بعد في هذه البرامج، ذلك أنني تعلمت ممن علّمني البرمجة أن لا أخلط بين مرحلتي البرمجة ومرحلة الاختزال والتصغير، إلا بعد أنّ أتأّكد من العمل الجيد للبرمجة، بعدها يأتي الاختزال والاختصار، كما أنّ عهد الذاكرة القليلة المحدودة انقضى، ويجدر بالذكر أنني أعمل على اختصار الكثير من الأمور بين الفينة والأخرى، بعد أن يستقرّ أمر الجزء المطلوب.


3-   هندسة البرنامجين:

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

أمّا قولك ” أسلوب حلك للمشكلة يعكس مدى فهمك لها، كذلك تناول المشكلة بنظرة تقليدية لن ينتهي بك إلى الاستغلال الأمثل للكمبيوتر أبداً هذا إن لم يوصلك لطريق مسدودة”

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

أما قولك” لو وضعت نفسك مكان غير الناطق باللغة العربية فستكتشف طرقاً أفضل لحل مسألة تحليل اللغات،”

ربّما معك حقّ في ذلك، لكن ما الذي يضطرني إلى أن أدرس لغتي بغيرها، بل ربّما سبب تأخر دراستها ومعالجتها أننا نحاول أنّ نطبّق مناهج غيرنا على لغتنا، وإن كنت أومن أنها ليست بدعا من اللغات على أي حال.

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

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

4-   التفاعل مع المستخدم والواجهات:

    البرنامجان يوفران طرقا أخرى للإدخال، فللمطورين والباحثين نوفّر واجهات سطر الأوامر، كما يمكن استعمال المكتبة البرمجية لتنفيذ ذلك، وكل مكتبة برمجية مرفقة بالتوثيق الخاص بالبرمجة من ذلك:

http://packages.python.org/LibQutrub/

كما أن البرنامجين مرفقين بدليل الاستخدام سواء على سطح المكتب أم الويب وهو أمر مهم جدا.

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

–        الخيارات التقنية

1-   أسلوب البرمجة:

وردت بعض الملاحظات عن اختيار لغة البرمجة وأطر العمل في هذه المرحلة ونقد لما اختير، بسبب مسألة الأداء. والحديث عن لغة بيثون والأطر المستخدمة مثل QT.

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

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

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

أما اقتراحك استبدال مكتبة كيوتي، بمكتبات أبسط منها، فاعلم أنّ مكتبات    wx  دعمها للعربية، ومكتبة pycard مبنية على wxgtk ، وهي سيئة كذلك.

أما كلامك عن اختيار مكتبة كيوت والجسر المستخدم لربطها pyqt ، فإن PyQt ليست إلا ارتباطات لمكتبة Qt في بيثون ولا مناحة من استعمالها (أو بديلها الجديد  PySide إذا أردت البرمجة ببيثون مع Qt وليست مترجما ولا يحزنون، وإمكانية استدعاء مكتبات مكتوبة بلغة أخرى خاصية أصيلة في بيثون بل أن الكثير من قلب بيثون مكتوب بالسي.

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

أما قولك أنّ ” كل الدوال التي قد تحتاج إليها بحسب إطلاعي على الدوال التي اعتمدت عليها في بايثون فلا توجد أية عمليات معقدة معظمها عمليات تبديل واسترجاع فإن كنت لا محالة تستعملها كان يمكنك تصميم الواجهة باستعمال (QtDesigner) وهي واجهة رسومية سهلة، ولن تحتاج للغة بايثون بالنسبة للنسخة المعدة للمستخدم النهائي”

فهنا نقطتان أساسيتان، فالخوارزمية الأساسية في التصريف بدت سهلة جدا ومبسطة حتى لم تبد أكثر من عمليات بسيطة يمكن تطبيقها بهذه اللغة أو تلك، أما الثانية، .فإنّ واجهة كيوت التي فصّلتَ في أمرها لم تستخدم إلا واجهة فوق نواة البرنامج، علما أن البرنامج يمكنه العمل على سطر الأوامر أو على الويب أو كمكتبة برمجية، مستقلة صغيرة الحجم، لا تحتاج إلى كيوت.

أما اقتراحك باستخدام مكتبة TKinter  فهذه المكتبة للعلم لا تدعم اليونيكود ولا الكتابة من اليمين إلى اليسار، كما أنّ مطوري بيثون يتجهون حاليا إلى الاستغناء عنها لصالح مكتبة Pyside.

2-   التشفير:  

مسألة التشفير أمر قابل للتفاضل، فتقليل شيء من الذاكرة باستعمال ترميز وندوز 1256، يفضل عليه أن يكون البرنامج قابلا للحمل متوافقا مع تشفير اليونيكود الذي نفضّله ونوصي به في المصادر المفتوحة.

أما مسألة تحويل الحروف العربية إلى اللاتينية في الذاكرة فأمر أمقته مقتا شديدا، ذلك أنه لا معنى له أصلا فالذاكرة أو الحاسوب لن يعي ذلك أصلا فهو يتعامل بالأرقام، ويستعمله الأجانب فقط من أجل أن يستطيعوا هم بشرًَا أن يقرؤوا النص، يعني أنّ التحويل أصلا من أجل البشر وليس للحاسوب، ونحن في غنى عن ذلك ولله الحمد.

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

وفي الختام

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

Advertisements

25 تعليق to “الرد على تقرير عن برنامجي قطرب ومشكال”

  1. الهادي شريفي Says:

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

    أخوك الهادي شريفي

  2. walid (@01walid) Says:

    لن أتكلم عن الجانب اللغوي وكيفية المعالجة الأصح للغة العربية، لكن شدني كلامه عن كيوت
    ببساطة (ومن وجهة نظري)، مقارنة كيوت بباقي المكتبات “أمر سخيف” (عذرا للأخ صاحب المقال)، فمكتبه عريقة مثلها وميزاتها، قوتها وثباتها مشهود له، زيادة على دعم اللغة العربية، وأرجو مراجعة التطبيقات المكتوبة بها عبر هذا الرابط: http://en.wikipedia.org/wiki/Qt_%28framework%29

    أما قوله “أحد أهم ملفين (QtGui4.dll) وهذا حجمه 7 ميغابايت واحتجت منه فقط للأزرار والقوائم والجداول وهذا تخطيط غير سليم في استغلال أداة البرمجة المطلوبة بالنسبة لبرنامج محدود الوظائف” وضربه لمثال الشاي
    فأقول: ماذا لو أراد شخص آخر في المنزل المطبخ لغرض آخر؟ كذلك كيوت، فهي تأتي افتراضا بملفات كبيرة الحجم نوعا ما لتغطية الأمور وسد الحاجات، كما أنها تعتمد أولا على الـ Shared Library فيمكن لعدد من البرامج مشاركة نفس الملفات، هذا يريد الشاي، والآخر يحتاج أن يطبخ طعاما، كما يمكن إعادة عمل Compile للمكتبة بتعليمات تنقص من حجم تلك الملفات بشكل كبير جدا لتأخذ منها فقط ما تستحق، بل ويمكن عمل Static compiling لضم الكل في ملف تنفيذي واحد صغير، لكن ها مخالف لرخصتها في غير نسختها التجارية لأن في عالم البرامج المفتوحة، مهم أن لا تخفي المكتبات التي استخدمتها. لكن 7 ميغا ليس بالأمر الذي يستحق العناء في الوقت الحالي في برامج في نسخاتها الأولية أو شبه الأولية.

    مسألة التشفير، مثلها مثل صفحات الويب وتم مناقشتها مرارا وتكرارا والأمر دائما يفضي إلى استحباب استعمال الترميز العالمي!!

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

    عذرا على الإطالة، لكن أرى أنه يوما ما، ستتوفر بإذن الله، أدوات عالية الكفاءة، مجانية، مفتوحة، حرّة، للمعالجة الآلية للغرة العربية، حينها، لن نحتاج لإعادة اختراع العجلة، ربما تحسينها شيئا فشيئا والبناء عليها.

    • كلماسوفت Says:

      ربما أعود لتوضيح ما لم تسطع فهمه

    • kalmasoft Says:

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

      ومن الحماقة أيضاً أن تناقش أمر تحسين حجم ملف البرنامج بقولك بقولك (كن عمل Static compiling لضم الكل في ملف تنفيذي واحد صغير،) فمن قال لك أن هذا النوع من المعالجات ينتج عنه حجم صغير لملف البرنامج؟

      حديثك عن أن نظرتي للأمور قريبة! فهذا أمر عجيب، أنت أصلاً لا علاقة لك بأمور معالجة اللغات الطبيعية بعد قولك (لن أتكلم عن الجانب اللغوي وكيفية المعالجة الأصح للغة العربية) فكيف تفتي في أمور التخطيط والتفكير السليم لهذه الأمور.

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

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

    • kalmasoft Says:

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

  3. nassim rehali (@nassim_web) Says:

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

  4. Mahmoud Says:

    بارك الله فيك

    جعله الله في ميزان حسناتك يوم القيامه

    تقبل مروري ومزيد من الابداع والتألق

    http://www.kzblanka.com/vb/

  5. insulators for sale Says:

    مرحبا الجميع! لا أعرف من أين نبدأ ولكن هذا الأمل tahadz.wordpress.com مفيدا بالنسبة لي.

  6. sa Says:

    ░░░░░░░░░░░░▄▄░░░░░░░░░░░░░ ░░░░░░░░░░░█░░█░░░░░░░░░░░░ ░░░░░░░░░░░█░░█░░░░░░░░░░░░ ░░░░░░░░░░█░░░█░░░░░░░░░░░░ ░░░░░░░░░█░░░░█░░░░░░░░░░░░ ██████▄▄█░░░░░██████▄░░░░░░ ▓▓▓▓▓▓█░░░░░░░░░░░░░░█░░░░░ ▓▓▓▓▓▓█░░░░░░░░░░░░░░█░░░░░ ▓▓▓▓▓▓█░░░░░░░░░░░░░░█░░░░░ ▓▓▓▓▓▓█░░░░░░░░░░░░░░█░░░░░ ▓▓▓▓▓▓█░░░░░░░░░░░░░░█░░░░░ ▓▓▓▓▓▓█████░░░░░░░░░██░░░░░ █████▀░░░░▀▀████████░░░░░░░
    http://goo.gl/8g2pB

  7. Quthrub, Aplikasi untuk mentashrif Bahasa Arab secara mudah « ahmadbinhanbal Says:

    […] Dalam sebuah forum di facebook yang bernama Computational Linguistics Forum terdapat beberapa masukan untuk software Quthrub ini seperti tentang encoding, tampilan dan yang lainnya, bisa anda baca di link ini. Menariknya, artikel itu lalu dijawab oleh Thaha Zaruqi di blognya tahadz. […]

  8. kalmasoft Says:

    الأستاذ طه زروقي
    تم نقل التقرير الخاص بي إلى الفيسبوك هنا
    http://www.facebook.com/groups/474121699264660/doc/474123635931133/

    لذا فإن الرابط الذي اوردته لا يعمل.

    كذلك أرجو دعوة الأخ Walid صاحب التعليق الثاني والذي يقول (مقارنة كيوت بباقي المكتبات “أمر سخيف”) إلى الدخول للفيسبوك ووضع تعليقه هناك لأرد عليه بالتفصيل فربما لديه مهارات لم نسمع بها.

  9. kalmasoft Says:

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

    • linuxscout Says:

      أين هي الجداول المليونية والعبارات الجاهزة؟

      • kalmasoft Says:

        عشرات الآلاف من العبارات المشكولة في هذه الملفات
        noun_dictionary.py
        stopwords.py
        collocationdictionaryold

        ————— عشرين ألف عبارة في الملف الأخير——–
        u’نصف المال’:{‘v’:u’نِصْف الْمَالِ’, ‘r’:u’50’,’c’:u”, ‘n’:u”},
        u’تضمين الغاصب’:{‘v’:u’تَضْمِين الْغَاصِبِ’, ‘r’:u’50’,’c’:u’مضاف إليه’, ‘n’:u”},
        u’جميع الغد’:{‘v’:u’جَمِيع الْغَدِ’, ‘r’:u’50’,’c’:u’مضاف إليه’, ‘n’:u”},
        u’حالة الرد’:{‘v’:u’حَالَة الرَّدِّ’, ‘r’:u’30’,’c’:u’مضاف إليه’, ‘n’:u”},
        u’بيع الحيوان’:{‘v’:u’بَيْع الْحَيَوَانِ’, ‘r’:u’50’,’c’:u’مضاف إليه’, ‘n’:u”},
        —————

        فماذا يفعل مشكال غير إعادة عرضها؟
        وما النهج في اختيار هذه العبارات دون غيرها؟

      • linuxscout Says:

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

      • kalmasoft Says:

        (أما منهجية استخلاصها)
        أنا لم أسأل عن كيفية الحصول عليها، أنا سألت عن المعيار الذي بسببه تم اختيارها لاستعمالها في البرنامج.
        أي ما الذي يجعل جملة “بيع الحيوان” وغيرها مهمة أكثر من جملة “صيد الحيوان” أو “كتاب الحيوان”؟

  10. kalmasoft Says:

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

    انتبهت للنص أعلاه وقارنته بقولك أدناه:
    (أما اقتراحك استبدال مكتبة كيوتي، بمكتبات أبسط منها، فاعلم أنّ مكتبات wx دعمها للعربية، ومكتبة pycard مبنية على wxgtk ، وهي سيئة كذلك.)

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

    • linuxscout Says:

      لا تناقض في كلامي إن انتبهت إلى أنني أتحدث عن دعم المكتبتين wx و pycard للعربية وهو سيء.

      • kalmasoft Says:

        يا أخي طه أنت هاوي ومبتديء وغير محترف، فهل تريد أن تجد تعليمات جاهزة أو مكتبة مخصصة لتصريف الأفعال العربية حتى تصف المكتبتين بأن دعمهما “جيد”؟

      • linuxscout Says:

        اعذرني، حين نتحدث عن دعم العربية نتحدث عن دعم الحروف والكتابة وليس المعالجة

      • kalmasoft Says:

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

      • linuxscout Says:

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

  11. munzirtaha Says:

    أخي طه بارك الله لك وسددك ونفع بك وأتفق معك وأعجبتني عبارتك “نبدأ بما هو متاح لنصل لما هو أفضل”

  12. منتديات روقان Says:

    موفق ان شاء الله

  13. Kalmasoft Says:

    أعتقد أن هنا بعض من الأفكار عن كيفية معالجة اللغة العربية
    تصنيف النصوص العربية

    http://www.kalmasoft.com/papers/PA-13-ST01.pdf

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s


%d مدونون معجبون بهذه: