Нудная беседа время от времени перемежалась необычными вопросами, которые задавал бот, если в реплике собеседника мелькали ключевые слова, знакомые синтаксическому анализатору. Например, на жалобу «Отец меня ненавидит» Eliza, как истинный психотерапевт, задавала уточняющий вопрос: «Кто еще в семье вас ненавидит?» Понятно, что программа даже не пыталась анализировать смысловое содержание диалогов, ни о каких семантических алгоритмах речи не шло. Слова пользователя интерпретировались исключительно как набор символьных данных. Тем не менее Eliza оказала колоссальное влияние на будущее интерфейсных разработок, впервые продемонстрировав принципиальную возможность обработки естественного языка.
Спустя некоторое время алгоритм программы был задействован в некоторых компьютерных играх, а гораздо позже, в 2000 году, опять же с использованием Элизы, обнаружилась идеальная среда для работы чат-ботов: IM-сети. Началось все с того, что Кевин Фокс написал на Perl бота AOLiza, работающего по тому же алгоритму, что и детище Вейзенбаума, и предоставил ему возможность общаться через интернет-пейджер AIM. Опыт оказался успешным, в том смысле, что многие пользователи IM-сети, привыкшие к «ломаному языку» и случайным собеседникам, очень часто принимали AOLiza за человека и выискивали смысл даже в его самых корявых ответах. После того как Фокс рассказал о своем эксперименте и выложил в открытый доступ первые диалоги, история получила широкую огласку.
Отреагировало даже руководство AOL. Представитель AOL отнесся к разгуливающему по IM-сети чат-боту неодобрительно и заметил, что как только появятся жалобы от собеседников AOLiza, компания незамедлительно примет меры против роботов, подменяющих людей. Появились недовольные или нет, неизвестно, но вскоре Фокс зарегистрировал для своего бота другой аккаунт, а позже выпустил на онлайн-просторы и усовершенствованную версию программы. Его эксперимент тоже оказался достаточно значимым, и сейчас в любой IM-сети жаждет общения куча ботов, многие из которых созданы только для того, чтобы упоминать в разговоре заданный брэнд. Но об этом чуть позже.
Элизу и ее клонов постепенно стали считать наиболее вероятными претендентами на прохождение знаменитого теста Тьюринга, и сейчас порой кажется, что это испытание изначально было задумано для программ такого типа. Но на самом деле Алан Тьюринг впервые изложил идею в одной из статей еще в 1950 году, то есть за шестнадцать лет до появления Элизы. Напомню, что речь идет о тесте на «разумность» компьютера. Экзаменатор переписывается на естественном языке с двумя респондентами, один из которых машина, и старается распознать ее. Если ему это не удается — тест пройден. Ответы должны приходить через фиксированные промежутки времени. Сначала это ограничение было наложено потому, что человек отвечал быстрее, с нынешними компьютерами — наоборот. В основе идеи лежит популярная когда-то салонная игра, в ходе которой аналогичным образом нужно было угадать пол игроков-респондентов.
Кстати, когда при регистрации на том или ином веб-ресурсе нас просят ввести последовательность символов, изображенную на прилагаемой картинке, зачастую в искаженном виде, — это тоже тест Тьюринга, а вернее, CAPTCHA. Completely Automated Public Turing test to tell Computers and Humans Apart — то есть полностью автоматизированный публичный тест Тьюринга для разделения людей и компьютеров. Тест обычно используется, дабы предотвратить автоматическую регистрацию для организации массовых рассылок, скачивания файлов и т. п. Термин появился семь лет назад и является торговой маркой Университета Карнеги-Меллона. Помимо графического, самого распространенного варианта CAPTCHA, существуют другие задачи (например, по распознаванию речи), предназначенные для людей с нарушениями зрения.
Существует и несколько программных решений, позволяющих распознать отдельные реализации CAPTCHA или задействовать человеческий ресурс. Второй случай — «метод леммингов» — заключается в следующем. Боты обращаются за помощью к сайтам с высокой посещаемостью, например с порноконтентом. Программа скачивает картинку с символами и демонстрирует ее пользователю, прося ввести увиденный код. Человек получает доступ к ресурсу, а робот узнает искомую последовательность символов.
Пациент на приеме
В 1972 году психиатр Кеннет Колбай написал еще одного бота — ответ Eliza. Если оригинал копировал поведение психотерапевта, то разработка Колбая — Parry — имитировала стиль общения параноидального шизофреника. Несколько раз Eliza и Parry давали пообщаться друг с другом и один раз даже соединили по ARPAnet (тому самому, который в итоге превратился в Интернет). С тех пор различных ботов «стравливали» неоднократно, и это, пожалуй, даже превратилось в одно из любимых развлечений программистов, создающих подобный софт.
Штампование ботов
Трах-тибидох
Поклонники отечественной кинокомедии «Хоттабыч» разработали на JavaScript чат-бота, одного из героев картины. Кису можно закачать себе на компьютер, просто сохранив веб-страницу. Правда, в этом случае она неминуемо устареет, так как онлайн-вариант постоянно самообучается.
Тьюринг ожидал, что компьютер пройдет тест к 2000 году, так как будет обладать памятью в 1 млрд. бит (119,2 Мбайт) и в процессе пятиминутного испытания сможет обмануть треть судей. Как минимум со сроками он ошибся. Но попытки сдать тест не прекращаются. В частности, каждый год проводится конкурс Лебнера, в рамках которого испытывают наиболее совершенных чат-ботов. Первое и второе места в нем не выигрывались еще ни разу. В первом случае машине-собеседнику нужно убедительно доказать, что она ничем не хуже человека, беседуя с судьями в режиме реального времени по видеосвязи. Во втором — постараться сделать это хотя бы через текстовое общение. Так что денежными премиями в $2000 поощряют просто удачные разработки.
Несмотря на то что в этом соревновании каждый год участвует достаточно много участников, «фаворитов» всего два: Jabberwacky, который завоевал бронзу в 2005 году, и A.L.I.C.E., признававшаяся лучшей три раза — в 2000, 2001 и 2004 году. Название программы — аббревиатура, которая расшифровывается как Artificial Linguistic Internet Computer Entity (можно перевести как «искусственная лингвистическая компьютерная интернет-сущность»).
Ричард Веллес начал работу над программой в 1995 году, а ее совершенствованием (или хотя бы клонированием) многие программисты занимаются по сей день. A.L.I.C.E. была в некотором роде уникальной разработкой. И не только потому, что ее общение многие эксперты считают более всего напоминающим человеческое. Автор опубликовал спецификации AIML — подвида XML, который использовался при создании программы. Язык распространяется под лицензией GNU GPL. Это привлекло людей и позволило создать вокруг проекта целое сообщество программистов, написавших интерпретаторы AIML на всех популярных языках программирования. Наиболее популярен интерпретатор Program D на Java. В результате подавляющее большинство сегодняшних чат-ботов используют базы знаний, разработанные на AIML. При этом многие из них способны к самообучению.
Кстати, в Рунете узнать чат-бота с такими возможностями можно по нецензурным выражениям, которыми он перемежает речь. И по частоте ненормативной лексики у виртуального собеседника можно судить, как давно он общается с отечественной IM-аудиторией. Хотя это общая проблема. Интернет-пользователи охотно учат программы плохому. Так, Уэс Моудс, автор бота «Мимика», четыре года назад даже призвал пользователей отказаться от глупых и нецензурных высказываний.