«Сундук полиглота» — еще одно приложение для изучения языков

от автора

Страсть к иностранным языкам у меня с детства. Самоучители, выписанные из книг фразы с переводом… Кажется, сколько языков мне ни дай – мне все мало.

Нет, я не ошиблась в выборе профессии. Просто меня глубоко интересует та математика в широком смысле слова, которая стоит за всеми явлениями нашего мира. Мир красиво устроен (хотя порой по нему не скажешь!). Поэтому мне всегда хочется найти закономерность в языках, аккордах и алгоритмах.

Открыв для себя Duolingo, я ушла в него с головой. За первые три месяца прошла весь курс французского, потом взялась за другие языки.

Мой Duolingo

Мой Duolingo

А потом отпуск во Франции… и фиаско. Я изводила французов тем, что начинала разговор на их языке заготовленной фразой, но не могла его поддержать.

— Maybe English?

— Yes! English is the best, but…

— But?

— But I study French.

При этом я запросто читала вывески, объявления и этикетки в супермаркете. Если говорили медленно (хотя с французами это бывает редко), то даже понимала речь на слух. Но сама не могла ответить. Duolingo научил меня пассивному распознаванию текста (recognition в когнитивной психологии), а не активному построению фраз.

Параллельно выявилась еще одна проблема начинающего полиглота – конкуренция языковых систем. Я стала забывать английский, с которым всегда была на короткой ноге. Французские слова перезаписали те ячейки в памяти, которые раньше отводились под английские. А там, где французский аналог не учился или не усвоился, оставалось только английское слово, которое за неимением аналога стало встревать во французское предложение в самый неожиданный момент. Например, рассказывая французам про любимые книги Дюма, я назвала одну из них «La queen Margot».

Это явление известно как интерференция. Помните Пушкина?

Пуркуа ву туше, пуркуа ву туше, — закричал Антон Пафнутьич, спрягая с грехом пополам русский глагол тушу на французский лад.

А если вы когда-нибудь будете на моей малой родине в Астрахани, то услышите необычную речь сельских татар: два слова русские, третье татарское, потом снова русское… Так нередко бывает с билингвами, у которых активны оба языка.

Итак, пройдя в Duolingo все имеющиеся там лиги и так и не научившись говорить по-французски, я задумалась о том, что я как программист могу сделать для решения этих двух задач:

  1. Переход от анализа текста к его синтезу.

  2. Избавление от интерференции.

По крайней мере, для их решения лично в моем случае. Если мой способ поможет кому-то еще, буду очень рада.

Но прежде чем писать приложение, надо обдумать методологию обучения.

Изучение языков, а не языка

Если вы учили французский после английского, вас наверняка преследовало некое déjà vu. Благодаря Вильгельму Завоевателю четверть (а по некоторым оценкам – треть) английской лексики заместилась галлицизмами, и при Плантагенетах весь правящий класс говорил по-французски, а не по-английски (характерен эпизод в «Белом отряде» Конан Дойля, когда Эдуард III заговаривает с крестьянином по-французски, потому что не знает английского). И вот вы учите лексику и понимаете, что многие слова вам уже знакомы, только с ударением, искусственно перенесенным на первый слог. Возвращение ударения на законное место внезапно делает эти слова легко произносимыми:

Слово

Английский

Французский

Перевод

courage

[ˈkʌr.ɪdʒ]

[ku.ʁaʒ]

смелость, кураж

cage

[keɪdʒ]

[kaʒ]

клетка

image

[ˈɪm.ɪdʒ]

[i.maʒ]

образ

forest

[ˈfɒr.ɪst]

[fɔ.ʁɛ]

лес

avalanche

[ˈæv.ə.lænʃ]

[a.va.lɑ̃ʃ]

лавина

На параллели между языками можно смотреть бесконечно, как на огонь. Типичный пример – числительные и наименования ближайших родственников. Приведу менее очевидный пример:

Язык

Слово

Семейство

Английский

window

германское

Французский

fenêtre

романское

Немецкий

Fenster

германское

Итальянский

finestra

романское

Латынь

fenestra

праоснова

Думаю, такие параллели – хлеб полиглота. Многие слова в разных языках восходят к общим корням: романские языки (французский, итальянский, испанский) унаследовали их от латыни, германские (немецкий, английский, норвежский) от протогерманского. Копните еще глубже — и те и другие придут к одному праиндоевропейскому корню.

Если бы передо мной стояла фундаментальная задача научить человека иностранному языку, я учила бы его не языку, а языкам как единому целому. Выбрала бы эталон в каждом семействе – думаю, латинский в романском и немецкий в германском (ну не готский же!), а дальше просто показывала бы, как меняется лексика и грамматика по мере удаления от эталона.

Хотя моя задача гораздо скромнее – избавиться от интерференции, — я пытаюсь решить ее тем же приемом – сравнивая языки. Табличка про «окно», которую мы только что видели, закрепляет в памяти слово на всех изучаемых языках одновременно. Слова распределяются по полочкам, а не вытесняют друг друга. Кроме того, устраняя пробелы, такой метод постепенно выравнивает словарный запас от языка к языку и борется с одной из главных причин интерференции – асимметрией словарного запаса. Если вы знаете приблизительно поровну слов на нескольких языках, то вам не приходится заимствовать лексику из одного, чтобы объясниться на другом.

Синтаксические шаблоны

Предположим, мы выучили слова и больше их не путаем. Но как же собрать их в фразы?

Как вы строите фразу, когда говорите на родном языке? Вы отдаете себе отчет в том, что связываете подлежащее и сказуемое, ставите глагол в настоящее время первого лица единственного числа? Подозреваю, что эти термины для вас остались где-то в школьных учебниках.

На родном языке мы говорим готовыми блоками, в которых слова уже согласованы между собой. Мы не согласуем их на лету. Блоки комбинируются, подставляются слова, подходящие по ситуации, и так получаются предложения. Порой, при хорошем владении речью, даже довольно длинные предложения, с причастными и деепричастными оборотами. Но все это – набор готовых кирпичиков, а не осознанное применение грамматики.

На эту идею меня навела, как ни странно, песня «Deutschland» группы Rammstein.

Du (du kannst, du kannst, du kannst, du kannst)

Ich (ich weiß, ich weiß, ich weiß, ich weiß)

Wir (wir sind, wir sind, wir sind, wir sind)

Ihr (ihr bleibt, ihr bleibt, ihr bleibt, ihr bleibt)

Бэк-вокалист тут как раз и повторяет готовые блоки, внутри которых слова уже согласованы. Осталось только довести каждый блок до автоматизма.

Но все возможные словосочетания выучить невозможно. Давайте сократим количество блоков, сведя их к общим синтаксическим паттернам или матрицам. Под синтаксической матрицей я буду понимать внутреннюю схему построения предложения, которую мозг использует автоматически, прежде чем вставить слова. Когда грамматика языка уже в крови, вы же на автомате говорите что-то вроде where did you <глагол>? Так почему бы нам не заучивать готовые матрицы, а не всю их область допустимых значений?

Матрица

Пример

S + ne + V + pas

Je ne sais pas.

Il faut que + Subjonctif

Il faut que tu viennes.

Je suis en train de + infinitive

Je suis en train de lire.

Впрочем, я предпочитаю учить матрицы с какими-нибудь базовыми словами, чтобы закрепить в памяти образец и потом подставлять в это уравнение только переменные. Вместо существительных – местоимения, они для этого и придуманы, судя по их названию. А вот от глаголов никуда не денешься, сейчас это и обсудим.

О времена, о нравы! Немного о глаголах

Продолжая сужать круг изучаемых объектов, давайте подумаем, какая грамматика нужна, чтобы суметь объясниться. Все учебники начинаются с артиклей и родов существительного. Но речь без них остается понятной, хотя и звучит безграмотно. Вы же поймете, если с вами заговорят по-русски, но без падежей.

А что надо учить в первую очередь? Вернемся к Антону Пафнутьичу. Что ему мешало сказать по-французски «Зачем вы тушите?», хотя он смог сказать «pourquoi vous»? Глагол. Он не знал, как по-французски «тушить», и более того – не знал, как поставить глагол во второе лицо.

Поэтому думаю, что надо делать акцент на глаголах и их изучении во всех формах, лицах и временах. Хотя нет, пожалуй, времен нам хватит трех базовых.

В разных языках подход к выражению действия в прошлом и действия в будущем различается. Но мы гонимся не за грамматическими параллелями, а за семантическими. Поэтому давайте использовать те формы, которые использовал бы носитель языка в простейшем случае.

Время

EN

FR

DE

IT

Настоящее

I work (Present Simple)

je travaille (Présent)

ich arbeite (Präsens)

lavoro (Presente)

Прошедшее

I worked (Past Simple)

j’ai travaillé (Passé composé)

ich habe gearbeitet (Perfekt)

ho lavorato (Passato prossimo)

Будущее

I shall work (Future Simple)

je vais travailler (Futur proche)

ich werde arbeiten (Futur I)

lavorerò (Futuro semplice)

Как видим, три языка из четырех предпочитают выражать прошедшее время через перфект. Кстати, мы в русском языке делаем то же самое, просто отбросили вспомогательный глагол, который существовал в старославянской форме перфекта: «сотворил еси». Причем отбросили вместе с самим перфектом.

Для простейшего диалога глаголы нужно выучить не только в 3 временах, но и в 6 лицах («я», «он», «она», «мы», «вы», «они», а «ты» можно пока исключить) для изъявительного наклонения, общего и специального вопроса и отрицания, а также в повелительном наклонении.

Общий вопрос для первого лица единственного числа – требует ответа «да» или «нет»:

Время

EN

FR

DE

IT

Настоящее

do I work?

est-ce que je travaille?

arbeite ich?

lavoro?

Прошедшее

did I work?

est-ce que j’ai travaillé?

habe ich gearbeitet?

ho lavorato?

Будущее

shall I work?

est-ce que je vais travailler?

werde ich arbeiten?

lavorerò?

Сразу вспомнился Джо Дассен:

Où es-tu? Que fais-tu? Est-ce que j’existe encore pour toi?

Поэтому давайте перейдем к специальному вопросу – тому, что с вопросительным словом. Выбор конкретного слова определяется частотой использования. Например, для глагола «работать» это обычно «где…?»:

Время

EN

FR

DE

IT

Настоящее

where do I work?

où est-ce que je travaille?

wo arbeite ich?

dove lavoro?

Прошедшее

where did I work?

où est-ce que j’ai travaillé?

wo habe ich gearbeitet?

dove ho lavorato?

Будущее

where shall I work?

où est-ce que je vais travailler?

wo werde ich arbeiten?

dove lavorerò?

Переходим к отрицательной форме:

Время

EN

FR

DE

IT

Настоящее

I don’t work

je ne travaille pas

ich arbeite nicht

non lavoro

Прошедшее

I didn’t work

je n’ai pas travaillé

ich habe nicht gearbeitet

non ho lavorato

Будущее

I shall not work

je ne vais pas travailler

ich werde nicht arbeiten

non lavorerò

Итак, 4 таблицы по 12 ячеек в каждой × 6 лиц = 72 блока.

Остается повелительное наклонение, которое по определению существует только во втором лице. Так как мы отказались от формы «ты», берем только «вы». Сюда же прибавим побудительную форму для первого лица:

Форма

EN

FR

DE

IT

Утвердительное (вы)

work!

travaillez!

arbeiten Sie!

lavori!

Утвердительное (мы)

let’s work!

travaillons!

arbeiten wir!

lavoriamo!

Отрицательное (вы)

don’t work!

ne travaillez pas!

arbeiten Sie nicht!

non lavori!

Отрицательное (мы)

let’s not work!

ne travaillons pas!

arbeiten wir nicht!

non lavoriamo!

Итого 72 + 16 = 88 блоков для одного глагола. Умножаем на число глаголов…

А умножать-то и не нужно! Каждый такой блок построен по какой-либо матрице. Выучив 88 блоков, вы доведете до автоматизма лежащие под ними матрицы, в которые можете подставлять новые глаголы. Поэтому для освоения еще 100 глаголов во всех употребительных формах нужно учить не 88×100, а 88+100 блоков.

Система ломается, когда мы переходим к неправильным глаголам, которые нельзя просто подставить в формулу. Их придется учить отдельно. Прежде всего стоит взяться за самые популярные – «быть», «иметь», «идти», «мочь», тем более что «быть» и «иметь» во всех четырех языках участвуют в образовании сложных времен, а «идти» во французском образует ближайшее будущее.

Эта четверка вкупе с правильным глаголом «работать» образует множество опорных глаголов, необходимых для простейшего диалога. В 88 формах оно покрывает все ситуации живого разговора: утверждение, вопрос, отрицание, команда.

До сих пор мы учили глаголы с личными местоимениями. Добавим еще безличное.

Время

Форма

EN

FR

DE

IT

Настоящее

это большое

it’s big

c’est grand

das ist groß

è grande

Прошедшее

это было большим

it was big

c’était grand

das war groß

era grande

Будущее

это будет большим

it will be big

ce sera grand

das wird groß sein

sarà grande

Общий вопрос:

Время

EN

FR

DE

IT

Настоящее

is it big?

est-ce que c’est grand?

ist das groß?

è grande?

Прошедшее

was it big?

est-ce que c’était grand?

war das groß?

era grande?

Будущее

will it be big?

est-ce que ce sera grand?

wird das groß sein?

sarà grande?

Специальный вопрос рассмотрим на примере с «почему» — самый универсальный вопрос для оценочных конструкций. Для французского «Pourquoi est-ce que c’est grand?» звучит слишком громоздко, обойдемся без инверсии.

Время

EN

FR

DE

IT

Настоящее

why is it big?

pourquoi c’est grand?

warum ist das groß?

perché è grande?

Прошедшее

why was it big?

pourquoi c’était grand?

warum war das groß?

perché era grande?

Будущее

why will it be big?

pourquoi ce sera grand?

warum wird das groß sein?

perché sarà grande?

Отрицательная форма:

Время

EN

FR

DE

IT

Настоящее

it’s not big

ce n’est pas grand

das ist nicht groß

non è grande

Прошедшее

it wasn’t big

ce n’était pas grand

das war nicht groß

non era grande

Будущее

it won’t be big

ce ne sera pas grand

das wird nicht groß sein

non sarà grande

Также нам не обойтись без конструкции наличия: there is / il y a / es gibt / c’è.

Время

EN

FR

DE

IT

есть

there is

il y a

es gibt

c’è

было

there was

il y avait

es gab

c’era

будет

there will be

il y aura

es wird geben

ci sarà

Общий вопрос:

Время

EN

FR

DE

IT

есть?

is there?

est-ce qu’il y a?

gibt es?

c’è?

было?

was there?

est-ce qu’il y avait?

gab es?

c’era?

будет?

will there be?

est-ce qu’il y aura?

wird es geben?

ci sarà?

Отрицание:

Время

EN

FR

DE

IT

нет

there isn’t

il n’y a pas

es gibt nicht

non c’è

не было

there wasn’t

il n’y avait pas

es gab nicht

non c’era

не будет

there won’t be

il n’y aura pas

es wird nicht geben

non ci sarà

Специальный вопрос:

Время

EN

FR

DE

IT

что есть?

what is there?

qu’est-ce qu’il y a?

was gibt es?

cosa c’è?

что было?

what was there?

qu’est-ce qu’il y avait?

was gab es?

cosa c’era?

что будет?

what will there be?

qu’est-ce qu’il y aura?

was wird es geben?

cosa ci sarà?

Множественное число придется исключить, потому что для этой конструкции оно существует только в двух языках из четырех (английский и итальянский), а наш метод построен на параллелях между языками.

Уровни

Сведем все изложенное в таблицу, стараясь добиться постепенного нарастания сложности. Начинаем с базовой лексики, чтобы запомнить параллели, о которых говорилось в разделе «Изучение языков, а не языка». Затем переходим к грамматике, на каждом уровне добавляя ровно одну грамматическую конструкцию.

Скрытый текст

Уровень

Блоков

Тема

RU

EN

FR

DE

IT

1

25

Люди и родственники

человек

person

personne

Mensch

persona

2

25

Жилье и бронирование

дом

house

maison

Haus

casa

3

25

Город и навигация

город

city

ville

Stadt

città

4

25

Транспорт и парковка

машина

car

voiture

Auto

macchina

5

25

Еда и вкус

еда

food

nourriture

Essen

cibo

6

25

Магазин и финансы

магазин

shop

magasin

Geschäft

negozio

7

25

Медицина

врач

doctor

médecin

Arzt

medico

8

25

Документы и почта

документ

document

document

Dokument

documento

9

25

Прилагательные

большой

big

grand

groß

grande

10

25

Наречия

очень

very

très

sehr

molto

11

25

Места и транспортные узлы

место

place

lieu

Ort

luogo

12

25

Быт и предметы

книга

book

livre

Buch

libro

13

25

Природа и время года

природа

nature

nature

Natur

natura

14

25

Глаголы (инфинитивы)

быть

to be

être

sein

essere

15

25

Абстрактная лексика

любовь

love

amour

Liebe

amore

16

26

Местоимения и частицы

я

I

je

ich

io

17

25

Числа и наречия времени

ноль

zero

zéro

null

zero

18

25

Фразы вежливости

здравствуйте

hello

bonjour

guten Tag

salve

19

6

«Быть» в наст., изъявительное

я есть

I am

je suis

ich bin

sono

20

6

«Быть» в наст., общий вопрос

я есть?

am I?

est-ce que je suis?

bin ich?

sono?

21

6

«Быть» в наст., отрицание

я не

I am not

je ne suis pas

ich bin nicht

non sono

22

24

«Быть» в наст., спец. вопрос

где я?

where am I?

où est-ce que je suis?

wo bin ich?

dove sono?

23

3

Безличное «это» с прилаг., изъявительное (3 времени)

это большое

it’s big

c’est grand

das ist groß

è grande

24

3

Безличное «это» с прилаг., общий вопрос (3 времени)

это большое?

is it big?

est-ce que c’est grand?

ist das groß?

è grande?

25

3

Безличное «это» с прилаг., отрицание (3 времени)

это не большое

it’s not big

ce n’est pas grand

das ist nicht groß

non è grande

26

3

Безличное «это» с прилаг., спец. вопрос (3 времени)

почему это большое?

why is it big?

pourquoi c’est grand?

warum ist das groß?

perché è grande?

27

3

Конструкция наличия, изъявительное (3 времени)

есть (в наличии)

there is

il y a

es gibt

c’è

28

3

Конструкция наличия, общий вопрос (3 времени)

есть (в наличии)?

is there?

est-ce qu’il y a?

gibt es?

c’è?

29

3

Конструкция наличия, отрицание (3 времени)

нет (в наличии)

there isn’t

il n’y a pas

es gibt nicht

non c’è

30

3

Конструкция наличия, спец. вопрос (3 времени)

что есть?

what is there?

qu’est-ce qu’il y a?

was gibt es?

cosa c’è?

31

7

«Иметь» в наст., изъявительное

у меня есть

I have

j’ai

ich habe

ho

32

7

«Иметь» в наст., общий вопрос

у меня есть?

do I have?

est-ce que j’ai?

habe ich?

ho?

33

7

«Иметь» в наст., отрицание

у меня нет

I don’t have

je n’ai pas

ich habe nicht

non ho

34

21

«Иметь» в наст., спец. вопрос

что у меня?

what do I have?

qu’est-ce que j’ai?

was habe ich?

cosa ho?

35

7

«Идти» в наст., изъявительное

я иду

I go

je vais

ich gehe

vado

36

7

«Идти» в наст., общий вопрос

я иду?

do I go?

est-ce que je vais?

gehe ich?

vado?

37

7

«Идти» в наст., отрицание

я не иду

I don’t go

je ne vais pas

ich gehe nicht

non vado

38

7

«Идти» в наст., спец. вопрос

куда я иду?

where do I go?

où est-ce que je vais?

wohin gehe ich?

dove vado?

39

7

«Мочь» в наст., изъявительное

я могу

I can

je peux

ich kann

posso

40

7

«Мочь» в наст., общий вопрос

я могу?

can I?

est-ce que je peux?

kann ich?

posso?

41

7

«Мочь» в наст., отрицание

я не могу

I can’t

je ne peux pas

ich kann nicht

non posso

42

7

«Мочь» в наст., спец. вопрос

что я могу?

what can I?

qu’est-ce que je peux?

was kann ich?

cosa posso?

43

7

«Работать» в наст., изъявительное

я работаю

I work

je travaille

ich arbeite

lavoro

44

7

«Работать» в наст., общий вопрос

я работаю?

do I work?

est-ce que je travaille?

arbeite ich?

lavoro?

45

7

«Работать» в наст., отрицание

я не работаю

I don’t work

je ne travaille pas

ich arbeite nicht

non lavoro

46

7

«Работать» в наст., спец. вопрос

где я работаю?

where do I work?

où est-ce que je travaille?

wo arbeite ich?

dove lavoro?

47

28

«Быть/иметь/идти/мочь» в прош., изъявительное

я был

I was

j’ai été

ich war

sono stato

48

28

«Быть/иметь/идти/мочь» в прош., общий вопрос

я был?

was I?

est-ce que j’ai été?

war ich?

sono stato?

49

28

«Быть/иметь/идти/мочь» в прош., отрицание

я не был

I wasn’t

je n’ai pas été

ich war nicht

non sono stato

50

28

«Быть/иметь/идти/мочь» в прош., спец. вопрос

где я был?

where was I?

où est-ce que j’ai été?

wo war ich?

dove sono stato?

51

7

«Работать» в прош., изъявительное

я работал

I worked

j’ai travaillé

ich habe gearbeitet

ho lavorato

52

7

«Работать» в прош., общий вопрос

я работал?

did I work?

est-ce que j’ai travaillé?

habe ich gearbeitet?

ho lavorato?

53

7

«Работать» в прош., отрицание

я не работал

I didn’t work

je n’ai pas travaillé

ich habe nicht gearbeitet

non ho lavorato

54

7

«Работать» в прош., спец. вопрос

где я работал?

where did I work?

où est-ce que j’ai travaillé?

wo habe ich gearbeitet?

dove ho lavorato?

55

28

«Быть/иметь/идти/мочь» в буд., изъявительное

я буду

I shall be

je vais être

ich werde sein

sarò

56

28

«Быть/иметь/идти/мочь» в буд., общий вопрос

я буду?

shall I be?

est-ce que je vais être?

werde ich sein?

sarò?

57

28

«Быть/иметь/идти/мочь» в буд., отрицание

я не буду

I won’t be

je ne vais pas être

ich werde nicht sein

non sarò

58

28

«Быть/иметь/идти/мочь» в буд., спец. вопрос

где я буду?

where shall I be?

où est-ce que je vais être?

wo werde ich sein?

dove sarò?

59

7

«Работать» в буд., изъявительное

я буду работать

I shall work

je vais travailler

ich werde arbeiten

lavorerò

60

7

«Работать» в буд., общий вопрос

я буду работать?

shall I work?

est-ce que je vais travailler?

werde ich arbeiten?

lavorerò?

61

7

«Работать» в буд., отрицание

я не буду работать

I won’t work

je ne vais pas travailler

ich werde nicht arbeiten

non lavorerò

62

7

«Работать» в буд., спец. вопрос

где я буду работать?

where shall I work?

où est-ce que je vais travailler?

wo werde ich arbeiten?

dove lavorerò?

63

8

Повелительное, утвердительное

будьте

be

soyez

seien Sie

sia

64

8

Повелительное, отрицательное

не будьте

don’t be

ne soyez pas

seien Sie nicht

non sia

Итого 939 словарных статей (451 лексических и 488 грамматических) для каждого изучаемого языка. В случае 4-х языков нужно выучить 3756 блоков. Не так уж и много: если учить по 10 словарных статей в день, то все 64 уровня вы пройдете за три месяца.

Упражнения

От методологии перейдем к практике. Как выучить почти четыре тысячи блоков (слов и выражений)? Скорее всего, с помощью интервальных повторений. Думаю, что смартфон и интервальные повторения – это идеальное сочетание. Одна из популярных реализаций этой системы – алгоритм SM-2. Первые повторения происходят через фиксированные интервалы, соответствующие кривой забывания Эббингауза. Следующие рассчитываются с помощью множителя EF, который вычисляется по формуле:

EF' = EF + (0.1 − (5 − q) × (0.08 + (5 − q) × 0.02))

где qкачество ответа: оценка легкости вспоминания слова, которая в оригинальном алгоритме выставляется пользователем от 0 до 5.

В моем приложении этот алгоритм немного модифицирован: оценка q вычисляется самим приложением в зависимости от действий пользователя на конкретной карточке, ошибка не обнуляет весь прогресс, а сам процесс обучения конечен. После x правильных ответов подряд (задается пользователем в настройках) блок считается выученным. Если выучены все блоки на i-ом уровне конкретного языка, происходит переход на (i+1)-ый.

Как же пользователю повторить то или иное слово? Конечно, по-хорошему надо вводить его с клавиатуры по памяти. Но ведь все мы берем в руки смартфон не в те минуты, когда настроены на серьезную работу. Поэтому я сделала ставку на голосовой ввод (Google Speech Recognition), оставив ввод с клавиатуры как запасной вариант.

Упражнение Fill, о котором говорилось в разделе «Изучение языков, а не языка», реализовано так. Пользователь видит слово/выражение на родном языке и на всех изучаемых, кроме одного. Задача – заполнить пробел, произнеся слово или, на худой конец, его напечатав. Расчет на то, что словарная статья (слово + его переводы на несколько языков) закрепится в зрительной памяти, и таким образом шаг за шагом будет преодолеваться интерференция.

Упражнение Fill

Упражнение Fill

Второе упражнение (Quiz) сначала предлагает просто перевести слово или выражение на заданный язык, произнеся перевод вслух. Для одиночного слова на это дается 4 секунды, для фразы – 7.

Скажи "друг" - и войдешь без ввода с клавиатуры

Скажи «друг» — и войдешь без ввода с клавиатуры

Если за это время правильный ответ не прозвучал, появляются варианты, из которых надо выбрать верный — либо голосом, либо нажатием.

Упражнение Quiz

Упражнение Quiz

Микрофон при этом продолжает слушать. После правильного ответа приложение его озвучивает с помощью TTS, чтобы поправить возможные ошибки произношения и задействовать слуховую память.

Дистракторы (неправильные варианты ответа) подбираются не от балды, а из множества, заполняемого следующими элементами:

  • до 40% отводится под персональные ошибки пользователя по конкретному слову/выражению, то есть под ранее выбранные им неверные варианты, чтобы избавиться от привычных ошибок;

  • до 30% — под слова (не выражения) целевого языка, похожие по написанию на правильный ответ. Специально для тех, кто, как я, путает в немецком все слова, начинающиеся на «ш» (schlafen, schlagen, schreiben, schreien…);

  • до 20% — под «ложных друзей переводчика», то есть похожие слова (не выражения) из других языков, например, для немецкого Gift («яд») приложение покажет английское gift («подарок»);

  • остаток добирается переводами того же слова/выражения на нецелевые языки (борьба с интерференцией), например, для французского слова chat приложение, вероятно, покажет cat, Katze и gatto;

  • запасной вариант – случайные слова/выражения целевого языка.

Помимо борьбы с интерференцией, оба упражнения – Fill и Quiz – тренируют навык воспроизведения (способность извлечь перевод из памяти). На высших уровнях, переходя от слов к выражениям, мы тренируем уже не просто воспроизведение, а навык устной речи.

Но и навык узнавания тоже не будет лишним, поэтому я добавила в приложение свое любимое упражнение (Match) из Duolingo, где нужно соотнести слова из двух столбцов – на родном языке и на целевых. Отличие только в том, что в правом столбце у меня смешаны слова из всех изучаемых языков. Преимущество этого упражнения в том, что оно помещает слова в кратковременную память, что полезно для разминки перед остальными, более сложными, упражнениями.

Упражнение Match

Упражнение Match

Так как вспомнить слово с нуля труднее, чем выбрать его из предложенных вариантов, параметры алгоритма SM-2 рассчитываются для этих упражнений по-разному:

  • Quiz – ответ, данный голосом, заслуживает более высокой оценки, чем ответ, выбранный из числа вариантов;

  • Fill – напечатать ответ так же сложно, как произнести его голосом, поэтому оба способа заслуживают высокой оценки;

  • Match – соотносить варианты легко, поэтому максимальная оценка – 3 из 5.

Упражнение

Ситуация

Качество ответа

Quiz

Ответ дан голосом до появления вариантов

5

Quiz

Ответ дан голосом неточно (расстояние Левенштейна = 1), но тоже до появления вариантов

4

Quiz

Ответ дан голосом после появления вариантов

4

Quiz

Ответ дан голосом неточно после появления вариантов

3

Quiz

Выбран верный вариант ответа с первого раза

3

Quiz

Выбран верный вариант со второго раза

2

Quiz

Выбран верный вариант с третьего раза

2

Quiz

Выбран верный вариант с четвертого и более раза

1

Fill

Правильно

5

Fill

Неправильно/пропуск

2

Match

0 ошибок

3

Match

1 ошибка

2

Match

2 ошибки

2

Match

3 и более ошибки

1

Как уже говорилось, в моей реализации алгоритма SM-2 ошибка не обнуляет весь прогресс. При качестве ответа меньшем 3 происходит следующее:

  1. Сбрасывается счетчик правильных ответов, данных подряд.

  2. EF не обнуляется, то есть накопленный прогресс частично сохраняется, но снижается по уже известной нам формуле с учетом значения качества ответа (1 или 2).

  3. Значение следующего интервала повторения устанавливается равным 1, то есть блок появится снова на следующий день.

При правильном ответе (качество от 3 до 5), наоборот,

  1. Инкрементируется счетчик правильных ответов, и если он выше заданного в настройках порога, то блок считается выученным.

  2. Рассчитывается EF по формуле.

  3. Следующий интервал определяется по таблице:

Счетчик правильных ответов подряд

Интервал

1

1 день

2

3 дня

3

7 дней

4 и выше

max(7, предыдущий интервал × EF)

Рефлексия

Не будучи филологом, я не претендую на создание полноценной методологии изучения языков путем сравнительного анализа или чего-то подобного. Пока просто реализовала в виде MVP те идеи, над которыми давно задумывалась.

Приложение не ставит задачи научить говорить с нуля на всех языках мира, а лишь претендует на роль скромного вспомогательного инструмента в арсенале полиглота.

Построенное на сопоставлении языков и на изучении их общих паттернов, оно по определению не поможет выучить выразительные средства, отличающие конкретный язык, — рамочную конструкцию в немецком, слияние предлога с артиклем во французском и итальянском и т.д. Его задача в другом – помочь взглянуть на индоевропейские языки как на один большой язык.

Мое приложение и другие ресурсы

Приложение (пока довольно сыроватое) можно скачать бесплатно в Google Play. Сейчас как раз загружаю новую версию.

Также я завела для приложения ТГ-канал, где пока ничего нет, но скоро что-нибудь появится.

Кстати, в своем бесплатном курсе по Android-разработке с нуля я пошагово показываю, как построить аналогичное приложение на стеке Jetpack Compose, Flow, Coroutines, Room и Retrofit + OkHttp.

ссылка на оригинал статьи https://habr.com/ru/articles/1036602/