И З ИСТОРИИ НАУКИ
Андрей Анатольевич Зализняк
А.ПИПЕРСКИ
24
ДЕКАБРЯ 2017 ГОДА В ВОЗРАСТЕ 82 лет ушел из жизни великий российский лингвист, академик РАН Андрей Анатольевич Зализняк (1935–2017). На его счету – множество выдающихся открытий. Он изучал древненовгородские берестяные грамоты и описал грамматику древненовгородского диалекта; он убедительно доказал, что «Слово о полку Игореве» действительно было написано около 1200 года, а не является подделкой XVIII века, как многие считали раньше; он создал словарь русского словоизменения, который и по сей день лежит в основе компьютерных программ, работающих с русским языком; он развил и доработал определение падежа, данное А.Н.Колмогоровым, – и многое другое. Строгость и доказательность работ Андрея Анатольевича была и остается идеалом для всех его учеников – а таковыми считают себя почти все лингвисты Москвы и не только.
Отличительная черта научной деятельности Зализняка – интерес к математике и точным методам в языкознании. В 1950-е годы он учился на французском отделении филологического факультета Московского университета – казалось бы, что может быть более гуманитарным и далеким от точных наук? Однако он стал ходить к В.А.Успенскому на занятия по математике для филологов и оказался в числе лучших студентов. «Он меня абсолютно потряс. Он задавал какие-то вопросы, чрезвычайно глубокие, но совершенно перпендикулярные к вопросам всех остальных и к тому, чего я мог ожидать. Какой-то такой был поворот в его вопросах, словно он с другой стороны на все смотрел. Сразу стало ясно, что это гений», – вспоминает Вскоре Зализняк стал одним из руководителей семинара по математической лингвистике на механико-математическом факультете МГУ. О некоторых достижениях Зализняка, связанных с формализацией лингвистического знания, мне бы и хотелось рассказать поподробнее.
Русское словоизменение В 1957–1958 годах Зализняк был на стажировке в Париже. Там он преподавал французским студентам русский язык и обнаружил, что существующих описаний русского склонения и спряжения для иностранцев недостаточно: они слишком расплывчатые. Уже в 1961 году Зализняк издал «Краткий русско-французский учебный словарь», приложив к нему абсолютно формальный 150-страничный очерк русского словоизменения. В 1965 году из этого очерка выросла кандидатская диссертация; работа оказалась настолько новаторской, что ее сразу засчитали за докторскую. В 1967 году Зализняк издал книгу «Русское именное словоизменение», а в 1977 году – «Грамматический словарь русского языка».
В.А.Успенский (слева) и А.А.Зализняк на Летней школе «Современная математика» (Дубна, 2009 г.)
1 Борьба за лингвистику. Беседа с математиком Владимиром Успенским. Часть 1. http://polit.ru/ article/2009/07/09/linguist/
16
КВАНТ 2018/№1
В этом словаре при каждом слове стоят непривычные пометы: дуб м 1с, порог м 3a, фонарь м 2b. Ясно, что «м» обозначает мужской род, а зачем все остальное? Ведь мы со школьных лет и так знаем, что дуб, порог и фонарь – это II склонение. Однако для полного описания русского языка такого знания недостаточно. Чтобы убедиться в этом, образуем родительный падеж единственного числа и именительный падеж множественного числа: нет дэба – есть дубы ’, нет поруга – есть поруги, нет фонаря ’ – есть фонари ’. Видно, что в окончаниях этих слов появляются разные буквы (в одном – а и ы, в другом – а и и, в третьем – я и и), да и с ударением все непросто: у слова дуб оно падает то на окончание, то на основу, у слова порог оно в обеих формах на основе, а у слова фонарь – на окончании. Именно эту информацию и несут в себе пометы. Цифры обозначают, на что оканчивается основа и как будут выглядеть окончания: 1 – основа на твердый согласный (кроме заднеязычных к, г и х, шипящих ш и ж и свистящего ц); 2 – основа на мягкий согласный (кроме ч и й); 3 – основа на к, г и х и т.д. Таких типов у существительных насчитывается девять: 0 – несклоняемые слова (напри-
мер, кенгуру), 1–7 – варианты традиционных I и II склонений (например, акула, поезд, ведро) и 8 – традиционное III склонение (например, крепость). Буква обозначает схему ударения: a – всегда на основе; b – всегда на окончании; c – подвижное ударение: в единственном числе на основе, а во множественном – на окончании и т.д. Всего у существительных насчитывается восемь схем, включающих в себя по крайней мере 10 слов. Больше 90% существительных в «Грамматическом словаре» Зализняка относятся к схеме a – но это не значит, что остальными схемами можно пренебречь. Дело в том, что редкие схемы включают в себя очень частотные слова: например, многие названия частей тела. Посклоняйте слово рука и посмотрите, когда ударение будет на основе, а когда на окончании: распределение там очень прихотливое. И вот если считать не по словарю, а по текстам, то на все схемы, кроме a, придется более четверти всех существительных (табл.1). Кстати, в этой таблице пары слов в каждой ячейке упорядочены так же, как и в самом «Грамматическом словаре», – в инверсионном (обратном) порядке, т.е. по алфавиту при чтении справа налево, а не слева направо. Если объединить эти 16 слов в один список и упорядочить его таким образом,
Таблица 1
17
ИЗ
ИСТОРИИ
получим: изба, губа, рука, спина, гора, карта, душа, дуб, порог, море, вино, ухо, червь, фонарь, доля, ступня (как и при обычной алфавитной сортировке, если последние буквы одинаковы, смотрим на предпоследние и т.д.). Зализняк не зря выбрал такой порядок. Благодаря этому в словаре оказываются рядом слова с одинаковой правой частью, т.е. те, которые изменяются похоже: глаголы на -нуть, существительные на -а и т.п. В нашем примере видно: подряд расположились 7 слов традиционного I склонения, потом 7 слов II склонения и потом еще 2 слова I склонения. Сейчас цель такой сортировки кажется надуманной: можно же взять оцифрованную версию словаря и за доли секунды выбрать все слова на -нуть, – но в 1977 году такой возможности не было. Однако с распространением компьютеров обнаружилось новое применение «Грамматического словаря»: именно на нем основаны программы, которые работают с русской морфологией. Без словаря гораздо хуже функционировали бы современные поисковые системы и голосовые помощники. Например, введя в поиск Пушкин стихи, вы получаете страницы, на которых написано в стихах Пушкина. Это не просто слова, которые отличаются на 1–2 буквы (иначе находились бы и страницы со словами пушки и стихия, а такого не происходит), а именно формы слов, построенные по моделям Зализняка. А голосовой помощник без словаря не построил бы родительный падеж от слова фонарь, а если бы он просто озвучивал текст, то не узнал бы, что надо читать фонаря ’, а не фонбря. Легко понять, как на основе словаря Зализняка работает морфологический синтез. Если мы строим формы от слова фонарь, надо взять его помету (2b), выбрать из окончаний типа 2 то, которое выражает нужную комбинацию падежа и числа: например -я для род. ед., – и узнать во вводной части словаря, что основа слов типа 2 получается отбрасыванием конечного ь. В результате выходит: фонар- + -я = фонаря. Чуть сложнее со словами, у которых несколько основ: так, слово огурец имеет помету 5*b,
НАУКИ
где * обозначает наличие беглой гласной (т.е. основ будет две: огуреци огурц-). Опять-таки из вводной части словаря узнаем, что окончание род. ед. в типе 5 имеет вид -а; если есть знак *, то берется основа без гласной в случае, если окончание не входит в множество { -H (пустая строка); -й; -ь; -ью}. Получаем огурц- + -а = огурца. Противоположная задача – опираясь на «Грамматический словарь», понять по строке символов, является ли она формой какого-либо русского слова, и если да, то какие это могут быть формы и от каких слов – с вычислительной точки зрения решается сложнее. Требуется не только хранить все возможные наборы окончаний и помету для каждого слова, но и заранее построить все возможные основы и записать, в какой форме какая из основ используется. Дальше можно предложить такой алгоритм: разбиваем слово на две части всеми возможными способами и смотрим, является ли первая часть основой каких-либо слов. Если да, проверяем, бывает ли вторая часть окончанием у этих слов при такой основе, и если да, то выписываем те слова и формы, в которых это возможно. Проанализируем в качестве примера слово паром, для которого получается три разбора (табл.2). Аркадий Волож, руководитель «Яндекса», вспоминает, что в начале 1990-х его другу и коллеге Илье Сегаловичу на основе словаря Зализняка удалось создать морфологический анализатор, который работал настолько эффективно, что умещался в оперативную память тогдашнего персонального компьютера – 640 килобайт. Можно, конечно, сказать: зачем все эти сложные обозначения, схемы ударения, чередования основ и т.д.? Давайте просто для каждого слова выпишем все формы с ударением, и готово. Но это очень неэкономно: на каждое существительное придется по 12 форм, а на некоторые глаголы – больше 100 (считая четыре причастия во всех родах, числах и падежах). А «Грамматический словарь» – не такая уж и толстая книга, хотя и имеет большой формат: в 4-м издании описание русского словоизменения занимает 118 страниц, а за ними следуют 586 страниц собственно словаря.
18
КВАНТ 2018/№1
Таблица 2
Стремясь описать язык оптимальным образом, Зализняк ставил и решал в том числе и математические задачи. К одной из них подводит пример, с которого мы начали. Напомним, что слово фонарь имеет схему ударения b, т.е. ударение всегда на окончании. Прежде чем читать дальше, подумайте: нет ли здесь некоторого противоречия, которое надо разрешить? Зададимся странным вопросом: куда падает ударение в форме фонарь – на основу или на окончание? На этот вопрос есть три варианта ответа: 1) на основу: ведь ясно, что гласный а входит в основу, а окончание здесь нулевое; 2) мы не знаем куда: основа и окончание здесь не соревнуются за ударение, поскольку окончание нулевое; 3) на окончание, но введем дополнительное правило: если ударение попало на нулевое окончание (и получается, что ему негде прозвучать), оно переносится на основу. Обозначим ударение на основе через +, ударение на окончании через –, а «не знаем» через 0. Примем вариант 1 – самый, как кажется, естественный – и изобразим схему ударения во всех числах и у
2 За исключением винительного падежа множественного числа, поскольку он всегда совпадает либо с родительным, либо с именительным в зависимости от одушевленности (вин. вижу столы как им. стоят столы, вин. вижу кошек как род. глаза кошек).
нескольких русских существительных (табл.3). Нулей в полученной таблице не будет, поскольку этот вариант не предполагает ответа «не знаем». Видно, что вариант 1 не очень экономный: нам приходится вводить разные схемы ударения для неодушевленного слова фонарь и одушевленного слова вратарь (у них различается вин. ед.: вижу фонбрь, но вижу вратаря ѣ), не говоря уже про очень похожее слово сапог, для которого понадобится схема V из-за того, что у него род. мн. имеет нулевое окончание: нет сапуг. Всего таких схем, как посчитал Зализняк, окажется 22. Еще менее экономен вариант 2, который дает нам таблицу с нулями (табл.4). Если использовать его, схем выйдет целых 39. Слова карта, тигр и порог получат не ту же схему, что юноша (строка II не изменится, а в строках III–V вместо плюсов будут нули). А самым экономным оказывается вариант 3 (табл.5): если использовать его, выяснится, что юноша, карта, тигр и порог – это одна схема; ступня, фонарь, вратарь и сапог – еще одна схема (и да, как это ни странно, в слове порог ударение на основе, а в слове фонарь – на окончании). Всего для русского языка потребуется 11 таких схем. Выше были продемонстрированы только 8 из них, обозначенные как a, b, c, d, e, f, d’ и f’, поскольку остальные
19
ИЗ
ИСТОРИИ
НАУКИ
Таблица 3
Таблица 4
Таблица 5 представлены совсем небольшим числом слов. Зализняк не просто получил это решение интуитивно, но и доказал строго математически, что оно оптимально, если мы хотим минимизировать число строк в таблице. Вот как выглядит задача, которую он перед собой поставил: Имеется матрица из m строк и n столбцов, элементами которой являются знаки +, – и 0. Требуется заменить каждый из имеющихся в матрице нулей плюсом или минусом так, чтобы в полученной матрице без нулей (назовем ее результирующей для данной матрицы) число s различных строк было минимальным. Читателей, заинтересовавшихся полным решением, отсылаем к книге А.А.Зализняка «Русское именное словоизменение» (М.: Наука, 1967; переиздание: М.: Языки славянской культуры, 2002) и заметим, что для решения этой задачи автор сформулировал и доказал три теоремы; это нечасто встречается в лингвистических работах – но, оказывается, встречается!
(Продолжение следует)