wordninja
Probabilistically split concatenated words using NLP based on English Wikipedia uni-gram frequencies.
Decision gist · record as of 2026-08-14
No. The package is abandoned (latest release 2019-08-10), Python version support is unspecified, the license is undeclared, and compatibility with modern Python is uncertain. For a simple, maintained alternative, consider other word segmentation libraries. If you have a specific legacy dependency on wordninja, verify the license terms from the repository and test thoroughly on your target Python version before deploying.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Python version support is unspecified; compatibility with modern Python versions is uncertain given the package's abandonment since 2019-08-10.
- High install friction: the package has been abandoned since its latest release on 2019-08-10 with no updates since.
- No runtime dependencies, but the stalled maintenance and lack of Python version specification create uncertainty about compatibility with current Python releases.
License · maintenance · safety
(unclear) — License treatment is unclear—no SPDX identifier or raw license text is declared. Before using in production or distribution, verify the actual license terms from the GitHub repository to ensure compliance with your project's requirements.
last release 2019-08-10 (2561 days) · last repo commit 2023-02-19 · 874 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,163,884 downloads/mo, #4,280 on PyPI
Alternatives
Verify before relying
pip install wordninja
import wordninja
wordninja.split('derekanderson')
# Returns: ['derek', 'anderson']- Whether the package works reliably on current Python versions, given no updates since 2019-08-10.
- Whether the bundled English language model remains accurate for modern English usage.
- Actual license terms and permissions (SPDX and raw license text are both absent from metadata).
What it is and what it does
Word Ninja is a lightweight word segmentation library that splits concatenated English text into individual words using probabilistic modeling based on English Wikipedia uni-gram frequencies. It takes strings like 'imateapot' and returns ['im', 'a', 'teapot'], making it useful for humanizing database table names, reversing camelCase concatenations, or processing text where word boundaries have been lost. The library has no runtime dependencies and performs the segmentation quickly, handling both short strings and long passages. It also supports custom language models if you need non-English segmentation or want to override the default English model.
However, the package has been abandoned since 2019-08-10 with no updates since. Python version support is unspecified, and the license treatment is unclear, creating uncertainty about compatibility with modern Python releases and legal usage terms.
Use it for
- Humanize database table or column names by splitting concatenated identifiers into readable words for display.
- Reverse camelCase or PascalCase strings back into space-separated words for logging or user-facing output.
- Process text where word boundaries have been removed or munged together, such as in legacy data formats.
- Build custom language models for word segmentation in non-English languages or specialized domains.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
No.
The package is abandoned (latest release 2019-08-10), Python version support is unspecified, the license is undeclared, and compatibility with modern Python is uncertain. For a simple, maintained alternative, consider other word segmentation libraries. If you have a specific legacy dependency on wordninja, verify the license terms from the repository and test thoroughly on your target Python version before deploying.
Install
wordninja on PyPI
Before you install
High install friction: the package has been abandoned since its latest release on 2019-08-10 with no updates since. No runtime dependencies, but the stalled maintenance and lack of Python version specification create uncertainty about compatibility with current Python releases.
Python version support is unspecified; compatibility with modern Python versions is uncertain given the package's abandonment since 2019-08-10.
License in practice
License treatment is unclear—no SPDX identifier or raw license text is declared. Before using in production or distribution, verify the actual license terms from the GitHub repository to ensure compliance with your project's requirements.
Quickstart
pip install wordninja
import wordninja
wordninja.split('derekanderson')
# Returns: ['derek', 'anderson']
Verify before relying
- Whether the package works reliably on current Python versions, given no updates since 2019-08-10.
- Whether the bundled English language model remains accurate for modern English usage.
- Actual license terms and permissions (SPDX and raw license text are both absent from metadata).
Package facts
| License | Not declared unclear |
| Python support | Not specified |
| Install friction | High. Source build required |
| Runtime dependencies | None |
| Maintenance | Abandoned 2,561 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,163,884 / month, #4,280 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: wordninja-2.0.0.tar.gz
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 › “split concatenated words”
- wordninjaSplits concatenated words into their constituent parts using…
- wordsegmentSplits unsegmented English text into individual words using a…
- pemParses and splits PEM files (Base64-encoded DER keys and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Linguistic packages
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
tiktoken is a fast BPE tokenizer that converts text into token sequences compatible with OpenAI models, supporting multiple encoding schemes including o200k_base and model-specific encodings.
Install it if you work with OpenAI APIs or need to understand token boundaries in GPT-family models.
Detects character encoding and language in byte sequences with high accuracy, supporting 99 encodings and returning confidence scores, language tags, and MIME types.
Install it if you need to detect character encoding or language in byte data; the rewrite makes it substantially faster and more accurate than its predecessors.
Converts Unicode text to ASCII by transliterating non-ASCII characters into their closest ASCII equivalents, with no runtime dependencies.
However, if transliteration quality or ongoing maintenance matters, consider unidecode instead despite its GPL-only license.
Lark is a parsing library that builds abstract syntax trees from context-free grammars, supporting multiple parsing algorithms (Earley, LALR(1), CYK) with automatic line and column tracking.
Python bindings to the tree-sitter parsing library, enabling incremental parsing and syntax tree analysis for source code.
See also jieba3k · jieba · nagisa · conllu · english-words · wordsegment · segtok · wonderwords · stop-words · sentence-stream