snowballstemmer
This package provides 36 stemmers for 34 languages generated from Snowball algorithms.
Install
snowballstemmer on PyPI
pip
pip install snowballstemmeruv
uv add snowballstemmerpoetry
poetry add snowballstemmerPackage 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
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.
Similar packages
copyleft · top 1,000 on PyPI
filelockpermissive · top 100 on PyPI
argparsepermissive · top 1,000 on PyPI
RapidFuzzpermissive · top 1,000 on PyPI
inflectpermissive · top 1,000 on PyPI
inflectionpermissive · top 1,000 on PyPI
toolzpermissive · top 1,000 on PyPI
bitarraypermissive · top 1,000 on PyPI
azure-datalake-storepermissive · top 1,000 on PyPI
Cythonpermissive · top 1,000 on PyPI