|
2 weeks ago | |
---|---|---|
.. | ||
README.md | 2 weeks ago | |
assignment.md | 3 weeks ago |
README.md
مقدمة في معالجة اللغة الطبيعية
تتناول هذه الدرس تاريخًا موجزًا ومفاهيم مهمة عن معالجة اللغة الطبيعية، وهو مجال فرعي من اللغويات الحاسوبية.
اختبار ما قبل المحاضرة
المقدمة
تُعرف معالجة اللغة الطبيعية (NLP) بأنها واحدة من أكثر المجالات شهرة حيث تم تطبيق التعلم الآلي واستخدامه في برامج الإنتاج.
✅ هل يمكنك التفكير في برامج تستخدمها يوميًا والتي ربما تحتوي على بعض تقنيات معالجة اللغة الطبيعية؟ ماذا عن برامج معالجة النصوص أو التطبيقات المحمولة التي تستخدمها بانتظام؟
ستتعلم عن:
- فكرة اللغات. كيف تطورت اللغات وما هي المجالات الرئيسية للدراسة.
- التعريف والمفاهيم. ستتعلم أيضًا التعريفات والمفاهيم حول كيفية معالجة الحواسيب للنصوص، بما في ذلك التحليل النحوي، القواعد، وتحديد الأسماء والأفعال. هناك بعض المهام البرمجية في هذا الدرس، ويتم تقديم عدة مفاهيم مهمة ستتعلم كيفية برمجتها لاحقًا في الدروس القادمة.
اللغويات الحاسوبية
اللغويات الحاسوبية هي مجال بحث وتطوير على مدى عقود يدرس كيفية تعامل الحواسيب مع اللغات، بل وحتى فهمها وترجمتها والتواصل بها. معالجة اللغة الطبيعية (NLP) هو مجال ذو صلة يركز على كيفية معالجة الحواسيب للغات "الطبيعية"، أي لغات البشر.
مثال - الإملاء على الهاتف
إذا سبق لك أن أمليت على هاتفك بدلاً من الكتابة أو سألت مساعدًا افتراضيًا سؤالًا، فقد تم تحويل كلامك إلى نص ثم معالجته أو تحليله من اللغة التي تحدثت بها. الكلمات المفتاحية المكتشفة تم معالجتها بعد ذلك إلى صيغة يمكن للهاتف أو المساعد فهمها والعمل بناءً عليها.
الفهم اللغوي الحقيقي صعب! الصورة بواسطة Jen Looper
كيف أصبحت هذه التقنية ممكنة؟
هذا ممكن لأن شخصًا ما كتب برنامجًا حاسوبيًا للقيام بذلك. قبل بضعة عقود، توقع بعض كتاب الخيال العلمي أن الناس سيتحدثون إلى حواسيبهم بشكل رئيسي، وأن الحواسيب ستفهم دائمًا ما يقصدونه بالضبط. للأسف، تبين أن هذه مشكلة أصعب مما تخيلها الكثيرون، وعلى الرغم من أنها أصبحت مشكلة مفهومة بشكل أفضل اليوم، إلا أن هناك تحديات كبيرة في تحقيق معالجة لغة طبيعية "مثالية" عندما يتعلق الأمر بفهم معنى الجملة. هذه مشكلة صعبة بشكل خاص عندما يتعلق الأمر بفهم الفكاهة أو اكتشاف المشاعر مثل السخرية في الجملة.
في هذه المرحلة، قد تتذكر دروس المدرسة حيث كان المعلم يغطي أجزاء القواعد في الجملة. في بعض البلدان، يتم تعليم الطلاب القواعد واللغويات كمادة مخصصة، ولكن في العديد من البلدان، يتم تضمين هذه المواضيع كجزء من تعلم اللغة: إما لغتك الأولى في المدرسة الابتدائية (تعلم القراءة والكتابة) وربما لغة ثانية في المدرسة الثانوية. لا تقلق إذا لم تكن خبيرًا في التفريق بين الأسماء والأفعال أو الظروف والصفات!
إذا كنت تجد صعوبة في التفريق بين الحاضر البسيط والحاضر المستمر، فأنت لست وحدك. هذا أمر صعب بالنسبة للكثير من الناس، حتى المتحدثين الأصليين للغة. الخبر السار هو أن الحواسيب جيدة جدًا في تطبيق القواعد الرسمية، وستتعلم كتابة كود يمكنه تحليل الجملة كما يفعل الإنسان. التحدي الأكبر الذي ستفحصه لاحقًا هو فهم المعنى والمشاعر في الجملة.
المتطلبات الأساسية
المتطلب الأساسي الرئيسي لهذا الدرس هو القدرة على قراءة وفهم لغة هذا الدرس. لا توجد مشاكل رياضية أو معادلات لحلها. بينما كتب المؤلف الأصلي هذا الدرس باللغة الإنجليزية، فإنه مترجم أيضًا إلى لغات أخرى، لذا قد تكون تقرأ ترجمة. هناك أمثلة حيث يتم استخدام عدد من اللغات المختلفة (لمقارنة قواعد اللغات المختلفة). هذه ليست مترجمة، ولكن النص التوضيحي مترجم، لذا يجب أن يكون المعنى واضحًا.
بالنسبة للمهام البرمجية، ستستخدم Python والأمثلة تستخدم Python 3.8.
في هذا القسم، ستحتاج إلى:
-
فهم Python 3. فهم لغة البرمجة Python 3، يستخدم هذا الدرس الإدخال، الحلقات، قراءة الملفات، والمصفوفات.
-
Visual Studio Code + الإضافة. سنستخدم Visual Studio Code وإضافته الخاصة بـ Python. يمكنك أيضًا استخدام بيئة تطوير Python التي تختارها.
-
TextBlob. TextBlob هي مكتبة مبسطة لمعالجة النصوص في Python. اتبع التعليمات على موقع TextBlob لتثبيتها على نظامك (قم بتثبيت corpora أيضًا، كما هو موضح أدناه):
pip install -U textblob python -m textblob.download_corpora
💡 نصيحة: يمكنك تشغيل Python مباشرة في بيئات VS Code. تحقق من المستندات لمزيد من المعلومات.
التحدث إلى الآلات
تاريخ محاولة جعل الحواسيب تفهم اللغة البشرية يعود إلى عقود، وكان أحد أوائل العلماء الذين فكروا في معالجة اللغة الطبيعية هو آلان تورينج.
اختبار تورينج
عندما كان تورينج يبحث في الذكاء الاصطناعي في الخمسينيات، فكر فيما إذا كان يمكن إجراء اختبار محادثة بين إنسان وحاسوب (عبر مراسلة مكتوبة) حيث لا يكون الإنسان في المحادثة متأكدًا مما إذا كان يتحدث مع إنسان آخر أو حاسوب.
إذا، بعد فترة معينة من المحادثة، لم يتمكن الإنسان من تحديد ما إذا كانت الإجابات من حاسوب أم لا، فهل يمكن القول إن الحاسوب يفكر؟
الإلهام - لعبة التقليد
جاءت الفكرة من لعبة حفلات تُسمى لعبة التقليد حيث يكون المحقق في غرفة بمفرده ومكلفًا بتحديد أي من شخصين (في غرفة أخرى) هما ذكر وأنثى على التوالي. يمكن للمحقق إرسال ملاحظات، ويجب أن يحاول التفكير في أسئلة حيث تكشف الإجابات المكتوبة عن جنس الشخص الغامض. بالطبع، يحاول اللاعبون في الغرفة الأخرى خداع المحقق من خلال الإجابة على الأسئلة بطريقة تضلله أو تربكه، مع إعطاء انطباع بالإجابة بصدق.
تطوير إليزا
في الستينيات، طور عالم من MIT يُدعى جوزيف وايزنباوم إليزا، وهي "معالج نفسي" حاسوبي يسأل الإنسان أسئلة ويعطي انطباعًا بفهم الإجابات. ومع ذلك، بينما يمكن لإليزا تحليل الجملة وتحديد بعض التركيبات النحوية والكلمات المفتاحية لإعطاء إجابة معقولة، لا يمكن القول إنها تفهم الجملة. إذا تم تقديم جملة لإليزا بصيغة "أنا حزين"، فقد تعيد ترتيب الكلمات وتستبدلها لتكوين الرد "منذ متى كنت حزينًا".
هذا أعطى انطباعًا بأن إليزا فهمت العبارة وكانت تسأل سؤالًا متابعًا، بينما في الواقع كانت تغير الزمن وتضيف بعض الكلمات. إذا لم تتمكن إليزا من تحديد كلمة مفتاحية لديها رد عليها، فإنها ستعطي ردًا عشوائيًا يمكن أن يكون مناسبًا للعديد من العبارات المختلفة. يمكن خداع إليزا بسهولة، على سبيل المثال إذا كتب المستخدم "أنت دراجة"، فقد ترد بـ "منذ متى كنت دراجة؟"، بدلاً من رد أكثر منطقية.
🎥 انقر على الصورة أعلاه لمشاهدة فيديو عن برنامج إليزا الأصلي
ملاحظة: يمكنك قراءة الوصف الأصلي لـ إليزا المنشور عام 1966 إذا كان لديك حساب ACM. بدلاً من ذلك، اقرأ عن إليزا على ويكيبيديا.
تمرين - برمجة روبوت محادثة بسيط
روبوت المحادثة، مثل إليزا، هو برنامج يستخرج مدخلات المستخدم ويبدو أنه يفهم ويستجيب بذكاء. على عكس إليزا، لن يحتوي روبوتنا على عدة قواعد تعطيه انطباعًا بإجراء محادثة ذكية. بدلاً من ذلك، سيكون لدى روبوتنا قدرة واحدة فقط، وهي استمرار المحادثة بردود عشوائية قد تعمل في أي محادثة بسيطة تقريبًا.
الخطة
خطواتك عند بناء روبوت محادثة:
- طباعة تعليمات تنصح المستخدم بكيفية التفاعل مع الروبوت
- بدء حلقة
- قبول مدخلات المستخدم
- إذا طلب المستخدم الخروج، فقم بالخروج
- معالجة مدخلات المستخدم وتحديد الرد (في هذه الحالة، الرد هو اختيار عشوائي من قائمة الردود العامة الممكنة)
- طباعة الرد
- العودة إلى الخطوة 2
بناء الروبوت
لنقم بإنشاء الروبوت الآن. سنبدأ بتعريف بعض العبارات.
-
قم بإنشاء هذا الروبوت بنفسك في Python باستخدام الردود العشوائية التالية:
random_responses = ["That is quite interesting, please tell me more.", "I see. Do go on.", "Why do you say that?", "Funny weather we've been having, isn't it?", "Let's change the subject.", "Did you catch the game last night?"]
إليك بعض المخرجات النموذجية لتوجيهك (مدخلات المستخدم تظهر على الأسطر التي تبدأ بـ
>
):Hello, I am Marvin, the simple robot. You can end this conversation at any time by typing 'bye' After typing each answer, press 'enter' How are you today? > I am good thanks That is quite interesting, please tell me more. > today I went for a walk Did you catch the game last night? > I did, but my team lost Funny weather we've been having, isn't it? > yes but I hope next week is better Let's change the subject. > ok, lets talk about music Why do you say that? > because I like music! Why do you say that? > bye It was nice talking to you, goodbye!
يمكن العثور على حل محتمل للمهمة هنا
✅ توقف وفكر
- هل تعتقد أن الردود العشوائية قد "تخدع" شخصًا ليعتقد أن الروبوت يفهمه بالفعل؟
- ما الميزات التي يحتاجها الروبوت ليكون أكثر فعالية؟
- إذا كان الروبوت يمكنه بالفعل "فهم" معنى الجملة، هل يحتاج إلى "تذكر" معنى الجمل السابقة في المحادثة أيضًا؟
🚀تحدي
اختر أحد عناصر "توقف وفكر" أعلاه وحاول إما تنفيذه في الكود أو كتابة حل على الورق باستخدام الكود الوهمي.
في الدرس التالي، ستتعلم عن عدد من الأساليب الأخرى لتحليل اللغة الطبيعية والتعلم الآلي.
اختبار ما بعد المحاضرة
المراجعة والدراسة الذاتية
اطلع على المراجع أدناه كفرص قراءة إضافية.
المراجع
- شوبيرت، لينهارت، "اللغويات الحاسوبية"، موسوعة ستانفورد للفلسفة (إصدار ربيع 2020)، تحرير إدوارد ن. زالتا، URL = https://plato.stanford.edu/archives/spr2020/entries/computational-linguistics/.
- جامعة برينستون "حول WordNet." WordNet. جامعة برينستون. 2010.
الواجب
إخلاء المسؤولية:
تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.