التجذير (Stemming) والتقطيع اللغوي (Lemmatization)

المؤلفين

Jacob Murel Ph.D.

Senior Technical Content Creator

Eda Kavlakoglu

Business Development + Partnerships

IBM Research

ما المقصود بالتجذير والتقطيع اللغوي؟

في معالجة اللغة الطبيعية (NLP)، يُعَد التجذير والتقطيع اللغوي من تقنيات المعالجة المسبقة للنصوص التي تقلل الأشكال المختلفة للكلمات في مجموعة البيانات إلى جذر مشترك أو شكل قاموسي واحد، ويُعرَف هذا الشكل باسم "lemma" في علم اللغويات الحاسوبية.1

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

مخطط يوضح عملية تجذيع المشتقات الصرفية لكلمة "رقص"

لماذا نتبع التجذير والتقطيع اللغوي؟

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

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

أحدث اتجاهات الذكاء الاصطناعي، يقدمها لك الخبراء

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

شكرًا لك! لقد اشتركت بنجاح.

سيتم تسليم اشتراكك باللغة الإنجليزية. ستجد رابط إلغاء الاشتراك في كل رسالة إخبارية. يمكنك إدارة اشتراكاتك أو إلغاء اشتراكك هنا. راجع بيان خصوصية IBM لمزيد من المعلومات.

مقارنة بين التجذير والتقطيع اللغوي

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

كيف يعمل التجذير

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

الخوارزمية الأكثر استخدامًا هي خوارزمية Porter stemming، ونسختها المحدثة هي Snowball stemmer. ولفهم التجذير بشكل أفضل، يمكننا تمرير المقطع التالي من مسرحية هاملت لشكسبير عبر أداة Snowball للتجذير: “There is nothing either good or bad but thinking makes it so” (لا شيء طيب أو سيئ، لكن التفكير هو الذي يجعله كذلك).

تحتوي مجموعة أدوات اللغة الطبيعية Python (NLTK) على وظائف مضمنة لأداتَي التجذير Snowball وPorter، وبعد تجذير الاقتباس من هاملت باستخدام NLTK، يمكننا تمرير النص المرمز من خلال أداة التجذير Snowball باستخدام هذا الرمز:

from nltk.stem.snowball import SnowballStemmer
from nltk.tokenize import word_tokenize
stemmer = SnowballStemmer("english", True)
text = "There is nothing either good or bad but thinking makes it so."
words = word_tokenize(text)
stemmed_words = [stemmer.stem(word) for word in words]

print("Original:", text)
print("Tokenized:", words)
print("Stemmed:", stemmed_words)

مخرجات الرمز:

Original: There is nothing either good or bad but thinking makes it so.
Tokenized: ['There', 'is', 'nothing', 'either', 'good', 'or', 'bad', 'but', 'thinking', 'makes', 'it', 'so', '.']
Stemmed: ['there', 'is', 'noth', 'either', 'good', 'or', 'bad', 'but', 'think', 'make', 'it', 'so', '.']

تقوم خوارزميات التجذيع Snowball وPorter على أسلوب أكثر رياضية في إزالة اللواحق مقارنةً بخوازميات التجذيع الأخرى. ويكفي القول بأن الخوارزمية تُخضع كل رموز الكلمات إلى قائمة من القواعد التي تحدد اللواحق المطلوب إزالتها وفقًا لعدد مجموعات الحروف المتحركة والساكنة في الرمز الواحد.5 ومن المعلوم أنه نظرًا إلى أن اللغة الإنجليزية تتبع قواعد لغوية عامة وليست مطلقة، فإن المعيار المنهجي لخوارزمية التجذيع يمكن أن ينتج عنه أخطاء، مثل noth.

تزيل أداة التجذير -ing، حيث إنها نهاية شائعة تدل على زمن الحاضر المتقدم. ومع ذلك، تتسبب إزالة -ing من اقتباس هاملت إلى إنتاج الجذر الخاطئ noth، ويمكن لذلك أن يمنع التحليل اللغوي اللاحق من ربط كلمة nothing بالأسماء المشابهة لها، مثل anything وsomething، وبالإضافة إلى ذلك، تترك أداة التجذير الفعل is المنتظم من دون أي تغيير، وبالمثل، تترك أداة التجذير Snowball تصريفات أخرى للفعل to be مثل was وare من دون تجذير، ويمكن لهذا أن يمنع النماذج من ربط تصريفات الأفعال غير المنتظمة لفعل ما بشكل صحيح.

كيفية عمل التقطيع اللغوي

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

ونظرًا لأن التقطيع اللغوي يهدف إلى إخراج أشكال أساسية من القاموس، فإنه يتطلب تحليلاً مورفولوجيًا أكثر فعالية من التجذير. يُعد تصنيف أجزاء الكلام (POS tagging) خطوة ضرورية في التقطيع اللغوي، ويقوم تصنيف أجزاء الكلام بشكل أساسي بتعيين علامات لكل كلمة لتدل على وظيفتها النحوية في الجملة. يوفّر Python NLTK دالة لخوارزمية “Word Net Lemmatization”، والتي يمكننا من خلالها إجراء التقطيع اللغوي على فقرة هاملت:

from nltk.stem import WordNetLemmatizer
from nltk.corpus import wordnet
from nltk import word_tokenize, pos_tag
 
def get_wordnet_pos(tag):
    if tag.startswith('J'):
        return wordnet.ADJ
    elif tag.startswith('V'):
        return wordnet.VERB
    elif tag.startswith('N'):
        return wordnet.NOUN
    elif tag.startswith('R'):
        return wordnet.ADV
    else:         
        return wordnet.NOUN
       
def lemmatize_passage(text):
    words = word_tokenize(text)
    pos_tags = pos_tag(words)
    lemmatizer = WordNetLemmatizer()
    lemmatized_words = [lemmatizer.lemmatize(word, get_wordnet_pos(tag)) for word, tag in pos_tags]
    lemmatized_sentence = ' '.join(lemmatized_words)
    return lemmatized_sentence
 
text = "There is nothing either good or bad but thinking makes it so."
result = lemmatize_passage(text)
 
print("Original:", text)
print("Tokenized:", word_tokenize(text))
print("Lemmatized:", result)

يُرجع الرمز الآتي:

Original: There is nothing either good or bad but thinking makes it so
Tokenized: ['There', 'is', 'nothing', 'either', 'good', 'or', 'bad', 'but', 'thinking', 'makes', 'it', 'so', '.']
Lemmatized: There be nothing either good or bad but think make it so 

يقلل WordNetLemmatizer، مثل أداة التجذير Snowball، من تصريفات الأفعال إلى الأشكال الأساسية—مثل تغيير thinking إلى think، وmakes إلى make. ولكن على عكس خوارزمية التجذير Snowball، فإن أداة التقطيع اللغوي تحدد nothing كاسم، وتترك نهايته، وهي -ing كما هو مطلوب، لكي تنتهي الكلمة من دون تغيير، بينما يغير الفعل is بشكل إضافي إلى شكله الأساسي be وبهذه الطريقة، تخلط أداة التقطيع اللغوي بشكل أكثر ملاءمة بين أشكال الأفعال غير المنتظمة.

Mixture of Experts | 12 ديسمبر، الحلقة 85

فك تشفير الذكاء الاصطناعي: تقرير إخباري أسبوعي

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

القيود

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

وإلى جانب هذه الصعوبات العامة، فإن لكل من التجذيع والتجريد مساوئ خاصة. كما هو موضح في مثال Hamlet، فإن التجذيع هو عملية استدلالية نسبيًا قائمة على القواعد لإزالة الحروف. ولكن الإفراط في التجذيع أو إنقاصه هما خطآن شائعان ينتجان في أثناء عملية التجذيع. الإفراط في التجذيع يحدث عند إرجاع كلمتين مختلفتين دلاليًا إلى الأصل نفسه (على سبيل المثال، كلمة "news" بمعنى الأخبار إلى كلمة "new" بمعنى جديد)؛ والنقص في التجذيع يحدث عند عدم إرجاع كلمتين مرتبطتين دلاليًا إلى الأصل نفسه (على سبيل المثال، knavish وknave إلى knavish وknave على التوالي).9 بالإضافة إلى ذلك، فإن التجذيع يجرد الكلمات من اللواحق فقط ومن ثَمَّ لا ينطبق على أشكال الأفعال الشاذة أو البادئات كما يفعل التجريد. وبالطبع، يُعد التجذيع عملية بسيطة ومباشرة إلى حد ما من حيث التنفيذ، بينما يمكن أن يكون التجريد أكثر تكلفة من الناحية الحسابية ويستغرق وقتًا طويلاً حسب حجم البيانات التي تُجرى معالجتها.

حلول ذات صلة
IBM watsonx Orchestrate

يمكنك بسهولة تصميم مساعدي ووكلاء الذكاء الاصطناعي القابلين للتوسع وأتمتة المهام المتكررة وتبسيط العمليات المعقدة باستخدام IBM watsonx Orchestrate.

استكشف watsonx Orchestrate
أدوات معالجة اللغة الطبيعية وواجهات برمجة التطبيقات

تسريع قيمة الأعمال باستخدام مجموعة قوية ومرنة من مكتبات وخدمات وتطبيقات الذكاء الاصطناعي.

استكشف حلول معالجة اللغة الطبيعية
الاستشارات والخدمات المتعلقة بالذكاء الاصطناعي

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

استكشف خدمات الذكاء الاصطناعي
اتخِذ الخطوة التالية

يمكنك بسهولة تصميم مساعدي ووكلاء الذكاء الاصطناعي القابلين للتوسع وأتمتة المهام المتكررة وتبسيط العمليات المعقدة باستخدام IBM watsonx Orchestrate.

استكشف watsonx Orchestrate استكشف حلول معالجة اللغة الطبيعية