Цель урока: закрепить и обобщить знания учащихся по теме: «Синтаксис и пунктуация»; развивать навык синтаксического разбора предложения, развивать пунктуационные навыки учащихся, интерес к русскому языку; воспитывать чувство дружбы и взаимовыручки.
Оборудование: Карта путешествия, индивидуальные карточки.
Ход урока
І. Организация класса.
ІІ. Сообщение цели урока. Актуализация опорних знаний.
Мы закончили изучение большой интересной темы, и сегодня мы совершим сказочное путешествие в страну Пунктуацию, пройдем долгую дорогу к столице Синтаксису. Цель нашего путешествия – преодолеть все препятствия, вспомнить все, что мы изучали в этой теме. Путешествовать мы будем под девизом: «В пунктуацию тропинки одолеем без запинки!» Итак, в путь!
ІІІ. Обобщение и систематизация изученного.
Слово учителя
В тридевятом царстве, в тридесятом государстве была страна. Скучная и серая, и жили там части речи все отдельно: в одном городе – имена существительные, в другом – имена прилагательные, в третьем – глаголы… Между собой они не общались. Предлоги, союзы и частицы не отвечали ни на какие вопросы, поэтому с ними вообще никто не разговаривал. А на самой окраине ютились знаки препинания. Но их даже не замечали: подумаешь, какая-то букашка под ногами вертится! Вот так они и жили. А когда на страну напали враги, то и защищали они только свой город, и поэтому враги их быстро разбивали.
Но как-то в страну пришел волшебник по имени Синтаксис. Стали жаловаться ему и просить: — Сделай так, чтобы мы побеждали врагов!
— Для этого не надо совершать чудеса. Чтобы победить врага, вам нужно объединиться и жить со всеми в дружбе. И стали слова объединяться. Так и образовались словосочетания. Наша первая остановка – Словосочетание.
— Что вы знаете о словосочетании? Из каких частей они состоят?
— Сделайте разбор словосочетаний:
Жить в дружбе, хорошие друзья.
— Понравилось словам объединяться. Страна из бесцветной и скучной превратилась в яркую и радостную. Появились предложения. Что мы называем предложением? К центральным городам ведут две дороги (на карте — условные обозначения подлежащего и сказуемого ).
— К каким городам они приведут нас?
Подлежащее и сказуемое стали во главе предложений.
— Что мы знаем о них? Как по-другому называют подлежащее и сказуемое?
— Запишите предложение, найдите подлежащее и сказуемое:
Яркое солнце светило над городом.
Предложение стало распространенным, потому что в них появились ….
К ним были проложены дороги (на карте – условные обозначения второстепенных членов предложения ).
— Что эти условные знаки обозначают?
— Какие вы знаете второстепенные члены предложения?
— Дайте характеристику предложения.
— Изучая предложения, вы убедитесь, что без знаков препинания не может существовать ни одно предложение.
И вот однажды между знаками препинания состоится такой разговор.
— Сценка «Знаки препинания».
У последней
Точки
На последней
Строчке
Собралась компания
Знаков препинания.
Прибежал
Чудак –
Восклицательный знак,
Никогда он не молчит;
Оглушительно кричит:
Явились запятые,
Девицы завитые
Живут они в диктовке
На каждой остановке
Прискакало двоеточие
Заявили запятые:
Мы особы занятые.
Не обходится без нас
Ни диктовка, ни рассказ.
— Если нет над вами точки,
Запятая – знак пустой! –
Отозвалась с той же строчки
Тетя точка с запятой;
Двоеточие, мигая,
Закричало: — Нет, постой!
Я важней, чем запятая
Или точка с запятой:
— Ура!
Долой!
Караул!
Разбой
Притащился кривоносый.
Вопросительный знак.
Задает он всем вопросы:
— Кто?
Кого?
Откуда?
Как?
Потому что я в два раза
Больше точки одноглазой.
В оба глаза я гляжу.
За порядком я слежу.
— Нет…, — сказало многоточие,
Еле глазками ворочая,-
Если вам угодно знать,
Я важней, чем прочие.
Там, где нечего сказать,
Ставят многоточие…
Вопросительный знак
Удивился: — То есть как?
Восклицательный знак
Изумился: То есть как!
— Так, — сказала точка,
Точка – одиночка,-
Мной кончается рассказ,
Значит, я важнее вас.
Особенно много работы стало у точки. Поэтому в честь нее и страну назвали Пунктуация («пунктум» — в переводе с латинского «точка»). А все знаки препинания дружно живут на Плоскогорье Знаков Препинания. А столицу назвали в честь мудрого волшебника – Синтаксис. Путешествуя по Плоскогорью Знаков препинания, мы получили телеграмму:
Телеграмма
Ребята мы рады видеть вас в нашей стране вам нравится путешествовать вы на правильном пути ждем вас в нашей столице в добрый путь.
Знаки препинания
Как в любой телеграмме здесь нет знаков препинания.
Ученик расставляет знаки препинания в телеграмме.
В это время работа с классом.
Пунктуационная работа.
Есть старинная легенда о том, как неправильно поставленный знак препинания – запятая – принес человеку смерть. Согласно легенде, султану принесли на утверждение приговор. Там было написано:
Казнить нельзя помиловать.
Прежде чем утвердить приговор, султан поставил запятую. И поставил ее не там, где надо. В результате человека, которого он хотел помиловать, казнили.
— Как вы думаете, где он поставил запятую?
— А где ее надо было поставить?
Ваша задача расставить знаки препинания, установить границы предложения.
— Итак, чтобы продолжить путешествие к столице Синтаксис, вы должны сделать синтаксический разбор предложений:
По лесным тропинкам тихо бродит осень.
Красные, желтые листья кружатся в воздухе.
— Почему появилась запятая в последнем предложении?
Ребята, как красив осенний лес!
— Почему в этом предложении нужна запятая? (Обращение). Является ли обращение членом предложения?
Но на этом дружба слов в предложении не закончилась. Предложения росли, расширялись, становились сложными. Наша следующая остановка в Заливе Сложном. Что это за необычные обозначения здесь? (На карте – схема сложного предложения). Какие предложения называются сложными, что они обозначают?
Поздняя осень уже наступила, птицы улетают в теплые края.
— Внимание! Впереди еще какое-то условное обозначение: А: «П». Чтобы оно могло обозначать? Мы приближаемся к реке Прямореченской. Почему у нее такое необыкновенное название? Чтобы через реку переплыть, нужно выполнить ряд заданий:
— Что такое прямая речь?
— Как она пишется? Какие знаки препинания ставятся при прямой речи?
— Ребята, благодаря дружбе и взаимовыручке мы продвигаемся с вами вперед. Поэтому я хочу, чтобы по данной схеме вы составили предложения о дружбе. (Ребята знают: «Дружба – великое дело».)
— А какие пословицы о дружбе вы знаете? Приведите примеры!
Пословицы о дружбе.
Один за всех, все за одного.
Друзья познаются в беде.
Старый друг лучше новых двух.
Нет друга – ищи, а нашел – береги.
Не имей 100 рублей, а имей 100 друзей.
Доброе братство милее богатства.
Мы дружно сегодня путешествовали, и, я думаю, вам можно вручить ключ от столицы, города Синтаксиса.
ІV. Закрепление знаний учащихся.
Каждый из вас сможет еще много совершить открытий в этой замечательной стране, если справится с заданием. (Все ученики получают карточки с индивидуальным заданием).
V. Рефлексия. Подведение итогов урока.
Диктант – викторина:
1. Два слова, связанные между собой по смыслу и грамматически? (Словосочетание).
2. Тип предложения по цели высказывания, в котором содержится вопрос. (Вопросительное).
3. Знак препинания, который ставится между однородными членами предложения и между простыми предложениями в составе сложного. (Запятая).
4. Второстепенный член предложения, который обозначает признак предмета и отвечает на вопросы: какой? чей? (Определение).
5. Слово (или словосочетание слов), которое называет того, к кому обращаются с речью. (Обращение).
6. Главный член предложения, который отвечает на вопросы именительного падежа: кто? что? (Подлежащее).
7. Второстепенный член предложения, который обозначает место, время, способ действия и отвечает на вопросы: где? куда? когда? как? (Обстоятельство).
8. Разговор двух или нескольких лиц. (Диалог).
9. Раздел науки о языке, в котором изучаются словосочетания и предложения. (Синтаксис).
10. Раздел науки о языке, который учит правильно ставить знаки препинания. (Пунктуация).
11. Речь, какого-либо лица, передаваемая от его имени. (Прямая).
12. Тип предложения по цели высказывания, в котором содержится сообщение о чем-либо. (Повествовательное).
VI. Домашнее задание.
Повторить параграфы 6-10.
Выполнить тестовые задания – стр. 89, упражнение 11.
Задание высокого уровня (по желанию): составить сказку о пользе знаков препинания.
evrrn
После релиза нашей первой модели, расставляющей знаки препинания и большие буквы, было много пожеланий доработать её, чтобы она могла обрабатывать тексты целиком, а не отдельные предложения. Это коллективное пожелание и было осуществлено в нашей новой версии модели.
В целом, архитектура и датасеты остались прежними. Что изменилось:
- обучение теперь производилось не на отдельных предложениях, а на нескольких последовательных предложениях (принимаем во внимание, что конструктивное ограничение модели при обучении — 512 токенов на вход, что позволяет свободно подавать ~150 слов на любом из четырех поддерживаемых языков)
- для ускорения обучения модели сокращение словаря теперь проводилось не только на инференсе, но и на трейне, что позволило увелить размер батча
Размер модели и ее сжатие
Первая версия модели на момент релиза уже весила меньше 100 мегабайт. После этого мы выбросили еще 20 тысяч токенов (размер токена, напомним, 768) — токенов с большой буквой в начале, про которые мы забыли в тот раз, и которые модель, очевидно, не использует. Так модель еще немного ужалась до 85 мегабайт.
Как и раньше, основным секретом такого удобного размера выступает статическая и динамическая квантизация.
Что мы еще попробовали:
-
прунинг — с помощью кода из оригинального репо базовой модели действительно удалось проанализировать головы и подрезать лишние, но это, во-первых, резко ухудшило качество модели, во-вторых, из-за особенностей архитектуры модели, головы — не единственные тяжеловесные ее части, и выигрыш по размеру составил только 10 мегабайт, что вообще не имеет смысла при ухудшении метрик;
-
факторизацию — вывод примерно аналогичный, хоть выигрыш и составил здесь около 20 мегабайт, эмбеддинг стал работать сильно менее успешно и вероятно требовал очень длительного дообучения, что тоже выходило бы не вполне рационально.
В итоге от обеих перечисленных техник было разумнее отказаться.
Результаты
Напомним, что для этой задачи мы снимаем метрики на валидационных сабсетах наших приватных текстовых корпусов (5,000
предложений на каждый язык) и на текстах caito (20,000
случайных предложений на каждый язык). Более подробно про снятие метрик — в нашей статье про первую версию модели.
В этот раз для краткости приведем только WER (word error rate) в процентах, причем отдельно рассчитанный для пунктуации (и предсказание, и оригинал при этом приведены к строчному виду) — WER_p
и для расставления заглавных букв (а здесь выбрасываем всю пунтуацию) — WER_c
.
Мы посчитали метрики как для входных данных, представляющих из себя блоки из нескольких последовательных предложений, так и на отдельных предложениях, чтобы удостовериться, что новая версия модели действительно включает в себя функционал старой.
В ячейках указан WER_p
/ WER_c
, а наивный бейзлайн состоит в постановке заглавной буквы в начале текста и точки в конце.
WER — работа модели на блоках из нескольких предложений
Домен — валидационные данные:
Домен — книги:
WER — работа модели отдельных предложениях
Домен — валидационные данные:
Домен — книги:
Впрочем, еще работая с текстами caito в первый раз, мы заметили, что они далеки от идеала — нередко предложения будто обрезаны или перемешаны, внутри предложения вклинивается другое, начинающееся с большой буквы, но без точки до этого, — что, конечно, на блоках предложений становится еще более заметным. Вероятно, таковы издержки предобработки текстов книг. Тем не менее, решили уже не переходить на другие датасеты для удобства сравнения метрик — понятно, что полученные числа скорее коррелируют с реальным качеством работы модели на произвольных данных.
Примеры работы модели
Как и раньше, приведем непосредственные примеры работы модели — в этот раз поможем Агенту Смиту с пунктуацией и заглавными буквами на трех оставшихся языках:
Как запустить
Модель, как и первая ее версия, выложена в репозитории проекта silero-models. А вот простой запуск модели (подробнее, как обычно, в colab):
import torch
model, example_texts, languages, punct, apply_te = torch.hub.load(repo_or_dir='snakers4/silero-models',
model='silero_te')
input_text = input('Enter input textn')
apply_te(input_text, lan='en')
Дальнейшие планы
В перспективе есть мысли переработать и расширить тренировочный корпус текстов — например, сейчас в нем заметно не достает примеров разговорной живой речи, как в субтитрах.
Еще одна особенность модели, тоже проявившаяся именно при работе с целыми абзацами текста: из-за того, что модель предсказывает заглавные буквы и пунктуацию раздельно — на каждую подзадачу отдельная голова, — изредка эти предсказания выходят несогласованными. В процессе разработки модели мы пробовали делать общую голову для обеих задач, но она работала хуже раздельных. Опция, которую хорошо бы еще проверить, — предсказывать сначала расстановку заглавных букв (это более простая задача), а потом подавать это предсказание вместе с входной текстовой последовательностью для расстановки пунктуации.
P. S. Делитесь остроумными примерами работы модели в комментариях и голосуйте за понравившиеся! Лучшие фразы добавим как встроенные примеры в следующем релизе