تختلف خوارزميات التجذير على نطاق واسع على الرغم من أنها تشترك في بعض أنماط التشغيل العامة، حيث تقوم خوارزميات التجذير بإزالة لواحق الكلمات عن طريق تشغيل الرموز المميزة للكلمات المدخلة مقابل قائمة محددة مسبقًا من اللواحق الشائعة، وتزيل خوارزميات التجذير بعد ذلك أي سلاسل أحرف لاحقة يُعثر عليها في الكلمة، إذا لم تتحدَ الكلمة أي قواعد أو شروط مرتبطة بتلك اللاحقة، فتقوم بعض خوارزميات التجذير (مثل 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 من دون تجذير، ويمكن لهذا أن يمنع النماذج من ربط تصريفات الأفعال غير المنتظمة لفعل ما بشكل صحيح.