Вы здесь

Использование естественного языка

Все, кому приходилось заниматься программированием, хорошо ПОНИМАЮТ, что используемые при этом языки высокого уровня, с помощью которых осуществляется обмен информацией между компьютером и человеком, «языками» можно называть лишь условно. По существу, «слова», из которых состоят такие языки, как Бейсик, Кобол или Паскаль, скорее являются «этикетками» на клавиатуре, чем словами, которыми мы повседневно пользуемся. Короче говоря, пользователю удобнее применять инструкцию GOTO, понятную для человека, говорящего по-английски, точно так же, как ему, например, удобнее, чтобы кнопка, включающая стеклоочистители автомашины, была снабжена надписью «дворник». Однако для компьютера слово GOTO (перейти) не часть языка, а лишь простая логическая инструкция, которую машина может преобразовать в свой внутренний машинный код в виде последовательности единиц и нулей, приступив после этого к выполнению соответствующих операций. В данном случае машина ведет себя подобно послушной собаке, которая садится по команде «сидеть», хотя и не понимает смысла этого слова, а не как человек, способный понимать смысл фраз типа: «Я садился, когда зазвонил телефон» или «Я думаю, что сяду здесь».
Естественный язык — гораздо более сложное образование. Немалую помощь ученым, работающим в области ИИ, оказали исследования по естественному языку, проведенные американским лингвистом Ноэмом Хомским. Перед тем, кто пытается обучать естественному языку компьютер, неизбежно возникает загадочный вопрос: каким образом мы сами овладеваем языком? Как, например, ребенок, словарь которого насчитывает сотню слов, учится (причем внешне без особых усилий) комбинировать их только допустимыми способами, т. е. строя грамматически корректные предложения? В принципе слова можно комбинировать почти бесконечным числом способов, но большинство из них приводит к бессмысленным предложениям. Каким же образом ребенок создает «правильную» комбинацию, избегая грамматически недопустимых правил построения фраз?
Хотя лингвисты и предпринимали попытки определить, какие структуры допустимы в различных языках, исследования в основном сводились к описанию уже сложившихся языковых норм и не объясняли, почему они именно таковы. Очевидно, что в рамках таких исследований преобразовать, например, правила французской грамматики в программу, позволяющую компьютеру понимать французский язык и обмениваться на нем информацией, было бы весьма трудно* Ведь выучить французскую грамматику английскому школьнику помогает то, что он разбирается в английской, а английскую грамматику он освоил потому, что к началу ее изучения уже говорил по-английски.
Хомский предложил принципиально новый подход к изучению лингвистики, показав, что традиционные грамматики занимаются так называемыми «поверхностными структурами» языков. Согласно его теории, под отдельными наборами поверхностных структур (каждому языку отвечает свой набор) имеется «глубинная структура» — общая для всех языков. С точки зрения ИИ важность исследований Хомского заключается в том, что он описал набор формальных .логических правил (так называемые «порождающие правила»), которые, как он полагает, изначально присущи человеческому мозгу. По мнению Хомского, именно эти порождающие правила делают возможным «преобразование» и «генерацию» предложений, которые, с одной стороны, имеют смысл, а с другой — грамматически верны.

Эволюция быстродействующих суперкомпьютеров: 1 — большой универсальный компьютер; 2 — «СТАР-100» (1973); 3 — «Иллиак IV» (1973); 4 — «Крей-1» (1976); 5 — «Сайбер-205» фирмы CDC (1981); 6— «Крей-ХМР» (1983); 7 — VP-200 фирмы «Фудзицу» (1983); 8 — МРР — НАСА (1983); 9 — S-1 Ливерморской лаборатории им. Лоуренса (1983); 10 — JASA Фонда Национальной академии наук; 11 —японский проект создания ЭВМ пятого поколения (1989?). (Производительность указана в миллионах операций в секунду.)


Анализ цели—средства. На схеме отражена типичная «задача робота», которую можно сформулировать следующим образом: как превратить верхнюю башенку из цветных кубиков в нижнюю, используя минимальное число шагов и перекладывая за каждый шаг по одному кубику. Верхнее дерево решений обеспечивает прямой просмотр первых четырех шагов, которые могут привести к семи возможным состояниям (заметим, что левая часть дерева представляет собой повторяющиеся циклы шагов, которые никуда не ведут). На нижнем уровне (соответствующем искомому решению задачи) дерево сильно разрастается и включает многие последовательности шагов, бесполезность которых очевидна. Процесс построения деревьев и поиск по ним могут быть сокращены в случаях, подобных данному, где имеется одно возможное «состояние решения». Сокращение достигается путем построения второго, обратного, дерева решений, начальным состоянием которого является искомое целевое состояние. На нижней схеме показано обратное дерево, которое продвинуто в сторону исходного состояния на пять уровней. Можно заметить, что крайние правые ветви и прямого, и обратного деревьев решений одинаковы, что указывает на возможность их объединения. Задача будет решена, если машина последовательно сделает следующие шаги: 1 — взять красный кубик; 2 — положить его на стол; 3 — взять синий кубик; 4 — положить его на стол; 5 — взять черный кубик; 6 — установить черный кубик на синий; 7 — взять красный кубик; 8 — установить красный кубик на черный.
Например, изменив порядок слов в вопросе «Была ли Золушка на балу у короля, когда часы били полночь?», мы можем получить утвердительное предложение: «Золушка была на балу у короля, когда часы били полночь», или «Часы били полночь, когда Золушка была на балу у короля». Однако нельзя преобразовать этот вопрос в предложение типа: «Бал у короля бил полночь, когда Золушка была на часах». Последнее неверно не только потому, что бессмысленно, но и вследствие нарушения правил грамматики, ибо при этом изменяются соотношения между отдельными элементами первоначального вопросительного предложения. Так, «Золушка» в нем была связана с существительным «бал» предлогом 1 «на», тогда как в преобразованном (последнем) предложении она произвольно связана тем же предлогом с существительным «часы»; «полночь» связывалась ранее со словом «часы» глаголом «бить», теперь же оказалась связанной тем же глаголом со словом «бал», что недопустимо по семантике.
Исследования Хомского, показавшего, как предложения можно разбивать на логические «модульные блоки», которыми — независимо от значений входящих в них слов — можно манипулировать и преобразовывать их, строя таким образом новые предложения, открыли путь для составления программ, использующих естественные языки и оперирующих ими на уровне глубинной структуры. На современном уровне исследований работа типичной программы такого рода может начаться с ввода в нее простейшего короткого рассказа. В процессе ввода программа выполняет грамматический разбор предложений с целью проверки их грамматической правильности, т. е. выясняет, можно ли считать их допустимыми компонентами грамматической структуры, а затем производит грамматическую классификацию элементов предложения. Рассказ заносится в память компьютера в «расчлененной форме», т. е. в виде набора логических элементов, которыми машина может затем манипулировать в соответствии с правилами грамматики.
Хотя с точки зрения синтаксиса и грамматики такие программы достаточно совершенны, их реализация показала, что нерешенной остается проблема еще более фундаментального характера. Дело в том, что если на одном уровне — на котором производится обработка средствами формальной грамматики Хомского — использование языка можно рассматривать как манипулирование абстрактными символами (здесь компьютер «вне конкуренции»), то на другом уровне — а именно на уровне обмена информацией между людьми — язык является выражением семантических категорий: для людей слова имеют смысл, поскольку они отражают реальность. Рассмотрим, например, проблемы, которые могут возникнуть, если программе, составленной на основе рассказа о Золушке и способной оперировать элементами предложения «Золушка была на балу у короля, когда часы били полночь», придется иметь дело с рассказом на тему шахмат, в котором встречается фраза: «Король бил слона».
Наибольшая трудность, очевидно, будет заключаться в том, что слова «король» и «бил» используются здесь совершенно в ином контексте, но программе придется столкнуться и с другими проблемами. Она, например, может заметить, что с точки зрения логических связей между элементами в этих двух рассказах «полночь» и «слон» — предметы, которые можно бить. Поэтому она сочтет вполне допустимым построение такого предложения, как «Король бил полночь».
Одно из решений проблем подобного рода было предложено американскими учеными Роджером Шенком и Р. П. Эйбелсоном. По их мнению, путаницы можно избежать, снабдив программу специальными «сценариями», каждый из которых характеризует соответствующую ситуацию. Располагая такими сценариями, программа, получив вопрос «Кто кого бил?», сможет определить, в каком контексте он возник — в связи с Золушкой или шахматами. Таким путем устраняется опасность бессмысленных ответов. Шенк и Эйбелсон даже считают, что подобным алгоритмом с опорой на «сценарий» пользуются (бессознательно) и люди.
Однако не может не возникнуть мысль, что использование сценариев и другие хитроумные способы, позволяющие избегать неоднозначности, есть не что иное, как временные паллиативы, помогающие в ряде случаев обходить достаточно фундаментальную проблему, а именно: каким образом компьютер вообще может узнать, «о чем идет речь» — в том смысле, как это понимает человек? Каким образом (возвращаясь к нашим примерам) можно объяснить компьютеру, что король, бьющий слона, — это шахматная фигура, удаляющая по правилам игры другую фигуру, слона (для этого придется ввести определения таких понятий, как «игра», «шахматы» и «фигура»), а король, дающий бал, на который была приглашена Золушка, — живой, хотя и сказочный, человек (здесь необходимо дать уточнение таких понятий, как «живой», в противоположность «неживому» — «бал» и т. Д.)?
Роботы, возможно, откроют путь, который позволит обойти подобные проблемы. Дело в том, что роботам придется, хотя и на более примитивном уровне, осваивать внешнюю реальность так же, как это делают люди. Когда эти механические устройства получат органы восприятия (в виде систем машинного зрения и других датчиков), они смогут видеть и ощущать окружающие предметы и усваивать слова, необходимые для описания того, что роботы непосредственно наблюдают. В конечном счете роботы смогут построить свою картину мира и обрести способность «говорить» о нем.
Начало исследований в данном направлении было положено одной из наиболее интересных программ, оперирующих естественным языком. Программу SHRDLU Терри Виноград создал, еще будучи аспирантом Массачусетского технологического института. Эта программа имеет дело с «миром кубиков», который состоит из небольшого числа простых блоков (кубиков, пирамид и коробочек) и робота-манипулятора, перемещающего их. Задача заключалась в обучении SHRDLU языку, необходимому для управления этим миром кубиков. Однако истинная изобретательность создателя программы проявилась в том, что весь этот «мир» существовал только в виде набора программ, хранившихся в памяти компьютера. Иначе говоря, программа SHRDLU с самого начала «знала» все что нужно о мире, о котором она должна была говорить. В конце концов программа обрела способность вести диалог о мире кубиков и о собственных манипуляциях в нем с учетом самых тонких деталей. Однако пока остается неясным, можно ли этот метод применять для решения задач реального мира, полного всяческих неожиданностей, а также для усвоения всех тонкостей языка, которым обычно пользуются люди, обсуждая подобные задачи. Когда робототехника будет в состоянии приступить к решению реальных задач — а это в свою очередь во многом зависит от разработки более совершенных сенсорных устройств, — тогда, быть может, удастся ответить и на более серьезный вопрос: прав ли Хомский, полагающий, что умение оперировать глубинной структурой языка от рождения присуще человеку, или правы его оппоненты, утверждающие, что умение пользоваться языком люди приобретают в младенческом возрасте? Решение этого принципиального спора будет иметь важные последствия как для психологии, так и для робототехники. Если обнаружится, что люди не учатся языку «с нуля», то способность роботов к овладению языком будет оставаться ограниченной до тех пор, пока мы сами до конца не поймем «программу пользования языком», которая от рождения «встроена» в наш мозг. Если же окажется, что робот без подобной программы сможет освоить естественный язык — хотя бы на самом элементарном уровне, — то тем самым будет разрешена одна из ключевых загадок психологии.

Мир кубиков, с которым работает программа SHRDLU. Объекты этого мира и перемещающий их манипулятор не реальны — они существуют только в «мозге» компьютера, который снабжен также программой на естественном языке, способной учиться описывать этот крохотный мир.