Blog ·
How Typeet adds the missing letters, and how well it works
How Typeet picks the right spelling as you type: word lists, sentence language, word pairs, stems and endings, and its tested accuracy in 19 languages.
Typeet is a desktop app for macOS, Windows and Linux. You keep the English (US) keyboard layout and type words without their special letters. When you finish a word with a space or punctuation, Typeet replaces it with the correct spelling: cok guzel becomes çok güzel, madchen becomes Mädchen, dzien dobry becomes dzień dobry. This page explains how it decides, what it leaves alone, and how its accuracy is measured.
Word frequency lists
For each language, Typeet has a list of words with how often each one is used, and a list for English. When you finish a word, Typeet looks it up in both and picks the most likely spelling. cok becomes çok, Strasse becomes Straße, Danish laere becomes lære, and Turkish Istanbul becomes İstanbul, with the dotted capital İ.
The sentence's language
Some words exist in English and in your language. Typeet follows the sentence. In Turkish, is stays is in an English sentence and becomes iş in bu bir is degil. So you can mix both languages in one message, as typing two languages on one keyboard shows.
Word pairs for context
Where two spellings of a word are both common, a list alone cannot choose. Typeet looks at the words around it:
- Spanish ¿que becomes ¿qué, Italian c'e becomes c'è, Romanian nu cred ca becomes nu cred că.
- The next word can still change the word before it: Spanish El es becomes Él es.
- The mark that ends a word counts as its next word: Spanish el. becomes él., French la, becomes là,.
- For words too rare to have their own word pairs, Typeet can use the last three letters to help choose a spelling.
Stems and endings for unknown words
No list has every word, especially in languages that build long words from endings. When a word is not in the list, Typeet builds it from a known stem and ending. Turkish oynanmistir becomes oynanmıştır. Lithuanian perkuno becomes perkūno, from perkūnas.
Turkish vowel harmony
Turkish suffixes change their vowels to match the word they attach to. Typeet follows that rule: var mi becomes var mı, and Erdogan'in becomes Erdoğan'ın. For the other ways to type Turkish, see typing Turkish letters on an English keyboard.
What it leaves alone
Typeet does not change English words, iPhone, camelCase, my_var, obj.dir, words with digits, or English contractions such as don't. That makes it safe for people who write code. It is off in terminals and password managers by default, and you can turn it off for more apps in Settings › Apps. You can pause it for an hour from the menu.
Typeet adds missing letters. It does not correct typos or grammar.
Undo and swap
Typeet makes mistakes. You can undo a change or switch between spellings:
- Press Backspace right after a fix to undo it. Undo the same word ten times, and Typeet leaves that word alone (Settings › Words).
- Press Option + Backspace on a Mac, or Ctrl + Backspace on Windows and Linux, right after a word to switch it to its other spelling, for example Turkish sik ⇄ sık. Anywhere else, the same keys erase a word as usual.
How it is measured
Each language is tested on held-out sentences from Tatoeba, an open collection of sentences in many languages. Held-out means the sentences were not used to build Typeet. Each sentence is typed with its special letters taken out, and the output is compared with the original. Two numbers come out:
- Missing letters added is the share of words that need special letters that Typeet writes correctly.
- English left alone is the share of English words that Typeet does not change.
A language ships when Typeet gets at least 85% of the words that need letters right and leaves at least 99.98% of English alone. Catalan, Latvian, Icelandic and Albanian do not pass yet.
| Language | Missing letters added | English left alone |
|---|---|---|
| Turkish (Türkçe) | 99.1% | 100% |
| Finnish (Suomi) | 99.0% | 100% |
| Estonian (Eesti) | 98.5% | 100% |
| Slovenian (Slovenščina) | 98.4% | 99.99% |
| Croatian (Hrvatski) | 98.2% | 100% |
| Danish (Dansk) | 98.2% | 100% |
| Czech (Čeština) | 97.8% | 99.99% |
| Swedish (Svenska) | 97.5% | 99.99% |
| Hungarian (Magyar) | 97.4% | 100% |
| Polish (Polski) | 97.3% | 100% |
| Norwegian (Norsk) | 97.1% | 100% |
| French (Français) | 97.0% | 99.99% |
| Italian (Italiano) | 97.0% | 100% |
| Romanian (Română) | 96.9% | 100% |
| Slovak (Slovenčina) | 96.2% | 99.99% |
| Portuguese (Português) | 96.1% | 100% |
| Spanish (Español) | 95.1% | 100% |
| Lithuanian (Lietuvių) | 95.0% | 99.99% |
| German (Deutsch) | 93.7% | 100% |
The book test
A second test types a whole classic book in each language without its special letters and counts the words that come out right.
| Language | Book | Words | Right |
|---|---|---|---|
| Turkish | Hikâyeler, Ömer Seyfettin | 87,147 | 96.9% |
| Finnish | Seitsemän veljestä, Aleksis Kivi | 80,921 | 97.7% |
| Estonian | Kevade, Oskar Luts | 66,603 | 97.9% |
| Slovenian | Na klancu, Ivan Cankar | 59,653 | 98.8% |
| Croatian | Čudnovate zgode šegrta Hlapića, Ivana Brlić-Mažuranić | 24,385 | 98.6% |
| Danish | Eventyr og historier, H.C. Andersen | 368,236 | 99.1% |
| Czech | Babička, Božena Němcová | 73,924 | 93.6% |
| Swedish | Nils Holgerssons underbara resa genom Sverige, Selma Lagerlöf | 197,675 | 96.9% |
| Hungarian | Egri csillagok, Gárdonyi Géza | 139,267 | 94.5% |
| Polish | W pustyni i w puszczy, Henryk Sienkiewicz | 102,072 | 96.9% |
| Norwegian | Eventyr, P. Chr. Asbjørnsen og Jørgen Moe | 39,331 | 96.6% |
| French | Les Misérables, Victor Hugo | 109,598 | 98.4% |
| Italian | Le avventure di Pinocchio, Carlo Collodi | 41,619 | 96.4% |
| Romanian | Amintiri din copilărie, Ion Creangă | 25,207 | 93.2% |
| Slovak | Dva dni v Chujave, Jonáš Záborský | 21,382 | 92.3% |
| Portuguese | Dom Casmurro, Machado de Assis | 66,023 | 97.2% |
| Spanish | Don Quijote de la Mancha, Miguel de Cervantes | 384,288 | 97.4% |
| Lithuanian | Dėdės ir dėdienės, Vaižgantas (Juozas Tumas) | 31,089 | 88.8% |
| German | Die Verwandlung, Franz Kafka | 19,243 | 98.9% |
The book number counts all words, including those that need no special letters, so it is not the same measure as the first table.
Where it runs
Typeet runs on macOS 13 or later (it asks for Accessibility permission on first launch), Windows 10 or later (no permission needed), and Linux as an IBus input method on Wayland and X11, from a .deb or .rpm package. It works in every app: browsers, Slack, Word, mail and chat apps. Everything runs on your computer, and nothing you type is stored or sent anywhere. It is free for 14 days, then a one-time purchase of $19, with no subscription.
Questions
How does Typeet know which letters to add?
It looks up each word in word frequency lists for your language and for English and picks the most likely spelling. Where two spellings are both common, the words around it decide, and words not in the list are built from a known stem and ending.
How accurate is Typeet?
On held-out Tatoeba sentences it gets 93.7% (German) to 99.1% (Turkish) of the words that need special letters right, and leaves 99.99% to 100% of English words alone.
Does Typeet send my text anywhere?
No. Everything runs on your computer. The word lists are inside the app, and nothing you type is stored or sent anywhere.
Which languages does Typeet support?
Nineteen, each mixed with English: Turkish, Finnish, Estonian, Slovenian, Croatian, Danish, Czech, Swedish, Hungarian, Polish, Norwegian, French, Italian, Romanian, Slovak, Portuguese, Spanish, Lithuanian and German.