البوتس تتحدث العربية!

اختيار أفضل لغة لبناء الشات بوت الخاص بك!

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

0 546

أي لغة هي الأفضل لتطبيقات الدردشة الخاصة بك؟!

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

لكن كيف تفرق بينهما؟ حينما ننظر إلى المنصات مثل “Facebook و Slack و Telegram” فإننا نجدهم يدعمون أكثر اللغات شيوعًا، في حين توفر منصات واجهة برمجة التطبيقات مثل “Dialogflow و LUIS و wit.ai” مجموعات “SDK” للأغلبية.

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

يمكنك أيضًا الاطلاع على دورات تدريبية: كيف تصمم محادثة وتجعل الشات بوت طبيعية وأكثر فائدة!

لماذا لغة “بيثون” وليس الآخرين: معالجة اللغة الطبيعية

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

فيما يتعلق بمعالجة اللغة الطبيعية أو البرمجة اللغوية العصبية، فإننا نجد أنه  أول تكامل للبرمجة اللغوية العصبية كُتبت بلغة البايثون. حقيقةً، تم إصدار أول مصدر لأدوات اللغة الطبيعية (NLTK) في عام 2001؛ وهي أشهر مكتبات معالجة اللغات الطبيعية، فهي توفر واجهة سهلة الاستخدام بالاضافة لدعمها لأكثر من 50 مصدر قواعدي مثل : WordNet و Word2Vec Sample و Twitter Samples بالإضافة إلى 9 تصويتات ومرشحات للغة وعشرات الخوارزميات للاختيار من بينها.

وقد أُنشئت “NLTK” -والتي بمثابة مصدر واسع النطاق لمساعدة الشات بوت الخاص بك على الاستفادة من أفضل وظائف البرمجة اللغوية العصبية- قبل خمس سنوات من منافسة شركة “Stanford  NLP” للبرمجة اللغوية العصبية والتي تعتمد على لغة “Java”.

بالطبع، يقدم كل من “Stanford NLP وApache Open NLP” بديلاً مثيرًا للاهتمام لمستخدمي جافا، حيث يمكن أن يدعم كلاهما بشكل مناسب تطوير الشات بوت، إما من خلال الأدوات اللغة الطبيعية أو من خلال استخدامه بشكل واضح عند إجراء المكالمات عبر واجهات برمجة التطبيقات. ولكن “NLTK” هي الأفضل بفضل دعمه الإضافي للغات الأخرى، والإصدارات المتعددة والواجهات لأدوات البرمجة اللغوية العصبية الأخرى، وحتى القدرة على تثبيت بعض حزم “Stanford NLP” من جامعة ستانفورد وكذلك مشروعات Java الأخرى.

في حين يجادل المنتقدون بعدم كفاءة NLTK وأن منحنى التعلم الحاد يجعلها ليس أكثر من أنها اتجاه أكاديمي أكثر من أنها حل خاص للشات بوت، فإن “TextBlob” تحل هذه المشكلة؛ وهي مكتبة خاصة لمعالجة البيانات النصية، وهي تحتوي على واجهة “API” بسيطة للتعامل مع جميع الأوامر الخاصة بمعالجة اللغة كما انها تمتلك منحنى تعلم سلس بالإضافة إلى مجموعة من الوظائف مثل :

وسم جزء من الكلام، تحليل المشاعر، والتصنيف (Naive Bayes, Decision Tree)، ترجمة وكشف اللغات -مدعوم من قبل “Google Translate , Tokenization”– وكذلك تقسيم الكلام إلى مجموعة من الكلمات والجمل والعديد من الوظائف الاخرى.

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

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

يمكنك أيضًا الاطلاع على تريد شات بوتس أكثر آدمية؟ استخدم إذًا الاستماع الذكي!

“التعلم الآلي”

ما هي الطريقة الأفضل من النظر إلى بعض البيانات الصعبة لمعرفة اللغة التي يفضلها الخبراء؟ في دراسة استقصائية أجريت مؤخراً على أكثر من 2000 من علماء البيانات ومطوري التعلم الآلي، استخدم أكثر من 57% منها بايثون!

حسنًا، لماذا إذًا هذا المعدل المرتفع؟

على غرار“NLP”، تفتخر Python بمجموعة كبيرة من المكتبات مفتوحة المصدر لمجموعات الدردشة، بما في ذلك “scikit-learn و TensorFlow”. فقد يعد “Scikit-learn” واحدًا من أكثر البرامج تطورًا، مع كل خوارزميات التعلم الآلي لبايثون، في حين أن “TensorFlow” يأتي في مستوى منخفض، فهذا التنوع هو بالفعل ما يجعل هذه اللغة في المقدمة.

ومن الجدير بالذكر، أن العديد من اللغات الأخرى التي تسمح ببناء الشات بوتس، لا ترقى للمقارنة مع بايثون في هذه؛ فلدى “PHP” على سبيل المثال، القليل لتقدمه فيما يتعلق بالتعلم الآلي، وعلى أي حال، تعتبر لغة البرمجة النصية من جانب الخادم أكثر ملاءمة لتطوير الموقع. “C ++” واحدة من أسرع اللغات هناك وتدعمها مكتبات مثل TensorFlow و Torch ، ولكنها لا تزال تفتقر إلى ما تمتلكه بايثون.

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

ربما يهمك أيضًا 6 نصائح وخدع لزيادة التفاعلات مع الشات بوت الخاص بك!

معالجة اللغة الطبيعية من خلال بايثون

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

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

“شيء رائع، إن بطاقتي لا تعمل.”

بالطبع، إن المشاعر هنا سلبية، ولكن قد يكون من الصعب اكتشاف البوتات باستخدام كلمة “رائع”. كيف نجهز البوت لدينا مع تحليل المشاعر القوي؟

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

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

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

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

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

مصدر https://techcrunch.com/2017/12/20/choosing-the-best-language-to-build-your-ai-chatbot/