Читаем ГЕДЕЛЬ, ЭШЕР, БАХ: эта бесконечная гирлянда полностью

Сначала я был озабочен тем, как сделать грамматику гибкой и рекурсивной, чтобы не возникало впечатления, что программа просто механически подставляет слова в пробелы некоего трафарета. Примерно тогда же я наткнулся на статью Виктора Ингве в «Scientific American», в которой он описывал простую, но гибкую грамматику, способную порождать большое количество разнообразных предложений того типа, который можно найти в некоторых детских книгах. Я модифицировал некоторые идеи этой статьи и у меня получился набор процедур, составивших грамматику типа Схемы Рекурсивных Переходов, описанной в главе V. В этой грамматике выбор слов в предложении определялся процессом, который сначала выбирал наугад общую структуру предложения; постепенно процесс принятия решений распространялся на более низкие уровни предложения, пока не достигался уровень слов и букв. Многое должно было делаться ниже уровня слов, как например, спряжение глаголов и постановка слов во множественное число. Неправильные глаголы и существительные сначала формировались по общим правилам и затем, если результат совпадал с записанным в специальной таблице, производилась замена на нужную — нерегулярную — форму. Как только каждое слово достигало конечной формы, оно печаталось. Программа напоминала знаменитую обезьяну за пишущей машинкой, но оперировала при этом сразу на нескольких лингвистических уровнях, а не только на уровне букв.

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

Карандаш-самец, который должен неуклюже смеяться, будет квакать. Не должна ли программа всегда хрустеть девочкой в памяти? Десятичный жук, который неуклюже плюется, может крутиться. Кекс, принимающий неожиданного человека во внимание, может всегда уронить карту.

Программа должна работать весело.

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

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

Счастливая девочка, которая всегда должна квакать, никогда не будет квакать наверняка.

Игра квакает. Профессор напишет маринованный огурчик. Жук крутится.

Человек берет соскальзывающую коробку.

Впечатление от всего этого получается сюрреалистическое; иногда отрывки текста напоминают хайку, как, например, последний пример четырех коротких предложений. Сначала все это кажется забавным и милым, но вскоре надоедает. Прочитав несколько страниц компьютерной продукции, вы можете заметить границы того пространства, в котором оперирует программа, после чего случайные точки в пределах этого пространства — даже если каждая из них и выглядит «новой» — уже вас не удивят. Мне кажется, что это — общий принцип: предмет надоедает вам не тогда, когда вы исчерпали репертуар его поведения, но тогда, когда вы поняли, где находятся границы, внутри которых это поведение может варьироваться. Пространство поведения человека достаточно сложно, чтобы постоянно удивлять других людей; однако в отношении моей программы это оказалось не так. Я понял, что моя цель — производство действительно смешных предложений — требует от программы гораздо большей тонкости. Но что, в данном случае, означает «тонкость»? Ясно было одно — случайные комбинации слов этой тонкостью не обладали. Необходимо было сделать так, чтобы слова использовались в соответствии с реальностью. Именно тогда я начал задумываться о представлении знаний.

От СРП до УСП

Идея, которую я принял на вооружение, состояла в том, чтобы классифицировать каждое слово — существительное, глагол, предлог и т. д. — согласно разным «семантическим измерениям». Таким образом, каждое слово становилось членом различных классов; кроме этого, существовали также суперклассы — классы классов (что напоминает замечание Улама). В принципе, подобная классификация может иметь любое количество уровней, но я решил остановиться на двух. Теперь в любой момент выбор слов был семантически ограничен, поскольку требовалось, чтобы части составляемой фразы согласовались между собой. Скажем, некоторые действия могли быть совершены только одушевленными объектами; только некоторые абстрактные понятия могли влиять на события и так далее. Было нелегко решить, какие категории должны были быть установлены и должна ли каждая конкретная категория быть классом или суперклассом. Каждое слово получило «семантические ярлыки» в нескольких различных категориях. Многие часто встречающиеся предлоги, например, входили сразу в несколько классов, в соответствии с их разными значениями. Теперь продукция машины стала гораздо более осмысленной — и поэтому забавной уже в другом смысле.

Небольшой тест Тюринга

Перейти на страницу:

Похожие книги

"Теорія та методика навчання математики, фізики, інформатики. Том-1"
"Теорія та методика навчання математики, фізики, інформатики. Том-1"

"Теорія та методика навчання математики, фізики, інформатики. Том-1" Теорія та методика навчання математики, фізики, інформатики: Збірник наукових праць: В 3-х томах. – Кривий Ріг: Видавничий відділ НацМетАУ, 2002. – Т. 1: Теорія та мето-дика навчання математики. – 444 с. Збірник містить статті з різних аспектів дидактики мате-матики і проблем її викладання в вузі та школі. Значну увагу приділено проблемам розвитку методичних систем навчання ма-тематики та застосування засобів нових інформаційних техно-логій навчання математики у шкільній та вузівській практиці. Для студентів вищих навчальних закладів, аспірантів, наукових та педагогічних працівників.

Неизвестен Автор

Математика / Физика / Руководства / Прочая научная литература / Прочая справочная литература