Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Solomon.doc
Скачиваний:
17
Добавлен:
08.05.2019
Размер:
3.38 Mб
Скачать

Глава 11. Общение с компьютером на естественном языке

11.1. Введение

11.2. Различные подходы к проблеме общения на естественном

языке

11.3. Простейший интерфейс1 0с использованием ключевых слов

11.4. Программа создания списков

11.5. Программа идентификации ключевых слов

11.6. Программа естественно-языкового интерфейса с футболь-

ной базой данных

11.7. Контестно-свободный анализ

11.7.1. Простейшие модели предложений для КС-анализа

11.7.2. Программа лексического анализатора предложений

11.7.3. Программа КС-анализатора предложений

11.8. Заключение

Приложение А. Использование редактора Турбо-Пролога

А.1. Основные команды редактирования

А.1.1. Управление курсором

А.1.2. Удаление текста

А.1.3. Выбор режима вставки или режима замены

А.1.4. Автоматическое выравнивание

А.1.5. Изменение размеров окна редактора

А.1.6. Использование подсказки

А.2. Дополнительные команды редактирования

А.2.1. Выделение фрагмента текста

А.2.2. Использование команд поиска

А.2.3. Использование вспомогательного редактора

А.2.4. Копирование текста из другого файла

Приложение В. Дополнительные сведения о Турбо-Прологе

В.1. Системные опции Турбо-Пролога

В.1.1. Команда Сомрile

В.1.2. Команда Edit

В.1.3. Команда Options

В.1.4. Команда Files

В.1.5 Команда SetUp

В.2. Компиляция и редактирование программы на Турбо-Прологе

В.3. Трассировка программы

Приложение С. Основные команды и утилиты DOS

С.1. Команды работы с диском

С.1.1. Форматирование диска (FORMAT)

С.1.2. Копирование диска (DISKCOPY)

С.2. Команды работы с директориями

С.2.1. Использование пути доступа

С.2.2. Cmeна текущего диска

С.2.3. Просмотр каталога директории

С.2.4. Создание новой директории (MD или MKDIR)

С.2.5. Смена текущей директории (CD или CHDIR)

С.2.6. Удаление директории (RD или RMDIR)

С.3. Команды работы с файлами

С.3.1. Имена файлов

С.3.2. Использование неопределенных символов

С.3.3. Копирование файлов (COPY)

С.3.4. Удаление файла (DEL или ERASE)

С.3.5. Переименование файла (REN или RENAME)

С.3.6. Просмотр содержимого текстового файла (TYPE)

С.3.7. Печать текстового файла (PRINT)

Приложение F. Встроенные предикаты Турбо-Пролога

F.1. Функциональные группы предикатов

F.2. Алфавитный список предикатов

Предисловие

В настоящее время Турбо-Пролог (Turbo Prolog) является

самым замечательным языком искусственного интеллекта (ИИ) на

рынке программного обеспечения. Всего лишь несколько лет на-

зад языки программирования ИИ были доступны только тем, кто

работал на больших дорогостоящих ЭВМ. В настоящий момент на

рынке программного обеспечения появилось несколько реализа-

ций Пролога, но они не идут ни в какое сравнение с Тур-

бо-Прологом компании Borland International, характеризующим-

ся высокой скоростью работы и низкой стоимостью. Все это де-

лает Турбо-Пролог весьма популярным в широких кругах облада-

телей IBM PC.

_Для чего нужен Турбо-Пролог ?

Турбо-Пролог является компиляторно-ориентированным язы-

ком программирования высокого уровня; разработан фирмой

Borland International и предназначен для программирования

задач из области искусственного интеллекта. Как язык прог-

раммирования ИИ Турбо-Пролог особенно хорош для создания эк-

спертных систем, динамических баз данных, программ с приме-

нением естественноязыковых конструкций; он также может быть

использован и для других задач общего характера. Турбо-Про-

лог имеет окна, цветную графику и интерактивные средства

ввода-вывода, что свидетельствует о его максимальном удобст-

ве для пользователя прикладных программ.

Встроенные предикаты Турбо-Пролога и другие дополни-

тельные возможности делают его пригодным для решения многих

стандартных задач из сферы бизнеса, включая бухгалтерский

учет, расчет зарплаты и представление графиков.

Популярность Пролога резко возросла после того, как он

был выбран в качестве базового языка японской программы ЭВМ

пятого поколения. Спрос на программы искусственного интел-

лекта, применяемые либо взамен, либо совместно с традицион-

ными прикладными программами, постоянно увеличивается. В хо-

де продолжающейся эволюции применений вычислительной техники

наблюдается все возрастающая потребность в создании приклад-

ных программ на Прологе. Турбо-Пролог может прекрасно удов-

летворить такую потребность.

Наряду с Турбо-Прологом в США созданы еще несколько ре-

ализаций Пролога: Arity Prolog, Prolog II, Wisdom Prolog и

Micro Prolog. В отличие от них Турбо-Пролог имеет великолеп-

ный полноэкранный редактор, множество рабочих окон и инте-

рактивный диалоговый отладчик. Он поддерживает цветную гра-

фику IBM PC, снабженного цветным графическим адаптером (CGA)

и расширенным графическим адаптером (EGA). Предикаты графики

и система с графическим экранным пером являются составной

частью Турбо-Пролога. Он также снабжен средствами работы с

последовательными файлами, файлами прямого доступа и двоич-

ными файлами.

Еще одной причиной предпочтительности выбора Турбо-Про-

лога является то, что написанные на нем программы компилиру-

ются, в отличие от других версий Пролога, где программа ин-

терпретируется. Интерпретатор выбирает предложения программы

одно за другим и последовательно исполняет их. Компилятор

транслирует в машинные коды сразу весь текст программы. Тур-

бо-Пролог транслирует исходный текст программы особенно быс-

тро (быстрее всех других версий Пролога для компьютеров IBM

PC). Также он позволяет легко создавать отдельные выполнимые

файлы. Далее, Турбо-Пролог имеет прекрасный пользовательский

интерфейс для отладки программ. Другими словами, Турбо-Про-

лог - это наилучший товар на рынке программного обеспечения

на сегодняшний день.

_Что такое Пролог ?

Название Пролог произошло от словосочения "программиро-

вание при помощи логики" (Prolog - PROgramming in LOGic).

Пролог был разработан и впервые реализован в 1973 г. Алэном

Колмероэ и другими членами "группы искусственного интеллек-

та" (Франция) Марсельского университета. Главной задачей

группы было создание программы для перевода с естественного

языка. С тех пор было сделано несколько расширений и усовер-

шенствований языка, здесь можно отметить работу группы из

Эдинбургского университета (Шотландия). Шотландский вариант

получил название C&M Prolog в честь авторов классической ра-

боты "Программирование на Прологе" Уильяма Клоксина и Крис-

тоффера Меллиша. Хотя официального стандарта Пролога не су-

ществует, в этой книге приведен тот его вариант, который

считается неофициальным стандартом.

Турбо-Пролог имеет несколько отличий. В нем отсутствуют

некоторые элементы C&M, но такие, которые встречаются только

в очень сложных программах. Самым существенным отличием от

упомянутого стандарта (как и от других версий языка) являет-

ся наличие в Турбо-Прологе строгой типизации элементов дан-

ных. Сделанные отступления от неофициального стандарта поз-

волили значительно увеличить скорость трансляции и счета

программ. И хотя некоторые программисты возражают против

этих отступлений, говоря что Турбо-Пролог не есть Пролог "в

чистом виде", однако именно в таком виде язык имеет массу

преимуществ, например наличие графики и возможность работы с

окнами. Этих средств нет в других реализациях. Независимо от

того, является ли Турбо-Пролог "чистым" Прологом или нет, он

тем не менее является очень современным, полноценным и гиб-

ким языком программирования.

_Турбо-Пролог и другие языки программирования

Такие языки программирования, как Паскаль, Бэйсик и Си

относятся к разряду императивных или процедурных. Программа,

написанная на императивном языке, состоит из последователь-

ности команд, определяющих шаги, необходимые для достижения

назначения программы. Пролог является декларативным языком.

Программа на декларативном языке являет собой набор логичес-

кий описаний, определяющих цель, ради которой она написана.

Таким образом в Прологе отсутствуют такие явные управ-

ляющие структуры, как DO WHILE и IF ... THEN. Вместо распи-

сывания шагов выполнения программы программист должен опре-

делить логический метод для достижения цели программы. Мощ-

ные внутренние унификационные процедуры(работа которых бу-

дет пояснена в гл. 2) будут затем искать решение поставлен-

ной задачи.

Сила Турбо-Пролога заключается в его возможностях поис-

ка и сопоставления. Внутренние унификационные процедуры бес-

страстно перебирают все возможные комбинации правил, пытаясь

удовлетворить заданную программистом цель. Пролог, как ви-

дим, базируется на естественных для человека логических

принципах, и поэтому, чем больше вы им занимаетесь, тем он

становится все более привлекательным.

_Кому предназначена эта книга ?

Данная книга написана для всех, кто интересуется Тур-

бо-Прологом, вне зависимости от того, является ли он нович-

ком или профессиональным программистом. От вас не требуется

знания ни процедурных языков (например Бэйсик, Паскаль или

Си), ни декларативных языков (например, Лисп). В книге тзло-

жены основные концепции и методы, необходимые для написания

программ на Турбо-Прологе. С ее помощью вы научитесь мыслить

категориями Ппролога.

Если вы не работали с Турбо-Прологом вообще, эта книга

именно для вас. "Использование Турбо-Пролога" позволит по-

нять, что представляет собой программирование на декларатив-

ном языке, как проектируются и пишутся на нем программы. Ло-

гические предикаты и правила - это основные средства прог-

раммирования для всех версий Пролога.

Если система Турбо-Пролог у вас уже имеется, и вы про-

бовали с ней работать, то книга пригодится и в этом случае.

Она покажет, как проектировать и реализовать прикладные

программы, предназначенные для решения различных задач. "Ис-

пользование Турбо-Пролога" стоит выше "Руководства пользова-

теля Турбо-Пролога" по уровню приведенных законченных прог-

рамм, демонстрирующих применение встроенных предикатов и

правил по каждой из затронутых в книге тем.

Если вы постоянно работаете с Турбо-Прологом, книга бу-

дет отнюдь не лишней, так как наряду с разбором предикатов

Турбо-Пролога она содержит и описание использования таких

средств структурного программирования, как диаграмма потоков

данных и структурная схема. Эти средства весьма полезны при

разработке программ обработки файлов, динамических баз дан-

ных и экспертных систем.

_Что включено в настоящую книгу ?

Данная книга состоит из двух частей. Первая часть,

включающая восемь глав, содержит основы языка и техники

программирования на нем. Для иллюстрации различных приемов

программирования в каждой главе приводятся небольшие прог-

раммы. Во второй части книги приведены проекты и конкретные

реализации на Турбо-Прологе программ по четырем основным

разделам искусственного интеллекта: экспертным системам, ба-

зам данных, общению с ЭВМ на естественном языке, а также иг-

рам и головоломкам. Каждая глава второй части завершается

большой законченной прикладной программой. Читатель увидит,

как можно постепенно наращивать программу, не забывая о ее

эффективности. В дополнение, на протяжении всего изложения

приводятся способствующие самообучению упражнения, стимули-

рующие самостоятельную работу с программами.

Глава 1, "Начало работы с Турбо-Прологом", содержит ин-

формацию об основных возможностях системы, а также исчерпы-

вающие указания по настройке пакета Турбо-Пролога версии 1.1

для систем, использующих винчестерские диски, и систем с

двумя гибкими дисками.

Глава 2, "Основные понятия Турбо-Пролога", содержит ло-

гические основы Турбо-Пролога. Такие фундаментальные понятия

как сопоставление, откат, инициализация и связывание помогут

вам понять как внутренние унификационные подпрограммы Тур-

бо-Пролога обрабатывают цели, которые Вы определили для

программы. Все эти понятия рассматриваются в данной главе.

Глава 3, "Основы программирования на Турбо-Прологе",

описывает структуру и синтаксис программ Турбо-Пролога. Для

стимуляции активного освоения материала в этой главе приво-

дится много коротких программ, демонстрирующих основные

приемы программирования. В довершение описываются два полез-

ных инструмента программирования, доменная и предикатная

структурные диаграммы.

Глава 4, "Повторение и рекурсия", посвящена основным

приемам выполнения итеративных задач. Два метода повтора -

Откат После Неудачи и Отсечение и Откат, а так же три рекур-

сивных метода - Отсечение и Неудача, Повтор Определенный

Пользователем и Рекурсивное правило общего вида - основные

темы этой главы.

Глава 5, "Использование списков", дает представление о

том, как надо создавать списки и выполнять над ними такие

операции, как поиск в списке нужного элемента, деление спис-

ка и слияние двух списков. Вновь, короткие программы приво-

дятся для лучшего понимания разбираемых концепций и техники

программирования.

Глава 6, "Использование строк", содержит описание набо-

ра символов, используемых в Турбо-Прологе, а также понятий

строки и операций над строками. Примеры программ демонстри-

руют расщепление и соединение строк, поиск символа или под-

строки внутри заданной строки, а также другие операции.

Глава 7, "Использование файлов", начинается с описания

возможных конфигураций устройств IBM PC. Далее обсуждаются

способы создания файлов, записи в них данных и считывания их

оттуда. Материал поясняется на конкретных примерах.

Глава 8, "Использование окон, графики и звука", содер-

жит описание превосходных средств Турбо-Пролога для органи-

зации окон. Примеры используются для демонстрации создания

множества окон и средств управления вводом/выводом из одного

окна в другое. Рассматриваются графические режимы и средства

их использования, а также программы, которые демонстрируют

создание линейных графов, столбиковых и круговых диаграмм.

Другие программы демонстрируют графику, связанную с положе-

нием курсора, которая также входит в состав средств Тур-

бо-Пролога, и является весьма популярной. Рассматриваются

звуковые предикаты Турбо-ПрологА, которые используются для

создания музыкальных фраз.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]