Behind the Scenes of Spell Checks!
summary
Survey of spell‑checking algorithms compares Levenshtein, Damerau‑Levenshtein, LCS, Hamming, Jaro and Jaro‑Winkler and shows where each fails or shines (Levenshtein misranks transpositions, Jaro‑Winkler favors shared prefixes). Practical implementation notes cover existing Python packages like spy spell checker, text blob and nltk and the use of jellyfish for similarity. The Symmetric Delete approach (referred to as sim spell) uses a frequency dictionary and deletion‑only edits, claims "one million times faster", generates ~25 candidates for 5‑letter words instead of millions, supports lookup and lookup_compound, returns edit distance and frequency count and enables word segmentation.
AI-written summary · about
chapters (10)
- 0:00Introduction
- 0:34What is a Spell Check
- 1:47Spell Check in Python
- 2:16Edit Distance
- 2:52Levenstein
- 4:05least common subsequence
- 4:36other algorithms
- 5:51jellyfish package
- 6:12symmetric delete
- 8:03summary
related talks
24mString Comparison in Real Life
28mFinding Currajong - Fuzzy string searches in Python
29mSyntax Hijacking: Genius or Evil?
25mInventing Curriculum using Python and spaCy
12mMojibake! What the h—ck happened to these strings?
31mFrom Genes to Grids How Python Brings Sequence Alignment to Life
18mBuilding a Gendered Dictionary
46mTyping better and potentially faster with python
