ЛАВОШНИКОВА Э. К.
О результатах
тестирования некоторых
алгоритмов текстового
редактора MS Word
Рассматриваются
проблемы, возникающие при компьютерной
проверке пунктуации и правильности синтаксических конструкций в текстах на
русском языке. Работа русскоязычных
автокорректоров разбирается на примере самого распространенного из них –
ОРФО, встроенного в текстовый
редактор MICROSOFT
WORD, версии 1997 г., 2000 г. и 2002 г. (MS Office XP).
Путем тестирования
восстанавливается алгоритм одного из заявленных синтаксических правил. Показана неполная адекватность алгоритма
поставленной задаче и сообщениям программы-подсказки. Предложены рекомендации
для разработки новых версий автокорректоров.
В век компьютерной грамотности остро обозначилась проблема «просто» грамотности. Если о написании слова можно справиться в широко издаваемых словарях, то в вопросах пунктуации, то есть расстановки знаков препинания, пользователи персональных компьютеров чаще уповают на спел-чекеры, которые называются также автокорректорами, орфокорректорами и спеллерами.
Пунктуация в русском языке довольно сложна и представляет, по нашим наблюдениям, проблему даже для высокообразованных русскоязычных граждан.
Синтаксис, то есть сочетаемость и порядок следования слов внутри предложения, может нарушаться, в частности при невнимательной правке текста.
В настоящей статье мы попробуем проанализировать работу автокорректора ОРФО, встроенного в текстовый редактор MICROSOFT WORD2000, с синтаксическими конструкциями в текстах на русском языке. Версии ОРФО 1997 и 2002 гг. почти идентичны версии 2000 года.
Анна Майорова в статье «Доверяй, но проверяй. Системы контроля орфографии консервируют язык» (газета «Известия.Ру» от 18.03.03, сайт www.izvestia.ru) пишет:
«Программу
проверки правописания для MS Word разработала компания "Информатик" в
1987 – 1994 годах. Отцом проекта
был аспирант ВЦ АН СССР Олег Григорьев. Игорь Ашманов и Нина Руссова, также
сотрудники ВЦ АН, разработали словарь и машинную морфологическую модель, а
также модель грамматического разбора предложения. Первая версия работала под DOS, ее продажи начались в 1991
году. Тогда же большая часть команды
вместе с Олегом Григорьевым уехала в США.
Игорь Ашманов не эмигрировал. Он
набрал и возглавил новый коллектив, который в 1992 – 1993 годах выпустил
систему для Windows. <...>
Нынешняя версия программы в составе продуктов Микрософт – почти
такая же, как и в 1994 году».
К этому следует добавить, что автокорректор ОРФО, как и некоторые другие «русскоязычные» спеллеры, построен на основе первого издания «Грамматического словаря русского языка» А. А. Зализняка. Словарь был переведен на машинные носители в начале 80-х годов под руководством В. М. Андрющенко в Лаборатории автоматизированных лексикографических систем НИВЦ МГУ им. Ломоносова.
Мы можем изучать доступные нам описания, но все же представляется нелишним протестировать работу спеллера с синтаксическими конструкциями на конкретных примерах.
Заметим, что слова с орфографическими ошибками, а точнее – словоформы, отсутствующие в системных словарях автокорректора ОРФО, подчеркиваются на экране монитора красной волнистой линией, а «подозрительные» в отношении пунктуации, синтаксиса или стиля слова и конструкции – зеленой.
Как мы увидим далее, некоторые даже недлинные синтаксически неправильные фразы оказываются слишком сложными для автокорректора и не подчеркиваются, то есть пропускаются без замечаний. Наблюдая за работой спеллера ОРФО, мы можем заключить, что синтаксические конструкции в предложениях проверяемого текста сверяются с далеко не исчерпывающим системным списком неправильных конструкций. При этом не всегда учитываются особые случаи и исключения. Таким образом, если спеллер ничего не подчеркивает в предложении, это не означает, что оно построено синтаксически и пунктуационно правильно.
Кроме того, очевидно, что система ОРФО проверяет корректность синтаксических конструкций только в границах одного предложения, не учитывая анафорические связи даже в пределах абзаца.
Предусматриваемые классы синтаксических ошибок в текстах на русском языке спеллером ОРФО включены в виде правил как в список опций «Грамматика», так и в список опций «Стиль». Пользователю предоставляется возможность отключать любые проверки. Мы проводили тестирование спел-чекера системы MS Word2000 как на правильно построенных, так и на неправильно построенных предложениях, при полностью задействованном наборе правил, то есть при заданном в «Параметрах» на кнопке «Правописание» режиме «Строго (все правила)». К сожалению, правила и сообщения иногда сформулированы спеллером слишком расплывчато.
Будем составлять фразы из известных автокорректору ОРФО («правильных») словоформ, то есть входящих в его системный словарь или порождаемых в нем (из основ и окончаний). Под понятием «слово» обычно имеется в виду словарное слово, заголовок словарной статьи в словаре. Формально можно считать, что словоформа – это просто цепочка букв в тексте между двумя ограничителями (пробелами, знаками препинания и т. п.).
§ 1. ПУНКТУАЦИОННОЕ ПРАВИЛО
«ЗАПЯТЫЕ
В
ДЕЕПРИЧАСТНЫХ ОБОРОТАХ»
Правило входит в список опций «Грамматика». Читаем:
«С помощью данного
правила обнаруживаются и исправляются пропуски запятых в деепричастных оборотах
и некоторых других глагольных конструкциях.
Например, деепричастные обороты наподобие «подойдя к дому», «читая книгу» должны обязательно выделяться запятыми.
Более подробно. Деепричастный оборот – деепричастие и
зависимые от него слова – обозначает действие или состояние, сопутствующее
основному действию, названному глаголом-сказуемым: «К ночи стали в лесу, не разнуздывая коней, не зажигая
огня». Деепричастный оборот обычно
выделяется запятыми с обеих сторон, если только он не является устойчивым
словосочетанием или фразеологическим оборотом («Он работал спустя рукава»)».
Протестируем работу этого правила системы ОРФО, опираясь на правила, взятые из «Справочника по русскому языку» Д. Э. Розенталя (с. 65).
(1) Он работал спустя рукава.
Действительно, нет подчеркиваний.
Однако не все подобные фразеологические обороты с деепричастиями учитываются системой ОРФО. Проверим с помощью автокорректора такие примеры с фразеологизмами, в которых деепричастный оборот не обособляется.
(2) Они
работали засучив рукава.
(3) Она сидела затаив дыхание.
К примерам (2) и (3) программой-подсказкой выдается сообщение: Не хватает запятой после слова «работали» («сидела»). Сообщение ссылается на правило «Запятые в деепричастных оборотах». Очевидно, что список фразеологизмов в системе ОРФО нуждается в пополнении.
Попробуем составить предложение с предлогом благодаря, совпадающим с деепричастием от глагола благодарить.
(4) Благодаря соседу я узнал ее поближе.
Нет подчеркиваний. Однако если словоформу соседу заменить местоимением ему, то местоимение подчеркивается зеленым и выдается сообщение: Попробуйте употребить «нему» вместо «ему» со ссылкой на правило «Личные местоимения с предлогами». Аналогичное сообщение программы-подсказки мы получим при подстановке местоимений ей и им.
Это досадная ошибка системы ОРФО.
Теперь попробуем составить предложение не с предлогом, а с
деепричастием благодаря.
(5) Пылко благодаря ее, я слишком увлекся.
Оказывается, из
системного словаря ОРФО изъято деепричастие настоящего времени от глагола благодарить. Выдается сообщение: Предлог «благодаря»
не связан с существительным или местоимением. Сообщение ссылается на правило «Согласование предложно-именных групп».
Посмотрим теперь, как автокорректор ОРФО отреагирует на сложный предлог начиная с.
(6) Начиная
с января у нас повысились тарифы на газ и электричество.
В этом предложении запятая не нужна, «слово начиная можно опустить без ущерба для смысла и структуры предложения» ([Розенталь 2003]). Однако спеллер подчеркивает первую часть предложения до слова тарифы и выдает сообщение: Возможно, в конце деепричастного оборота пропущена запятая на отрезке предложения между словами... Это сообщение, как и в примерах (2) и (3), также ссылается на правило «Запятые в деепричастных оборотах».
Попробуем последовать рекомендации автокорректора ОРФО и вопреки правилам русской грамматики вставить запятую после словосочетания начиная с января. Теперь спеллер подчеркивает уже все предложение целиком и выдает сообщение, ссылающееся на правило «Неверное употребление деепричастного оборота». Это интересное правило мы как раз и рассмотрим в следующем параграфе.
§ 2. СИНТАКСИЧЕСКОЕ ПРАВИЛО
«НЕВЕРНОЕ УПОТРЕБЛЕНИЕ ДЕЕПРИЧАСТНОГО ОБОРОТА»
Это, пожалуй, наиболее «интеллектуальное» и нетривиальное правило в текстовом редакторе MS Word. Оно содержится в списке «Грамматика» и сформулировано следующим образом:
«В правильно
построенном русском предложении сказуемое и деепричастие должны относиться к
одному и тому же действующему субъекту.
Например, в ошибочной фразе
«Подъезжая к станции, с меня слетела шляпа» подразумевается, что на самом деле подъезжает не шляпа, а ее
владелец. При подобном несовпадении
субъекта сказуемого и деепричастия предложение становится неуклюжим и сложным
для понимания. Для исправления
ошибки...» и т. д.
Как работает система ОРФО по данному Правилу, какие предложения пропускает, а какие подчеркивает, понять довольно трудно. Нам показалось интересным в этом разобраться. Попробуем протестировать работу алгоритма, связанного с этим Правилом.
2.1. Примеры
с неопознанным противоречием сказуемого и деепричастия
Мы проверили с помощью автокорректора ОРФО следующие пять предложений, которые по своей структуре сходны с приведенным в тексте Правила примером. Однако они спеллером не подчеркиваются и не вызывают никаких сообщений программы-подсказки.
(1) (?) Подъезжая к
станции и глядя на природу
в окно, у меня слетела шляпа.
Здесь сразу два деепричастия – в таких фразах распознавать «несовпадение субъекта сказуемого и деепричастия» система ОРФО пока не научилась.
(2) (?) С меня слетела шляпа, подъезжая к станции.
Спеллер не узнал свой же пример, но только с переставленным деепричастным оборотом.
(3) (?) Не встречая отпора, у него появилось головокружение от успехов.
Если убрать отрицание не (?Встречая отпора), то будет выдано единственное сообщение о «противоречии сказуемого и деепричастия».
(4) (?) Заглядевшись на новые ворота, с меня слетела шляпа.
Если изъять определение «новые», то предложение будет подчеркнуто зеленым и будет выдано сообщение, ссылающееся на Правило. Но и тогда сочетание с меня нельзя с тем же результатом заменить, например, сочетанием с прохожего. Вместо сочетания на ворота нельзя подставить на них – подчеркивания не произойдет.
(5) (?) Получая деньги за объём работы, у них не будет стимулов этот объём сокращать.
Первое слово объём «подозревается» спеллером ОРФО в том, что оно может представлять собой личную форму от глагола объесть (объЕм) – и это несмотря даже на букву ё и предлог. Если первое слово объём заменять некоторыми другими существительными, то предложение будет подчеркиваться со ссылкой на Правило.
2.2. Примеры
с опознанным противоречием между сказуемым
и деепричастием
Теперь рассмотрим такие предложения, которые автокорректор ОРФО подчеркивает целиком зеленой волнистой линией с выдачей сообщения, ссылающегося на Правило.
(6) (?) Завершая церемонию, на царя была возложена корона.
Если вместо неодушевленного корона набрать корова или ворона, то возражения спеллера снимаются. Если вставить слово голову (на голову царя), то подчеркивания также не произойдет, так как словоформа голову никак не может относиться к родительному падежу. Между тем алгоритм Правила, как показывает наше тестирование, требует после деепричастного оборота обозначения «действующего субъекта» в форме, которую можно отнести одновременно и к родительному, и к винительному падежу – для подтверждения одушевленности (подробнее об этом см. далее Условие E).
Построим более сложное (сложноподчиненное) предложение по схеме приведенного системой ОРФО примера. С удовлетворением отметим, что автокорректор ОРФО даже в таком нагромождении слов и конструкций распознает противоречивость сказуемого и деепричастия, отсылая пользователя к тестируемому Правилу:
(7) (?) Оставшись в связи с разгулом стихии без
попечения родителей, мальчика в густом и дремучем лесу, где было много диких зверей, выручали из беды только находчивость и
смекалка.
Попробуем в этом предложении произвести некоторые замены, которые не снимают «противоречие сказуемого и деепричастия». Оказывается, что конструкцию без попечения родителей с тем же результатом (сообщением программы-подсказки) можно заменить сочетанием с родителями, но не вместе с родителями. Выяснилось также, что деепричастный оборот может содержать сочетание предлога с именем собственным (с Марией, без Саши). Однако нельзя для получения того же сообщения о противоречивости использовать сочетание с Ивановым (склоняется не как существительное), а также без Маши, без Кати, так как спеллер предполагает, что словоформы Маши и Кати могут быть императивом от глаголов махать и катить. При этом программа не замечает того, что слова набраны с прописной буквы, а главное, что перед ними имеется предлог.
Сообщение, отсылающее к Правилу, не появится, если в деепричастный оборот вставить союз и, отрицание не и т. п.
В примере (7) определение к слову мальчика можно дать только в постпозиции, иначе предложение не будет подчеркиваться. То есть можно подставить мальчика нашего, но не нашего мальчика.
Словоформу мальчика можно с таким же результатом исправить на тебя, подростка, девочек, но не на словоформы девочку, юношу или Ивана. Кроме того, мальчика можно заменить личным местоимением него, нее или них без предлога, хотя эти варианты встречаются только с предлогом. Но такой простой проверки не предусмотрено. Автокорректор ОРФО не укажет на пропуск предлога, а выдаст только все то же единственное сообщение, ссылающееся на Правило. Если вместо словоформы мальчика подставить его, ее или их, то спеллер ничего не подчеркнет (см. далее Условие E).
Придаточное предложение где было много диких зверей нельзя, как мы убедились, заменить конструкцией где были дикие звери, иначе подчеркивание снимается. Одушевленное существительное звери алгоритм необоснованно считает возможным подлежащим всего (главного) предложения, а одушевленное подлежащее не вписывается в схему Правила (подробнее об этом см. ниже в Условии D). Вычленение придаточного предложения в рамках тестируемого алгоритма не производится.
2.3. Примеры
без «противоречия»
Попробуем построить по образцу, заданному в тексте Правила, фразы, в которых сказуемое и деепричастие не вступают в противоречие, а относятся к одному и тому же слову – к подлежащему.
(8) Зацепившись за люстру, с меня свалилась шляпа.
Синтаксически правильное предложение, пусть даже немного «неуклюжее» (по терминологии ОРФО). Однако выдается все то же сообщение, ссылающееся на Правило: Вероятно, в данном предложении имеется противоречие сказуемого и деепричастия – сказуемое подразумевает одного действующего субъекта, а деепричастие – другого, как в классическом примере «подъезжая к станции, с меня слетела шляпа»...
Однако в примере (8) такого противоречия нет.
Если с меня заменить сочетанием с головы, что, казалось бы, принципиально ничего не меняет, то возражения спеллера снимаются. Как показывают результаты тестирования, алгоритм Правила, несмотря на предшествующий словоформе головы предлог, необоснованно считает возможным отнесение ее к именительному падежу. Отсюда спеллер делает вывод, что словоформа головы может оказаться одушевленным подлежащим (в значении ‘должностное лицо’ слово голова склоняется по «одушевленному» типу склонения), что не подходит под заданную схему. Теперь заменим слово шляпа несклоняемым существительным сомбреро. Подчеркивание снимается (спеллер не замечает даже рассогласования среднего рода подлежащего и формы сказуемого). Все несклоняемые существительные «подозреваются» алгоритмом Правила в одушевленности (см. ниже Условие D).
(9) Начиная собрание, о нас даже и не вспомнили.
Получаем все то же сообщение о противоречии. Если вставить после словоформы нас местоимение они, то есть подразумеваемое одушевленное подлежащее выразить в эксплицитной форме, то возражения спеллера снимаются. Словосочетание о нас нельзя заменить с тем же результатом сочетанием обо мне, так как словоформа нас может относиться не только к предложному падежу, как в данном примере, но и к родительному и винительному (об этом требовании алгоритма Правила см. ниже в Условии E).
2.4. Загадочные
примеры «ложных тревог»
Что касается следующих анекдотичных примеров, то их можно использовать как тест на сообразительность пользователей. Все они спеллером ОРФО подчеркиваются со ссылкой на Правило.
(10) Слесаря, слесаря скорей!
Все то же сообщение: Вероятно, в данном предложении имеется противоречие сказуемого и деепричастия... Здесь дело в том, что словоформа слесаря трактуется алгоритмом Правила неоднозначно, не только как форма существительного, но и как ее омограф, а именно – как деепричастие (с ударением на а) от глагола слесарить. Если бы в системном словаре ОРФО имелась просторечная форма именительного падежа множественного числа слесаря (с ударением на я), то не было бы подчеркивания и ссылки на Правило, так как его алгоритм не рассматривает предложения, в которых после деепричастного оборота имеется хотя бы одно одушевленное существительное в форме именительного падежа.
(11) Коля, на Льва Ивановича не обижайся!
Здесь разгадка в том, что деепричастие настоящего времени от глагола колоть – коля. Кроме того, спеллер «думает», что в предложении речь идет о царе зверей, так как при подстановке вместо Льва любого другого «однозначного» имени (Петра, Николая) подчеркивание со ссылкой на Правило снимается.
(12)
Зря, волков бояться –
в лес не ходить.
Здесь зря определяется автокорректором также неоднозначно – в том числе и как деепричастие от глагола зреть в значении ‘видеть’ («Зри в корень!»). Если набрать Волков (воспринимается как фамилия в именительном падеже?), то подчеркивание предложения снимается.
(13) Царя Петра,
правителя не слишком гуманного и милосердного, знакомясь с нашей
историей, некоторые осуждают.
Словоформа царя может быть деепричастием от глагола царить. Непереходность этого глагола (помета нп в словаре Зализняка), как и в других случаях, не учитывается. Пользователь, разумеется, воспримет сообщение о «противоречии сказуемого и деепричастия» как относящееся к деепричастию знакомясь. Однако «второй» (а на самом деле первый и единственный) деепричастный оборот алгоритм Правила просто не воспринимает.
Чтобы не случалось таких казусов, при создании следующих версий автокорректора следовало бы в алгоритме рассматриваемого Правила не учитывать такие деепричастия, которые омонимичны другим словоформам, или проводить более детальный синтаксический анализ предложения.
2.5. Восстановленный алгоритм проверки фразы
на «противоречие сказуемого
и деепричастия»
В результате тестирования на большом количестве фраз с использованием всевозможных подстановок мы воссоздали в общих чертах алгоритм проверки на «несовпадение субъекта сказуемого и деепричастия», задействованный в спеллере текстового редактора MS Word. Как нам представляется, условия, проверяемые алгоритмом правила «Неверное употребление деепричастного оборота», выглядят следующим образом.
Условие A.
Наличие запятой
В
предложении между первой и последней словоформой должна быть хотя бы одна запятая.
Условие B.
Деепричастие в начале
фразы
Первым
словом предложения должно быть такое, которое (вне контекста) можно
интерпретировать как деепричастие (буря, душа,
обрыв, пища, устав
от бурить, душить,
обрыть, пищать, устать
и т. п.).
Условие C. Отсутствие
«лишних» слов в
деепричастном обороте
Между
первым словом (деепричастием) и первой запятой не должно быть ни одной
словоформы, которая, взятая вне контекста, могла бы распознаваться не как
существительное, не как имя собственное, склоняющееся по образцу
существительного, и не как предлог.
Если
в деепричастный оборот входят «лишние» слова, то есть условие не выполняется,
то проверка предложения прекращается, сообщение о «противоречивости» не выдается.
Таким
образом, для продолжения проверки существительные или имена собственные, если
они входят в деепричастный оборот, не должны совпадать по написанию с другими
частями речи (без устали, на правило,
кроме Жени – даже наличие предлогов не мешает алгоритму
считать вторые члены этих пар возможными глагольными формами от устать,
править, женить). Не допускаются также сочетания вместе с (наречие перед предлогом),
рядом с (словоформа рядом может быть не только существительным, но и наречием) и т. п.
Подобные ограничения не кажутся нам оправданными.
Условие D.
Отсутствие «претендента» на
роль одушевленного подлежащего
Предложение, в
котором формально можно заподозрить наличие одушевленного подлежащего, по
замыслу разработчиков алгоритма, не подходит под схему «противоречие сказуемого и
деепричастия» и не должно далее
рассматриваться. Проверку на условие D можно разбить на две составляющие.
1. В оставшейся
части предложения – после первой запятой (завершающей деепричастный оборот) –
не должно быть ни одной словоформы, которая совпадала бы с одушевленным
существительным (но не с
субстантивированным прилагательным) в именительном падеже.
Существительные,
склоняющиеся по образцу прилагательного и стоящие в именительном падеже, в
качестве возможного подлежащего не рассматриваются (например, словоформа заведующая может во
фразе быть подлежащим, но алгоритм этого не учитывает).
Одушевленным
алгоритм считает любое нарицательное существительное, у которого хотя бы в
одном из его значений форма винительного падежа множественного (или
единственного) числа совпадает с формой родительного падежа того же числа.
Однако под это
определение формально подпадают и все несклоняемые существительные, в том числе неодушевленные (табу, такси). По
неизвестным причинам пометы об одушевленности, имеющиеся в словаре Зализняка, в
данной проверке не используются.
Наличие предлога
перед существительным не проверяется,
поэтому несклоняемое существительное даже с предлогом (у леди, вместо кимоно)
определяется как возможное подлежащее (именительный падеж), что является
явной недоработкой. Если во второй части фразы имеется несклоняемое
существительное, то проверка на «противоречивость» далее не производится.
2. После первой
запятой не допускаются также и местоимения в именительном падеже кто,
кое-кто, никто, я,
оно, мы и др. (проверка прерывается). Алгоритм накладывает запрет только на такие
местоимения, которые в принципе могут выполнять функцию одушевленного
подлежащего и не могут интерпретироваться как определения, эквивалентные
прилагательным.
Условие E. Одушевленный «действующий
субъект» в косвенном
падеже после деепричастного оборота
Непосредственно
после первой запятой и разделителей может стоять любой предлог, даже предлог
«о», сочетающийся только с предложным
падежом (см. пример (9)). Сразу после
предлога или вместо него должно находиться слово, которое может быть
квалифицировано как нарицательное существительное (даже при написании с
заглавной буквы) или однозначно определяемое личное местоимение. Существительное или местоимение не должно
склоняться по образцу прилагательного (не должно быть словоформ прохожего, Ивановых или моего), иначе проверка прерывается.
Существительное или местоимение должно стоять в падеже, который
одновременно может быть определен и как родительный, и как винительный, если
рассматривать словоформу вне контекста.
При этом словоформа не должна совпадать с формой именительного падежа
того же (как в несклоняемых существительных) или другого слова (как словоформа математика).
Сведения об одушевленности, имеющиеся в словаре Зализняка, в проверке на условие E также не используются. Это приводит к тому, что, например, словоформы работницу, мужчину под данное условие не подпадают (нет совпадения с родительным падежом), а работниц, мужчин – подпадают.
Поясним последние два условия, не относящиеся к первому деепричастному обороту, на примерах.
Примеры словоформ,
формально не противоречащих условию D:
правофланговый, многие, некоторые, все, сами (потому что могут быть определениями), Анна, Иван, Смирновы. Однако эти словоформы тоже могут выполнять функцию одушевленного подлежащего, чего алгоритм не учитывает. Мы видим также, что имена собственные в системе ОРФО не снабжены информацией об их грамматической одушевленности/неодушевленности или эта информация в данном алгоритме не используется.
Примеры словоформ, не удовлетворяющих условию D:
кафе, фрау, виски (есть несклоняемое, но есть и форма от слова висок), пари (даже если во фразе это императив от глагола парить), проводник, стрелок, головы (есть одушевленное значение), лис, змей, доктора, а также матери, цари (даже если во фразе это императивы от глаголов материть и царить).
Примеры словоформ, удовлетворяющих условию E:
царя (несмотря на совпадение с деепричастием от глагола царить), жокея, кукол (кукла – одушевленное существительное), медсестер, старост, оленей и т. п. Местоимения могут быть такие: тебя, Вас, него, нее, них (наличие предлога перед последними тремя даже не проверяется), но не его, ее, их, так как эти местоимения могут быть притяжательными, то есть выпол