lemminflect
A python module for English lemmatization and inflection.
What it is and what it does
LemmInflect is a standalone English lemmatization and inflection library that converts words to their base forms or inflected variants based on part-of-speech tags. It combines a dictionary approach (using the NIH SPECIALIST Lexicon) with neural network rules to handle out-of-vocabulary words, and can work independently or as a spaCy extension. The library accepts Universal Dependencies or Penn Treebank tags to specify the target word form and returns a tuple of possible spellings.
The package depends only on numpy for its neural network computations. It is designed for Python 3 and runs on Linux, Windows, and macOS. The description reports lemmatization accuracy of 95.6% overall on a test set of 119,194 inflected words, though the library acknowledges inherent ambiguities in English morphology (e.g., context-dependent forms like 'further' vs. 'farther', or verb 'be' forms that cannot be fully disambiguated by tag alone).
Use it for:
- Normalize inflected words to base forms in text preprocessing pipelines for NLP or information retrieval tasks.
- Generate specific word forms (past tense, plurals, adjective variants) programmatically for text generation or templating.
- Extend spaCy NLP workflows with lemmatization and inflection methods on individual tokens without replacing spaCy's lemmatizer.
- Handle out-of-vocabulary words by applying morphological rules when dictionary lookup fails.
- Build rule-based text analysis systems that need reliable English morphology without heavy ML dependencies.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Lemmatizes and inflects English words using dictionary lookup and neural network rules, with support for Universal Dependencies and Penn Treebank tags, and optional integration with spaCy.
Yes, if you need reliable English lemmatization and inflection with low dependencies. The permissive MIT license and pure-Python wheel make installation straightforward. However, the dormant maintenance status (last update 2022-10-02) means no active development or bug fixes; install only if the current feature set meets your needs and you can tolerate a static codebase. The reported accuracy is solid for standard use cases, but verify it against your specific word forms before committing to production.
Install
lemminflect on PyPI
pip
pip install lemminflectuv
uv add lemminflectpoetry
poetry add lemminflectInstalling lemminflect
Before you install
Low friction—only numpy as a runtime dependency, distributed as a pure Python wheel. Maintenance is dormant (last commit 2023-09-14, 1412 days since release), so expect no active bug fixes or feature updates.
License in practice
MIT license (permissive) allows commercial and private use with minimal restrictions.
Quickstart
pip install lemminflect
from lemminflect import getLemma, getInflection
# Lemmatize
getLemma('watches', upos='VERB')
# ('watch',)
# Inflect
getInflection('watch', tag='VBD')
# ('watched',)
Verify before relying
- Actual accuracy on modern English corpora outside the AGID baseline; whether the 96.1% verb accuracy still holds in production use.
- Whether dormant maintenance affects real-world reliability or if the library is stable enough for long-term production use without updates.
- Support for Python versions beyond 3; the description says 'untested under Python 2' but does not specify a minimum or maximum Python 3 version.
Package facts
| License | not declared (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — numpy |
| Maintenance | dormant — 1,412 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 296,809/month — #7,894 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: lemminflect-0.2.3-py3-none-any.whl
Tags
More Linguistic packages
Detects and normalizes text encoding from…
permissive · top 100 on PyPI
tiktokentiktoken is a fast BPE tokenizer that converts…
permissive · top 1,000 on PyPI
chardetDetects character encoding and language in byte…
permissive · top 1,000 on PyPI
text-unidecodeConverts Unicode text to ASCII by…
copyleft · top 1,000 on PyPI
larkLark is a parsing library that builds abstract…
permissive · top 1,000 on PyPI
tree-sitterPython bindings to the tree-sitter parsing…
permissive · top 1,000 on PyPI
simplemmaSimplemma converts inflected word forms to…
permissive · top 15,000 on PyPI
pluralizerConverts English words between singular and…
permissive · top 15,000 on PyPI
pymorphy3Morphological analyzer and POS tagger for…
permissive · top 15,000 on PyPI
pymorphy2Morphological analyzer and inflection engine…
permissive · top 15,000 on PyPI
udapiUdapi is a Python framework for reading,…
copyleft · top 15,000 on PyPI
pymorphy3-dicts-ukProvides Ukrainian morphological dictionaries…
permissive · top 15,000 on PyPI
inflectionInflection singularizes and pluralizes English…
permissive · top 1,000 on PyPI
ginzaGiNZA is a Japanese NLP library that performs…
permissive · top 15,000 on PyPI
lexical-diversityCalculates lexical diversity metrics (TTR,…
permissive · top 15,000 on PyPI
udtoolsValidates CoNLL-U format files against…
copyleft · top 15,000 on PyPI