skillfed

snowballstemmer

This package provides 36 stemmers for 34 languages generated from Snowball algorithms.

snowballstemmer Permissive license BSD-3-Clause Active 871 v3.1.1 released

Install

snowballstemmer on PyPI

pip

pip install snowballstemmer

uv

uv add snowballstemmer

poetry

poetry add snowballstemmer

Package facts

License BSD-3-Clause (permissive)
Python support supports the current Python release (>=3.3)
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance actively maintained — 71 days since the last release
Last repo commit
First released
Popularity one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13)
Known vulnerabilities none known (OSV.dev, checked 2026-08-13)

Evidence: snowballstemmer-3.1.1-py3-none-any.whl

Keywords: stemmer

Development Status :: 5 - Production/StableIntended Audience :: DevelopersNatural Language :: ArabicNatural Language :: ArmenianNatural Language :: BasqueNatural Language :: CatalanNatural Language :: CzechNatural Language :: DanishNatural Language :: DutchNatural Language :: EnglishNatural Language :: EsperantoNatural Language :: EstonianNatural Language :: FinnishNatural Language :: FrenchNatural Language :: GermanNatural Language :: GreekNatural Language :: HindiNatural Language :: HungarianNatural Language :: IndonesianNatural Language :: IrishNatural Language :: ItalianNatural Language :: LithuanianNatural Language :: NepaliNatural Language :: NorwegianNatural Language :: PersianNatural Language :: PolishNatural Language :: PortugueseNatural Language :: RomanianNatural Language :: RussianNatural Language :: SerbianNatural Language :: SpanishNatural Language :: SwedishNatural Language :: TamilNatural Language :: TurkishNatural Language :: YiddishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: DatabaseTopic :: Internet :: WWW/HTTP :: Indexing/SearchTopic :: Text Processing :: IndexingTopic :: Text Processing :: Linguistic

About snowballstemmer

from the package's own PyPI description — quoted content, verbatim

Snowball stemming library collection for Python

Python 3 (>= 3.3) is supported. We no longer support Python 2 as the Python developers stopped supporting it at the start of 2020. Snowball 2.1.0 was the last release to officially support Python 2; Snowball 3.0.1 was the last release which had the code to support Python 2, but we were no longer testing it.

What is Stemming?

Stemming maps different forms of the same word to a common "stem" - for example, the English stemmer maps connection, connections, connective, connected, and connecting to connect. So a search for connected would also find documents which only have the other forms.

This stem form is often a word itself, but this is not always the case as this is not a requirement for text search systems, which are the intended field of use. We also aim to conflate words with the same meaning, rather than all words with a common linguistic root (so awe and awful don't have the same stem), and over-stemming is more problematic than under-stemming so we tend not to stem in cases that are hard to resolve. If you want to always reduce...

Read as markdown · JSON record · Source repository · Homepage

AI interpretation — verify before relying

AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page

Provides 36 stemmers for 34 languages that reduce word variants to common stems for text search and indexing applications.

Low friction: pure Python, zero runtime dependencies, distributed as a wheel. Actively maintained with recent releases and 871 repository stars.

BSD-3-Clause permissive license allows commercial and private use with minimal restrictions beyond attribution and liability disclaimers.

Usage

pip install snowballstemmer

import snowballstemmer
stemmer = snowballstemmer.stemmer('english')
print(stemmer.stemWords('connected connecting'.split()))

Python >= 3.3 required; stemmer objects are not thread-safe if shared across threads without synchronization.

Verdict: Production-ready stemming library with broad language support, zero dependencies, and active maintenance. Pure Python implementation trades performance for portability; consider PyStemmer for speed-critical applications. No known vulnerabilities and permissive licensing make it safe for most use cases.

Needs verification

  • Whether the package's thread-safety caveat (reuse per thread vs. mutex protection) impacts typical deployment patterns in your application.
  • Performance characteristics in your specific use case; the description notes 14x slowdown vs. PyStemmer on CPython but 2x on PyPy.
word stemming librarysnowball stemmer pythontext normalization stemmingmultilingual word stemmingsearch engine stemminglinguistic text processinglanguage stemmer algorithms

Similar packages