1 мая 2012 в 13:09

Как Булгаков помогает изучать расстановку запятых – сайт для повышения грамотности

Большинство из нас проходили русский язык. Но, так как это происходило в переходном возрасте, мы проходили его мимо. Кто-то в это время работал, кто-то занимал первые места на спортивных соревнованиях, кто-то играл на приставках, а большинство вкладывали всё своё доступное время в общение с компьютером.
Социальная сеть Ковчег. Автор Вецель Евгений
Именно поэтому мы не всегда грамотно пишем, показывая себя не с лучшей стороны. Несмотря на то, что я умею программировать, мне с трудом удаётся понять алгоритм расстановки запятых (такое ощущение, что эти правила специально запутали).

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

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

Сайт находится тут

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

Расстановка запятых похожа на игру в «минёр» и увлекает, особенно если рядом лежит справочник по орфографии и пунктуации Розенталя.

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

Если хотите отобразить все запятые текста, нажмите клавишу «Shift».

Для интересующихся, приведу главную часть сайта. Этот скрипт удаляет в тексте запятые и показывает их при клике. Используется jQuery.

Если правильно – зелёным цветом, если неправильно, то красным.

require_once 'db.php';
  include 'hypher.php';
  $hy_ru = new phpHypher('hyph_ru_RU.conf');

$db = mysql_connect ($config[mysql_host], $config[mysql_user], $config[mysql_password]);
mysql_query("SET NAMES utf8");
mysql_select_db($config[base_name],$db);   
if (!$db) { echo "Ошибка подключения к SQL :("; exit();}

$p = intval($HTTP_GET_VARS['p']);
$book = intval($HTTP_GET_VARS['book']);
$glava = intval($HTTP_GET_VARS['glava']);


if ($glava<=1) $glava=2;
	
	$sqlnews4 = "SELECT `text` FROM `1_commit` WHERE id = '$glava'";
	$result4 = mysql_query($sqlnews4); 
	@$sql4 = mysql_fetch_array($result4);
	
	$text = '<p><h11>'.$sql4['text'].'</p>';

	$text = str_replace(", –","@@",$text);

	$text = str_replace(", ","<span&&class='com'>, </span>",$text);
	$text = str_replace(" ","<span class='com_wrong'>, </span>",$text);
	$text = str_replace("&&"," ",$text);
	$text = str_replace("@@",", –",$text);
	$text = str_replace("\n","<span class='com_count'>0</span></p><p>",$text);

	$text = $hy_ru->hyphenate($text,'UTF-8');
	
	echo '<div id="mytext"><span style="float:right;color:lightgray">Мастер и Маргарита. Михаил Булгаков.</span>
';
	echo $text;
	echo '<div><center>';
	if ($glava>2) echo '<a class="linknext" href="?glava='.($glava-1).'"><<Предыдущая глава</a>';
	if ($glava<33) echo '<a class="linknext" href="?glava='.($glava+1).'">Следующая глава>></a>';
	echo '</center>';
	
?>
<div id="show">Подсказать</div>
<div id="show2">На главную</div>
<div id="score"></div>
<div id="help">Правила</div>
<div id="rules">Правила</div>
    </body>
    
<script type="text/javascript">
$(document).ready(jsDoFirst); 

function jsDoFirst()
{
		    
		$('p').each(function(){
			cnt_all = $(this).children('.com').length;
			cnt = $(this).children('.com[id2=1]').length;
			cnt_sum = cnt_all-cnt;
			
			$(this).children('.com_count').html(cnt_sum);
		    });
		
		$('.com_wrong').click(function(){
			$(this).css('color','red');
			$(this).css('opacity','1');
			$(this).attr('id2','1');
		  	$(this).animate({"opacity":"0.2"},5000, function(){});
			$('#score').html('ошибок: '+$('.com_wrong[id2=1]').length+' | верных: '+$('.com[id2=1]').length);
		    });
		    
		$('.com').click(function(){
			$(this).css('color','green');
			$(this).css('background-color','white');
			$(this).css('opacity','1');
			$(this).attr('id2','1');
			cnt_all = $(this).parent('p').children('.com').length;
			cnt = $(this).parent('p').children('.com[id2=1]').length;
			cnt_sum = cnt_all-cnt;
			if ((cnt_sum==0)) 
			   {
			   rrnd = Math.round(Math.random()*5);
			   $(this).parent('p').children('.com_count').css('color','yellow');
			   if (rrnd==0) cnt_sum='Молодец!';
			   if (rrnd==1) cnt_sum='Молодчина!';
			   if (rrnd==2) cnt_sum='Профи!';
			   if (rrnd==3) cnt_sum='Ты супер!';
			   if (rrnd==4) cnt_sum='Так держать!';
			   if (rrnd==5) cnt_sum='Гений!';
			   }
			
			$(this).parent('p').children('.com_count').html(cnt_sum);
			
			$('#score').html('ошибок: '+$('.com_wrong[id2=1]').length+' | верных: '+$('.com[id2=1]').length);
		    });
		    
		$('#show2').click(function(event){
	  	    document.location.href="http://www.wezel.ru/";
		    });

		$('#show').click(function(event){
			if ($('.com[id2!=1]').css('opacity')=='0')		      
			  $('.com[id2!=1]').css('opacity','1');
			else
			  $('.com[id2!=1]').css('opacity','0');
			 });

		$(document).keydown(function(event){
			if(event.keyCode == 16)
			  { 
			  $('.com[id2!=1]').css('opacity','0.9');
			  }
			 });

		$(document).keyup(function(event){
			if(event.keyCode == 16)
			  { 
			  $('.com[id2!=1]').css('opacity','0.0');
			  }
			 });

		$('#help').click(function(event){
			 if ($('#rules').css('display')=='none')
			     {
				 $('#rules').load('rules.html').fadeIn(500);
				 $('#help').css('opacity','0.9');
				 }
		     else
		         {
				 $('#rules').load('rules.html').fadeOut(500);
				 $('#help').css('opacity','0.4');
				 }
		     
		     });

		$('#rules').draggable().resizable(); 

}
</script>    



Тут всё довольно просто. CSS вы можете взять на моём сайте.

Инструкция $text = $hy_ru->hyphenate($text,'UTF-8'); расставляет переносы, чтобы текст смотрелся красивее.

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

Внизу страницы есть кнопки Like от социальных сетей. Очень удобно расставлять запятые с планшета.

Давайте повышать популяцию Grammar Nazi и уменьшать количество еды для них.

Сайт оптимизирован для iPhone и может работать при отсутствии связи:
Социальная сеть Ковчег. Автор Вецель Евгений

Запятые — это не так сложно, как кажется.
Евгений @imater
карма
88,5
рейтинг 0,0
Самое читаемое Дизайн

Комментарии (73)

  • +5
    Запятые не так сложно(но и не всегда просто). Добавьте более замудренные знаки препинания: тире, двоеточие, точка с запятой, запятая+тире, прямая речь и т.д.
    • +1
      Растерявшийся Иван послушался шуткаря-регента и крикнул «караул!», а
      регент его надул, ничего не крикнул.
      Одинокий, хриплый крик Ивана хороших результатов не принес. Две
      каких-то девицы шарахнулись от него в сторону, и он услышал слово
      «пьяный».
      • 0
        Это что за шифровка?
        • +2
          Это цитата из романа М.Булгакова.
      • –2
        Пропустили двоеточие перед прямой речью.
        • +3
          Поэтому я сделал копипаст из книги, чтобы не наврать с авторской пунктуацией.
          • 0
            А где брали книгу? Далеко не факт, что не было ошибок при наборе и т. п. Кстати говоря, последние правила зафиксированы 1956 годом, а Булгаков писал несколько раньше, так что соответствие актуальным правилам тоже надо проверять.
        • +2
          Это не прямая речь, а чужие слова включенные в авторский текст.

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

          Русский язык очень сложный, да.
          • 0
            Нет, в данном случае это именно прямая речь.
    • +1
      Запятые не так сложно, но и не всегда просто. — так правильнее и с запятыми
  • +30
    Запятые, это не так сложно как кажется
    Запятые — это не так сложно, как кажется.

    И точку в конце предложения :)
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        > И, кстати, в моём предыдущем сообщении всё-таки нужна запятая после слова «запятую», или нет?

        И кстати, в моём предыдущем сообщении всё-таки нужна запятая после слова «запятую», или нет?

        Запятая перед дефисом не нужна.
        • 0
          Даже так:

          И кстати, в моём предыдущем сообщении всё-таки нужна запятая после слова «запятую» или нет?
        • +12
          > Запятая перед дефисом не нужна
          Особенно если учесть, что это тире.
      • 0
        Это тире :)
      • 0
        В вашем предложении «А запятую перед дефисом, разве не надо ставить?» запятые вообще не нужны.
    • 0
      Но стоит отметить, что без смыслового анализа запятые правильно не расставить:

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

      Джо здесь есть? (тут ли находится Джо)
      Джо, здесь есть? (тут ли хавать)

  • +1
    Ох спасибо. очень актуально.
    • +5
      Междометие надо выделить запятой. («Ох» — междометие)
  • +3
    Спасибо. В таком виде как-то охотнее тренироваться в расстановке запятых, но и другие знаки препинания были бы к месту.
    И не лучше ли будет, если количество запятых на параграф убрать? А то после первого прохода, заметив, что остались запятые, начинаешь уже намеренно вглядываться и искать запятые.
  • +2
    Спасибо, классная штука!
    Пунктуация для меня всегда была бедою :(
    Поэтому стараюсь при написании использовать простые конструкции, без всяких заморочек, кучи деепричастных оборотов и множества союзов «и» :)))

    Тексты, конечно, драконовские, столько запятых, да еще перед «и»…
    Но при этом в вашей программе проще, т.к. видно сколько запятых должно быть. На диктантах в школе такой опции, к сожалению, не было :)
    • +2
      По-моему не так уж и сложно. Сложносочинённое предложение? Обязательно запятая. Деепричастный оборот? Тоже. Лишь в причастном не всегда.
      • 0
        Я вот английский плохо знаю, потому что нам преподавали примерно так: «русский деепричастный оборот в английском языке выражается с помощью...», а что такое «деепричастный оборот» в русском языке как-то не говорили…
  • +3
    А на Хабре запятые учат написав минимум 20 хороших постов.
    • +1
      Жаль, что не учат в процессе написания даже сотни комментариев…
  • +3
    > мне с трудом удаётся понять алгоритм расстановки запятых
    Где-то было: если в этом месте можно вставить междометие/вводное слово «бля», значит запятую тут поставить можно :D
    • +3
      У некоторых через слово будет по запятой.
  • 0
    В хроме выделив текст можно увидеть места правильной расстановки :)
    • +2
      Нет, когда выделяешь после каждого слова стоит запятая.
      • 0
        image
    • +3
      Можно просто нажать «Подсказать», но зачем себя обманывать? ;)
      • +2
        «Подсказать» скучно — это by design.
        • –1
          Ваша картинка наглядно показывает, что запятые выставлены после каждого слова.
          • +14
            Ну, я даже не знаю, мне белые пробелы еще и красным обвести, чтобы еще наглядней было?
    • 0
      В Опере тоже в некоторых местах видно. Там, где должна быть запятая, расстояния между словами фиксированное. А где нет запятых, там, обычно, большее расстояние из-за выравнивания по ширине.
  • +8
    Я никогда не оставляю комментарии об ошибках/описках. Но в посте о сайте, помогающем набить руку в пунктуации, я не мог пройти мимо этого:

    Недавно, я решил изучить все правила и набить руку на практике.
    • +3
      Туда же:
      … а сайт будет подсказывать правильно ли вы делаете.
      Надеюсь кому-то этот сайт поможет овладеть искусством запятых.
    • 0
      с чего это вдруг там запятая?
      • 0
        Теперь все в порядке, автор поправил.
        • 0
          Граммар-наци всего мира должны выработать единый стиль комментариев с указанием на ошибки :).
  • +5
    Красивая идея и реализация, тыкать мышкой понравилось.
    Смущают только пара нюансов.
    К самому движку и посту претензий особых нет. Убрать подсказку по выделению текста и обфусцировать передаваемое в JQuery запросах — это просто технические исправления.
    Сейчас наверное фигню напишу, не уверен, что многие меня поймут, момент довольно тонкий, но…

    1. для режима экзамена неплохо бы написать авторский текст, никому не известный. Ибо с тем же Булгаковым просто выделяем мышью пару предложений, поиск в Гугле, и видим оригинал текста.
    2. если брать тексты писателей художественной литературы, неважно, Булгакова, Толстого, или кого-то еще, получаем кучу моментов, где приходится буквально угадывать мысли автора.
    Попробую объяснить. Бывают места, где запятая «плавающая». Она может ставиться, а может не ставиться на усмотрение автора. Где запятая не потому, что например железное правило «перед НО ставим всегда», а где она регулирует смысл либо акценты. Обычно это даже не одна запятая, а совокупность запятых в предложении.

    Пример. Сразу скажу, он далеко не самый удачный, но зато ближайший, и на мой взгляд для разъяснения худо-бедно подходит.
    По ссылке а посте возьмем первое же предложение:
    «Однажды весною, в час небывало жаркого заката, в Москве, на Патриарших прудах, появились два гражданина.»
    И перепишем его так:
    «Однажды весною, в час небывало жаркого заката в Москве, на Патриарших прудах появились два гражданина.»
    Я могу ошибаться, но ИМХО оба предложения являются валидными с точки зрения правил. Отличаются лишь расстановкой акцентов.
    В первом случае акцентирование понятно: так как это самое первое предложение в книге, автор дает читателю что-то вроде работы сайта гугл-мапс. Помните, в картах постепенно приближаемся, начиная с обзора карты мира, и до конкретного места. Вот тут то же самое, в начале книги автор дает читателю представление о месте и времени событий, а заодно и о погоде, начиная так же издалека, как в картах: Весна->небывало жаркий закат->Москва->Патриаршие->два гражданина. Почти как «Девушка, фонарь, аптека» )))
    Во втором случе расстановка запятых другая, т.к. по акценту(который зависит от желания автора, но не читателя) слова «в час небывало жаркого заката в Москве» будут являться уточняющим членом предложения, который выделяется запятыми, но при этом может быть практически безболезненно вырезан из самого предложения: «Однажды весною на Патриарших прудах появились два гражданина.»(здесь, кстати, тоже можно придраться и выделить запятыми «на Патриарших прудах», говорю же — пример не очень удачный).
    Надеюсь вы поняли, о чем я хотел сказать: акценты в предложениях изначально расставляет автор и только от его желания зависит само формирование предложения. Автор имеет свои мысли и акценты, и исходя из них формирует текст предложения.
    В данной же программе мы занимаемся как бы reverse engineering'ом, то есть по тексту без запятых расставляем эти самые запятые. Большую часть из них мы расставим по правилам, но в какой-то части нам нужно знать(угадать) мысли автора. Мы смотрим как бы с обратной, по отношению к автору, стороны: видим текст(готовый продукт) и пытаемся распознать акценты автора.

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

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

    Возражения и критика приветствуются.
    • 0
      >Я могу ошибаться, но ИМХО оба предложения являются валидными с точки зрения правил. Отличаются лишь расстановкой акцентов.
      Нет, тут не в акценте дело. «в час небывало жаркого заката» обособляется, т.к. это, по сути, обстоятельство, уточняющее время «однажды весною». Убирая вторую запятую, Вы нарушаете правило, не закрывая оборот.
      >тоже можно придраться и выделить запятыми «на Патриарших прудах», говорю же — пример не очень удачный).
      Нет, «Патриаршие» выделить запятыми не получится (кроме случая «авторского употребления», которое может нарушать все мыслимые правила), этим оборотом нечего уточнять (нет указания на место в контексте).

      Отчасти соглашусь, отчасти возражу.
      Художественная литература (особенно наша, родная, а не переводы) будет иметь одно последствие:
      >необходимо составить тексты, исключающие неоднозначности в акцентах
      Это хорошая вещь. Потому что помимо зазубривания правил расстановки Вы получите повод посмотреть на _другие_ примеры употребления запятой в этом же месте. Если Вы, например, уверены, что «тут запятой быть не должно», а она, чертовка, стоит, то это смотивирует Вас разобраться, почему же она там есть :)
      Ситуаций, когда «автору захотелося» намного меньше, чем кажется.
  • +2
    В русском языке нет алгоритма расстановки запятых — их все легко можно услышать по интоннациям. Практически все правила пунктуации следуют интоннационной составляющей. Запрограммировать это, наверное, можно, но не просто, мне кажется.
    • +2
      Алгоритмическая составляющая есть, но не без исключений.
      Один и тот же текст, начитанный актером в аудиокнигу, и прочитанный диктором новостей, может иметь совершенно разную интонационную окраску.
      Однако вы правы: запрограммировать это крайне непросто, особенно учитывая, что программа не просто пару соседних слов должна анализировать, а все предложение с учетом частей речи, а иногда и абзац или даже несколько.
      То есть фактически искусственный интеллект получится. Чат-бот здесь не прокатит.
      • 0
        > Один и тот же текст, начитанный актером в аудиокнигу, и прочитанный диктором новостей, может иметь совершенно разную интонационную окраску.
        Тогда часть знаков в тексте должна быть по-другому расставлена.
    • +1
      Только она интонация. Раз уж тут граммарнаципсто)
    • 0
      Услышал где-то правило — если при говорении делаешь паузу, то запятая точно нужна. На хабре не раз поправляли комменты, написанные по это правилу — в основном, лишние запятые ставлю.
  • 0
    Чем-то напомнило «Интерактивный диктант» от Грамоты.ру.
    • 0
      Только тут кликать проще (не нужно выбирать варианты) и можно Shift кратковременно жать для подсказки.
  • +1
    Фон страницы понравился.
  • +1
    Классная идея! Особенно может быть интересна уехавшим за границу. Можно хоть как-то поддерживать свой уровень знания языка.
  • +1
    $('.com').trigger('click');
    

    ошибок: 0 | верных: 457
  • +1
    Необычно, просто и полезно. С запятыми особых проблем никогда не испытывал, но на сайте несколько абзацев с удовольствием пощёлкал…
  • –1
    Вы мой герой.
  • –1
    А, я думал что, запятые хотябы расставлять, умею. Оказалось, нет.
  • 0
    Мне бы сейчас сервис, проверяющий расстановку знаков препинания. Это было бы отлично.
    • 0
      Orfo хорошо проверяет запятые
  • –1
    Что интересно — перешел на главную стр. сайта, там предлагают читать три книги серии «Ковчег». На первой же странице первой книги с пунктуацией все очень плохо…
  • +4
    Больше, запятых в самых неожиданных, местах!
  • 0
    Немного оптимизировал сайт для работы с iPhone.
    image
    Теперь в пробках будет не так скучно. Во время расстановки запятых, связь GPRS не нужна.
    • 0
      > запятых_,_ связь

      здесь Вы лишнюю запятую влепили :) Так что — сайт в помощь!
  • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    >Несмотря на то, что я умею программировать, мне с трудом удаётся понять алгоритм расстановки запятых (такое ощущение, что эти правила специально запутали).

    У меня для тебя плохие новости.

    З.Ы. Я и программировать умею, и по русскому всегда 5 было. ЧЯДНТ?
    • 0
      Хвастаешься.
    • 0
      «5 по русскому» не гарант Вашей грамотности, боюсь Вас разочаровать :)
  • 0
    Прекрасный сайт, спасибо вам.
    Возможно ли вместо оригинального текста с сайта на картинку в начало статьи поместить отрывок текста, которого нет на сайте. Спойлер хоть и маленький, но в самом начале заставил вместо размышлений о том, где поставить запятую, судорожно вспоминать картинку в статье.
    Ну или как вариант предложить несколько произведений на выбор.
    • 0
      Там 30 глав книги. Можете тренироваться на остальных страницах. Внизу ссылки: «Следующая глава».
      • 0
        Спасибо. Попробуем расставить запятые во всех 30 главах.
  • 0
    Ошибка подключения к SQL :(
    • 0
      Всё работает.
  • 0
    Спасибо от гуманитарской моей душонки :))

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