pymorphy2
Morphological analyzer (POS tagger + inflection engine) for Russian language.
What it is and what it does
pymorphy2 is a morphological analysis library for Russian and Ukrainian text. It performs two main tasks: identifying the part of speech and grammatical properties of words (POS tagging), and generating different inflected forms of words (lemmatization and conjugation). The library is built on linguistic data from OpenCorpora and is commonly used in Russian NLP pipelines for text preprocessing, information extraction, and linguistic analysis.
The package depends on dawg-python for efficient dictionary lookups and pymorphy2-dicts-ru for Russian morphological data. It has low installation friction as a pure-Python wheel, but maintenance is dormant—the last release was in 2020, though the repository remains accessible. It supports Python 2.7 through 3.8 according to its classifiers, but has not been updated for newer Python versions.
Use it for:
- Preprocess Russian text for machine learning by lemmatizing words and extracting grammatical features.
- Build Russian search engines or information retrieval systems that need to match word variants.
- Generate inflected forms of Russian words for text generation or templating tasks.
- Analyze Ukrainian text for linguistic research or NLP applications.
- Implement Russian spell-checking or grammar-checking tools that require morphological analysis.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Morphological analyzer and inflection engine for Russian and Ukrainian text, performing part-of-speech tagging and word form generation.
Yes, if you are working with Russian text and need morphological analysis. The library is stable, has no known vulnerabilities, and low install friction. However, be aware that maintenance is dormant—no updates since 2020—so you should verify compatibility with your Python version and consider whether you need active maintenance or community support for production use.
Install
pymorphy2 on PyPI
pip
pip install pymorphy2uv
uv add pymorphy2poetry
poetry add pymorphy2Installing pymorphy2
Before you install
Low install friction with a pure-Python wheel. Maintenance is dormant—last release was 2020-09-26 and last commit 2024-06-26—so bug fixes and feature updates are unlikely, though the repository remains active and not archived.
License in practice
MIT license (permissive) places no restrictions on use, modification, or distribution in commercial or private projects.
Quickstart
pip install pymorphy2
import pymorphy2
morph = pymorphy2.MorphAnalyzer()
word = morph.parse('слова')[0]
print(word.grammemes)
Requires pymorphy2-dicts-ru (Russian dictionary data) to be installed; Ukrainian support requires additional dictionary configuration.
Verify before relying
- Whether Ukrainian support is fully equivalent to Russian or requires additional setup beyond the standard installation.
- Current compatibility with Python versions beyond 3.8, given the latest release predates modern Python versions.
- Performance characteristics on large text corpora or real-time NLP pipelines.
Package facts
| License | MIT license (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — dawg-python, pymorphy2-dicts-ru, docopt |
| Maintenance | dormant — 2,148 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 215,946/month — #9,389 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pymorphy2-0.9.1-py3-none-any.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
pymorphy3Morphological analyzer and POS tagger for…
permissive · top 15,000 on PyPI
pymorphy2-dicts-ruProvides Russian morphological dictionaries for…
permissive · top 15,000 on PyPI
pymorphy3-dicts-ruProvides Russian morphological dictionaries for…
permissive · top 15,000 on PyPI
lemminflectLemmatizes and inflects English words using…
permissive · top 15,000 on PyPI
pymorphy3-dicts-ukProvides Ukrainian morphological dictionaries…
permissive · top 15,000 on PyPI
mecab-koPython wrapper for MeCab-ko, a morphological…
permissive · top 15,000 on PyPI
JanomeJanome is a Japanese morphological analyzer…
permissive · top 15,000 on PyPI
PyStemmerPyStemmer provides word stemming algorithms for…
permissive · top 5,000 on PyPI
polyglotPolyglot is a multilingual natural language…
copyleft · top 15,000 on PyPI
mecab-python3Python wrapper for MeCab, a morphological…
permissive · top 5,000 on PyPI