Дмитрий Жуков – Мы — переводчики (страница 17)
Давайте вернемся к английской фразе «Last night I went to bed at ten o'clock». Вспомним что сочли правильным следующий ее перевод: «Вчера вечером я лег спать в десять часов». А ведь если перевести буквально, то у нас получится: «Прошлой ночью я пошел в постель в десять часов». Казалось бы, на этом можно успокоиться. Но нет. Во-первых, по схеме омографов мы заменили «прошлой ночью» на «вчера вечером», а по программе многозначных слов «went» («пошел»), кроме многочисленных других переводов, из стилистических соображений получит еще и перевод «лег». Следующие два слова «to bed» тут же получат перевод «спать» и будут исключены из дальнейшего анализа. И это очень удобно. — И машине меньше работы и перевод правильный.
Всякому сведущему в переводческом деле человеку в первую очередь приходит в голову мысль, что машина-переводчик, опирающаяся в основном на формальные признаки, должна грешить буквализмом.
Но она не буквалистка, нет. И это один из парадоксов машинного перевода.
В будущем, при очень объемной памяти, она сможет запомнить все устойчивые выражения, идиомы и наиболее часто употребляющиеся фразы одного языка и сразу передавать их смысл выражениями и идиомами другого языка. Их, правда, будут не тысячи, а десятки или даже сотни тысяч. Но уже сейчас машина, встретив фразу «How do you do!», переведет ее как «Здравствуйте!».
Узнав номер каждого русского слова, которым мы переводим английское, можно теперь получить и остальные грамматические сведения. На этом этапе мы узнаем не только род слова, но и падеж его.
И опять мы опираемся на ближайшее слово. На предлог, например. Мы говорим «на столе», но «под столом». В этом примере закономерность видна невооруженным глазом. Но надо было проделать большую работу по наблюдению над языком, прежде чем выявились все закономерности. А выяснив грамматическую характеристику существительного мы можем перенести полученные сведения и на прилагательное, которое в русском языке обычно согласуется с существительным в роде, числе и падеже, а в английском просто примыкает к нему. Теперь, когда мы уже знаем перевод английских слов и их грамматические характеристики, казалось бы, надо приступить к построению русской фразы и дать ее прочесть нетерпеливым зрителям, собравшимся у буквопечатающего устройства машины. Но, нет. Машине надо еще отредактировать эту фразу. Странно, скажете вы, редактировать фразу, которой еще нет.
Да, таков еще один из парадоксов машинного перевода.
У английского языка свои законы, а у русского — свои. У английского языка один порядок слов, а у русского — другой. В английской фразе никогда не может быть двух отрицаний, а в русской мы только что употребили их два: «никогда» и «не». Английская фраза в буквальном переводе звучала бы так: «В английской фразе никогда может быть двух отрицаний». Англичане обходятся одним «никогда», но нам, чтобы машина выражалась по-русски, пришлось наделить ее программой, которая вставляла в английскую фразу еще и «не».
Русский язык очень гибок, и он позволяет сохранять английский порядок слов во фразе. Но не всегда. Английская фраза «Не was not ready» буквально переводится как «Он был не готов». Такой порядок слов режет слух, и мы меняем английский порядок слов на «Он не был готов».
Я привел примеры самые простые, но программа редактирования, реконструкции и перестановки решает задачи и очень сложные, связанные с коренной переработкой английской фразы.
Итак, английские слова расставлены в должном (русском) порядке и наконец машина может используя грамматическую информацию, накопленную при каждом слове, писать по-русски.
Этому ее научили специалисты в области русского языка во главе с Еленой Федоровной Калининой. Она пришла работать в лабораторию машинного перевода в 1958 году, когда еще только составлялись словарь и схемы многозначных слов. Я помню ее первые страхи и колебания, когда она стала понимать всю огромность дела, которое ей предстояло осуществить. Никаких руководств и печатных трудов по русской части алгоритма машинного перевода тогда еще не было.
За рассуждениями лингвистов об эмоциональных осложнениях и смысловых оттенках в языке надо было разглядеть конкретные признаки, которыми выражались все эти сложности. Чтение работ больших русских ученых побуждало к пристальному наблюдению за родным языком.
«Я чувствовала себя, — говорила впоследствии Калинина, — как человек, не умеющий плавать и брошенный в воду». Это чувство было знакомо всем нам, взявшимся за создание алгоритма машинного перевода.
Научить машину говорить по-русски? Мы пишем: «Я вижу дом», но «Я вижу человека». Машина должна ощущать элемент одушевленности и соответственно наделять слова окончаниями.
Калинина начала думать, каким должен быть русский словарь. В свое время Бельская помещала в словарь существительные в именительном падеже. Калинина пришла к выводу, что более правильно брать основы слов. И не одну основу каждого слова, а несколько.
И тут начинается расхождение с традиционной грамматикой. В машинной грамматике потребовалось выделить у существительных две основы, у глаголов — три, а у прилагательных целых четыре.
Вернемся к нашему примеру «Last night I went to bed...». Глагол «went», как вы выяснили, переводится словом «лег» («лечь»). И еще нам известно по форме глагола, что он прошедшего времени. В машине даны основы слова «лечь». Они суть «ле», «ляг» и «леж». От них можно образовать любую форму слова — глагол во всех временах, причастие, деепричастие... По специальной таблице машина выясняет, что прошедшее время образуется от основы «ле». В грамматической информации при этом слове значится, что глагол должен быть первого лица, единственного числа и, предположим, мужского рода. По таблице значится, что при таком сочетании признаков надо присоединить к основе «г». И у нас получается: «Вчера вечером я лег...»
В схемах русской части алгоритма указано, как образуются причастия, деепричастия, возвратные глаголы, степени сравнения прилагательных и т. д.
Особенно трудно было разрешить вопрос падежа. Из английских грамматических схем не всегда можно почерпнуть сведения о падеже.
Были составлены списки глаголов, управляющих определенными падежами существительных. (Например, глагол «руководить» требует, чтобы после него существительное стояло в творительном падеже— «чем?».) Все русские слова разбиты на лексические группы, которые обусловливают определенные грамматические формы. А всего таких лексических групп семьдесят семь.
Начинающие изучать иностранный язык, переводя какой-нибудь текст, любят говорить: «Вот здесь я догадался по смыслу». На зачисление слова в ту или иную лексическую группу влияет главным образом смысл слова. И здесь уже можно было бы говорить об «осмысленной» работе машины, если бы до нее смысловой анализ многих тысяч слов не провели сами люди и не дали ей эту осмысленность в готовом виде, в форме удобных для пользования таблиц.
Беглое описание алгоритма машинного перевода завершено. В таком алгоритме заранее предусмотрены все логические операции, и фраза попадает в машину как на конвейер, у которого нет лишних движений.
Однако, если мы хотим увеличить «интеллект» машины, нам необходимо предусмотреть в ее работе и другие особенности человеческого мышления. Человек сам создает для себя алгоритмы и этим облегчает себе работу. Составив правила перевода, человек следует им. А нельзя ли и машине составлять для самой себя такие правила? Например, выявлять категории языка, определять одушевленность и неодушевленность существительных? В Киевском институте кибернетики проделали такой опыт. В машину ввели около двухсот существительных и глаголов, не указывая их категорий.
Затем составили на основе этого словаря ряд фраз. Одни из них имели смысл, другие были бессмысленны. «Женщина варит обед, инженер делает проект, станок делает гайки, лодка варит обед». Причем всякий раз вводилась информация, имеет ли фраза смысл или нет. По программе машина разбила слова на несколько групп, выделив категорию людей. Проанализировав фразы: «Женщина варит обед» (есть смысл) и «Лодка варит обед» (нет смысла), она «запомнила», что со словом «варит» слово «женщина» сочетаться может. Затем машине поручили самой определять, какие фразы имеют смысл. Для проверки в машину ввели фразу: «Инженер варит обед», и машина ответила, что это бессмыслица. Из анализа предложений «Инженер делает проект» и «Станок делает гайки» она не могла получить нужной информации. Она выделила «инженера» в категорию людей только после того, как встретила это слово с глаголами, сочетающимися только с одушевленными существительными.
В этом опыте уже моделировались некоторые связи, напоминающие ассоциации, которые возникают у человека.
Американские исследователи опробовали свою систему на 400 элементарных английских предложениях, и она сама вывела грамматику, по которой при вторичном прохождении правильно проанализировала все 400 предложений. В дальнейшем ей дали поучиться на трехстах предложениях, после чего она правильно разобрала три четверти из ста новых предложений. Но пока машина имела дело лишь с упрощенным английским языком...
Наш алгоритм в принципе работает. Может быть, ему еще не хватает совершенства. Но что совершенно на свете?