Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 1532 сообщений
Cообщения с меткой

иностранный язык - Самое интересное в блогах

Следующие 30  »
AValya

Английские сказки и загадки с вопросами и заданиями

Среда, 29 Июня 2016 г. 15:08 (ссылка)

Это цитата сообщения Ksu11111 Оригинальное сообщение

Английские сказки и загадки с вопросами и заданиями








1.

1 (536x700, 332Kb)



Читать далее...
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Приложение для запоминания иностранных слов

Вторник, 28 Июня 2016 г. 20:13 (ссылка)

На данный момент создано множество приложений для запоминания слов.

Из тех что мне запомнились могу выделить такие Android приложения как Lingualeo, Английские слова, СловоУч.

Главным недостатком этих приложений для меня был платный аккаунт для добавления своей базы слов.

Поэтому встал вопрос о написании своего приложения для запоминания слов.

Главной идеей было подключения внешнего API словаря и переводчика для переводов слов на родной язык.

В качестве такого API было выбрано Yandex API (API Переводчика и API Словаря).



Первым делом необходимо было получить ключи разработчика.

Для переводчика https://tech.yandex.ru/keys/get/?service=trnsl

и для словаря https://tech.yandex.ru/keys/get/?service=dict



В качестве языка и платформы разработки был выбран JavaScript и библиотека JQuery.



Для получения перевода слова на нужный язык я использовал следующий код:



            var oneWord = function() {
$.post("https://dictionary.yandex.net/api/v1/dicservice.json/lookup",
{
key: apiKey,
lang: lang,
text: words[index].text
}, function(data)
{
words[index].tr = "";
words[index].ts = "";
for (var j = 0; j < data.def.length; j++) {
var def = data.def[j];
for (var k = 0; k < def.tr.length; k++) {
var tr = def.tr[k];
words[index].tr += tr.text + "; ";
}
if (def.ts)
words[index].ts = def.ts;
}
if (words[index].tr == "") {
translateWords();
tsWords();
return;
} else {
var str = words[index].tr;
words[index].tr = str.substring(0, str.length - 2);
}
complete();
},
"json");
};
var tsWords = function() {
var text = words[index].text;
var tsText = "";
var tsWords = text.match(/\S+/gi);
var tsIndex = 0;
var tsPost = function() {
$.post("https://dictionary.yandex.net/api/v1/dicservice.json/lookup",
{
key: apiKey,
lang: lang,
text: tsWords[tsIndex]
}, function(data)
{
var ts = "";
for (var j = 0; j < data.def.length; j++) {
var def = data.def[j];
if (def.ts)
ts = def.ts;
}
tsText += ts + " ";
if ((tsIndex < (tsWords.length - 1)) && (tsIndex < 5)) {
tsIndex++;
tsPost();
} else {
words[index].ts = tsText.trim();
complete(false, true);
}
},
"json");
};
tsPost();
};
var translateWords = function() {
$.post("https://translate.yandex.net/api/v1.5/tr.json/translate",
{
key: apiKeyTranslate,
lang: slang,
text: words[index].text
}, function(data)
{
words[index].tr = "";
for (var j = 0; j < data.text.length; j++) {
var text = data.text[j];
words[index].tr += text + "; ";
}
var str = words[index].tr;
words[index].tr = str.substring(0, str.length - 2);
complete(true, false);
},
"json");
};
var qu = function() {
if (!words[index].tr) {
oneWord();
} else {
complete();
}
};
qu();




Тут функция oneWord переводит одно слово, tsWords находит транскрипции первых пяти слов в выражении (если дано не слово, а предложение),

translateWords переводит предложение.



Результирующая функция complete вызывается для заполнения формы слова с транскрипцией и переводом:

        var complete = function(tr, ts) {
if (ts == undefined) ts = true;
if (tr == undefined) tr = true;
var word = words[index];
if (tr) $("#text").html(word.text);
if (ts) $("#ts").html("[" + word.ts + "]");
$("#tr").hide();
$("#attempt").hide();
$("#show").show();
$("#tr").html(word.tr);
$("#tts").show();
};




В массиве слов words index отражает текущее слова для запоминания.

Следующее слово выбирается по следующему алгоритму:

        var words = [],
patternCount = 5,
indexMemory = {},
indexMemoryCount = 0,
patternIndex = [],
lastIndex = -1,
lastIndexs = [],
lastIndexsCount = 2,
wasAttempt = false,
wasMemory = false,
deep = 0,
deepMax = 100;

var index = nextIndex();

var nextIndex = function() {
deep++;
if (lastIndexsCount - words.length >= 0) {
lastIndexsCount = 0;
}
if ((patternIndex.length < patternCount) && (indexMemoryCount < words.length)) {
if (deep > deepMax) {

var index = maxAttemptsIndex(true);
return index;
}
var index = Math.floor(Math.random() * words.length);
if (indexMemory[index]) {
return nextIndex();
}
indexMemory[index] = "do";
indexMemoryCount++;
patternIndex.push(index);
lastIndex = index;
pushIndex(lastIndex);
return index;
} else {
var index = Math.floor(Math.random() * (patternIndex.length + 1));
if (index == patternIndex.length || (patternIndex.length == 0)) {
wasMemory = true;
var ind = maxAttemptsIndex();
if (inArray(lastIndexs, ind))
{
if (deep > deepMax) {
ind = Math.floor(Math.random() * words.length);
lastIndex = ind;
pushIndex(lastIndex);
return ind;
}
return nextIndex();
}
lastIndex = ind;
pushIndex(lastIndex);
return ind;
}
if (inArray(lastIndexs, patternIndex[index])) return nextIndex();
lastIndex = patternIndex[index];
pushIndex(lastIndex);
return patternIndex[index];
}
};

var maxAttemptsIndex = function(notAttempts) {
var arr = sortMemoryIndexes(indexMemory);
var index = getRandomFishIndex(arr, notAttempts);
return index;
};

var pushIndex = function(index) {
if (lastIndexsCount == 0) return;
if (lastIndexs.length < lastIndexsCount) {
lastIndexs.push(index);
} else {
lastIndexs[0] = lastIndexs[1];
lastIndexs[1] = index;
}
};

var inArray = function(arr, elem) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] == elem)
return true;
}
return false;
};

function getRandomFishIndex(arr, notAttempts) {
var fishForLevel = arr;
var fishTotalWeight = 0, fishCumWeight = 0, i;
// sum up the weights
for (i = 0; i < fishForLevel.length; i++) {
fishTotalWeight += fishForLevel[i].attempts;
}
if (notAttempts) {
fishTotalWeight = 0;
}
var random = Math.floor(Math.random() * fishTotalWeight);
// now find which bucket out random value is in
if (fishTotalWeight == 0) return fishForLevel[Math.floor(Math.random() * fishForLevel.length)].index;
for (i = 0; i < fishForLevel.length; i++) {
fishCumWeight += fishForLevel[i].attempts;
if (random <= fishCumWeight) {
return fishForLevel[i].index;
}
}
}

function sortMemoryIndexes(indexMemory) {
var arr = [];
for (var key in indexMemory) {
if (indexMemory[key] == "do") {
var word = jQuery.extend(true, {}, words[key]);
word.index = key;
arr.push(word);
}
}
var sAttempt = function(first, second) {
if (first.attempts < second.attempts)
return 1;
else if (first.attempts > second.attempts)
return -1;
else
return 0;
};
return arr.sort(sAttempt);
}




Суть в том, что требуется выбрать следующее слово из набора ранее не изученных, а также предыдущих изученных слов.

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

Именно кнопка «Неправильно» реализует перестановку вероятностей показа слов.

        $("#attempt").click(function()
{
words[index].attempts++;
wasAttempt = true;
$("#attempt").hide();
});




В остальном программный код приложения реализует события и действия элементов интерфейса.



HTML и сопутствующий JavaScript код был обернут в Cordova для платформы Android.



Приложение «EnglishWords» позволяет учить английские слова и слова многих других языков. В программе имеется базовый набор слов для изучения. Главной особенностью программы является возможность создавать свои наборы слов для изучения. ИНФОРМАЦИЯ НА ЭКРАНЕ * Процент. Означает процент изученных слов в словаре. КАК ЭТО РАБОТАЕТ. Процесс изучения слов начинается с того, что программа набирает из выбранных словарей 5 случайных слов и начинает их показывать в случайном порядке. После того, как слова выучены из словаря извлекаются следующие 5 случайных слов. Если вы отвечаете не правильно на слово, то слово будет показываться чаще. Когда все слова выучены показываются только те слова на которые чаще всего давался не правильный ответ. СЛОВАРЬ Базовый набор слов содержит около 1000 наиболее употребляемых

английских слов.

Приложение использует yandex и google api для получения перевода, транскрипции и звукового воспроизведения. Для работы приложения необходим доступ в интернет.



Приведу скриншоты приложения:





Приложение доступно в Play Маркете по адресу:

https://play.google.com/store/apps/details?id=svlab.englishwords



Также доступна web версия приложения по адресу:

https://svlaboratory.org/application/english-words
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/304334/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
lapikova

Распространенные ошибки в изучении иностранного языка

Пятница, 24 Июня 2016 г. 13:54 (ссылка)
dlp.by/rasprostranennye-osh...ogo-yazyka

Распространенные ошибки в изучении иностранного языка


Распространенные ошибки в изучении иностранного языка



Изучение иностранного языка поначалу может показаться довольно забавным процессом.




Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
softvay-net

Немецкий разговорный - видео урок онлайн - Уроки иностранных языков онлайн - английский язык видео уроки

Четверг, 16 Июня 2016 г. 22:42 (ссылка)
my-kinoman.ru/2014/05/blog-post_13.html

Немецкий разговорный онлайн видео урок
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
softvay-net

Немецкий язык за 16 часов - Полиглот - Уроки иностранных языков онлайн - английский язык видео уроки

Четверг, 16 Июня 2016 г. 22:39 (ссылка)
my-kinoman.ru/2014/05/16.html

Немецкий язык за 16 часов - Полиглот уроки онлайн
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Bukmor

Наша школа и институт.

Четверг, 16 Июня 2016 г. 22:27 (ссылка)

Технология эффективного обучения.Кто учит Итальянский,Французский,Испанский или Китайский и далее:http://advance-club.ru/free_memory_online/?utm_med...&yclid=3370012858275599052

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
softvay-net

Английский язык для начинающих "Let's go" - уроки онлайн - Уроки иностранных языков онлайн

Воскресенье, 12 Июня 2016 г. 22:03 (ссылка)
my-kinoman.ru/2014/04/lets-go.html

Английский язык для начинающих онлайн уроки
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
softvay-net

Английская грамматика за 90 минут - Уроки иностранных языков онлайн

Воскресенье, 12 Июня 2016 г. 17:01 (ссылка)
my-kinoman.ru/2014/07/90.html

Английская грамматика за 90 минут видео онлайн
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
softvay-net

Уроки английского языка для детей от 1 года (видео урок) - Уроки иностранных языков онлайн

Пятница, 10 Июня 2016 г. 14:47 (ссылка)
my-kinoman.ru/2016/06/1.html

Уроки английского языка для детей от года до восьми лет
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
softvay-net

Как начать свободно говорить на Английском за 1 месяц - Уроки иностранных языков онлайн

Суббота, 04 Июня 2016 г. 09:07 (ссылка)
my-kinoman.ru/2015/02/kak-n...jskom.html

Как начать свободно говорить на Английском за 1 месяц видео урок
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
lazy_Mary

обращение к сваливающим россиянам

Понедельник, 30 Мая 2016 г. 19:36 (ссылка)


НЕ ТАЩИТЕ СЮДА СВОЙ СОВОК!



Обращаюсь к будущим эмигрантам-иммигрантам, решившим свалить из страны.



Ради бога, не тащите за собой сюда ваш совок, нам тут его не надо. Лучше уж оставайтесь с ним там, откуда стремитесь убежать.

Меня убивают напрочь люди, которые приехав сюда, первым делом интересуются, "а где тут русская школа?", чтобы отдать туда своих детей?



3

more
Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<иностранный язык - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda