Дмитрий Жуков – Мы — переводчики (страница 16)
Очень важным в машинном переводе оказалось знание возможностей и работы быстродействующих электронных вычислительных машин. Можно придумывать какие угодно правила перевода, но если их нельзя «реализовать» на машине, то грош им цена.
Когда сотрудники лаборатории машинного перевода создали лексические, грамматические и прочие схемы перевода, оказалось, что для составления программы алгоритма потребуется... 15 миллионов команд, то есть указаний машине, где какие данные взять и в какое место направить, произведя то или иное логическое действие. Эго 250 миллионов битов информации, и для запоминания ее потребовалось бы 15 миллионов «ячеек».
Память для этого нужна колоссальная, не говоря уже о том, что программировать такой алгоритм очень тяжело. Надо было бы привлечь к работе сотни программистов. А у каждого программиста своя манера работать, да и число ошибок при программировании было бы велико, потому что людям свойственно ошибаться. И одна ошибка может привести к сбою программы и застопорить работу всего алгоритма.
Это стало ясно примерно в середине работы над схемами перевода. Мы, лингвисты, чертили десятки тысяч блоков, указывая в них, какие логические действия делать машине. И мы замечали, что часто повторяемся, задавая вопросы и требуя на них ответа «да» или «нет». С каждым годом работы беспокойство росло. Начались разговоры, что машина не «потянет» и наш громоздкий алгоритм ляжет тяжелым и бесполезным грузом на плечи государственного бюджета.
Встал вопрос, а нет ли в наших схемах одинаковых операций? Нельзя ли унифицировать команды и значительно уменьшить их число? Выход был найден, и 15 миллионов команд свели к пятнадцати тысячам.
Заслуга эта никак не могла принадлежать лингвистам. Поистине революционную работу проделали математики и логики. В свое время эту идею выдвинула математик О. С. Кулагина.
Так появились операторы, являющиеся существенной частью того, что теперь называют входным языком (или машинным языком).
Восемь операторов дают возможность производить любые проверки, сравнения, лингвистические операции.
С помощью одного оператора проверяют, нет ли в тексте какого-нибудь конкретного слова справа или слева от нашего слова (или списка слов — например, глаголов движения).
Этот оператор очень важен. Вот две русские фразы: «Я был в городе» и «Я пошел в город». Здесь, несмотря на один и тот же предлог «в», слово «город» стоит в разных падежах. Во втором случае написание «город» обусловливается тем, что перед предлогом стоит глагол движения.
Для того чтобы выяснить значение слова, важно знать его окружение. (Вспомните: «выдержать экзамен, характер...») Перевод часто зависит от вхождения нашего слова в определенную устойчивую группу слов.
Ряд операторов позволяет согласовывать друг с другом различные части речи, находить в тексте любое нужное слово, отводить накопленные сведения в определенное место памяти и... наконец, давать слову перевод. Это конечное распоряжение после выяснения всех признаков.
Создание операторов очень упростило работу. И это в первую очередь почувствовали сами лингвисты. В своих схемах они просто указывали номер оператора в соответствии с действием, которое, по их мнению, должна была произвести машина. Такие схемы даже не надо было предварительно программировать.
Получив номер оператора, машина сразу включает его программу, в которой насчитывается около сотни команд, и выполняет нужное лингвисту действие. Один из сотрудников лаборатории как-то сравнил операторы со стандартными деталями, из которых можно сложить дом любой величины и архитектурного облика — от железнодорожной будки до восьмиэтажного здания.
Изучить операторы лингвисты могут очень просто. И таким образом они научатся машинному языку и станут непосредственно общаться с самой машиной. «Диспетчер» или «транслятор» (специальная программа, насчитывающая три с половиной тысячи команд) «поймет» эти операторы и согласует действие всех программ алгоритма. «Диспетчер» решает, что делать с данными, полученными и результате работы каждого оператора. Он координирует все операции на всех этапах работы алгоритма и, в случае неполадки, извещает людей.
Остается добавить, что алгоритм, созданный в лаборатории машинного перевода, годен для работы на быстродействующих электронных вычислительных машинах разных систем. Нужен лишь новый «диспетчер», приспособленный для новых условий работы. И этим снимается обсуждавшаяся некоторыми специалистами идея создания специализированных переводческих машин.
Итак, машина закончила работу со словарем, узнав очень многое о всех словах текста, а именно, получив их цифровые эквиваленты. Эта информация позволит машине перейти к грамматическому анализу английского текста.
Считается, что английский язык относится к языкам аналитическим, а русский — к синтетическим. В аналитических языках глагольные формы чаще всего образуются при помощи вспомогательных глаголов, а вместо падежных окончаний употребляются предлоги. Английский язык имеет твердый порядок слов в предложении, а в русском языке, благодаря богатству форм слов, порядок свободный.
Лингвисту, занимающемуся машинным переводом, необходимо установить соответствия и различия структур языков. Надо знать, что в языках общее и в чем они отличаются друг от друга. Например, в английском у неодушевленных существительных нет рода, нет падежей, и тем не менее при переводе на русский существительные обретают род и падеж. Откуда же они берутся?
В алгоритме машинного перевода есть более ста схем, которые анализируют грамматически английский текст и поставляют сведения для образования русских слов и построения русской фразы.
Сначала машина делает как бы разбор предложения. Она определяет, каким членом предложения является каждое слово. Но машинная грамматика несколько отличается от школьной. Каждое слово входит в одну из семи групп. Проведя анализ, машина узнает, является ли слово подлежащим, сказуемым, дополнением, обстоятельством и т. д.
Поступает она точно так же, как школьник, разбирающий предложение у классной доски. Например, подлежащее она может определить по месту в предложении. Если машина «видит» слово «I» — «я», то она смело может сказать, что это подлежащее, так как иным членом предложения это слово может быть в одном случае на миллион. Перечисление всех признаков, по которым можно определить грамматическую группу слова, заняло бы у нас десятки страниц. (Кстати, в машинной грамматике «я» считается существительным, а прочие местоимения соответственно существительными или прилагательными, потому что они полностью подчиняются закопаем, по которым изменяются эти имена.)
Не зная еще русских слов, машина определит некоторые падежи. Подлежащее всегда стоит в именительном падеже. По так называемой саксонской форме она определяет родительный падеж. По подлежащему она узнает лицо стоящего рядом с ним глагола. По разным признакам она выясняет наклонение, время, число, степень сравнения, вид, залог и другие грамматические категории слов и все сведения аккуратно «записывает» в «ячейку» каждого введенного слова.
Очень важно разобраться в глаголе. Это центр синтаксической конструкции. И его анализ является основой для анализа фразы. При анализе глаголов постепенно накапливаются грамматические признаки для русского перевода. Если у глагола есть окончание «s», то мы с самого начала можем дать ему целую характеристику (3-е лицо, единственное число, сказуемое, настоящее время). Постепенно мы получаем о глаголе сведений все больше и больше.
Интересно отметить, что весь грамматический анализ машина ведет в пределах простого предложения. Но тот, кто изучал английский язык, знает, что в английских сложных предложениях запятые между простыми предложениями ставят редко и даже опускают слова «which» и «that» («который» и «что»), так помогающие нам разбираться в больших фразах. Казалось бы, здесь мы зашли в тупик и окончательно запутаемся. Но лингвисты нашли выход и из этого положения. В машине предусмотрена программа, которая делит сложную фразу на простые предложения, расставляет запятые и даже восстанавливает пропущенные слова «который» и «что».
Но не все сведения для построения русской фразы можно получить из английской. Тут же нужен русский эквивалент английского слова. А у нас пока есть только его цифровой эквивалент. Из него мы, конечно, знаем многое. Например, слово «table». Мы знаем лишь, что это неодушевленное существительное. Оно многозначно и переводится на русский и как «стол», и как «таблица», и как «расписание». Только переведя, мы узнаем род слова. Значит, для дальнейшего грамматического анализа нам надо выяснить все возможные переводы этого слова.
И тут работа грамматической части машины прерывается, и начинает действовать ПМС (программа многозначных слов). Это одна из самых трудоемких частей алгоритма. Слов, имеющих по нескольку значений, оказалась добрая четверть из записанных в словаре. Иные слова, как мы уже говорили раньше, имеют до сотни значений. И все эти значения надо определить по контексту, но теперь уже опираясь на обильную грамматическую информацию.
Более того, перевод слова всегда диктовался желанием сделать так, чтобы вся фраза звучала по-русски. И слово получало все новые и новые эквиваленты. Типично английские выражения переводились типично русскими.