Как только полученный ответ будет передан системе, переменной degree присваивается значение, а в списке переменных для нее проставляется признак инициализации. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Как только полученный ответ будет передан системе, переменной degree присваивается значение, а в списке переменных для нее проставляется признак инициализации.



Пусть посетитель ответил на вопрос “ДА”, тогда правило

10 ЕСЛИ DEGREE = НЕТ, ТО POSITION=НЕТ

из-за противоречия в условии исключается, а соответствующий ему логический вывод удаляется из стека. В поисках нового правила с переменной логического вывода POSITION просмотр списка логических выводов продолжается. Следующим система выбирает правило 30

30 ЕСЛИ DEGREE = ДА И DISCOVERY = ДА, ТО POSITION = НАУЧНЫЙ СОТРУДНИК

и помещает его в стек. Теперь система попытается присвоить значения всем переменным условия, входящим в правило 30.

Правило 10 ЕСЛИ DEGREE=НЕТ, ТО POSITION = НЕТ Правило 20 ЕСЛИ DEGREE ДА, TO QUALIFY = ДА Правило 30 ЕСЛИ DEGREE = ДА И, DISCOVERY = ДА ТО POSITION = НАУЧНЫЙ СОТРУДНИК Правило 40 ЕСЛИ QUALIFY = ДА И, GRADE < 3.5 И EXPERIENCE = 2 ТО POSITION= ИНЖЕНЕР ПО ЭКСПЛУАТАЦИИ Правило 50 ЕСЛИ QUALIFY = ДА И GRADE < 3.5 И EXPERIENCE = 2 ТО POSITION = НЕТ Правило 60 ЕСЛИ QUALIFY = ДА И GRADE >= 3.5 ТО POSITION = ИНЖЕНЕР КОНСТРУКТОР
 
DEGREE
DISCOVERY
EXPERIENCE
GRADE

 

  Значение
I ДА
NI  
NI  
NI  

 

______________ Список переменных    
———————————————— База знаний  

Рис.3 Скорректированный список переменных

Второй в списке переменных условия для правила 30 стоит переменная DISCOVERY. В списке переменных условия отмечено, что переменной DISCOVERY значение еще не присвоено.а так как DISCOVERY не входит в переменные логического вывода, система опять запросит информацию:

Посетитель сделал важное открытие?

Предположим, система получит ответ “Нет”, тогда список переменных будет скорректирован. Поскольку первые две переменные уже проинициализированы, номер условия в стеке будет увеличен до 3. В правиле 30 третьей переменной условия нет, и, значит, можно приступить к его анализу. Но второе условие правила не выполняется, и, следовательно, логический вывод опять удаляется из стека. Поиск правила с переменной логического вывода POSITION будет продолжен. Следующим система выбирает правило 40 и помещает его в стек. Просмотрев условия правила и список переменных, система обнаруживает, что переменной QUALIFY значение еще не присвоено и что, кроме того, эта переменная есть в списке логического вывода правила 20. Система заносит в стек новый элемент. Правило 20 содержит только одну переменную условия - DEGREE и его можно выполнить, так как переменная DEGREE уже проинициализирована (DEGREE = ДА). Согласно правилу 20 переменной QUALIFY присваивается значение ДА (QUALIFY" ДА), и отработанный логический вывод удаляется из стека. Система вернется к правилу 40, увеличит на единицу номер условия и приступит к работе с переменной GRADE. Переменной GRADE нет в списке выводов, и значение ей еще не присвоено. Система задаст новый вопрос: Каков был средний балл посетителя в учебном заведении?

Ответ посетителя, скажем 3,0, и задает значение переменной GRADE.

Переменной EXPERIENCE нет в списке логических выводов, и она не проинициализирована, поэтому система опять спросит:

Сколько лет посетитель работал по специальности?

Пусть системе передан ответ посетителя: 4. Тогда переменной EXPERIENCE присваивается значение 4, признак ее инициализации изменяется на I, а номер условия в стеке продвигается до 4. В правиле 40 переменных условия больше нет, и, значит, можно приступить к проверке условий. Все условия правила

40 ЕСЛИ QUALIFY = ДА И GRADE= 3.0 И ЕХР = 2

истинны, так как

QUALIFY=ДА

GRADE=3.0

EXPERIENCE=2

и в соответствии с частью ТО

ТО POSH ION = ИНЖЕНЕР ПО ЭКСПЛУАТАЦИИ

переменной POSITION присваивается значение ИНЖЕНЕР ПО ЭКСПЛУАТАЦИИ. Цель достигнута, посетителю будет предложена должность в отделе эксплуатации оборудования.

Система, реализующая обратную цепочку рассуждений, должна выполнять следующие шаги:

1. Определить переменную логического вывода.

2. В списке логических выводов искать первое вхождение этой переменной. Если переменная найдена, в стек логических выводов поместить номер соответствующего правила и установить номер условия равным 1. Если переменная не найдена, сообщить пользователю, что ответ найти невозможно.

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

4. Если в списке переменных указано, что какой-либо переменной условия не присвоено значение и ее нет среди переменных логического вывода (ее нет в списке логических выводов), запросить ее значение у пользователя.

5. Если какая-либо переменная условия входит в переменные логического вывода, поместить в стек номер правила, в логический вывод которого она входит, и вернуться к шагу 3.

6. Если из правила нельзя определить значение переменной, удалить соответствующий ему элемент из стека и в списке логических выводов продолжить поиск правила с этой переменной логического вывода.

7. Если такое правило найдено, перейти к шагу 3.

8. Если переменная не найдена ни в одном из оставшихся правил в логическом выводе, правило для предыдущего вывода не верно. Если предыдущего вывода не существует, сообщить пользователю, что ответ получить невозможно. Если предыдущий вывод существует, вернуться к шагу 6.

9. Определить значение переменной из правила, расположенного в начале стека; правило из стека удалить. Если есть еще переменные логического вывода, увеличить значение номера условия и для проверки оставшихся переменных вернуться к шагу 3. Если больше нет переменных логического вывода, сообщить пользователю окончательный вывод.

 

 

Лекция по предмету «Интеллектуальные системы»

ОБРАБОТКА ЕСТЕСТВЕННОГО ЯЗЫКА

Общение человека и компьютера - это задача, над которой работают множество исследователей. Конечная цель (до которой еще очень далеко) заключается в том, чтобы пользователи могли “разговаривать” с компьютером на естественном языке, например русском, и компьютер отвечал им на том же языке. Можно надеяться, что когда-нибудь в простой беседе люди будут объяснять компьютеру задачу и он сможет ответить им.

Может показаться, что это просто, но только потому, что мы с детства привыкли разговаривать и слышать человеческую речь и воспринимаем как само собой разумеющееся большинство сложных свойств языка. Компьютеры умны ровно настолько, насколько такими их сделали люди: поскольку сами по себе они не умеют “думать”, необходимо дать им очень точные инструкции о том, какие действия они должны выполнять вплоть до мельчайших шагов. Человек рождается “запрограммированным” на изучение языка; для него половина дела уже сделана. Чтобы компьютер понимал язык, нужно не только разбить язык на его основные элементы и ввести эту информацию в компьютер, но сначала надо разработать компьютеры и программы, которые смогут воспринимать эту информацию. Для того чтобы общение между человеком и компьютером стало возможным, нужно создать систему обработки естественного языка.

Давайте посмотрим, насколько трудна эта задача. Представим себе, что есть робот, обладающий искусственным интеллектом, который умеет чинить автомобили.

Ему можно дать одну из следующих команд:

1. Почини машину около дома со спущенной покрышкой.

2. Почини машину около дома с красной занавеской.

Хотя первое предложение интерпретируется двояко, каждый может уловить его смысл - все знают, что у дома не может быть спущенной покрышки. Человек замечает неточность, но ещё важнее то, что он её в уме исправляет; ведь очевидно - спущенная покрышка у машины, а не у дома. Роботу нужно знать нечто большее, чем только значения слов и их связь друг с другом, иначе ему придется искать дом со спущенной покрышкой. Так как оба предложения имеют одинаковую структуру, робот должен знать грамматику, а также уметь соотносить описания и объекты. Важно сознавать, что правила человеческого языка имеют смысл только для людей, а роботу, чтобы понимать, о чем мы говорим, необходимы специальные правила.

Искусственный интеллект, которым обладает наш робот, должен уметь анализировать предложения в их связи с другими предложениями. Возьмём для примера такие два предложения:

1. Джон пьет молоко.

2. Затем он надевает пальто.

Слово “он” во втором предложении относится к слову “Джон” в первом предложении. Без первого предложения второе не имело бы смысла. Все естественные языки называются контекстуальными языками. Иначе говоря, чтобы полностью понять второе предложение, необходимо знать первое, а это и есть контекстуальная зависимость. Языки, в которых интерпретация предложения может быть выполнена без знания других предложений, называются контекстуально независимыми, т.е. безразличными к последовательности событий и действий.

Для того чтобы заставить компьютер понимать человеческую речь, необходимо построить анализатор естественного языка. Основными функциями анализа языка являются:

1. Лексический анализ (анализ слов).

2. Синтаксический анализ (анализ порядка слов в предложении с учётом правил грамматики).

3. Семантический анализ (анализ значения предложения самого по себе и в его связи с другими предложениями).

Лексический анализ

Деление предложения на слова с использованием знаков препинания (при написании) или пауз (в разговоре) называется лексическим анализом. Кроме того, в составе слов можно выделить корни, приставки и окончания. Например, очень простое слово “дорога” можно последовательно разделить на:

дорога (слово)

дорог (корень)

а (окончание).

Слово “предлог” состоит из:

пред (приставка)

лог (корень).

Набор слов можно взять из словаря, но объяснить компьютеру их смысл в общем контексте - более сложная задача.

Синтаксический анализ

Для того чтобы научить компьютер воспринимать человеческий язык, необходимо прежде всего научить его выполнять разбор предложения. Надо перевести правила грамматики и синтаксиса в форму, которую компьютер мог бы понять.

Обычно предложение (П) состоит из группы существительного (ГС) и группы глагола (ГГ), что можно представить как:

П —> ГС,ГГ

Группа существительного может быть разбита на определение (например, прилагательное, притяжательное местоимение и т.д.) и существительное:

ГС — > 0,С

Группу глагола можно разбить на глагол, за которым следует дополнение, выраженное существительным (т.е. другая группа существительного):

ГГ —>Г,ГС

Группа существительного может быть представлена единственным членом:

ГС —>С

Графически синтаксическая структура предложения может быть представлена в виде “дерева”. Например, предложение: “Старый дровосек рубит деревья” имеет структуру, показанную на рис.1. Предложение разбивается на слова, а слова классифицируются по типу. Слово “старый” - это определение (О), выраженное прилагательным, “дровосек” - существительное (С), “рубит” - глагол (Г) и “деревья” - существительное (С).

 

Семантический анализ

Разбив предложение на составные части, компьютер проводит его семантический анализ, т.е. пытается понять его смысл. В системах искусственного интеллекта применяется некоторая совокупность правил, позволяющая компьютеру понять смысл предложения:

О С Г С

Старый дровосек рубит деревья

Для интерпретации предложения в базе знаний семантического анализатора должен быть следующий набор правил.

Правило 1: ЕСЛИ определение стоит на первом месте и за ним идет существительное, ТО существительное является подлежащим.

Правило 2: ЕСЛИ за подлежащим идет глагол, ТО этот глагол является сказуемым и поясняет, что делает подлежащее.

Правило 3: ЕСЛИ за подлежащим идет сказуемое, а за ним следует существительное, ТО это существительное является дополнением.

Правило 4: ЕСЛИ предложение имеет следующий порядок слов: подлежащее глагол, дополнение, ТО вся фраза говорит о том, что подлежащее делает (действие, выраженное сказуемым) по отношению к дополнению.

Рис. 1. Синтаксическое дерево предложения

Рис.2. Процессор естественного языка

Поясним сказанное на примере. Предположим, что система искусственного интеллекта должна решить следующую задачу: узнать, что делает дровосек и что является объектом его действия. Семантический анализатор обращается к правилу 1, с помощью которого определяет, что слово “дровосек” - это подлежащее. С помощью правила 2 определяется, что слово “рубит” - это сказуемое. Объект действия, выраженный словом “дерево”, устанавливается с помощью правил 3 и 4. Данный пример показывает, как процессор естественного языка обрабатывает или “понимает” предложение, используя лексические, синтаксические и семантические правила своей базы знаний.
Процессор естественного языка может служить промежуточным звеном между пользователем и другой системой искусственного интеллекта, позволяя человеку устно общаться с компьютером (см. рис..2). По существу, обработка естественного языка может освободить пользователя компьютера от необходимости изучать сложные языки программирования. Если удастся создать программы, которые позволят компьютеру и пользователю общаться на естественном языке, то будет сделан крупнейший шаг на пути создания подлинно “интеллектуального” компьютера.

 

Лекция 7



Поделиться:


Последнее изменение этой страницы: 2016-08-16; просмотров: 384; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.116.90.141 (0.02 с.)