Snowball ist eine kleine String-Verarbeitungssprache zum Erstellen von Stemming-Algorithmen zur Verwendung beim Information Retrieval sowie einer Sammlung von damit implementierten Stemming-Algorithmen.
Snowball wurde ursprünglich von Martin Porter entworfen und gebaut. Martin zog sich 2014 aus der Entwicklung zurück und Snowball wird nun als Gemeinschaftsprojekt weitergeführt. Martin wählte den Namen Snowball ursprünglich als Hommage an SNOBOL, die hervorragende Sprache zur String-Verarbeitung aus den 1960er Jahren. Es dient nun auch als Metapher dafür, wie das Projekt wächst, indem im Laufe der Zeit Beiträge gesammelt werden.
Der Snowball-Compiler übersetzt ein Snowball-Programm in Quellcode in einer anderen Sprache – derzeit werden Ada, ISO C, C#, Go, Java, Javascript, Object Pascal, Python und Rust unterstützt.
Dieses Repository enthält den Quellcode für den Snowball-Compiler und die Stemming-Algorithmen. Der Schneeball-Compiler ist in ISO C geschrieben – Sie benötigen einen C-Compiler, der C99 unterstützt, um ihn zu erstellen (aber der C-Code, den er generiert, sollte mit jedem ISO-C-Compiler funktionieren).
Weitere Informationen zu Snowball finden Sie unter https://snowballstem.org/.
Stemming ordnet verschiedene Formen desselben Wortes einem gemeinsamen „Stamm“ zu – zum Beispiel ordnet das englische Stemmen „connection“ , „connections“ , „connective “, „connected “ und „connecting “ zu „connect“ zu. Eine Suche nach „connected“ würde also auch Dokumente finden, die nur die anderen Formen haben.
Diese Stammform ist oft ein Wort selbst, aber das ist nicht immer der Fall, da dies keine Voraussetzung für Textsuchsysteme ist, die der vorgesehene Einsatzbereich sind. Unser Ziel ist es außerdem, Wörter mit der gleichen Bedeutung zu vermischen, anstatt alle Wörter mit einem gemeinsamen Sprachstamm (daher haben „awe“ und „awful“ nicht den gleichen Stamm), und eine Überstämmung ist problematischer als eine Unterstämmung, daher neigen wir dazu, dies nicht zu tun Stammzellen in Fällen, die schwer zu lösen sind. Wenn Sie Wörter immer auf eine Stammform reduzieren und/oder eine Stammform erhalten möchten, die selbst ein Wort ist, sind die Wortstammalgorithmen von Snowball wahrscheinlich nicht die richtige Antwort.