الدراسات اللغويةرقمنة ومعلوميات
أخر الأخبار

معالجة اللغات الطبيعية “NLP”

  • ما هي اللغات الطبيعية ؟

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

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

في المقابل اللغات المبنية Constructed Languages أو المخططة Planned أو الاصطناعية Artificial أو المخترعة Invented، توضع مصطلحاتها وقواعدها وغيرها من الخصائص اللغوية قبل أن تكون لغة موجودة ومتداولة بين الناس، ولعل أشهر الأمثلة عليها هي لغات البرمجة مثل Java و Python وغيرها.

مع العلم أنه توجد لغات مبنية موجهة للتواصل البشري لأهداف مختلفة، لعل  أشهرها؛ لغة “لوجبان” التي يعتبرها البعض لغة مخترعة متكاملة [1]، وتهدف لغة لوجبان إلى تحسين التواصل بين البشر حيث أنها خالية من الاشتراك (الغموض أو الإلتباس) اللغوي Ambiguity

الاشتراك اللغوي، أو الإلتباس، أو الغموض (كترجمة حرفية لمصطلح Ambiguity) يطلق على حالة عدم الوضوح في المعنى المراد لغويا، ويقسم على عدة مستويات: اشتراك لفظي أو صرفي (Lexical)، اشتراك نحوي (Syntactic)، واشتراك معنوي (Semantic)، وأهم ما يميز اللغات المبنية عن الطبيعية، أنها غالبا ما تكون خالية من الاشتراك اللغوي، بعكس اللغات الطبيعية التي لا تخلو لغة طبيعية منه نتيجة لتعقيدها وتطورها الطبيعي الذي يحتم وجود الالتباس فيها.


    • الاشتراك اللفظي Lexical Ambiguity :

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

أيضا في اللغة الإنجليزية مثلا كلمة bar لها معانٍ عديدة، فقد تعني الطاولة التي تكون  جزء من المطبخ أو غيره، وقد تعني المكان الذي يقدم المشروبات الكحولية (حانة)، أيضا في سياق آخر قد تعني قطعة شوكولاته choclate bar، كذلك لها معنى آخر وهو اختبار نقابة المحامين bar exam، بالإضافة إلى معنى آخر وهو وحدة لقياس الزمن في الموسيقى (في كتابة النوتات الموسيقية).

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

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


    • الاشتراك النحوي Syntactic Ambiguity :

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

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


  • الاشتراك المعنوي Semantic Ambiguity

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

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


  • معالجة اللغات الطبيعية Natural Language Processing NLP

المقصود بالمصطلح؛ هو معالجة اللغات الطبيعية من قبل الحاسبات، ولأهمية اللغة عند البشر فإن فكرة منح الحاسبات قابلية لمعالجة اللغات البشرية موجودة منذ ظهور فكرة الحاسبات [2]. ويصنف مجال اللغات الطبيعية تحت تخصص علوم الحاسب Computer Science والذكاء الاصطناعي Artificial Intelligence، كما تعتبر التطبيقات المتعلقة بمجال معالجة اللغات الطبيعية من أصعبها في مجال الذكاء الاصطناعي AI-complete،

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


  • منهجيات معالجة اللغات الطبيعية NLP Methods

هناك  منهجين متبعين في معالجة اللغات الطبيعية، الأول هو المنهج القانوني rule-based method والآخر إحصائي statistical، فالمنهج الأول يكون بوضع القوانين مسبقًا غالبا من قبل خبراء لغويين، ومن ثم تصميم البرامج التي تتعلق بأحد مجالات اللغات الطبيعية وفقا لتلك القوانين، ولا يتطلب ذلك تعلم آلي (Machine Learning) من قبل الحاسبات، والمنهج الآخر هو إحصائي يتطلب وجود بيانات معدة مسبقًا بطريقة تجعل الحاسب قادرًا على تعلم القوانين منها، بحيث يتم إعداد هذه البيانات من قبل أشخاص غالبا ليسوا في مستوى الخبراء كما في المنهج السابق،

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

  • مجالات معالجة اللغات الطبيعية الفرعية

يندرج تحت مجال معالجة اللغات الطبيعية عدة فروع وتطبيقات، ويمكن تقسيمها على عدة مستويات، مستوى صرفي lexical (على مستوى الكلمة المفردة)، ومستوى نحوي syntax (على مستوى الجملة وتركيبها نحويا)، ومستوى المعنى semantic وهو على مستوى السياق context والمعنى النهائي في اللغة.


  • المجالات ذات العلاقة بالمستوى الصرفي

تصنيف أقسام الكلام Part-of-Speech Tagging: ويعني استخراج أقسام الكلام من النص (أقسام الكلام مثل فعل ماض، فعل مضارع، فعل أمر، صفة، اسم، حال ..إلخ)، فيتم تصنيف كل كلمة في النص إلى القسم الذي يمثلها، ويعد تصنيف أقسام الكلام من الأمور الرئيسية التي تستخدم تقريبا في معظم تطبيقات ومجالات معالجة اللغات الطبيعية.

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

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

ومع كثر الأمثلة يتعلم الحاسب أنه مثلا لا يمكن أن يلحق الفعل فعلا آخر مباشرة وغيرها من القوانين. ولعل أشهر الخوازميات والتقنيات المستخدم في تصنيف أقسام الكلام هي نموذج ماركوف المخفي Hidden Markov Model HMM، وخوارزمية فايتيربي Viterbi Algorithm.

  • المجالات ذات العلاقة بالمستوى النحوي

التحليل الصرفي Syntactic Parsing: ويعني تحليل الجملة (أو إعرابها) آليا، فبعكس تصنيف أقسام الكلام الذي يتم على مستوى الكلمة الواحدة، في التحليل الصرفي، يتم النظر للجملة ككل ومن ثم تحليلها (أو إعرابها)، وهناك عدة خوارزميات وطرق للتحليل النحوي، منها القديم الذي يتبع المنهج القانوني، ومنها الحديث نسبيا والذي يتبع المنهج الإحصائي،

ولعل أشهر الخوارزميات CKY Parsing، The Earley Parsing, Collins Parser بالإضافة إلى التحليل الصرفي بالإعتماد على تبعية الكلمات لكلمات أخرى في الجملة Dependency Parsing، ويوجد عدة خوارزميات في التحليل الصرفي التبعي مثل Arc-Eager Dependency Parsing، ولا يسع المجال لذكر الفرق بين هذه الخوارزميات والطرق في هذه المقالة.


  • المجالات ذات العلاقة بالمستوى المعنوي

تمثيل المعنى Meaning Representation: ويعني؛ تمثيل المعنى المراد من اللغة بشكل آخر أسهل للتعامل معه في الحاسب، ولعل أشهر طرق تمثيل المعنى في الحاسب هو استخدام المنطق الإسنادي First-order Logic، حيث يتم تمثيل المعنى من الجملة بصيغة رياضية منطقية، فمثلا جملة “أكل صخر الطعام” يمكن تمثيلها كالتالي (بعد إستبعاد الرموز الرياضية بغرض التسهيل): يوجد حدث ح كالتالي: حدث(ح، أكل) و أكل(ح، صخر) و مأكول(ح، الطعام) و زمن (ح، ماضي).

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


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

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

  • تطبيقات معالجة اللغات الطبيعية

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

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


إجابة الأسئلة Question Answering: ويقصد به أن يتم الرد على الأسئلة التي تصاغ بلغة طبيعية مكتملة مثل “أين تقع مدينة الرياض” بإجابة مثل “تقع مدينة الرياض في المملكة العربية السعودية وهي عاصمتها”، ولعل أشهر تطبيق هو Siri المتوفر على نظام iOS.


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

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

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


  • فهم اللغة الطبيعية NLU وتوليد اللغة الطبيعية NLG

ويمكن تقسيم مجال معالجة اللغات الطبيعية NLP إلى قسمين رئيسيين رغم تداخلهما مع بعضهما: فهم اللغة الطبيعية Natural Language Understanding، وتوليد اللغة الطبيعية Natural Language Generation.

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

فمثلا محرك بحث جوجل الشهير يوجد فيه خاصية لفهم النص المدخل، فمثلا عندما تكتب “الحالة الطقس في الرياض” أو “Weather in Riyadh” سيعطيك مباشرة حالة الطقس في مدينة الرياض، وهذا يبين أنه يوجد تقنيات معينة لفهم المعنى المراد من جملة البحث، أيضا يوجد خاصية أخرى، وهو التعرف على الكلام المنطوق Speech بحيث يمكن تحويله لنص text.

في المقابل توليد اللغة الطبيعية NLG يمكن اعتبار أن اللغة فيه هي مخرجات output من الحاسب، بحيث يكون هناك معلومات معينة مخزنة بشكل يمكن للحاسب التعامل معه ومن ثم يتم تحويلها إلى لغة طبيعية، سواء على شكل مكتوب أو منطوق، أحد التطبيقات المشهورة، هو توليد التقارير آليا automatic report generation،

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


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


  • مصادر ذات علاقة بمجال اللغات الطبيعية

توجد عدة دروس على موقع كورسيرا Coursera تتعلق بمجال معالجة اللغات الطبيعية NLP

  1. البروفيسور مايكل كولنز Michael Collins جامعة  كولومبيا.    https://www.coursera.org/course/nlangp ا
  • أدوات:

هناك أدوات كثيرة تستخدم في الأبحاث في مجال معالجة اللغات الطبيعية منها:

  1. NLTK: هي مجموعة كبيرة من الأدوات ذات العلاقة بمجال اللغات الطبيعية لعدة لغات طبيعية، وهي متوفرة على لغة بايثون Python أنصح بشدة باستخدمها http://www.nltk.org/
  2. scikit-learn: قد لا يكون لها علاقة مباشرة بمعالجة اللغات الطبيعية، فهي مكتبة واسعة من الأدوات في مجال التعلم الآلي Machine Learning وهي متوفرة على لغة بايثون فهي تعتبر مكملة لـ   http://NLTK. http://scikit-learn.org/
  3. HTK: وهي مجموعة من الأدوات المتخصصة في معالجة الأصوات وهي متوفرة على لغة   http://C. http://htk.eng.cam.ac.uk/

  • المصادر

[1] مقالة Lojban من ويكيبيديا باللغة الإنجليزية https://en.wikipedia.org/wiki/Lojban آخر زيارة في 1 نوفمبر 2015.

[2] Jurafsky, Dan, and James H. Martin. Speech & language processing. Pearson Education India, 2008.

صخر الخريّف

أدرس حاليًا في مرحلة الدكتوراه PhD في قسم علوم الحاسب بجامعة كولومبيا Columbia University بمدينة نيويورك بالولايات المتحدة الأمريكية، تخصصي الفرعي هو معالجة اللغات الطبيعية NLP، أحد فروع الذكاء الاصطناعي AI، إهتماماتي البحثية في مرحلة الدكتوراه معظمها في مجال إستخلاص المعنى الإجتماعي والتفاعلي من الكلام المكتوب، وأعمل قليلا على معالجة اللهجات العربية، اللهجة النجدية تحديدا. حصلت على ماجستير الفلسفة MPhil في علوم الحاسب من جامعة كولومبيا (كلية الدراسات العليا للفنون والعلوم GSAS) في عام 2018، وماجستير العلوم MS في علوم الحاسب من جامعة كولومبيا (كلية الهندسة والعلوم التطبيقية SEAS) في عام 2015، و بكالوريوس العلوم BS في علوم الحاسب من جامعة الملك سعود (كلية علوم الحاسب والمعلومات CCIS) بالرياض عام 2010.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.

زر الذهاب إلى الأعلى