История МП

advertisement
МАШИННЫЙ ПЕРЕВОД.
История МП
---------------Историю машинного перевода естественных языков принято отсчитывать от конца 40-х годов,
в частности от опубликования меморандума Уоррена Уивера в конце 1949 года. В этой работе
ставилась новая и смелая для того времени задача – автоматический перевод текста без участия
человека.
"Передо мной текст на русском языке, но я представлю себе, что он на самом деле написан на
английском, только закодирован непонятными символами. Теперь все, что мне нужно, чтобы
получить информацию из текста - это раскодировать его".
Последние на тот момент достижения в области компьютерной криптографии позволяли
предположить, что задача МП вполне разрешаема. Уже в те времена было ясно, что компьютеры во
многом совершеннее людей-переводчиков. С того момента, когда Уивер получил средства на
исследования в этой области (около 1 миллиона долларов в пересчете на сегодняшний день), работы
в области МП ведутся непрерывно. (Первоначальный выбор Уивером именно русско-английского
перевода был обоснован тем, что основным заказчиком был Пентагон). На волне энтузиазма была
провозглашена задача-максимум – создать систему: способную производить так называемый
FAHQMT (Fully automatical high quality machine translation, то есть «высококачественный, полностью
автоматический перевод с одного языка на другой».
Несмотря на первые практические результаты, вскоре исследователи обнаружили, что
проблема намного сложнее, чем предполагалось. Во-первых, выяснилось, что стоимость машинного
перевода обязательно будет непомерно высока из-за того, что ввод текста в компьютер оставался
неавтоматическим. Во-вторых, несовершенство аппаратной базы приводило к тому, что
разработчики системы были вынуждены решать множество посторонних задач, например,
уплотнения данных, ускорения процесса выбора информации из памяти и так далее.
А в 1959 году философ Бар-Хиллель опубликовал доклад, в котором сделал обоснованный
вывод о том, что конечная цель МП – FAHQMT – недостижим не только на сегодняшний день, но и в
принципе. Суть в том, что для точного перевода очень часто требуется понимать смысл
предложения, который человек-переводчик узнает из контекста, в то время как машинному
переводчику взять смысл предложения неоткуда. Например:
John was looking for his toy box. Finally he found it. The box was in the pen. John was very happy.
В примере слово “pen” означает “детский вольер”, а совсем не “авторучка”, как можно было
бы подумать, к тому же род слова “it” во втором предложении тоже зависит от того, о чем ведется
речь. Вариант перевода однозначно следует из нашего знания реального мира, и не существует
никакого способа сообщить эту информацию компьютеру.
Действительно, FAHQMT, вероятнее всего, действительно невозможен. Образно говоря,
компьютер никогда не сможет сносно перевести Шекспира. Тем не менее, это не означает, что МП
бесполезен или невозможен. Однако сомнения ученых по поводу необходимости МП в то время
продолжали расти, что привело к появлению доклада Комитета по Автоматическому Переводу
Национальной Академии Наук США, который был опубликован в 1964. Доклад был написан в
жесткой форме, полностью отвергая идею применения МП в настоящем и будущем. Финансирование
программы МП в США было свернуто, тем более что большинство участников покинули проект, как
только стало ясно, что первоначальные радужные перспективы не оправдались.
Несмотря ни на что, проблему МП продолжают исследовать до сих пор, тем более что в этой
области были достигнуты обнадеживающие результаты. Действительно, вся критика МП сводилась к
критике идеи FAHQMT и указанию на то, что как минимум не во всех областях МП может успешно
применяться. Но очевидно, что существует множество сфер деятельности, где машинный перевод не
только возможен, но и необходим из-за своих особенностей, связанных с его изначально
компьютерной основой. Лучшим доказательством этого служат многочисленные системы МП,
активно применяющиеся повсюду в мире, например, в метеорологии (канадская система METEO).
Более того, МП включает в себя не только автоматический, но и автоматизированный перевод,
выгоды которого очевидны.
В 70-х годах исследования в области МП, некоторое время испытывавшей застой, вернулись к
прежнему потенциалу. С тех пор, когда системы МП стали иметь очевидный коммерческий успех, к
разработке МП приступили крупные организации-разработчики ПО.
Перспективы МП
В настоящий момент основные технические проблемы, заботившие исследователей 50-х годов,
полностью разрешены. Даже персональные компьютеры давно обошли ЭВМ того времени по всем
полезным параметрам, как то: объему памяти, быстродействию, стоимости машинного времени.
Практически каждый коммерческий продукт снабжен словарем, по объему превышающего любой
печатный словарь, который можно купить в магазине. Решена и проблема автоматизации ввода
печатного текста в компьютер. Таким образом, задача разработчиков состоит в разрешении проблем,
связанных с самой спецификой МП. Нельзя сказать, что эти проблемы решаются на все сто
процентов. Тем не менее, показателем прогресса в области МП можно считать постепенное
повышение качества выходного текста, выражающееся в уменьшении объема пред- и
постредактирования текста человеком.
Теоретические исследования в области МП привели к появлению новых концепций, например,
статистического подхода, которые еще требуют своего освоения в коммерческих системах.
Основные области применения МП.
Машинный перевод почти не потеснил человека и не привел к падению спроса на
переводчиков. Дело в том, что МП занял ту область рынка, на которую человек почти не
претендовал. А именно, машинным переводом стали пользоваться потребители, для которых более
важны положительные качества МП - в первую очередь скорость. Квалифицированный человекпереводчик выдает в среднем 2-3 машинописных страницы в сутки, а возможности компьютера,
естественно, почти не ограничены. В ряде случаев даже профессиональные переводчики используют
МП, в основном, конечно, в качестве быстрого словаря.
▪ Как уже упоминалось, МП широко используется для перевода оперативной информации
вроде сводок прогноза погоды.
▪ Существуют пары языков, такие как, например, шведский и норвежский, русский и
белорусский, которые имеют весьма сходную грамматику, но разную орфографию (не
говоря уже о других различиях). Здесь, как ни парадоксально, вполне осуществима идея
FAHQMT.
▪ Самым крупным потребителем МП стал мелкий и средний бизнес. В то время, как
компьютеры доступны всем предпринимателям, ручной перевод ни в коей мере не может
удовлетворять их потребностям. Из-за этого в нашей стране с начала 90 годов программы
машинного перевода стали пользоваться заслуженной популярностью. Нет сомнения, что
подобный феномен происходил и в азиатских странах в период, когда они активно
интегрировались в мировую экономику. У нас МП применяется не столько для общения с
зарубежными партнерами, сколько для перевода технической документации и информации
в электронном виде.
Обобщенная схема машинного перевода.
Все существующие системы машинного перевода можно разделить на две большие группы системы прямого перевода или, по-другому, преобразующие, и системы непрямого, или
лингвистического, перевода. Большинство существующих и почти все существовавшие системы МП
принадлежали к первому классу, из-за чего на сегодняшний день второй все еще считается не до
конца разработанным, то есть перспективным. Поэтому далее речь будет вестись только о схеме
прямого перевода.
В 1949 году Уоррен Уивер, один из основоположнико МП, сказал:
"I have a text in front of me which is written in Russian but I am going to pretend that it is really
written in English and that it has been coded in some strange symbols. All I need to do is strip off the code
in order to retrieve the information contained in the text."
"Я вижу текст на русском языке, но я представлю себе, что он на самом деле написан на
английском, только закодирован непонятными символами. Все, что мне нужно, чтобы получить
информацию из текста - это раскодировать его".
Суть этого пути в том, что текст на исходном языке (каждое предложение) может быть
преобразован в текст на выходном языке посредством множества жестко заданных, предельно
простых правил. Это означает, что слова исходного текста заменяются эквивалентами выходного
языка с помощью словаря, а затем над полученным текстом выполняются необходимые
преобразования, чтобы он как можно лучше соответствовал правилам выходного языка. На первом
этапе выполняется разбор исходного предложения, преобразующий его с помощью словаря. В
результате получается список слов с указанием на части речи, к которым они относятся. Затем, на
втором этапе, промежуточный текст обрабатывается при помощи набора правил, при необходимости
использующих информацию, полученную на первом этапе. Эти правила могут включать в себя
перестановку слов согласно требованиям выходного языка, и, самое главное, правила
преобразования формы слов - подстановка корректного числа, падежа, времени, лица и так далее.
Пример перевода с немецкого на английский:
исходный текст:
Drehen Sie den Knopf eine position zuruck.
Шаг 1:
Для каждого слова производится поиск в словаре и извлечение оттуда же характеристик слова
(именно, глагол или существительное, и так далее). В данном случае большинство слов текста
присутствуют в своей основной форме. Но есть исключения: den и eine - формы слов der и ein с
измененным окончанием. Стоит заметить, что словарь системы, как правило, не содержит все формы
слова, и для их определения в таком должен присутствовать блок морфологического анализа слов.
Если слово не было найдено в словаре в том же виде, в каком оно записано в исходном тексте,
система попытается применить к ней правила отбрасывания окончаний.
Это помогает, например, в случае, когда в тексте встречается слово, которого вообще нет в
словаре. Например, в последнее время в немецкий язык вошли слова faxen и mailen, произошедшие
от английских to fax и to mail. Пусть в исходном тексте встретился глагол faxt или mailt. Если
система не обнаружила таких слов в словаре, применяется морфологический анализ и выясняется,
что слово, вероятно, находится в 3 лице и единственном числе. Даже если система, приведя слово к
основной форме (faxen/mailen), по-прежнему не может найти его в словаре, информация с этапа
морфологического разбора не окажется лишней - она позволит системе дальше работать со словом
как с глаголом определенной формы.
Другая проблема состоит в том, что два слова - zuruck и drehen образуют форму так
называемого главного глагола - zuruckdrehen. Система опознает его по следующему правилу: если
предлог (zuruck) расположен отдельно, то есть без дополнения, на конце предложения, то он может
образовывать форму главного глагола. Эта возможность проверяется в словаре и результатом поиска
будет глагол zuruckdrehen.
Шаг 2:
Для дальнейшего анализа применяются некоторые правила немецкой грамматики. Система
предполагает, что den Knopf является подлежащим глагола zuruckdrehen, а следующее за ним eine
Position - это какой-то его признак.
Шаг 3:
Далее применяются правила преобразования немецкого языка в английский с помощью словаря.
Например, der - номинативная форма den - преобразуется в 'the', Knopf - в 'button', ein - в 'a', Position в 'position'. Вообще говоря, ein должно обозначать 'one', но для ясности предположим, что система
смогла определить, что в данном случае слово следует перевести как 'a'.
Переходя к zuruckdrehen, заметим, что должно будет применяться правило такого вида:
'императивный глагол X, за которым следует слово Sie, переводится в форму "X"'. Следовательно,
система найдет в словаре "turn back". Правило позволяет отличить наш случай от того, в котором
немецкое слово Sie играет роль подлежащего. Итак,
"Turn back you the button a position".
Шаг 4:
Но в английском языке императивный глагол не требует явного подлежащего и по этому правилу мы
исключаем слово "you". В результате получаем:
"Turn back the button a position".
В этом примере мы не останавливались на правилах перестановки слов и на проблеме
неоднозначности. Тем не менее, он хорошо передает идею метода.
Разумеется, такая простая схема не свободна от недостатков.
На первом этапе исходные предложения анализируются ровно настолько глубоко, чтобы
применить к ним последующие правила - так, программа обычно выделяет так называемый главный
глагол, не заботясь о получении всей возможной информации о составе предложения. Как правило,
количество грамматических правил, заложенных в алгоритм, относительно невелико. Предпочтение
отдается эмпирическим правилам преобразования с конкретного исходного языка на конкретных
выходной. То есть, в систему заложены правила так называемой сравнительной грамматики различия одного языка от другого - и в ней полностью отсутствуют грамматические правила,
касающиеся только одного из языков.
Все это, например, означает, что система вряд ли сможет определить, является ли предложение
грамматически правильным доже в самых простых случаях - такая информация ей попросту не
нужна.
Основополагающей характеристикой таких систем является то, что на процесс перевода мало
повлияет, например, малограмотный текст. Если грамматическая структура предложения не
поддается определению, результатом будет просто подстановка (транслитерация) слов исходного
языка словами выходного.
Также очевидно, что такая система всегда будет совершенно определенно однонаправленной.
Если разработчик получит задачу доработать систему для перевода с другого или на другой язык,
ему придется составлять и записывать все правила сравнительной грамматики заново.
Обобщая, нужно отметить:
Такая система исключительно устойчива. Никогда не возникнет ситуация, в которой
процесс перевода был бы прерван из-за нераспознанного слова или ошибки (неизвестной
грамматической конструкции) в исходном предложении;
В общем случае производительность системы будет весьма велика. Нет никаких
причин, чтобы скорость перевода текста не была бы на три-четыре порядка выше скорости
человека-переводчика;
Использование сравнительной грамматики предусматривает наличие большого числа
правил с многими критериями, которые сложно описать на естественном языке. Из-за этого
какое-либо расширение системы трудновыполнимо, тем более кому-нибудь кроме самого
разработчика;
Качество перевода во многих случаях оставляет желать лучшего. Иногда на выходе
программы возникает так называемый "словесный винегрет";
Тем не менее, если система адаптирована к определенному типу текстов, качество
перевода значительно повышается.
Основные проблемы МП
Задача машинного перевода ставит перед разработчиком множество различных проблем. Не
вдаваясь в технические проблемы, решение которых целиком зависит от профессионализма
разработчика, остановимся на тех, которые делают задачу МП особенно сложной и нетривиальной.
Все они лежат в трех областях:
- проблемы неоднозначности;
- проблемы структурного и лексического различия между языками;
- грамматические конструкции, состоящие из нескольких слов, такие как идиомы и
словосочетания.
Проблема неоднозначности
В самом лучшем для переводчика случае, каждое слово языка имело бы одно и только одно
значение. Но это далеко не так. Когда одно слово имеет несколько значений, говорят, что
присутствует лексическая неоднозначность. Если же предложение может иметь несколько разных
структур, говорят о структурной неоднозначности.
Неоднозначность исключительно часто встречается во всех естественных языках. Случай,
когда предложение может иметь несколько значений - это скорее правило, чем исключение.
Усложняет работу и то, что неоднозначности могут накапливаться. Например, если предложение
состоит из двух слов и каждое может иметь два значения, в худшем случае его можно перевести
четырьмя разными способами. Естественно, может понадобиться рассмотреть все возможные случаи
перевода, чтобы выбрать только один из них.
На самом деле не все так плохо и, как правило, можно воспользоваться некоторыми
правилами, в частных случаях сильно упрощающими работу МП. Допустим, мы переводим с
английского на французский:
1.You must not use abrasive cleaners on the printer casing.
2.The use of abrasive cleaners on the printer casing is not recommended.
В первом случае use является глаголом, во втором - существительным, то есть имеет место
лексическая неоднозначность. Глагол можно перевести как se servir de или как employer, в то время
как существительное - как emploi или же как utilisation. Способом, который помогает читателю или
программе перевода понять, какая часть речи присутствует на самом деле, является попытка
подставить в сомнительное место один из вариантов и соотнести с правилами языка. В данном
случае мы знаем, что в английском языке нельзя употреблять сочетание "глагол - прилагательное",
поэтому во втором случае use является глаголом.
Однако, это далеко не исчерпывает все случаи лексической неоднозначности. Что касается все
того же английского языка, слово button в нем может значить "кнопка, клавиша" и с тем же успехом
"пуговица". Чтобы адекватно перевести слово, человек использует его смысл, а откуда о смысле
может узнать программа? Единственное подходящее решение - сделать процесс перевода
интерактивным. При появлении такого рода неоднозначности придется спросить человека, сидящего
за компьютером, какой из вариантов перевода слова или даже всего предложения он считает
наиболее осмысленным.
Посмотрите также на еще один пример:
"Подключите принтер к компьютеру. Теперь включите его". Только человеку дано догадаться,
имеется ли в виду "включить принтер" или "включить компьютер".
Структурные и лексические различия языков
Очень часто при переводе между неродственными языками возникает проблема "языковых
пробелов". Это означает, что на одном языке приходится использовать целое предложение, чтобы
выразить то, на что в другом языке используется всего одно слово. К этому же случаю можно
отнести и слова, которые не имеют полностью адекватного перевода на другие языки: английское
"cottage", русское "дача", французское "chateau" и другие. Переводчику приходится пользоваться
неологизмом или приводить пояснение.
К структурным различиям относится, например, различное толкование одной структуры
разными языками. Слегка отличается случай, когда два языка имеют две одинаковые конструкции,
но с разными ограничениями на них. Из-за этого перевод нельзя произвести наиболее тривиальным
способом. Например:
1. These are the letters which I have already replied to.
1а. Ce sont les lettres lesquelles j'ai d`jа repondu а. - неверно
2. These are the letters to which I have already replied.
2а. Ce sont les lettres auxquelles j'ai d`jа repondu. - верно
Видно, что разница между английским языком и французским в том, что в английском
предлоги могут быть записаны отдельно от дополнения, а во французском - нет. Это делает
грамматический перевод почти невозможным для систем, которые не производят абстрактных
синтаксических построений (то есть для систем прямого перевода).
Сложные конструкции - идиомы и словосочетания
Идиома - это набор слов, который имеет собственное значение, не зависящее от значения
составных частей.
If Jim mends the bucket, his children will be rich
If Jim kicks the bucket, his children will be rich
( очень приблизительный перевод на русский)
Если Джим сыграет в преферанс, его дети будут богатыми.
Если Джим сыграет в ящик, его дети будут богатыми.
Если пользоваться любыми другими правилами, первое предложение можно перевести
правильно, а второе нельзя, так как 'kick the bucket' - идиома. Есть, конечно, исключения. Например,
"to take bull by the horns" можно совершенно свободно перевести на французский ("prendre le taureau
par les cornes") или на русский ("взять быка за рога").
Идиомы похожи на языковые пробелы, и, вероятно, решение этой проблемы должно быть
одинаковым. Идиомы должна выявляться на одном из начальных этапов перевода, чтобы избежать
их потери, и обрабатываться системой как одно слово. Трудность возникает только в вопросе
привязки идиомы к слову, по которому будет производиться ее поиск. В предыдущем примере
можно задать условие поиска идиомы по глаголу to kick, чтобы искать ее окончание, или по
существительному busket (менее предпочтительный вариант). Проблема в том, что идиомы могут
быть записаны в нескольких формах и эти формы могут не всегда образовываться по обычным
грамматическим правилам.
Словосочетания отличаются от идиом. Их смысл полностью исходит из смысла составных
частей, но только не всегда можно узнать, какие слова следует употреблять:
This butter is rancid (неправильно - sour, rotten, stale).
This cream is sour (неправильно - rancid, rotten, stale).
They took (неправильно - made) a walk.
They made (took) an attempt.
They had (неправильно - made, took) a talk.
То есть тот факт, что англичане говорят "rancid butter", но не "sour butter", нельзя угадать
только по слову "butter" и тем более по слову "rancid".
Сетевые грамматики Вудса
В работе (Woods, 1970) описана «расширенная сеть переходов» — РСП — аппарат для описания грамматики естественного языка и задания процедуры анализа предложений. Сети Вудса
обладают одновременно прозрачностью, логической мощностью и эффективностью, благодаря чему
они быстро получили известность и распространение.
Расширенная сеть переходов строится как обобщение рекурсивной сети. Рекурсивная сеть —
это совокупность графов, каждый с присвоенным ему именем, дуги и узлы которых помечены
символами, причем среди узлов выделен один, названный начальным, и группа узлов, названных
заключительными.
Анализируемое предложение представляет собой цепочку терминальных символов. Движение
по графу начинается от начального узла. Дуги графа могут быть помечены либо терминальными
символами, либо нетерминальными (именами подграфов сети). Переход по дуге, помеченной
терминальным символом, разрешен, если в данный момент во входной цепочке рассматривается
указанный терминальный символ.
Если бы дуги были помечены только терминальными символами, то анализ состоял бы из
поочередного рассмотрения символов входной цепочки с одновременным продвижением от
начального узла к заключительному, причем переход от узла к узлу разрешен каждый раз по дуге,
помеченной тем же символом, что и очередной рассматриваемый символ цепочки.
Если встречается дуга, помеченная нетерминальным символом, то узел, в который ведет эта
дуга, запоминается в стеке (магазине) узлов, и совершается переход (без продвижения входной
ленты) к тому подграфу, именем которого помечена данная дуга. После того как этот подграф более
глубокого уровня будет пройден до некоторого заключительного узла, берется верхний узел из
хранящихся в стеке, и дальше движение идет от этого узла (из стека он вычеркивается). Иначе
говоря, подграфы позволяют обнаружить самостоятельные группы (phrases) во входной цепочке, т. е.
к подграфам обращаются как к подпрограммам, причем такое обращение может быть рекурсивным.
Пустота стека в тот момент, когда делается попытка взять из него что-то при условии, что
последний символ цепочки обработан, означает, что анализ цепочки завершен.
Расширенная сеть переходов отличается от рекурсивной сети тем, что дугам сопоставляются не
просто символы, а, во-первых, определенного вида условия, которые должны быть выполнены для
того, чтобы переход но данной дуге был разрешен, и, во-вторых, действия по построению структуры
анализируемого предложения. Кроме того, к сети добавляется группа регистров, к содержимому
которых можно обращаться при проверке условий и в которые можно записывать новое содержимое
с помощью действий по построению структуры.
Поясним немного сказанное. В сущности, символы, приписанные дугам в рекурсивной сети,
тоже представляют собой условия, которые читаются следующим образом: переход но дуге
возможен, если в рассматриваемом месте входной цепочки стоит данный символ (при терминальном
символе у дуги) или данная группа (при нетерминальном символе у дуги). Известно, что в системах,
ведущих анализ текста на естественном языке, слово характеризуется не одним символом, но
структурированной совокупностью признаков. Условия при дугах в РСП, могут проверять значения
отдельных признаков, могут обращаться к признакам не только той единицы, которая находится на
входе, во и к другим, рассмотренным ранее, в частности, к тому, что записано в регистрах.
В регистрах могут содержаться уже построенные чести синтаксической структуры, в том числе
такие, которые имеют вид дерева или совокупности деревьев. Сами регистры тоже устроены по
принципу стека, т. е. их содержимое может опускаться при очередной записи в регистр и
подниматься при чтении. Кроме того, в регистрах можно записывать определенные пометки и
указатели; так, в них можно запомнить тот факт, что в уже рассмотренной части предложения
встретилось слово с определенными признаками (например, присутствовал неомонимичный
предикат и т. п.).
Среди регистров есть специальный выделенный регистр, в котором хранится либо текущее
входное слово (во время прохождения по некоторой дуге), либо результат работы на более глубоком
уровни (когда от заключительного узла более глубокого уровня совершается возврат на предыдущий,
менее глубокий, при помощи стека узлов, о котором говорилось выше).
Следует сказать, что эти возвраты изображаются в РСП так же, как и другие дуги, т.е. им
соответствуют некоторые своеобразные «фиктивные» дуги, сопровождаемые определенными условиями и указаниями о действиях. Условия должны быть выполнены, чтобы возврат был допустим.
Действия определяют форму того результата работы на глубоком уровне, который записывается в
выделенный регистр.
Действия по построению структур, приписанные дугам, меняют содержимое регистров в
зависимости от их предыдущего содержимого и от содержимого других регистров, в том числе
выделенного.
В упомянутой работе [Woods, 1970] предложен набор действий, удобный для анализа текстов
естественного языка. Кроме того, в этой работе определен способ задания грамматики в виде РСП,
точнее, описан некий формальный язык, на котором удобно записывать РСП и на который была
рассчитана программная реализация описанной схемы, сделанная им в Гарвардском университете.
Предложенные Вудсом РСП позволяют получать глубинную структуру предложения (в смысле
Хомского), минуя поверхностную, причем они позволяют производить перестановку, перестройку,
элиминацию составляющих и т. д.
К описанной выше схеме, позволяющей получить последовательно все возможные варианты
анализа предложения, согласующиеся с данной РСП, Вудс добавил некоторые средства, которые
дают возможность получить в первую очередь «наиболее правдоподобный» вариант, а именно: он
ввел специальный регистр для запоминания «веса» — оценки правдоподобности текущего анализа, а
также некоторые специальные приемы обработки семантических признаков (в частности, для
правильного отыскания слова, к которому должно быть отнесено обстоятельство).
Анализ структуры предложения с помощью сетевой грамматики Вудса.
Вообще, сети Вудса (в дальнейшем СВ) в принципе позволяют проводить анализ структуры
текста не только на уровне предложения, но и на уровне структуры слов (морфологический разбор).
Однако, в последнем случае могут быть с успехом применены другие, более традиционные методы, и
использование СВ не дает существенных преимуществ.
С точки зрения реализации системы МП, СВ представляет собой особую запись алгоритма,
характерного своей неунитарной структурой. Это означает, что граф СВ, в отличие от блок-схемы
обычной программы на алгоритмическом языке, может иметь взаимное пересечение своих ветвей,
которое запрещено в структурном программировании. Тем не менее, такая особенность позволяет
успешно получать практически значимые результаты.
Рассмотрим конкретный пример. Так как естественный язык, очевидно, нельзя достаточно
полно описать в ограниченном объеме, нам понадобится искусственный язык, который позволил бы
продемонстрировать практическое решение некоторых проблем МП. (Поскольку пример не
преследует серьезных научных целей, я не буду придерживаться формальных правил записи, вроде
БНФ).
Алфавит:
Буквы латинской азбуки A, B, C, D, E, F.
Словарь:
Существительные – BEEF, BED, CAB, CAFE, DEED, FACE.
Прилагательные – DEAD
Глаголы – BE, FACE, FADE
Предлоги – A
Части речи:
Имя существительное
ИС = 1. П + ИС
2. ИС + ИП
3. ИП + ИС
ИП = ИП
Г = Г
П = П
Корректные типы предложений:
1. ИС + Г
2. ИС + Г + ИС
3. ИС
4. Г + ИС
Примеры предложений:
1. A BEEF BE DEAD
2. FADE A DEAD CAB
3. CAB DEAD CAB
Первые два предложения корректные, третье – нет. Теперь посмотрим на СВ для нашей
грамматики и на то, как с ее помощью происходит анализ структуры предложения. (Сам анализ
приведен ниже схемы СВ).
Заметим, что даже для такого простого языка СВ имеет довольно значительные размеры.
Начальный
узел
Не ИС
ИС
Ri : = истина
Rk : = истина
Г
Не Г
Не П
П
…
Rj : = истина
Не П
П
…
ИП
ИП
Не ИП
Rj = истина
…
Не ИП
Rj = истина
…
Конец фразы
Фраза некорректна
Фраза 4 типа
Итак, на вход анализатора поступает предложение (вообще, на схеме используется слово
«фраза» - это вследствие того, что СВ может использовать рекурсию для анализа придаточных
предложений. Здесь под фразой понимается целое предложение или придаточное):
FADE A DEAD CAB.
Каждому узлу сети соответствует набор условий. В условиях могут фигурировать регистры
СВ, которые здесь для простоты принимают только значения истина-ложь. В начале все регистра,
которых упоминается 3 – Ri, Rj, Rk – имеют значение «ложь».
Начинаем анализ с узла, следующего за исходным. Первое слово фразы- FADE. Это не имя
существительное, спускаемся по дуге вниз. Это и не предлог, спускаемся ниже. Но это и не
прилагательное, а поскольку других частей речи нет, остается глагол, и мы устанавливаем регистр Rj
и поднимаемся по дуге вверх. Следующее слово A – предлог, мы запоминаем это установкой
регистра Rk, когда возвращаемся по дуге назад. Следующее слово DEAD. Мы спускаемся по узлам
вниз и возвращаемся, установив регистр Ri. Теперь следует слово CAB. Пройдя вниз на 4 узел
уровня, мы из-за истинности значения регистра Rj спускаемся вниз. Далее следует проверка на
достижение конца фразы, а поскольку конец достигнут, делается вывод о том, что анализируемая
фраза 4 типа, «Г + ИС», и регистр Ri сигнализирует о том, что имя существительное имеет при себе
прилагательное.
Теперь допустим, что анализатор получил некорректную фразу:
CAB CAB CAFE.
На рисунке намеренно добавлены узлы, с помощью которых уже через несколько итераций
будет сделан вывод, что структура фразы не соответствует грамматике исходного языка.
Теперь остановимся на омониме - феномене естественного языка, выражающемся в том, что
слово FACE может быть и существительным, и глаголом. На приведенной схеме это не показано,
однако здесь в силу должна вступить такая особенность СВ, как рекурсия подграфов. Если
анализатор встречает подобное слово, он должен перейти на подграф анализ предложения в случае,
когда FACE является именем существительным, запомнить (в регистрах) результат и точно так же
проверить предложение на подграфе анализа как глагола. В нашем языке в предложении типа FACE
A CAB на подграфе анализа фразы типа 1 (например) будет сделан вывод о том, что гипотеза о том,
что слово FACE – имя существительное – недействительна, так как в этом случае она противоречит
грамматике.
Download