Monday, December 19, 2016

10,000 sentences: an Android language learning application

I'm not especially good at language learning, but I can speak 3.5 languages and I love learning them. When learning a language, there are many things to practice: grammar, pronunciation, listening comprehension, vocabulary, culture... And many applications try hard to make you learn all of them, but I think that's impossible. At the end of the day, you need a native speaker to practice. But there are some things where an application can help.

In the last year I thought a lot about language learning applications. In the process I tried to implement some ideas, and I'll present here my latest one. It is called 10,000 sentences and it is an Android application to help people learn new words in their target languages. The idea is based on an (unscientific) theory that you need 10,000 sentences to really learn a language. That may not be true, but if you really go through enough sentences -- it won't hurt and I think you will at least retain some new words and get an idea how sentences are formed. And that's what this application is about.

The application is just launched on Google Play: 10,000 sentences. It is open source (Apache 2.0), the source is available here. The sentences are exported (and prepared) from the Tatoeba languages dataset.

So... First of all, select the language you want to practice. There are 24 languages in both "directions" (so, for example there is "English for French speakers" and "French for English speakers):

Next, download the sentence for a language you learn. Sentences are ordered by complexity, the first sentences will be very short with simple words. For each sentence you will have a small quiz where you need to guess the words:

Note the translate widget in the upper right corner. You need to enable "Tap to translate" in Google Translate for this to work.

Also, the app will use text-to-speech if it's available for your language. Note that not all languages are available on all Android phones, but there are some TTS engines for various languages on Google play store.

If you fail in guessing the words -- the sentence will be shown again later. Otherwise, you can go to the next sentence.

If/when you encounter a new word, you can add it to your local dictionary (you can annotate it):

One annotation can have more than one words (for example the annotation "walk" will have the words "camminare", "camminavo", "camminero" in Italian). If you really succeed in going through all those 10,000 sentences at the end you will have your private dictionary with thousands of words. And if you use any of the memory cards app to practice (only) vocabulary you can export words from your dictionary to those apps.

PS. Of the 3.5 languages, Slovenian is the "0.5" one :)


  1. Hi! I just have some suggestions for your excellent app.

    1) Use Tatoeba sentences from here:

    There is a world of difference when every sentence is written by native speakers; everything sounds a LOT more natural when it is all written by native speakers. I think it would be way better to use sentences from that link.

    2) I suppose that the progression of sentences of the app is sorted by the average frequency of the words in them; but I think the best possible progression would be sorting the sentences by the "frequency index" of the least-frequently-used word of each sentence. Just like this:

    1. Thanks for your suggestion, It probably depends a lot from language to language. I know Italian I tried to go through my Italian collection (in the app) and most sentences are quite OK.

      2). Yes and no. Yes, it's using frequencies but only for the English translation. I used English because English tend not to have too many versions of the same word (no word cases, for example). No, because it also uses sentence length in account.

  2. This comment has been removed by the author.