Projects

This page lists projects which are related to Snowball in some way.


Wrappers

These projects allow Snowball-generated stemmers to be used from other languages.

Aside from PyStemmer, we've not tested them to see if they successfully wrap the Snowball-generated code, are well implemented, etc. These projects aren't endorsed or recommended as such, but we hope they may be of interest.

libstemmer in Go

(added Feb 2013) Miki Tebeka has ported libstemmer_c to the Go programming language.

PyStemmer

Richard Boulton put together some new Python bindings for snowball, inspired by Andreas Jung's initial implementation of PyStemmer from 2001, but with a different API. PyStemmer's current home is as part of the snowballstem github project.

Lingua::Stem::Snowball

Lingua::Stem::Snowball is an XS module which provides a Perl interface to the C versions of the Snowball stemmers. The Snowball stopwords lists are also wrapped by Lingua::StopWords.

PHP stem extensions

This is a PHP interface, developed by Jay Smith.


Reimplementations of the Stemming Algorithms

These projects reimplement the Snowball algorithms, either in hand-written code, or in code manually translated from the generated output for a language.

We've not tested them to see if they correctly implement the stemming algorithms, are well implemented, etc. These projects aren't endorsed or recommended as such, but we hope they may be of interest.

If you want to use one of these stemmers, we suggest you take the sample vocabulary for the corresponding natural language, and check that the stemmer produces the corresponding stemmed output.

Oleander Stemming Library

A reimplementation of the snowball stemming algorithms in C++.

English (porter2) Stemmer in C++11

(added Oct 2012) Sean Massung of the University of Illinois has implemented the porter2 stemmer in C++11.

NLTK

(added June 2010) Python versions of nearly all the stemmers have been made available by Peter Stahl at NLTK’s code repository.

URIM Javascript stemmers

Javascript versions of nearly all the stemmers have appeared in Oleg Mazko’s Urim project. Oleg created the stemmers by hand from the C/java output of the snowball compiler.

js-lingua-stem-ru

This is a different implementation of the Russian stemmer in Javascript, created by Mark A. Prisyazhnyuk.

Iveonik Systems C# stemmers

(added Aug 2011) These were ported from the Java Snowball stemmers.

Contributed Stemmers on the old Snowball Website

Martin and Richard collected and hosted contributed stemmers in a number of programming languages, which you can still find on the old website.


Consumers

These projects use Snowball stemmers:

Xapian

A probabilistic search engine which supports stemming using Snowball.

TextIndexNG

A fulltext indexing solution for Zope with support for stemming using Snowball.

urim

(added Sep 2010) Developed by Oleg Mazko, Urim is a standalone, offline tag-cloud builder engine, fully written in JavaScript and so capable of integration into all Internet browsers. Available as a Firefox add-on. With a JavaScript port of the Snowball stemmers (danish, dutch, english, finnish, french, german, hungarian, italian, norwegian, portuguese, russian, spanish, swedish, romanian, turkish) also available as a separate library ready for developers.

OpenFTS

OpenFTS is an advanced PostgreSQL-based search engine, which supports using Snowball for stemming.

Snowball support in other tools

These projects add Snowball support to other tools, or are tools including support for Snowball.

Pygments Lexer Plugin for Snowball

This project adds support for syntax highlighting Snowball code to Pygments, a syntax highlighter written in Python.


Contact us if you have a project that you would like to be listed here.