Snowball 是一種小型字串處理語言,用於建立用於資訊檢索的詞幹演算法,以及使用它實現的詞幹演算法的集合。
Snowball 最初由馬丁波特設計製造。 Martin 於 2014 年退出開發,Snowball 現在作為社區專案進行維護。 Martin 最初選擇 Snowball 這個名字是為了向 SNOBOL 致敬,SNOBOL 是 20 世紀 60 年代優秀的字串處理語言。現在,它也像徵著專案如何透過隨著時間的推移收集貢獻來發展。
Snowball 編譯器將 Snowball 程式翻譯為另一種語言的原始程式碼 - 目前支援 Ada、ISO C、C#、Go、Java、Javascript、Object Pascal、Python 和 Rust。
該儲存庫包含雪球編譯器和詞幹演算法的原始碼。 Snowball 編譯器是用 ISO C 寫的 - 您需要一個支援 C99 的 C 編譯器來建置它(但它產生的 C 程式碼應該適用於任何 ISO C 編譯器)。
有關 Snowball 的更多信息,請參閱 https://snowballstem.org/。
詞幹分析將相同單字的不同形式對應到一個共同的「詞幹」 - 例如,英語詞幹分析器將connection 、 connections 、 connective 、 connected和connecting對應到connect 。因此,搜尋連接也會找到僅具有其他形式的文件。
這種詞幹形式通常是單字本身,但情況並非總是如此,因為這不是文字搜尋系統的要求,而文字搜尋系統是預期的使用領域。我們還旨在將具有相同含義的單字混為一談,而不是所有具有共同語言詞根的單字(因此awe和可怕的詞幹不具有相同的詞幹),並且詞幹過度比詞幹不足更成問題,因此我們傾向於不這樣做解決難以解決的案件。如果您總是想將單字簡化為詞根形式和/或獲得詞根形式本身就是單詞,那麼 Snowball 的詞幹提取演算法可能不是正確的答案。