Snowball هي لغة معالجة سلاسل صغيرة لإنشاء خوارزميات جذعية لاستخدامها في استرجاع المعلومات، بالإضافة إلى مجموعة من الخوارزميات الجذعية التي تم تنفيذها باستخدامها.
تم تصميم وبناء كرة الثلج في الأصل بواسطة مارتن بورتر. تقاعد مارتن من التطوير في عام 2014 ويتم الحفاظ على Snowball الآن كمشروع مجتمعي. اختار مارتن في الأصل اسم Snowball تكريمًا لـ SNOBOL، وهي لغة ممتازة للتعامل مع السلسلة من الستينيات. وهو الآن بمثابة استعارة لكيفية نمو المشروع من خلال جمع المساهمات مع مرور الوقت.
يقوم برنامج التحويل البرمجي Snowball بترجمة برنامج Snowball إلى كود مصدر بلغة أخرى - حاليًا يتم دعم Ada وISO C وC# وGo وJava وJavascript وObject Pascal وPython وRust.
يحتوي هذا المستودع على الكود المصدري لمترجم كرة الثلج والخوارزميات الجذعية. مترجم كرة الثلج مكتوب بلغة ISO C - ستحتاج إلى مترجم C يدعم C99 لإنشائه (لكن كود C الذي ينشئه يجب أن يعمل مع أي مترجم ISO C).
راجع https://snowballstem.org/ لمزيد من المعلومات حول كرة الثلج.
يقوم الجذع بتعيين أشكال مختلفة من نفس الكلمة إلى "جذع" مشترك - على سبيل المثال، يعين الجذعية الإنجليزية الاتصال ، والاتصال ، والرابط ، والمتصل ، والاتصال للاتصال . لذا فإن البحث عن متصل سيجد أيضًا المستندات التي تحتوي على النماذج الأخرى فقط.
غالبًا ما يكون هذا النموذج الجذري كلمة بحد ذاتها، ولكن هذا ليس هو الحال دائمًا لأن هذا ليس من متطلبات أنظمة البحث عن النص، وهو مجال الاستخدام المقصود. نحن نهدف أيضًا إلى دمج الكلمات التي لها نفس المعنى، بدلاً من دمج كل الكلمات ذات الجذر اللغوي المشترك (لذلك لا يكون للرهبة والفظيعة نفس الجذر)، كما أن الإفراط في الجذر أكثر إشكالية من نقص الجذر، لذلك نميل إلى عدم ذلك وقف في الحالات التي يصعب حلها. إذا كنت تريد دائمًا اختزال الكلمات إلى شكل جذر و/أو الحصول على شكل جذر يمثل في حد ذاته كلمة، فمن المحتمل ألا تكون خوارزميات Snowball الجذعية هي الإجابة الصحيحة.