pymorphy2
Morphological analyzer (POS tagger + inflection engine) for Russian language.
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires pymorphy2-dicts-ru (Russian dictionary data) to be installed; Ukrainian support requires additional dictionary configuration.
- 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 · maintenance · safety
MIT license (permissive) — MIT license (permissive) places no restrictions on use, modification, or distribution in commercial or private projects.
last release 2020-09-26 (2148 days) · last repo commit 2024-06-26 · 1,175 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 215,946 downloads/mo, #9,389 on PyPI
Alternatives
Verify before relying
pip install pymorphy2
import pymorphy2
morph = pymorphy2.MorphAnalyzer()
word = morph.parse('слова')[0]
print(word.grammemes)- 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.
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 on it.
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
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.
Requires pymorphy2-dicts-ru (Russian dictionary data) to be installed; Ukrainian support requires additional dictionary configuration.
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)
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 packagesdawg-pythonpymorphy2-dicts-rudocopt |
| 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 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersIntended Audience :: Science/ResearchLicense :: OSI Approved :: MIT LicenseNatural Language :: RussianProgramming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Scientific/Engineering :: Information AnalysisTopic :: Software Development :: Libraries :: Python ModulesTopic :: Text Processing :: Linguistic |
Evidence: pymorphy2-0.9.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “pos tagging slavic languages”
- pymorphy2Morphological analyzer and inflection engine for Russian and…
- stanzaStanza is a Python NLP library that runs accurate natural language…
- nagisaNagisa performs Japanese word segmentation and part-of-speech tagging…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also pymorphy3 · pymorphy2-dicts-ru · pymorphy3-dicts-ru · lemminflect · pymorphy3-dicts-uk · mecab-ko · Janome · PyStemmer · polyglot · mecab-python3