Our last lesson
| Наш последний урок
|
Самоучитель английского языка: обзор лучших пособий
Привет, дорогие читатели!
Как вы продвигаетесь в изучении английского языка? Какие методы и системы вы испробовали? Вы уже выбрали то, что подходит именно вам?
В настоящее время на рынке образовательных услуг очень много разных предложений. И, конечно, для начинающих изучать язык сориентироваться и сделать правильный выбор, чтобы обучение было эффективным и приносило результат, очень сложно.
В этой статье приведен обзор лучших самоучителей и даны мои рекомендации по улучшению процесса обучения.
О методике обучения
Считается, что самоучитель английского языка поможет вам быстро и без помощи руководителя, наставника освоить базовый курс. К тому же, это менее затратный способ изучения языка, что немаловажно. Поэтому достаточно много людей останавливает свой выбор на данном способе. На самом ли деле все вышесказанное верно? Давайте разбираться.
Все самоучители английского языка условно можно поделить на несколько типов:
- традиционные,
- для освоения разговорного английского,
- для интенсивного курса,
- авторские,
- художественные книги-самоучители,
- пособия от носителей языка,
- онлайн самоучители.
Хороший самоучитель обязательно должен быть с приложением аудио материала!
Стандартное обучение
Начать обучение с нуля можно с помощью традиционных методик, в которых изложение материала идет от простого к сложному. Здесь вы получите информацию о фонетической системе, правильном произношении, интонации, основных грамматических правилах, найдете полезные тесты и упражнения.
Одним из популярных в данной категории является «Самый лучший самоучитель английского языка» А. Петровой, И. Орловой.
Вот один из отзывов на популярном сайте litres.ru, который отражает всю суть и содержание учебника: “Данная книга мне понравилась сразу… текста, простые и понятные рисунки, четкая структура подачи материала… Все четко разложено по полочкам: начинаем с азов и заканчиваем на значительно продвинутом уровне!”
Скачать книгу на Литрес
Классическим учебным пособием является “Английский шаг за шагом” Н.А. Бонк, оформленное в 2-х частях. В нем последовательно выстроенный курс грамматики и упражнения для повторения пройденного, жизненные лексика и диалоги, необходимые сведения о фонетике. Существенный плюс — наличие аудио диска. Об этом самоучителе я подробно рассказываю на этой странице.
Скачать книгу на Литрес
Развитие речи
Для освоения разговорного английского подойдут следующие учебники.
Т. Г. Трофименко “Разговорный английский”. Без изучения грамматики вы сможете научиться самостоятельно строить необходимые фразы. Методика, которая здесь приведена, поможет запомнить нужные слова и выражения, а также усвоить произношение. Этот учебник подойдет и для детей.
Скачать книгу на Литрес
Н. Брель, Н. Пославская. “Курс разговорного английского в удобных формулах и диалогах”. Этот учебник рекомендован для продолжающих, тех, кому трудно дается разговорная речь. Он предназначен для преодоления языкового барьера.
Скачать книгу на Литрес
М. Голденков. “Hot Dog Too. Разговорный английский”. Ценное пособие, из которого вы узнаете об особенностях современного языка и сленге, распространенных идиомах, деловой переписке.
Краткие сроки
Интенсивные методики в основном предназначены для подготовки узких специалистов в какой-либо сфере. Здесь знакомство с новым материалом идет параллельно с закреплением пройденных тем.
Книга С. Матвеева “Английский язык для начинающих» интересна тем, что автор подает материал неординарным способом с учетом психологических особенностей освоения иностранного языка, заставляет работать различные виды памяти. По этой книге вы найдете отличные отзывы. “Хорошая книга, помогает выучить язык с самых азов. Понятно и доступно объясняются сложные темы, легко даны английские слова”. Кстати, о книгах этого автора у меня есть отдельная статья.
Скачать книгу на Литрес
Для получения знаний о деловой переписке, ведению переговоров и телефонных разговоров советую воспользоваться пособием С.А. Шевелевой “Деловой английский за 20 минут в день”.
Скачать книгу на Литрес
Также посмотрите издания В.А. Миловидова “Ускоренный курс современного английского языка для начинающих”, а также “ Ускоренный курс современного английского языка для продолжающих”. Отзывы на озоне (и мой личный опыт работы с ними) подтверждают, что эти самоучители заслуживают вашего внимания — “Рекомендую как для самостоятельного изучения, так и с преподавателем. Удобно. Тексты с юмором, читать интересно. Лексика полезная.” Об этой книжке у меня есть также отдельная статья.
Авторские методики
Хочется отметить издание Дмитрия Петрова, известного лингвиста и полиглота. “Английский язык. 16 уроков” — это начальный курс языка, позволяющий быстро начать разговаривать на английском. Вы узнаете базовые алгоритмы языка, научитесь применять их на практике и превратите все в навык.
Скачать книгу на Литрес
Native speaker
Здесь можно выделить учебник К.Э. Эккерсли “Самоучитель английского языка”. Он подойдет студентам ВУЗов и СУЗов. Замечательное изложение, много страноведческого материала, классная подборка примеров и упражнений сделают обучение легким.
Скачать книгу на Литрес
Онлайн самоучители
Из тех, что знаю и использую сама, могу рекомендовать:
Lingualeo. Этот сервис полноправно может заслуживать звания самоучителя. Поэтому смело регистрируйтесь и используйте — это бесплатно. А кроме этого — интересно, легко, эффективно! Об этом сервисе я писала на страницах блога — например вот отзыв моей подруги.
Если вы хотите пошаговую работу, тогда смело приобретайте платный курс «Английский с нуля». После него можно будет переходить на грамматику, приобретя курс «Грамматика для начинающих». Также пройти курс «О себе и близких на английском». Все это я пишу для тех, кто не знает, с чего начинать тут процесс. Думаю, у вас все получится!
Еще один интереснейший и набирающий в сети популярность онлайн самоучитель — Lim-English. Данный тренажер направлен на одновременное развитие восприятия на слух, чтения, письма и говорения. Занимайтесь от 30 мин в день и уровень вашего английского существенно повысится! Я попробовала и мне очень понравилось — теперь вы — уверена, получите удовольствие и результат!
В настоящее время практически все книги имеют электронные версии. Конечно, их можно скачать бесплатно, но мир не стоит на месте. Все меняется, выходят переработанные и улучшенные издания. Поэтому на мой взгляд, будет более правильным решением купить учебник. Вы получите качественный материал за небольшую плату и оцените труд автора. Если вы не новичок, выбирайте аудиокниги, они улучшат ваше восприятие иностранной речи и произношение.
Итак, к выводам
Да, самоучители можно применять, особенно стоит обратить внимание на те, которые идут в комплекте с аудио подкреплением. Но будьте готовы к тому, что в процессе обучения у вас возникнет огромное количество вопросов. И далеко не на все из них вы сможете найти ответы самостоятельно. А поиск отнимет у вас слишком много времени. Стоит ли терять такое колоссальное количество времени? Ведь время, как известно, также стоит денег.
По моему мнению, для продуктивного и эффективного изучения, а также скорейшего достижения результата, работу по самоучителю следует сочетать с уроками репетитора. Он сможет раз в неделю или две осуществлять контроль вашего обучения и целенаправленно вести вас к новому уровню. Кстати, в одной из своих статей я делала сравнительный обзор нескольких онлайн школ английского языка — обязательно ознакомьтесь — кто знает, возможно, вам захочется немного изменить свой курс познания английского от самоучителя к реальному учителю!
В любом случае, успехов вам!
P.S. Не стесняйтесь уделить минутку, чтобы заглянуть в комментарии к этому посту и задать интересующий вопрос, написать про свой личный опыт или просто дополнить информацию своими наработками. Это может оказаться полезным как для вас, так и для других посетителей!
И еще — кнопочки соцсетей «Поделись» вас ждут
Самоучитель по английскому языку — учим английский самостоятельно
На сегодняшний день существует несколько способов изучения английского языка: на курсах, в группе, при помощи самоучителей английского языка, индивидуально с репетитором или же непосредственно в языковой среде. Детальнее рассмотрим некоторые из них.
Изучение английского языка: онлайн vs. оффлайнЯзыковые курсыВыбирая этот вариант, вы однозначно усовершенствуете коммуникативные навыки, общаясь в группе сможете улучшить навыки командной работы, применяя изученный материал в диалогах с участниками. Он подойдет людям беззастенчивым, открытым для новых знакомств. Однако, при подготовке к прохождению собеседования или работе в IT компании, этот вариант не подходит.
Для людей с более конкретными целями. Студенту уделяется всё время на уроке, а хороший педагог находит подход к любому, даже самому стеснительному тихоне. Конечно, быстро найти подходящего учителя, может выйти не сразу. Также, последний может использовать устаревшую методику обучения или учебники советских времен. В результате, вы рискуете закончить зубрежкой материала, никак не применяя его на практике. Плюс ко всему, такой вид обучения вовсе не дешевый и требует немало времени — к репетитору нужно добираться (или репетитору к вам). Не каждый согласится на это, застревая и нервничая в дорожных пробках.
Сегодня всё больше и больше людей выбирают этот вариант. В первую очередь, хотелось бы подчеркнуть качество обучения. Ведь в онлайн школе английского языка все педагоги имеют профильное образование и большой опыт работы, постоянно совершенствуют свои навыки и используют только новые учебные пособия. Такие преподаватели подберут для вас правильный темп изучения языка, удобное время и место. Заниматься можно в отпуске, за границей, на улице, в подъезде и т.д. Вы точно сможете выделить час для занятия и обучаться продуктивно. Больше информации об изучении английского по Скайпу в EnglishDom.
Пройдите тему в онлайн тренажере:Самостоятельное изучение английского
Такой метод подойдет тем, кто обладает хорошей самодисциплиной, силой воли и огромной мотивацией, так как все рано или поздно начинают лениться. Но, когда вы принадлежите самому себе, то сами можете как ускориться так и замедлиться, в зависимости от обстоятельств. Вы сами выбираете на что делать основной уклон и какой вид самоучителя английского выбирать. В наше время — их огромное множество: видеоканалы, книги, специализированные сайты, адаптированные художественные книги, аудио уроки и т.д. К тому же, этот метод не требует вложения денег, вы можете экономить и приобретать новые знания абсолютно бесплатно через интернет, однако, вам придется приложить значительное количество усилий на подбор соответствующего учебника и составления плана своих занятий. Также, осваивая английский по самоучителям, вы же понимаете, что никто не будет проверять ваши ошибки и помогать вам их исправлять. К примеру, бывает так, что делая несущественную помарку, изучающий привыкает пользоваться ею в речи, и переучиться пользоваться фразой или словом корректно становится намного тяжелее.
Читай также
Репетиторы английского языка в Киеве — Святошинский район
Самоучители по английскому языкуОдин из самых удачных вариантов — Базовый курс английского языка. К.Э. Эккерсли. Основной упор в этом учебнике делается на устную и письменную речь. Благодаря этой книге вы сможете получить систематизированные знания, так как каждая новая тема дается вместе с повторением предыдущего материала. К книге также прилагается диск, где можно прослушать живую речь и научиться правильно произносить слова. В самоучителе много интересных и забавных историй, примеров + все очень подробно описано. К сожалению, весь учебник черно-белый, поэтому иллюстрации могут вызвать легкую скуку. Если вы визуал или просто любитель ярких картинок и для вас это критично, то не спешите. Учебник точно подойдет тем, кто не любит грамматику, так как ее здесь не много, и тем, кто изучает английский для повседневного общения.
«Английский язык. Интенсивный курс» от Черненко Д.В. — актуален если вы любите грамматику (или чувствуете небходимость её подтянуть) и хотите разобраться во всех тонкостях использования времен. Здесь вся грамматика разобрана детально и понятно, в книге также есть много полезных упражнений, а в конце — ответы, и вы сможете сами себя проверить, или, в крайнем случае, если задание вдруг оказалось слишком сложным, подсмотреть ответ. Но все-таки такой самоучитель английского языка для начинающих лучше брать с еще одним дополнительно, ведь изучение одной лишь грамматики явно не сможет помочь вам заговорить свободно.
Читайте также: Уровни английского языка — от Beginner до Proficiency
Для начинающих постигать нюансы языка и желающих пользоваться английскими словами в речи, подойдет
Проводить время в интернете, как известно, можно и нужно с пользой. Ресурс различных видеоматериалов Youtube в этом деле просто незаменим. Интересно же послушать человека, который действительно разбирается в том, о чем говорит. Это поможет вам в обучении и непременно расширит знания в английском. Рекомендуется сразу обзавестись блокнотом и записывать важную для себя информацию. Ниже приведен список полезных каналов для изучения:
Anglo-Link Главная фишка канала в том, что он полностью систематизирован по уровням знания и отлично подойдет как самоучитель английского языка и для beginners, и для advanced. Короткие видео помогут вам улучшить словарный запас и легче воспринимать речь на слух.
ВВС Learning English На этом канале можно посмотреть видео, где обычным прохожим в Лондоне задают разные вопросы и они с радостью на них отвечают. Отличная практика восприятия приятной британской речи на слух. Сайт наполнен разными развлекательными роликами + на канале есть специальный сериал для изучающих английский.
EnglishDom На нашем канале постоянно пополняется контент, есть уроки и вебинары как от русскоязычных педагогов, так и от носителей языка, а ситуативные видео помогут вам постичь тонкости английского языка.
EngVid. Learn English with Ronnie Канал от Ронни содержит много видео о тонкостях грамматики. Вся информация подается с юмором легко и доступно.
JenniferESL Отличный канал, дающий возможность систематизировать ваши занятия английским и развивать языковые навыки. Педагог Дженифер раскрывает секреты правильного произношения, повышения качества разговорной речи, проработки грамматики.
Private English Portal Преподаватель Стив имеет огромный опыт работы в сфере образования. Смотря его видео, верится, что уроки английского могут быть действительно простыми и понятными для всех. В этом, собственно, и есть основное достоинство канала, который подойдет для пользователей любого возраста и уровня владения английским.
PodEnglish Авторы этого канала используют пятиминутные тематические видео, которые включают в себя три этапа: watch (смотри), learn (учи), try (пробуй), именно поэтому любая фраза, слово или идиома запоминаются. Здесь собраны разнообразные темы, начиная с простых, вроде погоды или приветствия людей, заканчивая более сложными, такими как обсуждение финансового состоянии или политики.
Real English Ролики на этом канале дают возможность узнать, как звучит речь в повседневной жизни и какие фразы носители языка используют чаще всего. Вы также сможете проверить, как усвоили материал — на странице с видео есть ссылка на сайт, где можно, сделав пару упражнений, попрактиковаться и закрепить выученное.
Speak English with Misterduncan Один из самых первых каналов, который можно использовать в качестве самоучителя английского. Британец Misterduncan радует своих подписчиков видео о разговорной речи и британском сленге, о ежедневных фразах и повседневной жизни просто англичанина.
Интерактивные английские курсы для самообученияВас также может заинтересовать: Top 10 Учебников по коммуникативной методике изучения английского
После просмотра разнообразных видео вам, наверняка, захочется немного разнообразить свои занятия. Здесь в помощь придут интерактивные курсы.
EnglishDom — просто зарегистрировавшись, в личном кабинете вас будет ждать веселый помощник–робот Роби, который подскажет с чего начать, а также будет мотивировать вас и помогать следить за вашими успехами. В разделе лексики вы сможете поиграть в игру на запоминание слов, послушать аудиозаписи и потренировать правописание. Раздел «Разговорник» предложит ознакомиться с самыми распространёнными, озвученными фразами.
Помимо всех описанных самоучителей английского языка, вы также можете посещать разговорные клубы в вашем городе или, уютно устроившись дома, посетить разговорный клуб от EnglishDom, где выберете преподавателя (носителя языка или русскоязычного) и тему (общий английский, основные ошибки, идиомы и фразовые глаголы и т.д.). Все занятия разговорного клуба проходят в занимательной атмосфере с погружением в языковую среду.
Изучение английского самостоятельно по видеоTed — сайт с небольшими видео, где специалисты, носители языка, рассказывают о науке, технологиях, психологии, экономике и других темах. Небольшие лекции доступны для просмотра с субтитрами на нескольких языка, в том числе русском или английском.
Screen Rant — отличный канал YouTube, где создатели выкладывают уникальные видео: киноляпы популярных сериалов и фильмов, шутки и факты о разных кинолентах. К каждому видео прилагаются хорошие субтитры, так что с легкостью можно понять о чем говорят в видео.
EnglishDom. Practicum — здесь можно посмотреть увлекательное видео на различные темы, каждый сможет выбрать себе видео по душе и по уровню знаний, а также есть возможность выполнить несколько упражнений после просмотра, проглянуть подборку интересных выражений из видео с переводом на русский.
Читай также
Американская система оценок в школах
Учить самостоятельно или обратить к профи?Безусловно, выбрать только один самоучитель английского языка практически невозможно. Разумно будет разнообразить свои занятия, выбрав несколько вариантов и эффективно комбинировать их. Практически все самоучители по английскому языку доступны в любое время суток и в любом месте, поэтому улучшайте свой английский удобным для вас способом и владейте знаниями. Надеемся, что эта подборка самоучителей поможем вам самостоятельно совершенствовать знания по английскому языку. Также приглашаем вас на индивидуальные уроки английского по Скайпу — обучение начинается с бесплатного вводного урока. Учитесь и будьте довольны собой
Большая и дружная семья EnglishDom
заявка отправляется
Пожалуйста, подожди…
Занимайся английским бесплатно
в онлайн-тренажере
С каждым днем знание иностранного языка становиться все более востребованным во многих сферах нашей жизнедеятельности. Например, зная язык можно вступить в команду волонтеров на престижных мировых спортивных соревнованиях, вы без труда сможете общаться в любой заграничной поездке. Но знания, полученные в школе, не всегда дают прочный языковой навык и что же делать в данной ситуации? Большинство из нас не имеет возможности общаться с носителями языка, поэтому мы предлагаем уникальную методику обучения онлайн самоучитель английского, основанный на следующих материалах:
Наш бесплатный аудио самоучитель представляет собой хорошо построенную методику обучения. Пройденные уроки позволят вам в дальнейшем, оказавшись за границей свободно общаться с носителями языка и совершенствовать свои знания. Преимущества бесплатного курсаСамоучитель для начинающих в основном представлен файлами для онлайна прослушивания в формате mp3. Подобное аудио обучение позволяет сократить до 30% времени, необходимого для запоминая новых слов, то служит вспомогательным инструментом для тренировки речевой памяти и позволяет во много раз увеличить объем воспроизводимых знаний. Ожидаемые результаты от самостоятельного изученияЧто дает наш аудио курс и самостоятельное изучение английского? Отзывы наших пользователей говорят о том, что многие остались довольны курсом и регулярно посещают сайт для повторения и усвоения пройденного материала, а также для получения новых знаний из новых размещаемых материалов.
Итак, основные преимущества аудио уроков:
Вернуться к списку статей |
Английский язык. Самоучитель английского языка для начинающих с нуля
Порядок прохождения курса
Материал в уроке расположен строго в том порядке, в котором его нужно изучать. Другими словами, надо сначала прочитать грамматические пояснения, тщательно продумать все примеры и сравнить их с переводом этих примеров, который дается там же.
Разделы словообразования изучаются в том же порядке.
Идущие за ними упражнения в чтении обязательно нужно выполнять вслух.
После этого следует переходить к изучению текста, который является центром урока. К тексту следует обращаться повторно до полного усвоения его содержания. Рекомендуется сначала прочитать текст про себя, обращаясь за справками к словарю и примечаниям, которые даются сразу после текста, и возвращаясь, в случае надобности, к грамматическим разделам. Добившись полного и точного понимания текста, перечитайте его еще раз (желательно вслух), переведите устно, а если позволяет время, то и письменно.
После этого нужно прочитать раздел, посвященный анализу слов (он дается в каждом уроке начиная с восьмого), и выучить новые слова. Это особенно трудоемкая, но абсолютно необходимая работа. Упражнения, содействующие запоминанию слов, вы найдете в каждом уроке. Особенно важно постоянно повторять слова пройденных уроков как путем чтения текстов, так и всеми другими способами. О том, как проводить эту работу, говорится подробно в уроке 6 (раздел «О запоминании слов»).
После этого приступайте к выполнению упражнений. Делайте их в том порядке, в котором они приведены в самоучителе. Выполнять их нужно письменно, если нет указания об устном выполнении данного упражнения. Пропускать упражнения не рекомендуется.
Контрольные работы по каждому уроку тоже выполняются письменно (кроме тех заданий, где есть указание об их устном выполнении).
Правильность выполнения контрольных работ обязательно проверьте по ключу к контрольным работам и исправьте ошибки, если они есть.
До перехода к следующему уроку надо выполнить повторительные задания, которые даются после контрольных работ (начиная с урока 2). Попутно восполняйте и все обнаружившиеся пробелы в знаниях.
Раздел «Дополнительный материал для устной речи» (уроки 4-18) является факультативным (необязательным). Просматривайте его и выбирайте то, что вы сочтете нужным. Встречающиеся в этих разделах слова включены в словарь самоучителя, но не считаются необходимыми для дальнейшего прохождения курса. Например, в факультативном материале к уроку 8 встретилось слово German немецкий, но в уроке 24 оно выделено как новое. Другими словами, незнание слов этого раздела не мешает изучению основного материала.
Из материала для дополнительного чтения (уроки 8-25) выбирайте тексты по своему усмотрению. В этот раздел включены газетные сообщения, научно-популярные заметки, анекдоты, стихи, пословицы, поговорки, распространенные цитаты. Выбирайте для чтения то, что вам покажется интересным или полезным. Основные слова этого раздела также включены в словарь самоучителя, а менее распространенные слова и выражения объясняются в самих этих разделах (в примечаниях или в самом тексте).
Для занятий заведите себе общую тетрадь, чтобы можно было возвращаться к выполненным упражнениям. Писать на отдельных листках не рекомендуется. Для слов нужна отдельная тетрадь, алфавитный блокнот или карточки (указания по ведению словаря см. в уроке 6).
При изучении шести последних уроков самоучителя вам будет нужен общий англо-русский словарь. Указания, как им пользоваться, даны в уроке 21.
Дальнейшие методические указания вы найдете в самих уроках. Заниматься надо регулярно. Каждый урок рассчитан в среднем на две-три недели работы при занятиях три раза в неделю по часу-полтора. Если вы сможете заниматься по часу пять раз в неделю, будет еще лучше. Помните, однако, что эти 4-5 часов занятий в неделю вы не сможете восполнить занятиями по пять часов один раз в неделю, в выходной день. Такая работа будет гораздо менее эффективной, так как от занятия к занятию вы будете забывать часть пройденного и в общей сложности потратите гораздо больше времени.
Заниматься без помощи преподавателя — дело нелегкое. Оно требует сосредоточенности и организованности. Но изучить язык таким образом можно.
«Английский для русских» Наталья Борисовна Караванова » Как выучить английский
Вы учите английский несколько лет: в школе, в вузе, с репетитором, самостоятельно? А результаты вас не радуют? Как правильно учить и, наконец, выучить английский?
Об этом мы расскажем вам на страницах нашего сайта.
А если вас интересует русский язык как иностранный? И учебники и книги по этой специальности? Тогда рекомендуем вам зайти на сайт: http://survival-russian.ru/ Или посмотрите страничку «Русский язык для иностранцев» на этом сайте. А если вы хотите почитать о секретах красоты или французской кулинарии, то перейдите по этой ссылке.
Купить учебники английского для русских недорого
Уважаемые изучающие и преподающие английский язык!
Осталось несколько учебников с дисками из серий «Английский для русских», «Английский, который всегда с тобой», «Английский понятный и близкий».
Многих из них уже нет в магазинах. И всё время спрашивают, где их можно купить. Например, очень популярный «Реальный самоучитель английского языка. Начальный уровень».
И вот «поскребли по сусекам» и нашли несколько экземпляров.
Если вам нужны эти учебники, напишите нам в форме обратной связи. И мы вышлем их в любой город.
Как выучить английский. О наших учебниках
Мы предлагаем вам не традиционные, а новые современные учебники. Прежде всего:
Они написаны известным специалистом по методике изучения иностранных языков Натальей Борисовной Каравановой на основе коммуникативной методики и ориентированы прежде всего на русскоговорящих учащихся.
Как выучить английский. Отличия наших учебников от традиционных
Что это значит? Это значит, что учебники нацелены не на пассивное владение языком — это когда вы знаете много слов и грамматику, а говорить не можете. И плохо (или совсем) не понимаете, когда говорят иностранцы. А прежде всего — на активное владение языком, на общение, на коммуникацию. Ведь знать язык – это прежде всего говорить на нём и понимать его.
Почему важно, что учебники должны быть ориентированы на русскоязычных учащихся? Потому что согласитесь, одно дело учить английский язык французу. У него в родном языке есть и артикли, и система времён и другие похожие грамматические категории. И совсем другое дело — учить английский русскоговорящему человеку. Ведь он понятия не имеет об артиклях, неправильных или фразовых глаголах. Следовательно, нужна совсем другая методика изучения.
А нам предлагают учебники общего типа, рассчитанные на любую национальность.
Итак, важные отличия наших учебников. Во-первых, они направлены на активное владение английским языком. А, во-вторых, в них подробно рассматриваются те темы, которые трудны именно для русскоговорящих учащихся. И постоянно подчёркивается: в русском языке так, а в английском — по-другому. Значит, обращается особое внимание на самые трудные аспекты английского языка. И это «красной нитью» проходит через все учебники.
Как выучить английский. Что ещё вы найдёте на нашем сайте?
- Мы дадим простые, но эффективные советы, как учить английский язык, в том числе и самостоятельно. Без всяких курсов и репетиторов.
- Познакомим с интересными фактами английского языка, например, с неологизмами. Знаете, что это такое? Это новые слова, которые недавно появились в английском. Они вошли в повседневную жизнь англичан или американцев. А мы о них не знаем и значит, не понимаем.
- А ещё вы узнаете что такое ложные друзья переводчика. Это понятие тоже вам незнакомо? Посмотрите! Возьмём такое простое, похожее на русское, слово data. Что оно значит? На первый взгляд — дата. А вот и нет! Здесь таится ловушка. Слово data переводится как «данные, информация, сведения». А наше слово дата переводится на английский словом date. И таких слов множество. Их список вы можете посмотреть на соответствующей странице.
И ещё интересные страницы сайта:
В общем, мы постарались сделать всё, чтобы изучение английского было не скучным, а интересным и эффективным.
Кроме того, мы регулярно размещаем на сайте новости, которые также могут заинтересовать вас.
Добро пожаловать на наш сайт!
Welcome to the world of English!
Группы «Английский для русских» в социальных сетях:
Одноклассники
В контакте
Самые лучшие самоучители английского языка: рейтинг книг для начинающих
В любом путешествии, на различных рабочих поприщах, для поступления в ВУЗы страны и зарубежья требуется английский язык, и хороший самоучитель по нему поможет пройти обучение без преподавателей, репетиторов и различных курсов. В статье мы расскажем, как это лучше сделать и на каком учебном материале, приведем перечень пособий.
Как выбирать книгу и рабочую тетрадь
Первое, что нужно сделать перед выбором, – это проанализировать себя, свои личные качества (прилежность, целеустремленность, мотивированность) и уровень подготовки. На основании этого можно будет в дальнейшем строить весь образовательный процесс. Важно ответить на следующие вопросы:
- Какая база знаний, умений и навыков есть на настоящий момент. Большинство учебников и занятий построено по принципу оценки А1, А2, В1 и далее вплоть до С2 (уровень носителя языка).
- Каких целей требуется достичь.
- Что ставится во главу угла: грамматика, лексика, профессиональный или разговорный лексикон. Часто случается ситуация, когда достаточно обладать базовыми фразами, активным словарным запасом и примитивными умениями строить предложения. В других случаях требуется освоить точный терминологический аппарат и довести произношение до идеального. Например, для проживания в другой стране или для работы в интернациональной среде.
- Возраст учащегося. Для школьника и дошкольника подойдут одни методические пособия, для взрослого – совершенно другие. Это обусловлено когнитивными способностями, объемом памяти.
- Лучшие пути восприятия. Одному человеку легче воспринимать звучащую речь, а другому – письменную. В соответствии с этим можно выбрать аудиокнигу или бумажный носитель. Но желателен комплексный подход. Сейчас фактически все издания содержат компакт-диск с мультимедийными файлами.
- Время, отведенное на занятия. Уроки один раз в неделю или ежедневно. В первом случае стоит брать сразу большие разделы, детально углубляться в них. А для второго варианта подойдут методички с подробным членением на подглавы, которые можно быстро освоить.
Ответить на приведенные выше вопросы можно самостоятельно, с помощью онлайн-тестов, а также опираясь на мнение преподавателей. Когда вы определились, для чего и как вы будете изучать языковой материал, нужно понять, какой самоучитель английского языка выбрать из многообразия ассортимента. Ответим на это списком критериев, которым должно соответствовать любая обучающая книга.
Параметры выбора
Учебник должен быть:
- С простой и понятной структурой и формой изложения.
Это актуально как для юных учеников, так и для взрослых. Понять новые правила, запомнить исключения и ориентироваться в условиях употребления фраз можно только в случае доступного объяснения. Если в книге используются только научные слова без их толкования, приводятся примеры из высокой художественной литературы, применяются косноязычные фразы – не то что учить, а просто воспринимать информацию будет тяжело.
Базовое условие – сами правила должны объясняться на русском языке с примерами на английском. Это позволит добиться максимального понимания.
- В основе – научные методики, лингвистические теории.
Не любое объяснение будет понятно и закрепится в памяти. Специальная наука – дидактика – разработала множество подходов, которые должны быть учтены составителями курса и использованы при создании теории и рабочих тетрадей. Это касается множества аспектов: последовательности тем, принципа цикличности и наращивания знаний, использования и закрепления ранее полученных сведений, наглядности. Это и многое другое необходимо применять при подборе и построении материала.
- Научность и достоверность.
Уточните информацию о составителе: какую научную степень он имеет, есть ли опыт работы преподавания, были ли созданы и использованы другие методические пособия.
- Соответствие языковому уровню.
Не занижайте собственный потенциал, не расходуйте ценное время зря на повторение алфавита, если вы с этим давно справились. Помните, что лучше прикладывать больше усидчивости, терпения, целеустремленности, чем расходовать их на бесполезную деятельность. Аналогично плоха и вторая ситуация – брать учебник завышенной категории при отсутствии крепкой лингвистической базы – вы ничего не поймете и попросту потеряете мотивацию.
- Дополнительные разделы по фонетике.
Особенность использования даже самых хороших самоучителей английского языка – отсутствие разговорного элемента. Без педагога труднее всего корректировать произношение. Фонетический курс может содержаться на компакт-диске. Не пренебрегайте им, так как даже при хорошей памяти, богатом активном словарном запасе и безупречной грамматике без правильного выговора вы рискуете остаться непонятым. Тренируйте произношение, оттачивайте сложные звуки вместе с диктором.
- Наличие рабочей тетради.
Каждый теоретический блок должен быть закреплен письменными и устными упражнениями, а затем следует проконтролировать результат. Любое обучение строится на трех этапах: получение новых знаний, закрепление, контроль.
- Наличие иллюстраций.
Имеются ввиду не только картинки при изучении текста. К этому принципу мы относим схемы, алгоритмы, таблицы, диаграммы и все, что может помочь задействовать визуальный канал восприятия. Лучше всего воздействовать комплексно – через текст, картинки, звук и видео.
- Возрастная категория.
Для разного возраста различные принципы подачи информации. Чем старше учащийся, тем больше его когнитивные способности, объем памяти, ассоциативный ряд. Считается, что дети хорошо запоминают сведения в игровой форме, у них работает визуальный процесс запоминания. Здесь актуально расставлять слова в различных фигурах, писать их разными цветами. Взрослому ученику с характерным логическим восприятием помогут задачки на соответствие, активное действие эвристического подхода.
Также от возраста зависят темы для изучения. Ребенку нужно давать тематические блоки, связанные с играми, животными. В то время как старшему поколению больше пригодятся практические навыки: моделирование ситуаций разговора в кафе, магазине, транспорте.
- Внешний вид и удобство использования.
Это чисто практический совет – берите такие книги, которые вам проще носить с собой. Часто играет на руку мягкая обложка, так как она легче. Обратите внимание на яркость печати, на размер шрифта и качество бумаги. Это не самое главное, но при обучении важно, чтобы вам было комфортно и ничто не отвлекало от процесса получения новых знаний.
Мы привели большое количество правил и рекомендаций. Но многообразие ассортимента в книжном магазине все еще пугает. Расскажем про разновидности книг.
Виды самых лучших самоучителей английского языка – какой подходит именно вам
Различают следующие подвиды.
- Традиционные учебные пособия.
Их ценность – методическое, последовательное изложение курса. Применяется одна из основных дидактических истин – учите от простого к сложному, то есть от фонетики к фразам и текстам. Темы изучаются в комплексе, не являются основным уклоном, а лексика познается не в системе тематических блоков, а разрозненно, в качестве иллюстраций, примеров. Дополнительно всегда есть доступные упражнения. Минус – отсутствие интереса у учащихся и малая практическая ориентированность.
- Разговорная речь.
Цель таких учебников – натаскать ученика на определенные темы, которые чаще всего требуются в реальных условиях путешествий, при общении с иностранцами. При этом упор делается на аудирование и говорение, а не на грамматику. Лексический запас тоже очень важен, но слова для заучивания подбираются из частотных.
У таких самоучителей как правило не начальный уровень, предполагающий наличие языковой базы. Обычно Они имеют узкую тему, например, юриспруденция, медицина. Задача – подготовить специалиста к общению на определенную тематику.
Это сайты. Могут быть платными или бесплатными. Предполагают прохождение тем и решение упражнений в режиме реального времени перед компьютером, смартфоном. Достоинство в том, что есть возможность применять множество мультимедийных методов образования – это не только иллюстрации, но и видеоролики, аудиозаписи. При этом они не требуют дополнительного оборудования. Минус в том, что при выполнении заданий с помощью клавиатуры не задействуется мышечная память написания слов. Да и технические средства могут подвести, бумага – нет.
Помимо основной классификации в отдельную группу выделяются авторские разработки. Это издания, которые построены на инновационных методах: в них задействованы игры, новые приемы, художественные подходы.
Для чего нужен самоучитель
Он необходим для процесса обучения, который должен быть:
- Самостоятельным. Без привлечения репетиторов и учителей.
- Эффективным. В конце изучения достигнуты поставленные цели.
- Увлекательным. Интерес может подпитываться формой подачи.
Учить иностранный полезно всем: от школьников и абитуриентов ВУЗов до соискателей работы. Международные лингвистические знания пригодятся вам для коммуникации с иностранцами, путешествий и бытовых потребностей: прочитать этикетку или руководство к использованию, различать слова любимой песни, смотреть сериалы и фильмы, не дожидаясь русской озвучки.
Когда мы разобрались с целями, задачами, а также с критериями выбора книжки, расскажем о самых известных печатных продуктах.
Топ-8: рейтинг популярных самоучителей английского языка
Вот самые покупаемые учебники для самостоятельной подготовки, с которыми можно получать языковые навыки и закреплять умения.
Английский шаг за шагом
Составители – Н.А. Бонк, И.И. Левина, И.А. Бонк.
Фамилия Бонк известна в лингвистической среде многими поколениями исследователей и практических деятелей. Это традиционное пособие с логической, годами выверенной подачей, с хорошей тематической базой и множеством интересных, но не слишком развлекательных упражнений. Традиционность – это основа учения, по мнению издателей. В комплекте есть диск с текстами для аудирования. На них – прекрасный не американский, а великобританский акцент. И никакой чопорности.
Полиглот, 16 уроков английского языка
Выпускается под редакцией Дмитрия Петрова. Шестнадцать занятий – это реальный срок, после которого можно начать говорить иностранными словами, строить простые грамматические конструкции, запомнить базовую лексику. Лучше начинать учить вместе с двумя дисками формата DVD – так вы не только услышите правильный выговор, но и станете перенимать уверенность лектора и его свободу в общении. Подходит для взрослых, студентов и учеников старших классов.
Самоучитель английского языка
К.Э. Эккерсли издавал свои пособия с 1931 года. То, что учебники до сих пор почитаются в среде преподавателей-лингвистов, говорит о монументальности их принципов, дидактически верном подходе и проверенных годами методиках. Сегодня все чаще предлагается комбинировать теоретический блок из Эккерсли и практику из более современных источников, чтобы перенимать актуальную лексику и фразеологию.
Английский для дебилов
Экстравагантный рекламный ход с вызывающим названием придумал автор – Макс Инглиш. Имя «ученого» тоже с натяжкой можно назвать классическим, ведь это никнейм в мессенджере Telegram, популярном среди молодежи. На эту аудиторию и рассчитан его курс. Как в своих постах в социальных сетях, так и на страницах печатной версии издания Макс Инглиш придерживается двух правил:
- академическая точность информации;
- современный подход и сленговая, разговорная лексика.
Это делает книгу одновременно и занимательной для молодых нерадивых учеников, и актуальной для реального общения с носителями того самого «инглиша».
Английский без репетитора
О.Н. Оваденко, автор популярного печатного издания, главным в обучении считает прилежность и последовательность. Ее мало волнуют красочные иллюстрации, их здесь найти трудно. По сути это учебник для тех, кто хочет получить не только базовые разговорные знания, но глубокое понимание языка.
Достоинства:
- Очень четкая структура с точным переходом от одной главы к другой
- Большое приложение-словарь с русской транскрипцией слов – упор на лексику.
- Подробное и доступное объяснение всех грамматических правил с исключениями и многочисленными примерами.
- К упражнениям даны ответы – это позволяет не только тренировать себя, но и проверять.
Самый лучший самоучитель английского языка
Не самые скромные составители А.В. Петрова и И.А. Орлова не зря называют свое пособие лучшим. Оно является таким для категории «с нуля». Здесь можно найти такие нюансы произношения звуков, которые в других учебниках часто пропускаются. Еще одно достоинство – это выверенность каждого символа. Вы не найдете здесь ни одной ошибки.
Английский язык. Самый нескучный самоучитель
Еще один «самый» представляет Ю. Жданов. Его методика уникальна соответствием любому возрасту, потому что изучение кажется простым и легким, дается без особенного труда в виде игр, развлечений, шарад. Изложение – с юмором и увлекательными сносками. Вся информация разделена по тематическим блокам и нацелена на реальные бытовые ситуации. За 16 уроков автор предлагает узнать базовые фразы, научиться поддерживать беседу.
Быстрый английский
С. Матвеев делает акцент на простоту изложения и упрощение всех правил. С ним вы можете не узнать нюансов, исключений. Зато научитесь применять классические фразы, строить предложения, получите начальный уровень и, главное, поверите в свои силы. Потому и слоган у учебника: «Ты сможешь!».
Плюсы и минусы самостоятельного обучения
Достоинства:
- Дешевизна. Языковые курсы с педагогом – одни из самых дорогостоящих. Вам нужно купить только методическое пособие и ручку, чтобы покорять лингвистические вершины.
- Выбор времени и продолжительности занятий.
- «Свой» темп изучения материала.
Недостатки:
- Вопросы дисциплины.
- Отсутствие методического контроля.
- Трудности произношения – только со стороны можно корректировать дикцию.
Мы познакомили вас с самыми лучшими самоучителями по английскому для начинающих с нуля, а также с книгами для продолжающих. Выбор остается за вами!
The Utimate Guide для начинающих
Загрузите
БЕСПЛАТНО Natural Spanish Grammar PackВведите свой адрес электронной почты ниже, чтобы получить бесплатный доступ к моему Natural Spanish Grammar Pack и научиться усваивать испанскую грамматику естественным образом через рассказы.
Да Пожалуйста Нет, спасибо
Какой у вас текущий уровень испанского?
Начинающий Средний Продвинутый
Бесплатное пошаговое руководство:Как зарабатывать полный рабочий день дома с вашим английским… даже с НУЛЕВЫМ предыдущим опытом преподавания.
Да, расскажите подробнее! Нет, спасибо!
Скачать эту статью как БЕСПЛАТНО PDF ?Да Пожалуйста Нет, спасибо
Какой у вас текущий уровень тайского языка?
Начальный Средний Продвинутый
Скачать эту статью как БЕСПЛАТНО PDF ?Да Пожалуйста Нет, спасибо
Какой у вас текущий уровень испанского?
Начальный Средний Продвинутый
Скачать эту статью как БЕСПЛАТНО PDF ?Да Пожалуйста Нет, спасибо
Какой у вас текущий уровень кантонского диалекта?
Начальный Средний Продвинутый
Скачать эту статью как БЕСПЛАТНО PDF ?Да Пожалуйста Нет спасибо
Какой у вас текущий уровень по русскому языку?
Начальный Средний Продвинутый
Скачать эту статью как БЕСПЛАТНО PDF ?Да Пожалуйста Нет, спасибо
Какой у вас текущий уровень корейского языка?
Начальный Средний Продвинутый
Скачать эту статью как БЕСПЛАТНО PDF ?Да Пожалуйста Нет, спасибо
Какой у вас текущий уровень японского языка?
Начальный Средний Продвинутый
Скачать эту статью как БЕСПЛАТНО PDF ?Да Пожалуйста Нет, спасибо
Какой у вас текущий уровень итальянского?
Начальный Средний Продвинутый
Скачать эту статью как БЕСПЛАТНО PDF ?Да Пожалуйста Нет, спасибо
Какой у вас текущий уровень немецкого языка?
Начальный Средний Продвинутый
Скачать эту статью как БЕСПЛАТНО PDF ?Да Пожалуйста Нет, спасибо
Какой у вас текущий уровень французского?
Начинающий Средний Продвинутый
Украсть мой метод?
Я написал несколько простых писем, объясняющих методы
, которые я использовал, чтобы выучить 8 языков…
Получите их бесплатно
Какой язык вы изучаете?
Арабский Кантонский Китайский
Какой у вас текущий уровень [язык]?
Начинающий Средний Продвинутый
Да, я готов
Присоединяйтесь к 62 185 другим изучающим языки, получающим советы по изучению историй по электронной почте …
«После того, как я начал использовать ваши идеи, я учусь лучше, дольше, с большим страсть. Спасибо за изменение жизни! » — Даллас Несбит
Да, пришлите мне советы Нет, они мне не нужны
Какой язык вы изучаете?
Я изучаю Китайский Я изучаю Французский Я изучаю Немецкий Я изучаю Итальянский Я изучаю Японский Я изучаю Корейский Я изучаю Португальский Я изучаю Русский Я изучаю Испанский Я изучаю Турецкий Я изучаю другой язык
Какой у вас текущий уровень [язык]?
Начальный Средний Продвинутый
Скачать эту статью как БЕСПЛАТНО PDF ?Да Пожалуйста Нет, спасибо
Какой у вас текущий уровень китайского языка?
Начальный Средний Продвинутый
Какой язык вы изучаете?
Я изучаю Китайский Я изучаю Французский Я изучаю Немецкий Я изучаю Итальянский Я изучаю Японский Я изучаю Корейский Я изучаю Португальский Я изучаю Русский Я изучаю Испанский Я изучаю Турецкий Я изучаю другой язык
Какой у вас текущий уровень [язык]?
Начинающий Средний Продвинутый
Присоединяйтесь к 62 185 другим изучающим языки, получающим советы по StoryLearning по электронной почте…
«После того, как я начал использовать ваши идеи, я учусь лучше, дольше и с большим энтузиазмом. Спасибо за изменение жизни! » — Даллас Несбит
Да, пришлите мне советы Нет, они мне не нужны
Какой язык вы изучаете?
Я изучаю Китайский Я изучаю Французский Я изучаю Немецкий Я изучаю Итальянский Я изучаю Японский Я изучаю Корейский Я изучаю Португальский Я изучаю Русский Я изучаю Испанский Я изучаю Турецкий Я изучаю другой язык
Какой у вас текущий уровень [язык]?
Начальный Средний Продвинутый
Найдите идеальный языковой курс для себя!
Ищете учебные материалы мирового класса, которые помогут вам сделать прорыв в изучении языка?
Нажмите «начать сейчас» и заполните этот небольшой опрос, чтобы найти идеальный курс для вас!
Начать сейчас
Вам нравится идея обучения через историю ?
Да Нет
Какой язык вы изучаете?
Я изучаю Кантонский Я изучаю Китайский (Мандаринский диалект) Я изучаю Французский Я изучаю Немецкий Я изучаю Итальянский Я изучаю Японский Я изучаю португальский Я изучаю Русский Я изучаю Испанский
Какой у вас текущий уровень [язык]?
Начинающий Средний Продвинутый
Полная программа Помощь в аудировании Помощь в грамматике
Discover Scratch For Kids и онлайн-классы Scratch
В этой статье мы расскажем о языке программирования Scratch и о том, как Juni Learning использует его для обучения начинающих программистов в возрасте от 8 до 11 лет.Узнайте больше о том, что такое Scratch, или продолжайте читать ниже.
Язык программирования Scratch
Возможно, Scratch не является языком программирования, с которым вы знакомы, если выросли, слыша о BASIC и Cobol, но сегодня Scratch используется в колледжах, университетах и на семинарах для обучения основам программирования как детей, так и взрослых .
▶ Попробуйте: Как создать игру с нуля: шаг за шагом для начинающих 8+
Scratch — это проект, созданный группой Lifelong Kindergarten Group MIT Media Lab .Хотя он был разработан для учащихся в возрасте от 8 до 16 лет, существует мощное онлайн-сообщество участников, и сегодня учащиеся всех возрастов начинают свое путешествие по информатике с Scratch. Фактически, Scratch включен в учебные программы по информатике многих университетов, в том числе университетов Миссури и Гарварда. Также существует активное сообщество Scratch, создающее новые проекты каждый день.
Scratch-программирование использует блоки кода с перетаскиванием, чтобы научить студентов программировать .Пользователям предлагаются красочные символы (так называемые спрайты), простые для понимания блоки кода и сцена, на которой они могут увидеть, как их код оживает на их собственном компьютере, щелкнув зеленым флажком. Это отличный способ познакомить студентов с программированием.
▶ Подробнее: Что такое Scratch: Чем отличается кодирование методом перетаскивания и текстовыми языками?
Вместо того, чтобы заставлять учащихся запоминать команды, Scratch предлагает учащимся подумать о , что , они хотят, чтобы код выполнял шаг за шагом, и о том, как различные блоки могут помочь им в достижении их целей.Они пытаются переместить спрайт? Им наверное нужен блок в разделе «Движение». Нужно ли им повторять шаг более одного раза? Вероятно, им стоит дотянуться до повторного блока.
Такая среда обучения помогает тем, кто учится программировать, более абстрактно думать о том, чего они пытаются достичь, и не перегружаться деталями. Хотя Scratch достаточно прост, чтобы учиться самостоятельно, многие студенты просто не знают, с чего начать. .
Как Джуни использует царапины?
Juni Learning — это онлайн-академия, в которой студенты работают 1: 1 или 1: 2 с частным инструктором. Мы предлагаем полный курс компьютерного программирования для учащихся в возрасте 8-18 лет. Многие младшие ученики Джуни начинают свой путь программирования с Scratch , особенно учащиеся младше 12 лет. С помощью Scratch инструкторы могут прививать или настраивать навыки математики, чтения и критического мышления, одновременно обучая студентов программированию с помощью технологий, которые визуально привлекательный и не подавляющий. Студентам не нужно беспокоиться о синтаксических деталях, таких как пунктуация и отступы с помощью Scratch. Позже студенты проходят наши курсы по Python, Java, HTML и Javascript, охватывая темы уровня колледжа по алгоритмам и структурам данных.
Для детей от 8 до 11 лет наш курс Scratch Level 1: Game Superstar фокусируется на основах Scratch: прослушиватели событий, циклы, условные операторы, ввод данных пользователем, декартовы координаты, переменные и рассылка сообщений. После завершения этого курса студенты могут разрабатывать и программировать свои собственные игры на Scratch и готовы перейти на Scratch Level 2.
Для детей от 9 до 12 лет наш курс Scratch Level 2: Game Master расширяет концепции, представленные на Scratch Level 1, и знакомит с более продвинутыми идеями, включая вложенные циклы, сложные условные выражения, клонирование, строковые и математические операторы, списки и функции. После завершения этого курса студенты полностью овладевают средой Scratch и готовы перейти на уровень Python 1. Узнайте больше о полной последовательности наших курсов.
В целом, Scratch позволяет студентам развивать свои навыки программирования с помощью визуального представления кода, которое легко читать и изменять. Кроме того, он дает им язык для понимания основ программирования, который потребуется в будущих курсах Python. Сюда входят такие темы, как циклы, условные выражения, переменные, функции, отладка и другие основы программирования, которые легко переводятся на другие языки программирования.
Какие проекты можно построить с нуля?
Если вы посмотрите на тысячи проектов, разработанных в Scratch, вы увидите огромное количество впечатляющих работ. От короткометражных фильмов до воссоздания популярных игр, таких как Angry Birds и Minecraft, возможности Scratch практически безграничны.Разработчики Scratch могут создавать и решать головоломки и лабиринты, создавать интерактивные игры, основанные на математике и естественных науках, и создавать видеоигры, которыми они могут поделиться с друзьями .
Это также отличный способ для учащихся задуматься о том, как они могут решать реальные проблемы. Один из проектов Джуни ставит перед студентами задачу решить знаменитую задачу по кодированию интервью Fizzbuzz. В рамках этого проекта студенты узнают об использовании условных операторов и оператора модуля для решения этой проблемы.
Некоторые могут взглянуть на Scratch и с трудом поверить, что этот фреймворк с его яркими блоками кодирования и мультипликационными спрайтами может быть эффективным способом обучения программированию. Scratch — самостоятельный мощный инструмент, который дает учащимся глубокое понимание основополагающих концепций программирования, которые им понадобятся для овладения другими языками. .
В Juni Learning мы предлагаем частные и групповые онлайн-уроки программирования для детей.
Начните изучать классы программирования Джуни для детей с нашей приемной комиссией сегодня, чтобы узнать, какой класс лучше всего подходит для вашего ученика.
Кодирование в английском классе? Да! И в вашем классе тоже!
После того, как они поделились своими игровыми идеями вслух (и получили больше идей от одноклассников), пришло время познакомить их с программированием. Благодаря Scratch, бесплатной программе от Массачусетского технологического института, которая обучает программированию с помощью интерфейса перетаскивания, даже новички могут научиться кодировать анимацию, игры и интерактивные истории. Мы начали с пошагового руководства по созданию базовой игры с помощью Scratch. Мои ученики работали парами или группами (у каждого был свой Chromebook), и я посоветовал им общаться друг с другом, когда они начали изучать словарный запас и логику Scratch и программирования.
Хотя может показаться, что кодирование не подходит для занятий английским, мои ученики быстро обнаружили два сходства: кодирование — это язык со своим собственным словарным запасом, и корректура своей работы имеет решающее значение. Эта неуместная точка с запятой остановит их игру, поэтому программирование помогает студентам практиковать этот важный навык — внимательно читать и корректировать свою работу.
Когда мои ученики завершили практическую игру и составили план своей новаторской игры, они были готовы начать творить в Scratch.В дополнение к обучающим материалам на сайте Hour of Code, Scratch предлагает большую поддержку, позволяя учащимся работать в своем собственном темпе и продолжать разработку игр дома. Пока мои ученики кодировали свои игры и изучали все тонкости программы, я периодически останавливал их, чтобы они могли поделиться с классом тем, что они изучали. Было здорово видеть, как дети становятся экспертами, которые затем могут помочь своим одноклассникам написать более сложную игру. Некоторым было так весело, что они решили остаться на обед, чтобы продолжить работу.
[media-credit id = 11343 align = «aligncenter»] [/ media-credit]
Мы завершили наш модуль кодирования, играя в игры друг друга и давая отзывы через Google Forms, которые каждый геймдизайнер создавал для себя. Большинство студентов заявили, что их игра еще не закончена, и они планируют продолжить работу над ней во время зимних каникул.
Независимо от того, будут ли мои студенты заниматься информатикой в будущем, они, по крайней мере, были ознакомлены с концепциями, обнаружили, что они могут программировать компьютер, чтобы делать то, что они хотят, и они знают, куда идти, если они хотят продолжить обучение.Помимо уроков Scratch, студенты могут научиться программировать самостоятельно на таких сайтах, как Khan Academy, Codecademy и Google CS First.
[media-credit id = 11343 align = «aligncenter»] [/ media-credit]
Так почему я должен выделить три недели из моей учебной программы по английскому языку, чтобы позволить моим ученикам изучить основы компьютерного кодирования? Почему учителям естественных наук, истории или математики следует поступать так же? Независимо от того, предпочитают ли наши студенты заниматься информатикой, стоит потратить время на включение программирования в нашу учебную программу, потому что кодирование:
- развивает навыки решения проблем и логическое мышление
- открывает новые возможности для творчества
- дает студентам основу для успеха в карьере 21 века
- подкрепляет нашу собственную учебную программу с другой точки зрения
- помогает студентам понять, как работают их собственные технологии
- открывает им глаза на потенциальную карьеру
Как можно эффективно использовать компьютерное кодирование в своем классе? Ознакомьтесь с этим планом кодирования для математического класса; прочитайте, как учителя внедряют программирование на уроках искусства и истории; и загрузите бесплатное руководство, полное проектов по кодированию, здесь.Вам не нужно быть компьютерным ученым, чтобы познакомить своих учеников с магией и потенциалом программирования!
SCRATCH Tutorial 1 Tutorial | София Линг
SCRATCH Учебник 1
Мы собираемся начать развивать навыки программирования с использованием различных языков программирования, начиная со SCRATCH.
SCRATCH — это бесплатный язык программирования, созданный MIT Media Lab.
В этом уроке вы:
- создайте бесплатную учетную запись SCRATCH
- завершит серию онлайн-руководств и экспериментальных расширений, чтобы познакомиться с основами SCRATCH — эти учебные пособия будут занесены в ваш лабораторный блокнот как «виртуальная лаборатория»
- отправить форму WSA
Создайте свою учетную запись SCRATCH.
Перейдите на главную страницу SCRATCH (ссылка ниже) и создайте свою учетную запись, нажав « Join Scratch »
* Используйте свой адрес Google, чтобы легко делиться своими проектами SCRATCH в будущем.
http://scratch.mit.edu/
СМОТРЕТЬ
Зайдите на сайт «Learn Scratch» и выберите Видеоурсы Scratch 1 (8 уроков) .
http://learnscratch.org/video-courses/scratch-1
Завершено:
Урок 1 Движение и звук
Урок 2 Повторяющиеся действия
Урок 3 Игра с цветом
Урок 4 Создайте свой собственный спрайт
Запишите важные процедуры и ключевые процессы в свой блокнот ( как запись виртуальной лаборатории ) достаточно подробно, чтобы вы могли повторять свои действия, не просматривая видеоуроки.. . . вы будете использовать эти записи в качестве справочного руководства в будущем при работе с SCRATCH.
РЕЗЮМЕ
У каждого учебного пособия есть одно или несколько «дополнительных» заданий, относящихся к нему ( перечислены внизу каждой страницы урока).
- Заполните эти расширения и запишите, как вы манипулировали «экспериментальными» переменными кода SCRATCH в лабораторных записных книжках first . . . , затем введите данные в форму ниже.
- Укажите один пример: последовательности шагов и итерации
- Отправьте форму после заполнения всех расширений.
Базовый английский
Базовые уроки английского, которые помогут вам изучить основы английского языка
Изучение основ английского языка. Выберите базовые уроки английского языка, перечисленные ниже. Они предназначены для людей, которые мало или совсем не владеют английским языком, или вы можете освежить некоторые основы.Уроки не расположены в определенном порядке. Выберите, какой урок вы хотите выучить.
Посмотреть все уроки базового английского Нажмите на эту ссылку, чтобы просмотреть все уроки базового английского
Базовые уроки английского
Чтобы выбрать урок, щелкните ссылки в левой части списка.
** Эти уроки включены в базовый уровень 1 **
Список всех уроков английского
Щелкните ссылку, чтобы увидеть список всех категорий уроков английского языка в категориях
Указанные выше уроки базового английского были взяты с уровня 1 базового, чтобы вам было легче увидеть, что некоторые из более базовых уроки сгруппированы вместе.
Изучение базового английского
Изучение базового английского языка — справка и поддержка
Если урок кажется трудным или вы испытываете затруднения, свяжитесь с нами или воспользуйтесь форумом, чтобы оставить сообщение, и мы поможем вам, чем сможем.
Используйте онлайн-словарь английского языка, чтобы найти слова, которые вы не понимаете.
Если у вас возникают проблемы с уроком английского языка, сделайте перерыв и повторите попытку позже.
Онлайн-словарь Easy pace Learning и как пользоваться словарями
Щелкните следующую ссылку, чтобы открыть онлайн-словарь английского языка — урок английского языка, если вы не уверены в словах, в которых вы не уверены.
Учителя и студенты, не стесняйтесь спрашивать об уроке, если вы не видите его на желаемом веб-сайте. Отправьте сообщение, и обычно в течение 2 дней мы добавим его на сайт.
английских книг, чтобы скачать бесплатно
Скачать словари в pdf БЕСПЛАТНО
Как разработать систему нейронного машинного перевода с нуля
Последнее обновление 6 октября 2020 г.
Разработка модели глубокого обучения для автоматического
Перевод с немецкого на английский на Python с помощью Keras, шаг за шагом.
Машинный перевод — сложная задача, которая традиционно включает большие статистические модели, разработанные с использованием сложных лингвистических знаний.
Нейронный машинный перевод — это использование глубоких нейронных сетей для задачи машинного перевода.
В этом руководстве вы узнаете, как разработать систему нейронного машинного перевода для перевода немецких фраз на английский.
После прохождения этого руководства вы будете знать:
- Как очистить и подготовить данные для обучения системы нейронного машинного перевода.
- Как разработать модель кодировщика-декодера для машинного перевода.
- Как использовать обученную модель для вывода новых входных фраз и оценки навыков модели.
Начните свой проект с моей новой книги «Глубокое обучение для обработки естественного языка», включая пошаговых руководств и файлов исходного кода Python для всех примеров.
Приступим.
- Обновление, апрель / 2019 : Исправлена ошибка в вычислении оценки BLEU (Чжунпу Чен).
- Обновление октябрь / 2020 : Добавлена прямая ссылка на исходный набор данных.
Как разработать систему нейронного машинного перевода в Керасе
Фотография Бьорна Гросса, некоторые права защищены.
Обзор учебного пособия
Это руководство разделено на 4 части; их:
- Набор данных для перевода с немецкого на английский
- Подготовка текстовых данных
- Обучите модель нейронного перевода
- Оценка модели нейронного перевода
Среда Python
В этом руководстве предполагается, что у вас установлена среда Python 3 SciPy.
У вас должен быть установлен Keras (2.0 или выше) с серверной частью TensorFlow или Theano.
В руководстве также предполагается, что у вас установлены NumPy и Matplotlib.
Если вам нужна помощь с вашей средой, см. Этот пост:
Графический процессор не требуется для этого учебника, тем не менее, вы можете дешево получить доступ к графическим процессорам через Amazon Web Services. Узнайте, как это сделать, в этом руководстве:
Давайте нырнем.
Нужна помощь с глубоким обучением текстовых данных?
Пройдите бесплатный 7-дневный ускоренный курс электронной почты (с кодом).
Нажмите, чтобы зарегистрироваться, а также получите бесплатную электронную версию курса в формате PDF.
Начните БЕСПЛАТНЫЙ ускоренный курс прямо сейчас
Набор данных для перевода с немецкого на английский
В этом руководстве мы будем использовать набор терминов с немецкого на английский, которые используются в качестве основы для карточек для изучения языка.
Набор данных доступен на веб-сайте ManyThings.org с примерами, взятыми из проекта Tatoeba. Набор данных состоит из немецких фраз и их английских аналогов и предназначен для использования с программным обеспечением для карточек Anki.
На странице представлен список множества языковых пар, и я рекомендую вам изучить другие языки:
Обратите внимание, что исходный набор данных был изменен, что при прямом использовании нарушит работу этого руководства и приведет к ошибке:
ValueError: слишком много значений для распаковки (ожидается 2)
ValueError: слишком много значений для распаковки (ожидается 2) |
Таким образом, вы можете скачать исходный набор данных в правильном формате прямо отсюда:
Загрузите файл набора данных в текущий рабочий каталог.
У вас будет файл с именем deu.txt , который содержит 152 820 пар фаз английского и немецкого языков, по одной паре в строке с вкладкой, разделяющей язык.
Например, первые 5 строк файла выглядят следующим образом:
Привет. Привет! Привет. Grüß Gott! Запустить! Лауф! Ух ты! Потздоннер! Ух ты! Доннерветтер!
Привет. Привет! Привет. Grüß Gott! Беги! Лауф! Вау! Потздоннер! Вау! Доннерветтер! |
Мы будем рассматривать задачу прогнозирования как заданную последовательность слов на немецком языке в качестве входных, переводить или прогнозировать последовательность слов на английском языке.
Модель, которую мы разработаем, подойдет для некоторых начинающих говорить на немецком языке.
Подготовка текстовых данных
Следующим шагом является подготовка текстовых данных к моделированию.
Если вы новичок в очистке текстовых данных, см. Этот пост:
Взгляните на необработанные данные и обратите внимание на то, что вы видите, что нам может потребоваться обработать в операции очистки данных.
Например, вот некоторые наблюдения, которые я заметил при просмотре необработанных данных:
- Есть знаки препинания.
- Текст состоит из прописных и строчных букв.
- В немецком языке есть специальные символы.
- Есть повторяющиеся фразы на английском языке с разными переводами на немецкий язык.
- Файл отсортирован по длине предложения с очень длинными предложениями в конце файла.
Вы заметили что-нибудь еще, что может быть важным?
Дайте мне знать в комментариях ниже.
Хорошая процедура очистки текста может обработать некоторые или все эти наблюдения.
Подготовка данных разделена на два подраздела:
- Чистый текст
- Разделенный текст
1. Чистый текст
Во-первых, мы должны загрузить данные таким образом, чтобы сохранить немецкие символы Unicode. Функция load_doc () , представленная ниже, загрузит файл в виде капли текста.
# загрузить документ в память def load_doc (имя файла): # открыть файл только для чтения файл = открытый (имя файла, режим = ‘rt’, кодировка = ‘utf-8’) # прочитать весь текст текст = файл.читать() # закрыть файл file.close () ответный текст
# загрузить документ в память def load_doc (filename): # открыть файл только для чтения file = open (filename, mode = ‘rt’, encoding = ‘utf-8’) # read весь текст text = file.read () # закрыть файл file.close () return text |
Каждая строка содержит одну пару фраз, сначала английскую, а затем немецкую, разделенных символом табуляции.
Мы должны разбить загруженный текст по строкам, а затем по фразам. Функция to_pairs () ниже разделит загруженный текст.
# разбиваем загруженный документ на предложения def to_pairs (документ): lines = doc.strip (). split (‘\ n’) пары = [line.split (‘\ t’) для строки в строках] возвратные пары
# разделить загруженный документ на предложения def to_pairs (doc): lines = doc.strip (). split (‘\ n’) пар = [line.split (‘\ t’) для строки в строках] возвращаемых пар |
Теперь мы готовы убрать каждое предложение. Мы выполним следующие специальные операции по очистке:
- Удалите все непечатаемые символы.
- Удалите все символы пунктуации.
- Нормализовать все символы Юникода в ASCII (например, латинские символы).
- Преобразование регистра в нижний регистр.
- Удалите все оставшиеся жетоны, отличные от алфавита.% s] ‘% re.escape (string.printable))
# подготовить таблицу перевода для удаления знаков препинания
таблица = str.maketrans (», », строка. пунктуация)
для пары в строках:
clean_pair = список ()
для линии в паре:
# нормализовать символы юникода
строка = normalize (‘NFD’, строка) .encode (‘ascii’, ‘игнорировать’)
строка = line.decode (‘UTF-8’)
# токенизация на пустом месте
линия = line.split ()
# преобразовать в нижний регистр
line = [word.lower () вместо слова в строке]
# удалить знаки препинания с каждого токена
строка = [слово.перевести (таблица) слово в строку]
# удаляем непечатаемые символы из каждого токена
line = [re_print.sub (», w) вместо w в строке]
# удалить жетоны с числами в них
строка = [слово в слово в строке, если word.isalpha ()]
# сохранить как строку
clean_pair.append (» .join (строка))
cleaned.append (чистая_пара)
возвратный массив (очищенный)
1
2
3
4
5
6
7
8
9
10
11
12
13
140008
14
18
19
20
21
22
23
24
25
26
27
# очистить список строк
def clean_pairs (lines):
cleaned = list ()
# подготовить регулярное выражение для фильтрации символов
re_print = re.% s] ‘% re.escape (string.printable))
# подготовить таблицу перевода для удаления знаков препинания
table = str.maketrans (‘ ‘,’ ‘, string.punctuation)
для пары в строках:
clean_pair = list ()
для строки в паре:
# нормализовать символы юникода
line = normalize (‘NFD’, line) .encode (‘ascii’, ‘ignore’)
line = line.decode (‘ UTF-8 ‘)
# разметка на пробеле
line = line.split ()
# преобразовать в нижний регистр
line = [word.lower () для слова в строке]
# удалить знаки препинания из каждого токена
line = [word.translate (table) для слова в строке]
# удалить непечатаемые символы из каждого токена
line = [re_print.sub (», w) for w in line]
# удалить токены с числами в них
line = [слово в слово в строке if word. isalpha ()]
# сохранить как строку
clean_pair.append (» .join (line))
cleaned.append (clean_pair)
массив возврата (очищен)
Наконец, теперь, когда данные очищены, мы можем сохранить список пар фраз в файл, готовый к использованию.
Функция save_clean_data () использует API pickle для сохранения списка чистого текста в файл.
Полный пример приведен ниже.
строка импорта импорт ре из дампа импорта рассола из импорта unicodedata нормализовать из массива импорта numpy # загрузить документ в память def load_doc (имя файла): # открыть файл только для чтения файл = открытый (имя файла, режим = ‘rt’, кодировка = ‘utf-8’) # прочитать весь текст текст = файл.% s] ‘% re.escape (string.printable)) # подготовить таблицу перевода для удаления знаков препинания таблица = str.maketrans (», », строка. пунктуация) для пары в строках: clean_pair = список () для линии в паре: # нормализовать символы юникода строка = normalize (‘NFD’, строка) .encode (‘ascii’, ‘игнорировать’) строка = line.decode (‘UTF-8’) # токенизация на пустом месте линия = line.split () # преобразовать в нижний регистр line = [word.lower () вместо слова в строке] # удалить знаки препинания с каждого токена строка = [слово.перевести (таблица) слово в строку] # удаляем непечатаемые символы из каждого токена line = [re_print.sub (», w) вместо w в строке] # удалить жетоны с числами в них строка = [слово в слово в строке, если word.isalpha ()] # сохранить как строку clean_pair.append (» .join (строка)) cleaned.append (чистая_пара) возвратный массив (очищенный) # сохранить список чистых предложений в файл def save_clean_data (предложения, имя файла): дамп (предложения, открыть (имя файла, ‘wb’)) print (‘Сохранено:% s’% имя файла) # загрузить набор данных filename = ‘deu.текст’ doc = load_doc (имя файла) # разбить на пары англо-немецкий пары = to_pairs (документ) # чистых предложений clean_pairs = clean_pairs (пары) # сохранить чистые пары в файл save_clean_data (clean_pairs, ‘английский-немецкий.pkl’) # выборочная проверка для i в диапазоне (100): print (‘[% s] => [% s]’% (clean_pairs [i, 0], clean_pairs [i, 1]))
1
2
3
4
5
6
7
8
9
10
11
12
13
140008
14
18
19
20
21
22
23
24
25
26
27
28
29
30
3435
36
37
38
39
40
41
42
43
44
45
46
47
51
52
53
54
55
56
57
58
59
60
61
62
63
9 0008 6465
66
67
import string
import re
from pickle import dump
from unicodedata import normalize
from numpy import array
# загрузить документ в память
def load_doc (filename):
# открыть файл как только чтение
file = open (filename, mode = ‘rt’, encoding = ‘utf-8’)
# прочитать весь текст
text = file.read ()
# закрыть файл
file.close ()
return text
# разделить загруженный документ на предложения
def to_pairs (doc):
строк = doc.strip (). split (‘\ n’)
пар = [line.split (‘\ t’) для строки в строках]
пар возврата
# очистить список строк
def clean_pairs (lines):
cleaned = list ()
# подготовить регулярное выражение для фильтрации символов
re_print = re.% s] ‘% re.escape (string.printable))
# подготовить таблицу перевода для удаления знаков препинания
table = str.maketrans (‘ ‘,’ ‘, string.punctuation)
для пары в строках:
clean_pair = list ()
для строки в паре:
# нормализовать символы юникода
line = normalize (‘NFD’, line) .encode (‘ascii’, ‘ignore’)
line = line.decode (‘ UTF-8 ‘)
# разметка на пробеле
line = line.split ()
# преобразовать в нижний регистр
line = [word.lower () для слова в строке]
# удалить знаки препинания из каждого токена
line = [word.translate (table) для слова в строке]
# удалить непечатаемые символы из каждого токена
line = [re_print.sub (», w) for w in line]
# удалить токены с числами в них
line = [слово в слово в строке if word. isalpha ()]
# сохранить как строку
clean_pair.append (» .join (line))
cleaned.append (clean_pair)
return array (clean)
# сохранить список чистых предложений в файл
def save_clean_data (предложения, имя файла):
дамп (предложения, открыть (имя файла, ‘wb’))
print (‘Сохранено:% s’% имя файла)
# загрузить набор данных
filename = ‘deu.txt’
doc = load_doc (имя файла)
# разбить на пары англо-немецкий
пар = to_pairs (doc)
# чистые предложения
clean_pairs = clean_pairs (пары)
# сохранить чистые пары в файл
save_clean_data (clean_pairs, ‘англо-немецкий.pkl ‘)
# выборочная проверка
для i в диапазоне (100):
print (‘ [% s] => [% s] ‘% (clean_pairs [i, 0], clean_pairs [i, 1]) )
При выполнении примера в текущем рабочем каталоге создается новый файл с очищенным текстом с именем english-german.pkl .
Некоторые примеры чистого текста печатаются, чтобы мы могли оценить их в конце прогона, чтобы подтвердить, что операции очистки были выполнены, как ожидалось.
[привет] => [привет] [привет] => [gru gott] [run] => [lauf] [wow] => [potzdonner] [wow] => [donnerwetter] [fire] => [feuer] [help] => [hilfe] [help] => [zu hulf] [стоп] => [стоп] [wait] => [warte] …
[привет] => [привет]
[привет] => [gru gott]
[run] => [lauf]
[wow] => [potzdonner]
[wow] => [donnerwetter ]
[fire] => [feuer]
[help] => [hilfe]
[help] => [zu hulf]
[stop] => [stopp]
[wait] => [ бородавка]
…
2. Разделить текст
Чистые данные содержат немногим более 150 000 пар фраз, а некоторые пары ближе к концу файла очень длинные.
Это хорошее количество примеров для разработки небольшой модели перевода. Сложность модели возрастает с увеличением количества примеров, длины фраз и размера словарного запаса.
Несмотря на то, что у нас есть хороший набор данных для моделирования перевода, мы немного упростим задачу, чтобы значительно уменьшить размер требуемой модели и, в свою очередь, время обучения, необходимое для соответствия модели.
Вы можете изучить разработку модели на более полном наборе данных в качестве расширения; Я хотел бы услышать, как вы поживаете.
Мы упростим задачу, сократив набор данных до первых 10 000 примеров в файле; это будут самые короткие фразы в наборе данных.
Затем мы поставим первые 9000 из них в качестве примеров для обучения, а оставшиеся 1000 примеров — для проверки модели соответствия.
Ниже приведен полный пример загрузки чистых данных, их разделения и сохранения разделенных частей данных в новые файлы.
из маринованной импортной загрузки из дампа импорта рассола от numpy.случайный импорт рандом из numpy.random import shuffle # загрузить чистый набор данных def load_clean_sentences (имя файла): возврат нагрузки (open (имя файла, ‘rb’)) # сохранить список чистых предложений в файл def save_clean_data (предложения, имя файла): дамп (предложения, открыть (имя файла, ‘wb’)) print (‘Сохранено:% s’% имя файла) # загрузить набор данных raw_dataset = load_clean_sentences (‘английский-немецкий.pkl’) # уменьшить размер набора данных n_sentences = 10000 набор данных = raw_dataset [: n_sentences,:] # случайное перемешивание перемешать (набор данных) # разделить на поезд / тест поезд, тест = набор данных [: 9000], набор данных [9000:] # спасти save_clean_data (набор данных, ‘английский-немецкий-оба.пкл ‘) save_clean_data (поезд, ‘английский-немецкий-поезд.pkl’) save_clean_data (тест, ‘английский-немецкий-тест.pkl’)
1
2
3
4
5
6
7
8
9
10
11
12
13
140008
14
18
19
20
21
22
23
24
25
26
27
28
из импорта рассола, загрузка
из дампа импорта рассола
из numpy.random import rand
from numpy.random import shuffle
# загрузить чистый набор данных
def load_clean_sentences (filename):
return load (open (filename, ‘rb’))
# save a list чистых предложений в файл
def save_clean_data (предложения, имя файла):
дамп (предложения, открыть (имя файла, ‘wb’))
print (‘Saved:% s’% filename)
# загрузить набор данных
raw_dataset = load_clean_sentences (‘англо-немецкий.pkl ‘)
# уменьшить размер набора данных
n_sentences = 10000
dataset = raw_dataset [: n_sentences,:]
# random shuffle
shuffle (dataset)
test9 # train
train test = dataset [: 9000], набор данных [9000:]
# save
save_clean_data (dataset, ‘english-german-both.pkl’)
save_clean_data (train, ‘english-german-train.pkl’)
save_clean_data (test, ‘английский-немецкий-тест.пкл ‘)
При выполнении примера создаются три новых файла: english-german-both.pkl , который содержит все обучающие и тестовые примеры, которые мы можем использовать для определения параметров задачи, таких как максимальная длина фраз и словарный запас, и файлы english-german-train.pkl и english-german-test.pkl для набора данных train и test.
Теперь мы готовы приступить к разработке нашей модели перевода.
Обучайте модель нейронного перевода
В этом разделе мы разработаем модель нейронного перевода.
Если вы новичок в моделях нейронного перевода, см. Сообщение:
Это включает в себя как загрузку, так и подготовку чистых текстовых данных, готовых к моделированию, а также определение и обучение модели на подготовленных данных.
Давайте начнем с загрузки наборов данных, чтобы мы могли подготовить данные. Функция под названием load_clean_sentences () ниже может использоваться для загрузки поезда, теста и обоих наборов данных по очереди.
# загрузить чистый набор данных def load_clean_sentences (имя файла): возврат нагрузки (open (имя файла, ‘rb’)) # загрузить набор данных dataset = load_clean_sentences (‘английский-немецкий-оба.пкл ‘) поезд = load_clean_sentences (‘английский-немецкий-поезд.pkl’) test = load_clean_sentences (‘английский-немецкий-test.pkl’)
# загрузить чистый набор данных
def load_clean_sentences (filename):
return load (open (filename, ‘rb’))
# load datasets
dataset = load_clean_sentences (‘english-german-both.pk ‘)
train = load_clean_sentences (‘ английский-немецкий-поезд.pkl ‘)
test = load_clean_sentences (‘ английский-немецкий-test.pkl ‘)
Мы будем использовать «оба» или комбинацию наборов данных поезда и теста, чтобы определить максимальную длину и словарный запас задачи.
Это для простоты. В качестве альтернативы мы могли бы определить эти свойства только из набора обучающих данных и усечь в тестовом наборе примеры, которые слишком длинные или содержат слова, которые отсутствуют в словарном запасе.
Мы можем использовать класс Keras Tokenize для сопоставления слов с целыми числами, если это необходимо для моделирования.Мы будем использовать отдельный токенизатор для английских и немецких последовательностей. Функция под названием create_tokenizer () обучит токенизатор списку фраз.
# установить токенизатор def create_tokenizer (строки): tokenizer = Токенизатор () tokenizer.fit_on_texts (строки) возврат токенизатора
# fit tokenizer
def create_tokenizer (lines):
tokenizer = Tokenizer ()
tokenizer.fit_on_texts (строки)
токенизатор возврата
Аналогично, функция с именем max_length () ниже найдет длину самой длинной последовательности в списке фраз.
# максимальная длина предложения def max_length (строки): return max (len (line.split ()) для строки в строках)
# максимальная длина предложения
def max_length (lines):
return max (len (line.split ()) для строки в строках)
Мы можем вызывать эти функции с объединенным набором данных для подготовки токенизаторов, размеров словаря и максимальной длины как для английских, так и для немецких фраз.
# подготовить английский токенизатор eng_tokenizer = create_tokenizer (набор данных [:, 0]) eng_vocab_size = len (eng_tokenizer.word_index) + 1 eng_length = max_length (набор данных [:, 0]) print (‘Размер словарного запаса английского языка:% d’% eng_vocab_size) print (‘Максимальная длина на английском языке:% d’% (eng_length)) # подготовить немецкий токенизатор ger_tokenizer = create_tokenizer (набор данных [:, 1]) ger_vocab_size = len (ger_tokenizer.word_index) + 1 ger_length = max_length (набор данных [:, 1]) print (‘Размер немецкого словаря:% d’% ger_vocab_size) print (‘Максимальная длина на немецком языке:% d’% (ger_length))
# подготовить английский токенизатор
eng_tokenizer = create_tokenizer (набор данных [:, 0])
eng_vocab_size = len (eng_tokenizer.word_index) + 1
eng_length = max_length (набор данных [:, 9000])
Размер словаря:% d ‘% eng_vocab_size)
print (‘ Максимальная длина английского языка:% d ‘% (eng_length))
# подготовить немецкий токенизатор
ger_tokenizer = create_tokenizer (набор данных [:, 1])
ger_vocab_size = (ger_tokenizer.word_index) + 1
ger_length = max_length (набор данных [:, 1])
print (‘Размер немецкого словаря:% d’% ger_vocab_size)
print (‘Максимальная длина немецкого языка:% d’% (ger_length))
Теперь мы готовы подготовить набор обучающих данных.
Каждая входная и выходная последовательность должна быть закодирована в целые числа и дополнена до максимальной длины фразы. Это связано с тем, что мы будем использовать встраивание слов для входных последовательностей и одно горячее кодирование выходных последовательностей. Функция, названная ниже encode_sequences () , выполнит эти операции и вернет результат.
# кодировать и дополнять последовательности def encode_sequences (токенизатор, длина, строки): # целочисленные последовательности кодирования X = tokenizer.texts_to_sequences (строки) # последовательности пэдов с 0 значениями X = pad_sequences (X, maxlen = длина, заполнение = ‘сообщение’) вернуть X
# последовательности кодирования и заполнения
def encode_sequences (токенизатор, длина, строки):
# целочисленные последовательности кодирования
X = токенизатор.text_to_sequences (строки)
# заполнить последовательности с 0 значениями
X = pad_sequences (X, maxlen = length, padding = ‘post’)
return X
Выходная последовательность должна быть закодирована в горячем режиме. Это связано с тем, что модель предсказывает вероятность появления каждого слова в словаре на выходе.
Функция encode_output () ниже будет быстро кодировать английские выходные последовательности.
# одна целевая последовательность горячего кодирования def encode_output (последовательности, словарный_размер): ylist = список () для последовательности в последовательностях: encoded = to_categorical (последовательность, num_classes = словарный_размер) ylist.добавить (закодировано) y = массив (ylist) y = y.reshape (последовательностей.shape [0], последовательностей.shape [1], словаря_размер) возврат y
# одна целевая последовательность горячего кодирования
def encode_output (последовательности, vocab_size):
ylist = list ()
для последовательности в последовательностях:
encoded = to_categorical (последовательность, num_classes = vocab_size)
ylist закодировано)
y = массив (ylist)
y = y.reshape (последовательностей.shape [0], последовательностей.shape [1], словаря_size)
возврат y
Мы можем использовать эти две функции и подготовить как обучающий, так и тестовый набор данных для обучения модели.
# подготовить данные для обучения trainX = encode_sequences (ger_tokenizer, ger_length, train [:, 1]) trainY = encode_sequences (eng_tokenizer, eng_length, train [:, 0]) trainY = encode_output (trainY, eng_vocab_size) # подготовить данные для валидации testX = encode_sequences (ger_tokenizer, ger_length, test [:, 1]) testY = encode_sequences (eng_tokenizer, eng_length, test [:, 0]) testY = encode_output (testY, eng_vocab_size)
# подготовить данные обучения
trainX = encode_sequences (ger_tokenizer, ger_length, train [:, 1])
trainY = encode_sequences (eng_tokenizer, eng_length, train [:, 0])
trainY = encode_output (trainY)
# подготовить данные проверки
testX = encode_sequences (ger_tokenizer, ger_length, test [:, 1])
testY = encode_sequences (eng_tokenizer, eng_length, test [:, 0])
testY = encode_sizevoc
Теперь мы готовы определить модель.
Для решения этой задачи мы будем использовать модель кодировщика-декодера LSTM. В этой архитектуре входная последовательность кодируется внешней моделью, называемой кодировщиком, затем слово за словом декодируется внутренней моделью, называемой декодером.
Функция define_model () ниже определяет модель и принимает ряд аргументов, используемых для настройки модели, таких как размер словаря ввода и вывода, максимальная длина фраз ввода и вывода и количество единиц памяти. используется для настройки модели.
Модель обучается с использованием эффективного подхода Адама к стохастическому градиентному спуску и минимизирует категориальную функцию потерь, поскольку мы сформулировали задачу прогнозирования как мультиклассовую классификацию.
Конфигурация модели не была оптимизирована для решения этой проблемы, а это означает, что у вас есть много возможностей настроить ее и повысить квалификацию переводов. Я хотел бы увидеть, что вы можете придумать.
Дополнительные советы по настройке моделей нейронного машинного перевода см. В сообщении:
# определить модель NMT def define_model (src_vocab, tar_vocab, src_timesteps, tar_timesteps, n_units): model = Последовательный () модель.добавить (Встраивание (src_vocab, n_units, input_length = src_timesteps, mask_zero = True)) model.add (LSTM (n_units)) model.add (RepeatVector (tar_timesteps)) model.add (LSTM (n_units, return_sequences = True)) model.add (TimeDistributed (Dense (tar_vocab, activate = ‘softmax’))) модель возврата # определить модель model = define_model (ger_vocab_size, eng_vocab_size, ger_length, eng_length, 256) model.compile (optimizer = ‘adam’, loss = ‘category_crossentropy’) # суммировать определенную модель печать (модель.резюме()) plot_model (модель, to_file = ‘model.png’, show_shapes = True)
# define NMT model
def define_model (src_vocab, tar_vocab, src_timesteps, tar_timesteps, n_units):
model = Sequential ()
model.add (Embedding (src_vocab) true mask, input_letimes =
model.add (LSTM (n_units))
model.add (RepeatVector (tar_timesteps))
model.add (LSTM (n_units, return_sequences = True))
model.add (TimeDistributed (Dense (tar_vocab, activate = ‘softmax’)))
return model
# define model
model = define_model_s, gerize_vocab eng_vocab_size, ger_length, eng_length, 256)
model.compile (optimizer = ‘adam’, loss =’ategorical_crossentropy ‘)
# суммировать определенную модель
print (model.summary ())
plot_model (model, to ‘model.png’, show_shapes = True)
Наконец, мы можем обучить модель.
Обучаем модель для 30 эпох и размер партии 64 примера.
Мы используем контрольные точки, чтобы гарантировать, что каждый раз, когда навыки модели на тестовом наборе улучшаются, модель сохраняется в файл.
# подходящая модель имя файла = ‘модель.h5’ контрольная точка = ModelCheckpoint (имя файла, monitor = ‘val_loss’, verbose = 1, save_best_only = True, mode = ‘min’) model.fit (trainX, trainY, epochs = 30, batch_size = 64, validation_data = (testX, testY), callbacks = [checkpoint], verbose = 2)
# fit model
filename = ‘model.h5 ‘
checkpoint = ModelCheckpoint (filename, monitor =’ val_loss ‘, verbose = 1, save_best_only = True, mode =’ min ‘)
model.fit (trainX, trainY, epochs = 30, batch_size = 64, validation_data = (testX, testY), callbacks = [checkpoint], verbose = 2)
Мы можем связать все это вместе и подогнать под нейронную модель трансляции.
Полный рабочий пример приведен ниже.
из маринованной импортной загрузки из массива импорта numpy из кераса.preprocessing.text import Tokenizer из keras.preprocessing.sequence import pad_sequences from keras.utils import to_categorical из keras.utils.vis_utils импорт plot_model из keras.models импортировать Последовательный from keras.layers import LSTM из keras.layers import Плотный from keras.layers import Встраивание из keras.layers import RepeatVector из keras.layers импорт TimeDistributed из keras.callbacks импортировать ModelCheckpoint # загрузить чистый набор данных def load_clean_sentences (имя файла): возврат нагрузки (open (имя файла, ‘rb’)) # установить токенизатор def create_tokenizer (строки): tokenizer = Токенизатор () токенизатор.fit_on_texts (линии) вернуть токенизатор # максимальная длина предложения def max_length (строки): return max (len (line.split ()) для строки в строках) # кодировать и дополнять последовательности def encode_sequences (токенизатор, длина, строки): # целочисленные последовательности кодирования X = tokenizer.texts_to_sequences (строки) # последовательности пэдов с 0 значениями X = pad_sequences (X, maxlen = длина, заполнение = ‘сообщение’) вернуть X # одна целевая последовательность горячего кодирования def encode_output (последовательности, словарный_размер): ylist = список () для последовательности в последовательностях: encoded = to_categorical (последовательность, num_classes = словарный_размер) ylist.добавить (закодировано) y = массив (ylist) y = y.reshape (последовательностей.shape [0], последовательностей.shape [1], словаря_размер) вернуть y # определить модель NMT def define_model (src_vocab, tar_vocab, src_timesteps, tar_timesteps, n_units): model = Последовательный () model.add (Встраивание (src_vocab, n_units, input_length = src_timesteps, mask_zero = True)) model.add (LSTM (n_units)) model.add (RepeatVector (tar_timesteps)) model.add (LSTM (n_units, return_sequences = True)) model.add (TimeDistributed (Dense (tar_vocab, activate = ‘softmax’))) модель возврата # загрузить набор данных dataset = load_clean_sentences (‘английский-немецкий-оба.пкл ‘) поезд = load_clean_sentences (‘английский-немецкий-поезд.pkl’) test = load_clean_sentences (‘английский-немецкий-test.pkl’) # подготовить английский токенизатор eng_tokenizer = create_tokenizer (набор данных [:, 0]) eng_vocab_size = len (eng_tokenizer.word_index) + 1 eng_length = max_length (набор данных [:, 0]) print (‘Размер словарного запаса английского языка:% d’% eng_vocab_size) print (‘Максимальная длина на английском языке:% d’% (eng_length)) # подготовить немецкий токенизатор ger_tokenizer = create_tokenizer (набор данных [:, 1]) ger_vocab_size = len (ger_tokenizer.word_index) + 1 ger_length = max_length (набор данных [:, 1]) print (‘Размер немецкого словаря:% d’% ger_vocab_size) print (‘Максимальная длина немецкого языка:% d’% (ger_length)) # подготовить данные для обучения trainX = encode_sequences (ger_tokenizer, ger_length, train [:, 1]) trainY = encode_sequences (eng_tokenizer, eng_length, train [:, 0]) trainY = encode_output (trainY, eng_vocab_size) # подготовить данные для валидации testX = encode_sequences (ger_tokenizer, ger_length, test [:, 1]) testY = encode_sequences (eng_tokenizer, eng_length, test [:, 0]) testY = encode_output (testY, eng_vocab_size) # определить модель model = define_model (ger_vocab_size, eng_vocab_size, ger_length, eng_length, 256) модель.компилировать (optimizer = ‘adam’, loss = ‘category_crossentropy’) # суммировать определенную модель печать (model.summary ()) plot_model (модель, to_file = ‘model.png’, show_shapes = True) # подходящая модель имя файла = ‘модель.h5’ контрольная точка = ModelCheckpoint (имя файла, monitor = ‘val_loss’, verbose = 1, save_best_only = True, mode = ‘min’) model.fit (trainX, trainY, epochs = 30, batch_size = 64, validation_data = (testX, testY), callbacks = [checkpoint], verbose = 2)
1
2
3
4
5
6
7
8
9
10
11
12
13
140008
14
18
19
20
21
22
23
24
25
26
27
28
29
30
3435
36
37
38
39
40
41
42
43
44
45
46
47
51
52
53
54
55
56
57
58
59
60
61
62
63
9 0008 6465
66
67
68
69
70
71
72
73
74
75
76
70008
81
82
83
84
85
86
87
88
89
90
91
92
93
из pickle import load
из массива импорта numpy
из keras.preprocessing.text import Tokenizer
из keras.preprocessing.sequence import pad_sequences
from keras.utils import to_categorical
from keras.utils.vis_utils import plot_model
from keras.models import
from keras.models import
sequential
importfrom keras.layers import Dense
from keras.layers import Embedding
from keras.layers import RepeatVector
from keras.layers import TimeDistributed
from keras.обратные вызовы import ModelCheckpoint
# загрузить чистый набор данных
def load_clean_sentences (filename):
return load (open (filename, ‘rb’))
# fit a tokenizer
lines (def create_tokenizer):
tokenizer = Tokenizer ()
tokenizer.fit_on_texts (lines)
return tokenizer
# максимальная длина предложения
def max_length (lines):
return max (len (line.split ()) для строки в строках)
# последовательности кодирования и заполнения
def encode_sequences (токенизатор, длина, строки):
# целочисленные последовательности кодирования
X = tokenizer.texts_to_sequences (строки)
# pad последовательности с 0 значениями
X = pad_sequences (X, maxlen = length, padding = ‘post’)
return X
# одна целевая последовательность горячего кодирования
def encode_output (последовательности, vocab_size):
ylist = list ()
для последовательности в последовательностях:
encoded = to_categorical (sequence, num_classes = vocab_size)
ylist.append (закодировано)
y = array (ylist)
y = y.reshape (последовательностей.shape [0], последовательностей.shape [1], vocab_size)
return y
# определить модель NMT
def define_model (src_vocab, tar_vocab, src_timesteps, tar_timesteps, n_units):
model = Sequential ()
model.add (Embedding (src_vocab, n_units True, input_length = src_timesad9) (9000_Model) n_units))
model.add (RepeatVector (tar_timesteps))
model.add (LSTM (n_units, return_sequences = True))
model.add (TimeDistributed (Dense (tar_vocab, activate = ‘softmax’)))
return model
# загрузить наборы данных
english dataset = load_clean_sentence -german-both.pkl ‘)
train = load_clean_sentences (‘ english-german-train.pkl ‘)
test = load_clean_sentences (‘ english-german-test.pkl ‘)
# подготовьте английский токенизатор
eng_tokenizer = create_tokenizer (набор данных [:, 0])
eng_vocab_size = len (eng_tokenizer.word_index) + 1
eng_length = max_length (набор данных [:, 0])
print (‘Размер словаря английского языка:% d’% eng_vocab_size)
print (‘Максимальная длина английского языка:% d’% (eng_length))
# подготовить немецкий токенизатор
ger_tokenizer = create_tokenizer (набор данных [:, 1])
ger_vocab_size = len (ger_tokenizer.word_index) + 1
ger_length = max_length (набор данных [:, 1]) print
Размер:% d ‘% ger_vocab_size)print (‘ German Max Length:% d ‘% (ger_length))
# подготовить данные обучения
trainX = encode_sequences (ger_tokenizer, ger_length, train [:, 1])
trainY = encode_sequences (eng_tokenizer, eng_length, train [:, 0])
trainY = encode_output (trainY, eng_vocab_size)
# подготовить данные проверки
testX = encode_sequences (gerlength_tokenizer), test
testY = encode_sequences (eng_tokenizer, eng_length, test [:, 0])
testY = encode_output (testY, eng_vocab_size)
# определить модель
model = define_model (ger_vocab_size, eng_vocab_size, ger_length, eng_length, 256)
model.compile (optimizer = ‘adam’, loss =’ategorical_crossentropy ‘)
# суммировать определенную модель
print (model.summary ())
plot_model (model, to_file =’ model.png ‘, show_shapes = True)
# fit model
filename = ‘model.h5’
checkpoint = ModelCheckpoint (filename, monitor = ‘val_loss’, verbose = 1, save_best_only = True, mode = ‘min’)
model.fit (trainX, trainY, epochs = 30, batch_size = 64, validation_data = (testX, testY), callbacks = [checkpoint], verbose = 2)
При выполнении примера сначала печатается сводка параметров набора данных, таких как размер словаря и максимальная длина фраз.
Размер английского словарного запаса: 2404 Максимальная длина английского языка: 5 Размер немецкого словарного запаса: 3856 Максимальная длина в Германии: 10
Размер английского словаря: 2404
Максимальная длина английского словаря: 5
Размер немецкого словаря: 3856
Максимальная длина немецкого языка: 10
Затем печатается сводка определенной модели, позволяющая подтвердить конфигурацию модели.
_________________________________________________________________ Слой (тип) Параметр формы вывода # ================================================== =============== embedding_1 (Встраивание) (Нет, 10, 256) 987136 _________________________________________________________________ lstm_1 (LSTM) (Нет, 256) 525312 _________________________________________________________________ repeat_vector_1 (RepeatVecto (Нет, 5, 256) 0 _________________________________________________________________ lstm_2 (LSTM) (Нет, 5, 256) 525312 _________________________________________________________________ time_distributed_1 (TimeDist (Нет, 5, 2404) 617828 ================================================== =============== Всего параметров: 2 655 588 Обучаемые параметры: 2 655 588 Необучаемые параметры: 0 _________________________________________________________________
1
2
3
4
5
6
7
8
9
10
11
12
13
140008
14
_________________________________________________________________
Layer (type) Output Shape Param #
===================================== ==============================
embedding_1 (Встраивание) (Нет, 10, 256) 987136
_________________________________________________________________
lstm_1 (LSTM) (Нет, 256) 525312
_________________________________________________________________
repeat_vector_1 (RepeatVecto (Нет, 5, 256) 0
_________________________________________________________________
lstm_2 (LSTM) (Нет, 5, 256) 9___________________________________________________________________________ 9_________________ 9000Dist (Нет, 5, 2404) 617828
======================================== ========================= 9 0009
Всего параметров: 2,655,588
Обучаемые параметры: 2,655,588
Необучаемые параметры: 0
_________________________________________________________________
Также создается график модели, дающий другой взгляд на конфигурацию модели.
График модели для NMT
Далее модель обучается.
Каждая эпоха занимает около 30 секунд на современном аппаратном обеспечении ЦП; графический процессор не требуется.
Примечание : Ваши результаты могут отличаться из-за стохастической природы алгоритма или процедуры оценки или различий в числовой точности. Попробуйте запустить пример несколько раз и сравните средний результат.
Во время прогона модель будет сохранена в файл model.h5 , готов для вывода на следующем шаге.
… Эпоха 26/30 Эпоха 00025: val_loss улучшено с 2.20048 до 2.19976, модель сохранена в model.h5 17с — убыток: 0.7114 — val_loss: 2.1998 Эпоха 27/30 Эпоха 00026: значение val_loss улучшено с 2.19976 до 2.18255, модель сохраняется в model.h5 17s — убыток: 0.6532 — val_loss: 2.1826 Эпоха 28/30 Эпоха 00027: val_loss не улучшилось 17s — убыток: 0.5970 — val_loss: 2.1970 Эпоха 29/30 Эпоха 00028: val_loss улучшено с 2.18255 до 2.17872, сохранение модели в model.h5 17s — убыток: 0.5474 — val_loss: 2.1787 Эпоха 30/30 Эпоха 00029: val_loss не улучшилось 17с — убыток: 0.5023 — val_loss: 2.1823
…
Epoch 26/30
Epoch 00025: val_loss улучшено с 2.20048 до 2.19976, сохранение модели в model.h5
17s — потеря: 0.7114 — val_loss: 2.1998
Epoch 27/30
000268 Epoch : val_loss улучшено с 2.19976 — 2.18255, сохранение модели в model.h517s — loss: 0.6532 — val_loss: 2.1826
Epoch 28/30
Epoch 00027: val_loss не улучшилось
17s — loss: 0.5970 — val_loss: 2.1000870
29/30Epoch 00028: val_loss улучшено с 2,18255 до 2,17872, сохранение модели в model.h5
17s — loss: 0,5474 — val_loss: 2,1787
Epoch 30/30
Epoch 00029: val_loss не улучшилось
— убыток: 0.5023 — val_loss: 2.1823
Оценка модели нейронного перевода
Мы оценим модель в поезде и тестовый набор данных.
Модель должна очень хорошо работать на наборе данных поезда и в идеале должна быть обобщена для хорошей работы на тестовом наборе данных.
В идеале, мы должны использовать отдельный набор данных для проверки, чтобы помочь с выбором модели во время обучения, вместо набора тестов. Вы можете попробовать это как расширение.
Чистые наборы данных должны быть загружены и подготовлены, как и раньше.
… # загрузить набор данных набор данных = load_clean_sentences (‘английский-немецкий-both.pkl’) поезд = load_clean_sentences (‘английский-немецкий-поезд.pkl’) test = load_clean_sentences (‘английский-немецкий-test.pkl’) # подготовить английский токенизатор eng_tokenizer = create_tokenizer (набор данных [:, 0]) eng_vocab_size = len (eng_tokenizer.word_index) + 1 eng_length = max_length (набор данных [:, 0]) # подготовить немецкий токенизатор ger_tokenizer = create_tokenizer (набор данных [:, 1]) ger_vocab_size = len (ger_tokenizer.word_index) + 1 ger_length = max_length (набор данных [:, 1]) # подготовить данные trainX = encode_sequences (ger_tokenizer, ger_length, train [:, 1]) testX = encode_sequences (ger_tokenizer, ger_length, test [:, 1])
…
# load datasets
dataset = load_clean_sentences (‘english-german-both.pkl’)
train = load_clean_sentences (‘english-german-train.pkl’)
test = load_clean_sentences -герман-тест.pkl ‘)
# подготовить английский токенизатор
eng_tokenizer = create_tokenizer (набор данных [:, 0])
eng_vocab_size = len (eng_tokenizer.word_index) + 1
eng_length = max_length, 9000] # 9000] # подготовить немецкий токенизатор
ger_tokenizer = create_tokenizer (набор данных [:, 1])
ger_vocab_size = len (ger_tokenizer.word_index) + 1
ger_length = max_length (набор данных [:, 1])
подготовить данные# encode_sequences (ger_tokenizer, ger_length, train [:, 1])
testX = encode_sequences (ger_tokenizer, ger_length, test [:, 1])
Затем необходимо загрузить лучшую модель, сохраненную во время обучения.
# модель нагрузки model = load_model (‘model.h5’)
Оценка# загрузить модель
model = load_model (‘model.h5’)
включает в себя два этапа: сначала создание переведенной выходной последовательности, а затем повторение этого процесса для множества примеров входных данных и обобщение навыков модели в нескольких случаях.
Начиная с логического вывода, модель может прогнозировать всю выходную последовательность за один прием.
translation = model.predict (source, verbose = 0)
translation = model.predict (source, verbose = 0)
Это будет последовательность целых чисел, которую мы можем перечислить и найти в токенизаторе, чтобы отобразить ее обратно в слова.
Функция ниже, названная word_for_id () , будет выполнять это обратное отображение.
# преобразовать целое число в слово def word_for_id (целое число, токенизатор): словом, индекс в токенизаторе.word_index.items (): если index == integer: ответное слово возврат Нет
# сопоставить целое число со словом
def word_for_id (integer, tokenizer):
for word, index in tokenizer.word_index.items ():
if index == integer:
return word
return None
Мы можем выполнить это сопоставление для каждого целого числа в переводе и вернуть результат в виде строки слов.
Функция pred_sequence () ниже выполняет эту операцию для одной закодированной исходной фразы.
# генерировать цель из исходной последовательности def expect_sequence (модель, токенизатор, источник): prediction = model.predict (source, verbose = 0) [0] целые числа = [argmax (вектор) для вектора в прогнозе] цель = список () для i в целых числах: word = word_for_id (i, токенизатор) если слово None: перерыв цель.добавить (слово) return » .join (цель)
# сгенерировать целевую заданную исходную последовательность
def prevent_sequence (модель, токенизатор, источник):
prediction = model.predict (source, verbose = 0) [0]
integer = [argmax (vector) для вектора в прогнозе ]
target = list ()
для i в целых числах:
word = word_for_id (i, tokenizer)
, если слово None:
break
target.append (слово)
return » .join (target)
Затем мы можем повторить это для каждой исходной фразы в наборе данных и сравнить прогнозируемый результат с ожидаемой целевой фразой на английском языке.
Мы можем распечатать некоторые из этих сравнений на экране, чтобы получить представление о том, как модель работает на практике.
Мы также рассчитаем баллы BLEU, чтобы получить количественное представление о том, насколько хорошо модель работает.
Подробнее о баллах BLEU можно узнать здесь:
Приведенная ниже функция calculate_model () реализует это, вызывая указанную выше функцию pred_sequence () для каждой фразы в предоставленном наборе данных.
# оценить мастерство модели def Assessment_model (модель, токенизатор, источники, raw_dataset): фактический, прогнозируемый = список (), список () для i, источник в перечислении (источники): # перевести закодированный исходный текст source = source.reshape ((1, source.shape [0])) перевод = pred_sequence (модель, eng_tokenizer, источник) raw_target, raw_src = raw_dataset [i] если я <10: print ('src = [% s], target = [% s], predicted = [% s]'% (raw_src, raw_target, translation)) действительный.добавить ([raw_target.split ()]) предсказанный.append (translation.split ()) # вычислить балл BLEU print ('BLEU-1:% f'% corpus_bleu (фактический, прогнозируемый, веса = (1.0, 0, 0, 0))) print ('BLEU-2:% f'% corpus_bleu (фактический, прогнозируемый, веса = (0,5, 0,5, 0, 0))) print ('BLEU-3:% f'% corpus_bleu (фактический, прогнозируемый, веса = (0,3, 0,3, 0,3, 0))) print ('BLEU-4:% f'% corpus_bleu (фактический, прогнозируемый, веса = (0,25, 0,25, 0,25, 0,25)))
1
2
3
4
5
6
7
8
9
10
11
12
13
140008
14
# оценить навык модели
def Assessment_model (model, tokenizer, sources, raw_dataset):
actual, predicted = list (), list ()
for i, source in enumerate (sources):
# перевести закодированный исходный текст
source = source.reshape ((1, source.shape [0]))
translation = pred_sequence (model, eng_tokenizer, source)
raw_target, raw_src = raw_dataset [i]
if i <10:
print (‘src = [ % s], target = [% s], predicted = [% s] ‘% (raw_src, raw_target, translation))
actual.append ([raw_target.split ()])
predicted.append (translation.split ())
# вычислить балл BLEU
print (‘BLEU-1:% f’% corpus_bleu (фактический, прогнозируемый, веса = (1.0, 0, 0, 0)))
print (‘BLEU-2:% f’% corpus_bleu (фактический, прогнозируемый, веса = (0,5, 0,5, 0, 0)))
print (‘BLEU-3 :% f ‘% corpus_bleu (фактический, прогнозируемый, веса = (0,3, 0,3, 0,3, 0)))
print (‘ BLEU-4:% f ‘% corpus_bleu (фактический, прогнозируемый, веса = (0,25, 0,25, 0,25, 0,25)))
Мы можем связать все это вместе и оценить загруженную модель как на обучающем, так и на тестовом наборах данных.
Полный список кодов приведен ниже.
из маринованной импортной загрузки из массива импорта numpy из numpy import argmax из keras.preprocessing.text import Tokenizer из keras.preprocessing.sequence import pad_sequences из keras.models импортировать load_model из nltk.translate.bleu_score импортировать corpus_bleu # загрузить чистый набор данных def load_clean_sentences (имя файла): возврат нагрузки (open (имя файла, ‘rb’)) # установить токенизатор def create_tokenizer (строки): tokenizer = Токенизатор () токенизатор.fit_on_texts (линии) вернуть токенизатор # максимальная длина предложения def max_length (строки): return max (len (line.split ()) для строки в строках) # кодировать и дополнять последовательности def encode_sequences (токенизатор, длина, строки): # целочисленные последовательности кодирования X = tokenizer.texts_to_sequences (строки) # последовательности пэдов с 0 значениями X = pad_sequences (X, maxlen = длина, заполнение = ‘сообщение’) вернуть X # преобразовать целое число в слово def word_for_id (целое число, токенизатор): словом, индекс в токенизаторе.word_index.items (): если index == integer: ответное слово return None # генерировать цель из исходной последовательности def expect_sequence (модель, токенизатор, источник): prediction = model.predict (source, verbose = 0) [0] целые числа = [argmax (вектор) для вектора в прогнозе] цель = список () для i в целых числах: word = word_for_id (i, токенизатор) если слово None: перерыв target.append (слово) return » .join (цель) # оценить мастерство модели def Assessment_model (модель, токенизатор, источники, raw_dataset): фактический, прогнозируемый = список (), список () для i, источник в перечислении (источники): # перевести закодированный исходный текст источник = источник.reshape ((1, source.shape [0])) перевод = pred_sequence (модель, eng_tokenizer, источник) raw_target, raw_src = raw_dataset [i] если я <10: print ('src = [% s], target = [% s], predicted = [% s]'% (raw_src, raw_target, translation)) actual.append ([raw_target.split ()]) предсказанный.append (translation.split ()) # вычислить балл BLEU print ('BLEU-1:% f'% corpus_bleu (фактический, прогнозируемый, веса = (1.0, 0, 0, 0))) print ('BLEU-2:% f'% corpus_bleu (фактический, прогнозируемый, веса = (0.5, 0,5, 0, 0))) print ('BLEU-3:% f'% corpus_bleu (фактический, прогнозируемый, веса = (0,3, 0,3, 0,3, 0))) print ('BLEU-4:% f'% corpus_bleu (фактический, прогнозируемый, веса = (0,25, 0,25, 0,25, 0,25))) # загрузить набор данных набор данных = load_clean_sentences ('английский-немецкий-both.pkl') поезд = load_clean_sentences ('английский-немецкий-поезд.pkl') test = load_clean_sentences ('английский-немецкий-test.pkl') # подготовить английский токенизатор eng_tokenizer = create_tokenizer (набор данных [:, 0]) eng_vocab_size = len (eng_tokenizer.word_index) + 1 eng_length = max_length (набор данных [:, 0]) # подготовить немецкий токенизатор ger_tokenizer = create_tokenizer (набор данных [:, 1]) ger_vocab_size = len (ger_tokenizer.word_index) + 1 ger_length = max_length (набор данных [:, 1]) # подготовить данные trainX = encode_sequences (ger_tokenizer, ger_length, train [:, 1]) testX = encode_sequences (ger_tokenizer, ger_length, test [:, 1]) # модель нагрузки модель = load_model ('модель.h5') # тест на некоторых обучающих последовательностях print ('поезд') оценить_модель (модель, eng_tokenizer, trainX, поезд) # test на некоторых тестовых последовательностях печать ('тест') оценить_модель (модель, eng_tokenizer, testX, test)
1
2
3
4
5
6
7
8
9
10
11
12
13
140008
14
18
19
20
21
22
23
24
25
26
27
28
29
30
3435
36
37
38
39
40
41
42
43
44
45
46
47
51
52
53
54
55
56
57
58
59
60
61
62
63
9 0008 6465
66
67
68
69
70
71
72
73
74
75
76
70008
81
82
83
84
85
86
87
88
89
90
91
из pickle import load
из массива импорта numpy
из numpy import argmax
из keras.preprocessing.text import Tokenizer
из keras.preprocessing.sequence import pad_sequences
from keras.models import load_model
from nltk.translate.bleu_score import corpus_bleu
# load a clean9
return load (open (filename, ‘rb’))
# fit tokenizer
def create_tokenizer (lines):
tokenizer = Tokenizer ()
tokenizer.fit_on_texts (строки)
return tokenizer
# максимальная длина предложения
def max_length (строки):
return max (len (line.split ()) для строки в строках)
# encode and pad последовательности
def encode_sequences (tokenizer, length, lines):
# целочисленные последовательности кодирования
X = tokenizer.texts_to_sequences (lines)
# pad sequence with 0 values
X = pad_sequences (X, maxlen = length, padding) = ‘post’)
return X
# сопоставить целое число со словом
def word_for_id (integer, tokenizer):
for word, index in tokenizer.word_index.items ():
if index == integer:
return word
return None
# сгенерировать целевую заданную исходную последовательность
def prediction_sequence (model, tokenizer, source):
prediction = model. прогноз (источник, подробный = 0) [0]
целых чисел = [argmax (вектор) для вектора в прогнозе]
target = list ()
для i в целых числах:
word = word_for_id (i, tokenizer)
, если слово None:
break
target.append (word)
return » .join (target)
# оценить навык модели
def Assessment_model (model, tokenizer, sources, raw_dataset):
actual, predicted = list (), list ()
для i, источник в enumerate (sources):
# перевести закодированный исходный текст
source = source.reshape ((1, source.shape [0]))
translation = pred_sequence (model, eng_tokenizer, источник)
raw_target, raw_src = raw_dataset [i]
if i <10:
print (‘src = [% s], target = [% s], predicted = [% s]’% (raw_src, raw_target , перевод))
актуально.append ([raw_target.split ()])
predicted.append (translation.split ())
# вычислить оценку BLEU
print (‘BLEU-1:% f’% corpus_bleu (фактический, прогнозируемый, веса = ( 1.0, 0, 0, 0)))
print (‘BLEU-2:% f’% corpus_bleu (фактический, прогнозируемый, веса = (0,5, 0,5, 0, 0)))
print (‘BLEU-3 :% f ‘% corpus_bleu (фактический, прогнозируемый, веса = (0,3, 0,3, 0,3, 0)))
print (‘ BLEU-4:% f ‘% corpus_bleu (фактический, прогнозируемый, веса = (0,25, 0,25, 0.25, 0.25)))
# load datasets
dataset = load_clean_sentences (‘english-german-both.pkl ‘)
train = load_clean_sentences (‘ english-german-train.pkl ‘)
test = load_clean_sentences (‘ english-german-test.pkl ‘)
# подготовьте английский токенизатор
eng_tokenizer = create_tokenizer (datase_tokenizer (datase_tokenizer) , 0])
eng_vocab_size = len (eng_tokenizer.word_index) + 1
eng_length = max_length (набор данных [:, 0])
# подготовить немецкий токенизатор
ger_tokenizer = create_tokenizer ger_vocab_size = len (ger_tokenizer.word_index) + 1
ger_length = max_length (набор данных [:, 1])
# подготовьте данные
trainX = encode_sequences (ger_tokenizer, ger_length, train [:, 1])
testX = encode_ngth, test_tokenizer [:, 1])
# load model
model = load_model (‘model.h5’)
# test на некоторых обучающих последовательностях
print (‘train’)
Assessment_model (model, eng_tokenizer, trainX , train)
# test на некоторых тестовых последовательностях
print (‘test’)
Assessment_model (model, eng_tokenizer, testX, test)
При выполнении примера сначала печатаются примеры исходного текста, ожидаемых и прогнозируемых переводов, а также оценки для набора обучающих данных, а затем набор тестовых данных.
Примечание : Ваши результаты могут отличаться из-за стохастической природы алгоритма или процедуры оценки или различий в числовой точности. Попробуйте запустить пример несколько раз и сравните средний результат.
Сначала посмотрев на результаты для тестового набора данных, мы увидим, что переводы читабельны и в основном верны.
Например: « ich bin brillentrager » было правильно переведено как « я ношу очки ».
Мы также можем видеть, что переводы не были идеальными: « hab ich nicht recht » переведено как « am i fat » вместо ожидаемого « am i mis ».
Мы также можем видеть оценку BLEU-4 около 0,45, что дает верхнюю границу того, что мы можем ожидать от этой модели.
src = [er ist ein blodmann], target = [он придурок], предсказал = [он придурок] src = [ich bin brillentrager], target = [я ношу очки], прогнозируемый = [я ношу очки] src = [tom hat mich aufgezogen], target = [том поднял меня], предсказал = [том обманул меня] src = [ich zahle auf tom], target = [я рассчитываю на Тома], предсказано = [я звоню Тому] src = [ich kann rauch sehen], target = [я вижу дым], предсказано = [я могу вам помочь] src = [tom fuhlte sich einsam], target = [том чувствовал себя одиноким], предсказанный = [том чувствовал себя неловко] src = [hab ich nicht recht], target = [я ошибаюсь], предсказано = [я толстый] src = [gestatten sie mir zu gehen], target = [позвольте мне уйти], предсказанный = [уйти] src = [du hast mir gefehlt], target = [я скучал по тебе], предсказал = [я скучал по тебе] src = [es ist zu spat], target = [уже слишком поздно], предсказано = [уже слишком поздно] БЛЕУ-1: 0.844852 БЛЕУ-2: 0,779819 BLEU-3: 0.699516 БЛЕУ-4: 0,452614
src = [er ist ein blodmann], target = [hes a jerk], predicted = [hes a jerk]
src = [ich bin brillentrager], target = [я ношу очки], предсказано = [я ношу очки ]
src = [tom hat mich aufgezogen], target = [том поднял меня], предсказано = [том обманул меня]
src = [ich zahle auf tom], target = [я рассчитываю на тома], предсказано = [ плохой вызов тома тома]
src = [ich kann rauch sehen], target = [я вижу дым], predicted = [я могу помочь вам]
src = [tom fuhlte sich einsam], target = [том чувствовал себя одиноким ], predicted = [tom чувствовал себя неловко]
src = [hab ich nicht recht], target = [am i mis], predicted = [am i fat]
src = [gestatten sie mir zu gehen], target = [ позвольте мне уйти], predicted = [do me to go]
src = [du hast mir gefehlt], target = [я скучал по тебе], предсказал = [я скучал по тебе]
src = [es ist zu spat] , target = [уже слишком поздно], предсказано = [уже слишком поздно]
BLEU-1: 0.844852
BLEU-2: 0,779819
BLEU-3: 0,699516
BLEU-4: 0,452614
Глядя на результаты на тестовом наборе, действительно вижу удобочитаемые переводы, что является непростой задачей.
Например, мы видим, что « tom erblasste » правильно переведено как « tom побледнел ».
Мы также видим некоторые плохие переводы и хороший пример того, что модель может пострадать от дальнейшей настройки, например, « ich brauche erste hilfe » переводится как «, мне они нужны, вы » вместо ожидаемого «, мне нужна первая помощь». “.
Достигнут результат около 0,153 балла BLEU-4, что дает базовый навык, который необходимо улучшить с дальнейшими улучшениями модели.
src = [mein hund hat es gefressen], target = [моя собака съела это], predicted = [моя собака — это Том] src = [ich hore das telefon], target = [я слышу телефон], предсказано = [я хочу это] src = [ich fuhlte mich hintergangen], target = [я чувствовал себя преданным], предсказал = [я не сделал] src = [wer scherzt], target = [whos joking], predicted = [whos is] src = [wir furchten uns], target = [боялись], предсказано = [мы] src = [reden sie weiter], target = [продолжайте говорить], predicted = [оставьте их] src = [was fur ein spa], target = [what fun], predicted = [как весело] src = [ich bin auch siebzehn], target = [im too], predicted = [im so expert] src = [ich bin dein vater], target = [im your Father], predicted = [im your your] src = [ich brauche erste hilfe], target = [мне нужна первая помощь], предсказано = [они мне нужны, вы] БЛЕУ-1: 0.499623 БЛЕУ-2: 0,365875 BLEU-3: 0,295824 BLEU-4: 0,153535
src = [mein hund hat es gefressen], target = [моя собака съела это], predicted = [my dog is tom]
src = [ich hore das telefon], target = [я слышу телефон], предсказано = [я хочу это]
src = [ich fuhlte mich hintergangen], target = [я чувствовал себя преданным], предсказал = [я не делал]
src = [wer scherzt], target = [кто шутит], предсказал = [whos is]
src = [wir furchten uns], target = [боялись], predicted = [мы]
src = [reden sie weiter], target = [keep talk], predicted = [оставьте их]
src = [was fur ein spa], target = [what fun], predicted = [what an fun]
src = [ich bin auch siebzehn], target = [im too], predicted = [im so expert]
src = [ich bin dein vater], target = [im your Father], predicted = [im your your]
src = [ich brauche erste hilfe], target = [мне нужна первая помощь], predicted = [i они нужны вам]
БЛЕУ-1: 0.499623
BLEU-2: 0,365875
BLEU-3: 0,295824
BLEU-4: 0,153535
Расширения
В этом разделе перечислены некоторые идеи по расширению учебника, которые вы, возможно, захотите изучить.
- Очистка данных . С данными могут быть выполнены различные операции по очистке данных, такие как не удаление знаков препинания или нормализации регистра, или, возможно, удаление повторяющихся английских фраз.
- Словарь .Словарь можно было бы уточнить, возможно, удалив слова, использованные менее 5 или 10 раз в наборе данных, и заменив их на « unk ».
- Дополнительные данные . Набор данных, используемый для соответствия модели, может быть расширен до 50 000, 100 000 фраз или более.
- Порядок ввода . Порядок вводимых фраз может быть изменен на обратный, что, как сообщается, повышает квалификацию, или может использоваться слой двунаправленного ввода.
- Слои . Модели кодировщика и / или декодера могут быть расширены дополнительными слоями и обучены для большего количества эпох, обеспечивая большую репрезентативную способность модели.
- Единицы . Количество модулей памяти в кодировщике и декодере можно увеличить, что обеспечит большую репрезентативную емкость модели.
- Регуляризация . Модель может использовать регуляризацию, такую как регуляризация веса или активации, или использование отсева на слоях LSTM.
- Предварительно подготовленные векторы слов . В модели можно использовать предварительно обученные векторы слов.
- Рекурсивная модель . Можно использовать рекурсивную формулировку модели, в которой следующее слово в выходной последовательности может зависеть от входной последовательности и выходной последовательности, сгенерированной на данный момент.
Дополнительная литература
В этом разделе представлены дополнительные ресурсы по теме, если вы хотите углубиться.
Сводка
В этом руководстве вы узнали, как разработать систему нейронного машинного перевода для перевода немецких фраз на английский.
В частности, вы выучили:
- Как очистить и подготовить данные для обучения системы нейронного машинного перевода.
- Как разработать модель кодировщика-декодера для машинного перевода.
- Как использовать обученную модель для вывода новых входных фраз и оценки навыков модели.
Есть вопросы?
Задайте свои вопросы в комментариях ниже, и я постараюсь ответить.Примечание : Этот пост представляет собой выдержку из главы «Глубокое обучение для обработки естественного языка». Взгляните, если вам нужны дополнительные пошаговые руководства по максимально эффективному использованию методов глубокого обучения при работе с текстовыми данными.
Разрабатывайте модели глубокого обучения для текстовых данных уже сегодня!
Создавайте собственные текстовые модели за считанные минуты
…с всего несколькими строками кода Python
Узнайте, как это сделать, в моей новой электронной книге:
Deep Learning for Natural Language ProcessingОн предоставляет самоучителей по таким темам, как:
Пакет слов, встраивание слов, языковые модели, создание титров, перевод текста и многое другое …Наконец-то привнесите глубокое обучение в свои проекты по обработке естественного языка
Пропустить академики. Только результаты.
Посмотрите, что внутриУчебник по Python — Python 3.9.4 документация
Python — это простой в освоении мощный язык программирования. Имеет эффективный структуры данных высокого уровня и простой, но эффективный подход к объектно-ориентированное программирование. Элегантный синтаксис и динамическая типизация Python, вместе с его интерпретируемой природой делают его идеальным языком для написания сценариев. и быстрая разработка приложений во многих областях на большинстве платформ.
Интерпретатор Python и обширная стандартная библиотека находятся в свободном доступе. в исходной или двоичной форме для всех основных платформ с веб-сайта Python, https: // www.python.org/ и может свободно распространяться. Тот же сайт также содержит дистрибутивы и указатели на многие бесплатные сторонние модули Python, программы и инструменты, а также дополнительную документацию.
Интерпретатор Python легко расширяется новыми функциями и типами данных. реализован на C или C ++ (или на других языках, вызываемых из C). Python также подходит в качестве языка расширения для настраиваемых приложений.
Этот учебник неформально знакомит читателя с основными концепциями и особенности языка и системы Python.Помогает иметь Python переводчик удобен для практического опыта, но все примеры самодостаточны, так что руководство также можно читать в автономном режиме.
Описание стандартных объектов и модулей см. В Стандартной библиотеке Python. Справочник по языку Python дает более формальное определение языка. Написать расширений на C или C ++, прочтите Расширение и встраивание интерпретатора Python и Справочное руководство по Python / C API. Есть также несколько книг, в которых подробно рассматривается Python.
Это руководство не пытается быть исчерпывающим и охватывает все функция или даже все часто используемые функции. Вместо этого он вводит многие из Наиболее примечательные функции Python, которые дадут вам хорошее представление о вкус и стиль языка. Прочитав его, вы сможете читать и писать модули и программы Python, и вы будете готовы узнать больше о различные модули библиотеки Python, описанные в стандартной библиотеке Python.
Глоссарий тоже стоит прочитать.
.