Telegram bot for learning foreign languages: from cramming words to speaking







Not so long ago I wrote about my bot for learning foreign languages. More precisely - to expand the vocabulary (aka cramming words). In the same article, I wrote that studying words without context is unproductive and that it is better to study texts than just trying to drive a certain number of words into your head.



In addition, I always wanted to quickly switch to something more practical - for example, reading texts on Quora or Wikipedia, news, even in a simplified version of the language. Let me remind you that I study Finnish in connection with moving to Finland, so it’s very important for me to start talking to people around me as early as possible, among which Finns often come across :-)



So a new task appeared - to make learning words not an end in itself, but a tool for working with texts that interest me. Ideally, a preparation tool for speaking on topics that I would like to speak about.



Plan



What can be done to get closer to the goal?



Firstly, the study of words is still necessary, but it should be further developed taking into account the presence of context in the words.



Secondly, tasks are needed on the syntax, on the structure of sentences, since understanding sentences, first of all - their structure, is very important, especially for languages ​​in which a free word order (for example, Finnish) is possible.



Thirdly, we need tasks for working with the whole text.



And finally, if I want to learn to speak, then I need speech recognition and text-based speech generation and tasks that use these technologies.



Workflow (aka didactics)



How to build training steps in order to make training as productive as possible?

Text-based speaking instruction has been known for a long time and is used everywhere. The idea is simple - first we read the text, we analyze its vocabulary and grammar, syntax, structure and meaning of the text itself. Next, we move from passive to active learning - for example, we write a statement along the text, and based on the presentation - a retelling. Thus, one can gently move from reading to speaking.



Let me remind you that the main motive for creating the bot for me was the ability to learn a language using any text that I find necessary or interesting. Therefore, no static content can be there - everything is only at the discretion of the student. Thus, we can approach the creation of an automated language learning system that combines the personalization of instruction and the proven methodology of teaching foreign languages.



What happened



It turned out a new version of the old bot. In OppiWordsBot (that's what it is called), you can still do the good old cramming of words, which can now be added with frequency lists and the so-called “smart list” based on word2vec.

But now the / addtext command has appeared, which allows you to insert any text into the input line, after which it will be processed and all sentences, words, as well as phrases will be extracted from it.



(Hereinafter all examples are in English)









From the received lexical units, a list is generated, words and phrases from which the user can add for study with the / addwords command . When adding each word, you can select definition options from Wiktionary, Yandex Dictionary, Google Translate, or add your own version.









Using the / learn command, it is proposed to select a list of words for learning, and if the user selects a list created on the basis of text, then from that moment, the process of studying the vocabulary of the text begins.









First, the bot introduces the user to new vocabulary - the task is to remember the meaning of new words and phrases.









Then you need to remember how the word is pronounced and try to pronounce it yourself. The system will tell you where the user made a mistake while pronouncing the word. Google’s paid services are used here, so these exercises are available only with a paid subscription (3 euros per month).









Next, the user must pronounce the word, relying only on the meaning. Here the word is given in the context of sentences in which it appears in the text. And again, the system will tell you where there was an error in the user's speech. Here, too - an exercise only by subscription.









The last vocabulary task is to write a word by its meaning. And again - a word in context.









After mastering the vocabulary and entering the / learn command, the bot will offer to deal with the grammar. True, so far only with syntax and so far only with the help of one exercise - to arrange the words in the correct order.









After all the sentences are mastered, the bot will offer to work with the text if you type / learn again. To begin with, a brief summary of each paragraph is to be made. If the paragraph does not contain information important for the entire text, you can skip it by entering any character (one).









The resulting summary of the text bot will offer to read or play from memory. The text will be recognized, and the bot will show the difference between your text and the expected. This is also available only by subscription.









Thus, the bot leads the user from simply memorizing vocabulary to the first steps in speaking on the subject of the text chosen by the user and relying on him.



How to use it



The main rule is not to wait for a miracle)



It is not worth hoping that if you load a large and complex text into a bot with an initial level of the language, you can somehow magically learn the whole language and begin to read, understand and speak freely. All the bot can do is help you remember the vocabulary and, to a certain extent, the syntax of the text and bring you to speaking based on this text. This is already a lot, but miracles are, of course, far away.



To use the bot as efficiently as possible, you need to choose not very complex texts. Otherwise, you will be buried under a mountain of tasks for new vocabulary, which in the end can reduce your motivation to nothing.



I try to choose small texts (three to five paragraphs) that are not very complex (better adapted) to the topics of interest to me. Usually this is either news in an adapted presentation, or educational texts. You can try to create your own text using Google Translate and study it, but keep in mind that automatic translation can give imperfect text and there is a risk of learning not quite the language that you would like to learn.



Since the bot’s interface is completely in English, some knowledge of it is required to learn any language using the bot. Localization is planned, but so far there is neither the strength nor the time.



What's next



Since most users of the bot learn English, I plan to add exercises for temporary forms (Present Simple, Past Perfect, etc.). They will also be automatically generated from user texts and processed by the interval repetition algorithm (namely grammatical phenomena, and not their lexical representation).

Now I am also working on optimizing exercises - some of them are quite possibly duplicating each other and could be reduced to speed up the learning process. New exercises on vocabulary (semantics and morphology) and grammar (error correction, for example) will be added.



There are plans for the development of speaking tasks, but it is too early to talk about this.



If you want to discuss the bot, propose something or ask a question, you can do it in the Telegram group OppiWordsBotGroup .



The code is posted on github https://github.com/tezer/OppiWordsBot .



UPDATE for those who have basic English and an English interface is causing problems.

The easiest way to get started is:

/ start - start the bot

/ settings - set your language (for example, Russian - Russian ), then select the dictionaries that will be used for you. It’s better to choose only YandexDictionary and GoogleTranslate , because they will translate the definitions into your language.

Do not forget to indicate which language you are learning with the command / setlanguage (specify the language only in English, that is, write English for English, and, for example, for German - German , but not Deutsch)

After that, you can either add words one by one using the / addwords command , or you can add a list of the most frequency words of the studied language: / wordlist , then the first button ( Top frequency words ), then enter, for example, 0:20 to get the 20 most frequent words.

You can also add study text using / addtext , then / addwords to add words from that text. The main thing is to keep the text simple.



All Articles