Snowball adalah bahasa pemrosesan string kecil untuk membuat algoritma stemming untuk digunakan dalam Pengambilan Informasi, ditambah kumpulan algoritma stemming yang diimplementasikan menggunakan itu.
Snowball awalnya dirancang dan dibangun oleh Martin Porter. Martin pensiun dari pengembangan pada tahun 2014 dan Snowball kini dipertahankan sebagai proyek komunitas. Martin awalnya memilih nama Snowball sebagai penghormatan kepada SNOBOL, bahasa penanganan string yang sangat baik dari tahun 1960an. Kini hal ini juga berfungsi sebagai metafora tentang bagaimana proyek ini berkembang dengan mengumpulkan kontribusi dari waktu ke waktu.
Kompiler Snowball menerjemahkan program Snowball ke dalam kode sumber dalam bahasa lain - saat ini Ada, ISO C, C#, Go, Java, Javascript, Object Pascal, Python dan Rust didukung.
Repositori ini berisi kode sumber untuk kompiler bola salju dan algoritma stemming. Kompiler bola salju ditulis dalam ISO C - Anda memerlukan kompiler C yang mendukung C99 untuk membangunnya (tetapi kode C yang dihasilkannya harus bekerja dengan kompiler ISO C apa pun).
Lihat https://snowballstem.org/ untuk informasi lebih lanjut tentang Snowball.
Stemming memetakan berbagai bentuk kata yang sama ke "batang" yang umum - misalnya, stemmer bahasa Inggris memetakan connection , connection , connective , connected , danconnecting to connect . Jadi pencarian terhubung juga akan menemukan dokumen yang hanya memiliki bentuk lain.
Bentuk dasar ini seringkali berupa kata itu sendiri, namun hal ini tidak selalu terjadi karena ini bukan merupakan persyaratan untuk sistem pencarian teks, yang merupakan bidang penggunaan yang dimaksudkan. Kami juga bertujuan untuk menggabungkan kata-kata dengan arti yang sama, dibandingkan semua kata dengan akar bahasa yang sama (jadi awe dan dir tidak memiliki dasar yang sama), dan over-stemming lebih bermasalah daripada under-stemming sehingga kami cenderung untuk tidak melakukannya. membendung kasus-kasus yang sulit diselesaikan. Jika Anda ingin selalu mereduksi kata menjadi bentuk akar dan/atau mendapatkan bentuk akar yang merupakan sebuah kata, maka algoritma stemming Snowball kemungkinan bukan jawaban yang tepat.