One-to-one foreign language training always works better than general education and materials that are “suitable for everyone”. Indeed, the programmer and the florist have interesting different topics, different texts, which means different language material (vocabulary in the first place). And many services that help to learn a foreign language, try to build training in this way. For example, in LinguaLeo, you can add your own texts or choose from the large library those that are most interesting, and learn a language, more precisely, a vocabulary, from these texts. Easy Ten allows you to select themed word lists. But all this is about vocabulary. And what about grammar? Can the study of grammar be made individual?
Really - why? The grammar is the same everywhere - in the texts about flowers and in the texts about algorithms. This is one of the reasons because of which grammar training is now being built quite monotonously: usually one grammar course is offered, consisting of static sections, where the grammatical material is defined, and then it is proposed to do several exercises. All the named material does not have any binding to the topics of interest to the student.
The second reason why individualized grammar training is not offered is that it is technically more difficult than extracting words and counting simple metrics, such as TFIDF . To extract grammatical constructions from the text, more complex lexical-grammatical and morphological analysis of the text is needed.
It would seem - why do what is not necessary, and even difficult?
In fact, learning grammar is not memorizing rules. Grammar does not exist by itself without regard to vocabulary. Any grammatical rule is an abstract description of a large number of structurally similar statements, which are expressed just with the help of words. Thus, it turns out that grammar is directly related to the vocabulary, and therefore to the subject of the material on which the training takes place. Therefore, examples of the use of grammatical constructions, exercises that train and reinforce grammatical material can and should have that lexical content that is interesting and useful for the student of the language.
Individualized grammar training can be based on virtually any user textual material. For each sentence, grammatical phenomena are determined and exercises are created based on them.
Thus it is possible, for example, to refer to each sentence in the text to information about the corresponding grammatical phenomenon, as well as to create several types of exercises:
Choosing the right form of several proposed
For example:
My friend has never ... to Paris.
- been
- was
- being
- is
Bug fix
For example:
My friend have never been to Paris.
Use the correct form of the word (put the word in the desired form or enter the correct form of the word)
For example:
My friend has never (be) to Paris.
or
My friend has never ... to Paris.
Grammar designation
For example:
My friend has never been to Paris.
Present perfect
It is these two tasks that our API solves: in each sentence it finds grammatical constructions and creates grammar exercises from the sentences found.
There is an open API for everyone who would like to try to make a useful service of individualized teaching of English grammar or to supplement their already working service with this functionality.
To get access to the API, you need to register on the service https://market.mashape.com . After registration, follow the link https://market.mashape.com/smallstep/englishgrammar and subscribe to the free API.
The input is text in the form of JSON, sent via a POST request, for example:
{ "text": "John lives in London. He loves cats." }
In the documentation on the API page, you will find code examples for many programming languages: Java, Node, PHP, Python, Objective-C, Ruby, .NET.
In response, you get JSON with this content:
{ "grammarPatterns": [ { "sentenceText": "John lives in London.", "grammarPatterns": [ { "name": "present_simple_construction", "words": [ { "word": "lives", "startOffset": 5, "endOffset": 10 } ], "dependencies": [ "present_simple_usage" ], "difficulty": 1, "fullName": " (Present Simple Tense)" } ] }, { "sentenceText": "He loves cats.", "grammarPatterns": [ { "name": "present_simple_construction", "words": [ { "word": "loves", "startOffset": 3, "endOffset": 8 } ], "dependencies": [ "present_simple_usage" ], "difficulty": 1, "fullName": " (Present Simple Tense)" } ] } ], "multipleChoice": [ { "sentenceText": "John lives in London.", "multipleChoice": [ { "startOffset": 5, "endOffset": 10, "answers": [ "live", "living", "lives", "lived" ], "correctIndex": 2 } ] }, { "sentenceText": "He loves cats.", "multipleChoice": [ { "startOffset": 3, "endOffset": 8, "answers": [ "loves", "love", "loving", "loved" ], "correctIndex": 0 } ] } ] }
As you can see from the example, the text is divided into sentences and each sentence has grammarPatterns (identified grammatical constructions) and multipleChoice (material for creating exercises).
In grammarPatterns the system name of the grammatical construction ( name ) is indicated, the words that make up this grammatical phenomenon are given, with offsets from the beginning of the sentence ( words ), dependencies (grammatical material that would help in mastering this grammatical phenomenon), the relative level of complexity ( difficulty - can help in assessing the grammatical difficulty of the text), and fullName is the full name of the construct in Russian
In multipleChoice, the word offsets are given for which the exercise is proposed. Answers are the answer choices for multiple choice, and correctIndex is the index of the correct answer (the index starts at 0).
In the simplest case, the API allows you to create an exercise to choose the correct form, but other exercises are not at all difficult to do. For example, for the exercise “correct a mistake” you just need to replace the word in the sentence with one of the wrong options from the answers field. To enter the correct version, you can simply delete the word from the original sentence (you can also specify the name of the desired form from grammarPatterns ).
You can test our API on a small number of your examples (up to 400 characters per request, please)), but if you want to use it in some project, it is better to contact in person.
A little later, we plan to open the API diagnosing mutiple choice (grammatical and lexical), as well as the API for generating questions to the text (and variants of answers to it).
UPDATE : Thank you for the great interest in our project.))
For technical reasons, we changed the API a bit. Please note the example above - now there are two lists, each of which repeats the text of a sentence.
Source: https://habr.com/ru/post/370689/
All Articles