--- id: pystemmer version: "3.1.0" license: MIT, BSD license_treatment: permissive maintenance: active --- # PyStemmer — Snowball stemming algorithms, for information retrieval License: permissive · Maintenance: active · Downloads: 2.5M/mo ## What it is and what it does PyStemmer wraps the Snowball project's libstemmer library to provide efficient word stemming in Python. Stemming reduces words to a common base form by removing morphological endings—for example, 'cycling', 'cycled', and 'cycles' all stem to a shared root. This is primarily useful for search engines and information retrieval systems where matching variants of the same word improves recall. The package supports stemming algorithms for many languages including Arabic, Armenian, Basque, Catalan, Czech, Danish, Dutch, English, Finnish, French, German, Greek, Hindi, Hungarian, Indonesian, Italian, Lithuanian, Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Tamil, Turkish, and Yiddish. It also provides access to the classic Porter stemming algorithm for English, which may be useful for reproducing historical information retrieval experiments. The package has no runtime dependencies and installs via pre-built wheels on most common platforms. Use it for: - Build a search engine that matches query variants to documents containing morphological forms of the same word - Normalize text for information retrieval systems to improve recall across morphological variants - Preprocess multilingual text corpora for natural language processing or machine learning pipelines - Implement the classic Porter algorithm for English stemming in academic or historical IR experiments ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. PyStemmer provides word stemming algorithms for multiple languages, reducing words to their morphological base form to improve search and information retrieval. Yes. PyStemmer is stable (Production/Stable status), actively maintained, has no runtime dependencies, and solves a well-defined problem in search and information retrieval. Medium install friction is acceptable for a compiled library with broad platform coverage. No known vulnerabilities. Install if you need stemming for search, IR, or NLP preprocessing. ## Install pip install pystemmer uv add pystemmer poetry add pystemmer ## Installing PyStemmer Before you install: Medium install friction due to compiled C extensions, but wheels are available for common platforms (macOS, Linux, Windows across x86_64, ARM, and other architectures). Active maintenance with a recent release 84 days ago. License in practice: Dual-licensed under MIT and BSD, both permissive licenses allowing commercial and private use with minimal restrictions. Quickstart: pip install pystemmer import pystemmer # Use the package for stemming operations Requires a C compiler or pre-built wheel for your platform; wheels cover common architectures but less common platforms may need to build from source. Verify before relying: - Whether the package supports Python 3.13 and 3.14 (listed in classifiers but requires_python is unspecified) - Specific API and usage patterns for accessing stemming algorithms across supported languages - Performance characteristics and typical stemming speed for large document collections ## Package facts - License: MIT, BSD (permissive) - Python support: unspecified - Install friction: medium - Maintenance: active - Downloads: 2.5M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags word stemming algorithms, morphological analysis python, information retrieval stemming, language stemming library, text normalization stemming, porter stemmer python, multilingual stemming, nlp, search-indexing, multilingual [View on SkillFed](https://skillfed.io/packages/pystemmer) · [View on PyPI](https://pypi.org/project/pystemmer/)