Snowball Stemmer for Go

June 10, 2025 ยท View on GitHub

Go Reference Test

Usage

package snowball_test

import (
	"fmt"

	"github.com/tebeka/snowball"
)

func Example() {
	stemmer, err := snowball.New("english")
	if err != nil {
		fmt.Println("error", err)
		return
	}
	defer stemmer.Close()

    for _, word := []string{"worked", "working", "works"} {
        fmt.Println(stemmer.Stem(word))
    }

	// Output:
	// work
	// work
	// work
}

This project was mostly a learning exercise for me, I don't consider it production quality.

Installing

go get github.com/tebeka/snowball@latest

You will need a C compiler on your machine.

Development

If you want to update the underlying C library, run update-c.sh. Make sure to run the tests after.