علي الجبيلان
علي الجبيلان

@AliAljubailan

28 تغريدة 28 قراءة Mar 28, 2020
سأخصص سلك التغريدات التالية لتكون جوابًا عن سؤال وردني غير مرة: أنا مهتم/ مهتمة بالحوسبة اللغوية ومعالجة اللغات ولكن لا أعرف بالضبط من أين أبدأ، بم توصي؟
حسنًا، سأطرح تصوري وما أراه حول هذا الاتجاه، ربما لا يناسب كل أحد، لكن أستطيع أن أقول إنه نتيجة تجربة غير قصيرة في هذا المجال
بسم الله نبدأ، وقبل كل شيء، يحسن التعرف إلى بعض الأمور حول ميدان معالجة اللغة الطبيعية .. وأولها أنه مجال بيني
Interdisciplinary field
يتطلب إلمامًا "عميقًا" أو على الأقل "كافيًا" بمجالات معرفية حيوية متنوعة مترابطة في الوقت ذاته، شق منها رياضي تطبيقي بحت، والآخر إنساني.
فمن الشق الرياضي، لا مناص للمتجه نحو هذا المجال من دراسة البرمجة الحوسبية والحساب والجبر الخطي وجوانب من الإحصاء وأدوات معالجة اللغة البرمجية وأسسها، مع شيء من المنطق.
ومن الجانب الإنساني لا بد من المعرفة اللغوية بطبيعة الحال، وشيء من علم النفس والعلوم الإدراكية.
وللأسف، فالحقيقة الماثلة -أمامي على الأقل- أن المقبل على هذا الاتجاه إقبالًا جادًا لا مفر له من تعلمه من خلال مظانه الإنگليزية، فمن خلال تجربتي الشخصية المتواضعة وعبر بحثٍ مضنٍ طويل، يمكنني أن أقول إنه لا توجد إصداراتٌ عربية يعول عليها، وهذا يعني أن الإنگليزية أولوية لطالب التخصص
بل للأسف حتى بعض المعارف الرياضية والإحصائية الأساسية في الحوسبة لم أجد لها إصدارًا عربيًا يشفي الغليل، وعليه فإن ركائز المعرفة الحاسوبية -عدا المعرفة اللغوية وما يتصل بها طبعًا- ثلاث، أولها :
-الإنگليزية
-الحاسب والبرمجة ومعالجة البيانات
-الرياضيات والجبر والمنطق الرياضي.
إذن بعد هذا، سيبرز السؤال من جديد: ومن أين أبدأ مع كل واحد من هذه المعارف؟!
حسنًا سأحاول رسم خارطة طريق للمتحفز للانطلاق في هذا الميدان، مفترضًا أن المقبل عليه لا يمتلك الخلفية الكافية في كل بابٍ من أبواب هذه العلوم:
أول الطريق تعلم لغة برمجة، وبطبيعة الحال فإن Python تعد أكثر من بداية ممتازة، لمميزاتها الكثيرة، حيث إنها أسهل تعلمًا من غيرها بل هي مفتاح لتعلم غيرها، وكذلك لانتشارها الكبير ومكتباتها المتعددة، وفي نظري فإن أجود مصدر لتعلمها هو دروسها على موقعها الرسمي:
docs.python.org
ولمن يفضل التعلم بالمشاهدة فهذه سلسلة جيدة جدا لتعليم Python للمبتدئين:
مع التقدم في البرمجة، يبدأ الدارس بهذا الكتاب الذي يمثل الطريق المثلى لبداية حوسبية لغوية حقة، على أن نركز على قراءة الطبعة الثانية 2nd Edition
وليست الثالثة، فالثالثة مختلفة وربما تحسن قراءتها بعد الانتهاء من الثانية، كتاب ممتع بحق ويمثل مع الطبعة الثالثة كفاية لغوية حاسوبية!
والطبعة الثانية يمكن قراءتها من هنا:
github.com
والطبعة الثالثة التي لمَّا تصدر يمكن قراءتها من موقعها الرسمي من هنا ??:
web.stanford.edu
مع تقدم المعرفة الحاسوبية والبرمجية للمنتظم الجاد، سيكون قد تعرف على بعض التطبيقات والمكتبات اللغوية الحاسوبية في Python مثل:
NLTK
SpaCy
Flair
re
وغيرها، وقبل الانتقال لشق أساسي في الميدان وهو الحوسبة اللغوية الإحصائية سيكون لزامًا تعلم أو مراجعة مبادئ رياضية وإحصائية جوهرية:
حقيقة لم أجد أمثل من هذه السلسلة لتقديم مفاهيم الإحصاء والاحتمالات والجبر الخطي تقديمًا ميسرًا للطالب .. لا عليكم من الاسم ?:
وللمتعلم البصري توجد في udemy مثلًا عدة سلاسل ممتازة من أساتذة متمرسين في الحساب والإحصاء (ولا أنصح بعد تجربة بدروس بعض الأساتذة العرب هناك!)
وعمومًا، بعد حيازة الكفاية الرياضية من هذه الكتب وأمثالها، يكون الانتقال لمفاهيم الحوسبة اللغوية الإحصائية عبر هذا السفر العظيم الممتع ❤️
وربما يحسن حينها متابعة هذه الدروس تزامنًا مع التقدم في الكتاب، ولنلاحظ أن مقدمَيها هما صاحبا الكتابين الأساسين في مجال الحوسبة اللغوية
Jurafsky
Manning
من جامعة ستانفورد العريقة
سأكمل لاحقًا بإذن الله ..
بالانتهاء من هذه المصادر الأساسية، غالبا سيكون الطالب قد امتلك المفاتيح الأساسية لهذا الميدان، وتعرف على المفاهيم البحثية الرئيسة فيه من نحو:
Tokenization
Segmentation
Morphological disambiguation
Syntactic parsing
Sentiment analysis
FSA
Regular expressions
Speech recognition
الخ
كذلك سيكون قد تعرف على الاتجاهين الرئيسين في التطبيقات الحاسوبية:
Symbolic Representation
Probabilistic Representation
ومحاولة الدمج بينهما
Hybrid approac of language processing
كذلك سيكون قد تعرف على بعض المنتجات الحاسوبية، كـ:
Prodigy
Clarin
CoreNLP
Webanno
وغيرها ..
وغالبًا بل بالضرورة سيكون الطالب قد تعرف على بيئات عمل احترافية للبرمجة كـ:
Commandline
Anaconda
Jupyter lab
Jupyter notebook
ومواقع تخزين البيانات والأكواد وغيرها، وأشهرها بالطبع:
Github
وأدوات تحرير النصوص الاحترافية كـ:
Atom
Markdown
فماذا بعد؟!
بعد ذلك ولتسلسل تدريجي منطقي ربما يكون من المناسب الولوج إلى عالم التعلم المعقد Deep Learning
وتعلم الآلة Machine Learning
والذكاء الاصطناعي Artificial Intelligence
وتطبيقاتها في مجال معالجة اللغة الطبيعية، وهنا يحسن أن يتعلم الطالب:
TensorFlow
PyTorch
و
Word2Vec
تحديدًا!
وفي الرابط الكتاب الأشهر -وما يزال الأشمل- للتعلم المعقد أو ما يسمى العميق .. من مطبوعات MIT
وللمتعلم البصري توجد بعض الدورات الجيدة ((بالإنگليزية فقط!)) في udemy
من جديد، للأسف لا أنصح بالمصادر العربية، التي اطلعت عليها على الأقل في رحلة بحثي الطويلة!
deeplearningbook.org
وأود التنبيه إلى أمر والتأكيد عليه: وهو أني حين أشير إلى التعلم من المصادر الأجنبية وتجنب العربية وأوصي به فليس ذلك حبًا في الثناء على تلك الأجنبية أو لمجرد الانتقاص من تلك العربية، بل العكس تمامًا، ولأني مؤمن بأن الباحث الجاد في المجال سيصل إلى هذه النتيجة المؤسفة عاجلًا أم آجلا
في رحلة بحث ومتابعة طويلة ما زالت مستمرة حتى اليوم لم أجد في المصادر العربية-مكتوبة أم مرئية-ما يغني ويقارب من أي باب المستجد في الميدان. أكثرها توصيف نظري ومن غير متخصصين يُتناسَخ ويردَّد وحسب، ومنها قديم عاف، وأحسنها ما كان يحاول التعريف بالجديد وتطبيقاته مع نواقص كثيرة وكبيرة!
فهذه النصيحة ليست إلا محاولةً مني لتوفير الوقت والجهد على الطالب والباحث والمتحفز للانطلاق في الميدان، ولكي يبدأ من حيث انتهى منه غيره، فالمتطلب منه كثير وسيملأ وقته ويشغله بلا توقف.
وعلى كل حال لا بد من بعض الأخبار السارة المشوقة لاقتحام مجال الحوسبة ومعالجة اللغة الطبيعية ??
السار والمحفز في هذا الميدان أن الأهم في العمل الحاسوبي في هذا العصر-على خلاف العصور السابقة حتى القريبة جدًا-هو توفير المادة اللغوية أو البيانات اللغوية
Linguistics data
وتحديد منهجية للتعامل معها حاسوبيًا، أما الأكواد والبرمجيات والمكتبات والنماذج الحاسوبية فمتوفرة وكثيرة جدا
لن يحتاج الباحث كتابة برنامج طويل بمئات الأسطر لمعالجة مدونة أو نص ما، فالبرامج والأكواد بأنواعها من القصيرة حتى الضخمة موجودة وجاهزة، بل إن الـ Commandline يحتوي مجموعة من الأوامر المباشرة لمعالجة النص اللغوي بلا حاجة لكتابة أي برنامج، كإحصاء الكلمات الأكثر شيوعًا في النص ونحوها
ما يحتاجه الباحث والطالب أكثر معرفة أصول جمع المادة اللغوية وآليتها وتحويلها لنصوص رقمية لأجل تهيئتها للعمل الحاسوبي، ويستلزم هذا معرفة مجملة بعلم البيانات Data science وعلم البنية البيانية Data structure
وجمع المادة اللغوية بفضل الله من أيسر ما يمكن اليوم، حيث تتوفر وفرة هائلة
كما يشيع في ميادين الحوسبة:
Texts are everywhere
"النصوص في كل مكان"
وأستطيع أن أؤكد أن السبق اليوم-وبخاصة للغة كالعربية-ليس في إنشاء برامج وأكواد للتعامل معها، فهذا فائض، بل في تقديم مادة لغوية جديدة يمكن أن تضيف إلى الموارد العربية الرقمية الشحيحة للأسف
آمل أن أكون قد أفدت?

جاري تحميل الاقتراحات...