Читать «Искусственный разум» онлайн - страница 33

Алексей Григорьевич Чачко

(СОСТАВИМ УРАВНЕНИЯ) (РАВЕН X (ЭНН/ЧЕЛОВЕК) ВОЗРАСТ) (РАВЕН 24 (МЭРИ/ЧЕЛОВЕК) ВОЗРАСТ) (РАВЕН ((ЭНН/ЧЕЛОВЕК) ВОЗРАСТ) ((МЭРИ/ЧЕЛОВЕК) ВОЗРАСТ) МИНУС Y)

(РАВЕН ((МЭРИ/ЧЕЛОВЕК) ВОЗРАСТ) УМНОЖИТЬ НА 2(( (ЭНН/ЧЕЛОВЕК) ВОЗРАСТ) МИНУС Y))

(РЕЗУЛЬТАТ) (ЭНН 18 ЛЕТ)

Итак, машина нашла возраст Энн. Что же здесь удивительного? Задача, которая стояла перед ней, была несложной, детской задачей, ее без труда решит третьеклассник. А ЭВМ способна разрешить гораздо более серьезные проблемы.

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

Условия задачи про Энн и Мэри изложены непривычно для машины, неформально, свободно, на естественном языке, да еще с примесью загадочности. Каждый из нас, людей, призадумается, прежде чем расставить по местам все эти "сейчас" и "было..., когда", "вдвое больше" и "столько..., сколько", прежде чем уловить суть дела в хороводе имен: Мэри... Энн... Мэри... Энн...

Машина, снабженная программой Д. Боброва, понимает естественный язык и умеет распутать хитросплетения в условиях задачи. Присмотримся к тому, как она это делает.

Прежде всего ЭВМ заменяет порядковые числительные количественными, то есть слова числами. В нашей задаче потребовалась одна такая замена: повествовательное "вдвое" уступило место арифметическому "в 2 раза". Легко понять, как это произошло. В памяти ЭВМ хранится список замен: вдвое -> в 2 раза, втрое -> в 3 раза, пятикратно -> в 5 раз, удвоить -> увеличить в 2 раза и т. д. Машина просто прошлась по списку замен, хранящемуся в ее памяти, и обнаружила подходящую замену.

Второй этап понимания условий задачи много труднее первого. "Уточним смыслы слов" - отважно предложила ЭВМ. А как она их собирается уточнять?

Опираясь на шаблоны. Текст условий разных арифметических задач обязательно содержит одинаковые, стандартные, неизменные от задачки к задачке словосочетания. Вот пример такого словосочетания-шаблона: "в О раза (раз) ▫, чем". Претендентами на место кружка могут быть в шаблоне числа, а на место квадратика - некоторые слова: "больше" или "меньше", "быстрее" или "медленнее", "чаще" или "реже", "легче" или "тяжелее". Мы легко узнаем наш шаблон в словосочетаниях: "встречался с Леной в 3 раза реже, чем хотелось бы" и "поезда ходят в 1,7 раза медленнее, чем в Японии". Он же, этот шаблон, таится в условиях бобровской задачи: "Мэри в 2 раза больше лет, чем было Энн..."

ЭВМ ничего не знает о шаблоне. Она просматривает текст условий задачи слово за словом, слева направо. Все слова ей чужие и непонятные до тех пор, пока не обнаруживается сравнительная конструкция.

Но вот шаблон найден, и забрезжил свет в непроглядной тьме! Машина тут же принимается искать, что с чем сравнивается, выуживает из текста задачи объекты сравнения; первый из них должен находиться в тексте где-то слева от шаблона, а второй - справа от шаблона.

В нашем случае шаблон таков: "в два раза больше лет, чем". Ближайшее к нему левое слово в тексте "Мэри". По списку объектов, помещенному заботливым Д. Бобровым в память машины, ЭВМ устанавливает, что "Мэри" подходящий претендент, что "Мэри" - имя человека.