Create Text Typos
Generate realistic typos in any text. Simulate keyboard mistakes with adjacent-key swaps, double strikes, skipped characters, and more.
About
Typographical errors follow predictable biomechanical patterns. A finger striking k instead of l is not random. It is a consequence of QWERTY key adjacency and motor control variance. This tool models five distinct error classes - adjacent-key substitution, character transposition, deletion, duplication, and space corruption - each weighted by empirical frequency data from keystroke dynamics research. The typo rate r controls the probability that any given word is corrupted, where r = 0.05 means roughly 1 in 20 words will contain an error.
Applications include generating training data for spell-check algorithms, stress-testing OCR pipelines, creating realistic chat dialogue for fiction, and building proofreading exercises. The adjacency map covers all 47 alphanumeric keys on a standard US QWERTY layout. Note: this tool approximates human error. It does not model fatigue curves or per-user motor profiles. For languages with accented characters, results outside ASCII may be less physically accurate.
Formulas
Each word in the input text is independently evaluated for corruption. The probability of a typo occurring in a given word is controlled by the rate parameter:
where r ∈ [0, 1] is the user-defined typo frequency. For each word, a uniform random value u is drawn from [0, 1). If u < r, a typo is applied.
The mutation function selects a typo type based on weighted random selection. For adjacent-key substitution, the QWERTY adjacency map A(k) returns the set of physically neighboring keys for key k. A replacement character is chosen uniformly from A(k). The expected number of typos in a text of n words is:
where n is word count and r is the rate. At r = 0.10, a 200-word paragraph yields approximately 20 typos.
Reference Data
| Typo Type | Technical Name | Example | Cause | Real-World Frequency |
|---|---|---|---|---|
| Adjacent Key | Substitution Error | "hello" → "helko" | Finger drift to neighboring key | ~38% of all typos |
| Transposition | Swap Error | "the" → "teh" | Timing mismatch between fingers | ~20% of all typos |
| Omission | Deletion Error | "because" → "becuse" | Incomplete keystroke / speed | ~16% of all typos |
| Insertion | Duplication Error | "book" → "boook" | Key bounce / sticky key | ~12% of all typos |
| Space Deletion | Run-on Error | "my dog" → "mydog" | Thumb misses spacebar | ~8% of all typos |
| Space Insertion | Split Error | "into" → "in to" | Premature space press | ~4% of all typos |
| Capitalization | Case Error | "John" → "john" | Shift key timing | ~2% of all typos |
| Key ↑ Row | Vertical Drift | "was" → "qas" | Hand position shifted up | Subset of substitution |
| Key ↓ Row | Vertical Drift | "red" → "rwd" | Hand position shifted down | Subset of substitution |
| Repeated Word | Cognitive Error | "the the cat" | Attention lapse | Context-dependent |
| Homophone | Lexical Error | "their" → "there" | Phonetic confusion | Context-dependent |
| Missing Double | Simplification | "success" → "sucess" | Uncertain spelling | Common in L2 writers |