symspellpy
Python SymSpell
What it is and what it does
symspellpy is a Python port of the SymSpell spell-checking library, designed to provide fast spell correction and word segmentation with efficient memory use. It implements the SymSpell v6.7.2 algorithm, which uses an optimized edit-distance comparison approach to find spelling corrections and segment unsegmented text. The package includes unit tests ported from the original project to ensure accuracy.
The library is intended for developers and educators building spell-checking features into applications. It has no external runtime dependencies, making it straightforward to integrate. The most recent release added a fast distance comparer to improve performance under default settings. The package is actively maintained and supports modern Python versions (3.10 through 3.14).
Use it for:
- Implement spell correction in search engines or text input fields to suggest corrections for user typos.
- Segment concatenated words (e.g., 'thequickbrown' → 'the quick brown') in text processing pipelines.
- Build autocomplete or query suggestion systems that tolerate misspellings.
- Preprocess user-generated text in NLP workflows to normalize spelling before further analysis.
- Create accessibility features that help users with dyslexia or language barriers find intended words.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
symspellpy is a Python port of SymSpell v6.7.2 that performs fast spell checking and word segmentation with low memory overhead, using an optimized distance comparison algorithm.
Yes. symspellpy is a mature, actively maintained spell-checking library with no external dependencies, permissive MIT licensing, and broad Python version support. It is well-suited for projects needing fast spell correction and word segmentation. The only caveat is the note in the documentation that the port itself has not been optimized for speed—verify performance against your use case before committing to production.
Install
symspellpy on PyPI
pip
pip install symspellpyuv
uv add symspellpypoetry
poetry add symspellpyInstalling symspellpy
Before you install
Low friction: pure Python wheel with no runtime dependencies. Active maintenance—last commit 2026-08-09, released 34 days ago. Supports Python 3.10 through 3.14.
License in practice
MIT License (permissive). You may use, modify, and distribute freely provided you include the license notice and acknowledge both the Python port author (mmb L) and the original C# author (Wolf Garbe).
Quickstart
pip install symspellpy
from symspellpy import SymSpell, Verbosity
sym_spell = SymSpell(max_dictionary_edit_distance=2)
# Load dictionary, then call sym_spell.lookup() to find corrections
Requires Python 3.10 or later.
Verify before relying
- Whether the package has been optimized for speed since the note in the description that states 'the port has not been optimized for speed'.
- Performance characteristics and memory consumption compared to the original C# SymSpell implementation.
- Availability and completeness of the dictionary files needed for typical spell-checking workflows.
Package facts
| License | MIT License Copyright (c) 2025 mmb L (Python port https://github.com/mammothb/symspellpy) Copyright (c) 2021 Wolf Garbe (Original C# implementation https://github.com/wolfgarbe/SymSpell) Permission… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 34 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 518,418/month — #6,222 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: symspellpy-6.10.0-py3-none-any.whl
Keywords: spellchecker, symspell, word segmentation
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
pyspellcheckerDetects misspelled words and suggests…
permissive · top 5,000 on PyPI
mkdocs-spellcheckA spell checker plugin for MkDocs that…
permissive · top 15,000 on PyPI
codespellCodespell finds and fixes common misspellings…
copyleft · top 5,000 on PyPI
typosFinds and corrects spelling mistakes in source…
permissive · top 5,000 on PyPI
pyenchantPyEnchant provides Python bindings to the…
copyleft · top 5,000 on PyPI
pythainlpPyThaiNLP provides Thai-language natural…
permissive · top 5,000 on PyPI
editdistpyComputes Levenshtein and Damerau-Levenshtein…
permissive · top 15,000 on PyPI
pyspellingPySpelling wraps Aspell or Hunspell to automate…
permissive · top 15,000 on PyPI
language_tool_pythonPython wrapper for LanguageTool that checks…
copyleft · top 15,000 on PyPI
Whoosh-ReloadedWhoosh-Reloaded is a pure-Python full-text…
permissive · top 15,000 on PyPI