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:

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:

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:

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.