Всю историю человечество стремится переступить грань, отделяющую его от Бога, и научиться создавать новую жизнь из неодушевленной материи. Долгое время эти попытки не приносили успеха, но с развитием науки и техники эти стремления наконец стали обретать реальную форму. Одна из сложностей, стоящая на пути к успеху - создание полноценного разума, способного взаимодействовать с человеческим, и первые успехи в этой области стали появляться только к середине двадцатого века. Во многом это связано с появлением компьютеров, ведь лишь благодаря мощным вычислениям можно построить достаточно точную математическую модель работы человеческого мозга. В свою очередь, создание искусственного разума во многом связано с разработкой модели, которая позволит компьютеру понимать не только формальные компьютерные языки, но и естественные языки, на которых говорим мы с вами. Созданием подобных моделей занимается раздел компьютерных наук, называемый анализ естественных языков
И хотя успехи в этой области стали заметны публике лишь в начале 2010-х с появлением программ вроде Сири, на деле уже в шестидесятые годы прошлого века было разработано несколько систем, позволявших компьютерам распознавать человеческие фразы и даже пытаться осмысленно отвечать на них. Одна из самых известных - это программа ELIZA, разработанная в 1966 и пародировавшая стиль общения, распространенный среди психотерапевтов. Общаясь с ней, пользователь рассказывал о своих проблемах и получал в ответ более-менее осмысленные фразы:
Все мужчины одинаковые
ПОЧЕМУ
Они вечно чем-нибудь нас разражают
ВЫ МОЖЕТЕ ПРИВЕСТИ КОНКРЕТНЫЙ ПРИМЕР
Например, мой парень привел меня сюда
ВАШ ПАРЕНЬ ПРИВЕЛ ВАС СЮДА
Он говорит, что я часто пребываю в депрессии
Я СОЖАЛЕЮ, ЧТО ВЫ В ДЕПРЕСИИ
Это так. Я несчастлива
ВЫ ДУМАЕТЕ, ЧТО ПРИДЯ СЮДА, ВЫ ИЗБАВИТЕСЬ ОТ НЕСЧАСТИЙ
Будет точнее сказать, что мне нужна поддержка
ЧТО ДЛЯ ВАС ОЗНАЧАЕТ НУЖНА ПОДДЕРЖКА
Возможно, я научусь уживаться со своей мамой
РАССКАЖИТЕ МНЕ ПОПОДРОБНЕЕ О СВОЕЙ СЕМЬЕ
Как видим, по осмысленности ответов эта программа может дать фору некоторым комментаторам на Ютубе, и некоторые пользователи, пообщавшиеся с ELIZA, даже начинали верить в ее разумность
Тем интереснее, что в основе этой программы лежит довольно простой механизм, и в сущности, она просто отзеркаливает фразы собеседниками с помощью небольшого числа встроенных шаблонов
На этой картине изображена Элиза Дулитл, персонаж пьеcы Бернарда Шоу, в чью честь была названа программа ELIZA. По сюжету, она проходит долгий путь самосовршенствования, поднимаясь с лондонского дна до персоны из высшего общества
Принцип работы
Схематично, механизм, лежащий в основе ELIZA, выглядит так: скрипт принимает строку, введенную пользователем. Затем скрипт ищет ключевые слова, которые встречаются в словаре, а также определяет контекст, в котором употребляются эти слова. После этого он подбирает соотетствующуее правило, и трансформирует исходную строку в соответствии с ним
Для лучшего понимания рассмотрим этот механизм на примере. Представим, что с пользователем говорит иностранец, который понимает на слух только маленькое количество английских слов. Например, когда он слышит фразу I am very unhappy
, он может понять в ней только слова I
и am
. Однако, даже такого маленького набора слов достаточно, чтобы установить минимальный контекст фразы: очевидно, что есть некое суждение (я несчастлив, я счастлив, я толстый etc). Если прибавить к этому, что иностранец играет роль психотерапевта, можно установить, что человек говорит о своих проблемах. Поэтому, чтобы проявить сопереживание, иностранцу достаточно: 1) разложить исходную фразу на две части, первая из которых содержит ключевые слова, а вторая - все слова кроме них; 2) построить свою фразу из шаблона, в котором первая часть состоит из фразы How long have you been
, а во вторую подставляется исходная фраза без слов I am
Подобный принцип программа использует и при обработке более сложных фраз. Представим, что наш незадачливый иностранец слышит фразу It seems that you hate me
, в которой понимает только слова you и me. Чтобы ответить на это высказывание, он разбивает его на 4 части: 1) It seems that
, 2) you
, 3) hate
, 4) me
; и воспользоваться шаблоном, в котором он заменит you
на I
и me
на you
: What makes you think that I hate you
. Такой же шаблон можно использовать для множества похожих фраз, вроде I think that you lie me
или Why are you hate me?
. Более формально шаблон можно представить с помощью правила декомпозиции:
0 YOU 1 ME
где первый ноль - произвольное количество слов до слова you, а единица обозначает одно слово между you и me; и правила трансформации:
(WHAT MAKES YOU THINK I 3 YOU
где 3 - это третья часть исходной фразы (в нашем случае слово hate
)
Таким образом, для получения мало-мальски осмысленного ответа нам нужно создать набор ключевых слов, вроде you
, I
и т.д., и привязать к каждому из них соответствующие правила декомпозиции (то есть, разложения исходной фразы) и трансформации (то есть, создания ответа). При этом, с ключевым словом может быть связано несколько правил декомпозиции и трансформации. Например, пользователь может написать It seems that you lie
, и описанный выше шаблон уже не подойдет. В таком случае можно воспользоваться более широким правилом декомпозиции
0 YOU 0
Однако, перед нами стоит еще один важный вопрос: какое ключевое слово использовать. Расмотрим фразу I know everybody laughed at me
. Первое ключевое слово, попадающееся в ней - I
, стало быть мы должны воспользоваться одним из шаблонов, связанных с ним и построить фразу навроде You say you know everybody laughed at you
. Однако, если мы посмотрим внимательнее на фразу, то увидим, что в ней есть слово everybody
. Зачастую, когда люди используют это слово, на деле они имеют в виду конкретных людей. Поэтому, было бы логично выстроить ответ вокруг этого слова и уточнить, кого имеет в виду собеседник:
Для того, чтобы справиться с подобными спорными ситуациями, каждому из ключевых слов присваивается ранг, и чем он выше, тем больше приоритет слова. Слово everybody
несет большую смысловую нагрузку, чем местоимения, поэтому его ранг будет выше
Подводя итог сказанному, можно представить работу ELIZA следующим образом:
Почему психотерапевт?
Причиной, по которой ELIZA симулирует диалог с психотерапевтом, стало то, что такие разговоры возможны в ситуации, когда один из собеседников ничего не знает об окружающем мире. Одна из главных целей психотерапевта - разговорить пациента наводящими вопросами, чтобы он сам распутал клубок переживаний и нашел причину страданий. Поэтому, когда терапевт слышит "у меня проблемы с матерью", ему не обязательно знать, кто мать пациента, и даже смысл этого понятия. Что от него требуется - это предложить подробнее рассказать о своих проблемах с /фраза, идущая после ключевого слова проблемы/
Почему это важно?
С точки зрения компьютерных наук, ELIZA стала примером практического применения теории автоматов, смысл которой в том, чтобы представить работу программ в виде простого набора переходов между несколькими состояниями. Например, в разборе фразы I am very unhappy
с помощью ELIZA после обработки каждого слова программа переходит в одно из двух состояний: в первом начнется обработка следущего слова (если фраза совпадает с заданным шаблоном), во втором - закончит обработку. В конечном итоге, при помощи теории автоматов Стивен Клини создал популярный инструмент для работы с естественными языками - регулярные выражения
Однако, несмотря на прогрессивные идеи, лежащие в основе программы, ELIZA так и не удалось стать полноценным средством для диалога между компьютером и человеком. Главная проблема в том, что в отличие от литературного прототипа, ELIZA оказалась неспособна к самосовершенствованию и расширение словарного запаса можно было осуществить лишь вручную. Для преодоления этого несовершенства потребовалось разработать полноценные алгоритмы машинного обучения. Но это уже совсем другая история...
Вот оказывается как боты учили общаться) классная история, очень интересно!
Классно! )) Сейчас в распоряжении подобных программ миллиарды сообщений с форумов и мессенджеров, и пополнить словарный запас нетрудно. Жаль только программа не понимает смысла сказанного и не умеете генерировать новые факты.
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
ukrainian, vadbars, vasilisapor2, renat242, ladyzarulem, svinsent, gryph0n, tnam0rken, karusel1, osincevata, stranniksenya, yuriks2000, acidgarry, anomalywolf, bammbuss, kertar, nerengot, igrinov, bds1988, foxycat
Поэтому я тоже проголосовал за него!
Узнать подробности о сообществе можно тут:
Разрешите представиться - Кит Добрый
Правила
Инструкция по внесению Инвестиционного взноса
Вы тоже можете стать Инвестором и поддержать проект!!!
Если Вы хотите отказаться от поддержки Доброго Кита, то ответьте на этот комментарий командой "!нехочу"
мозги у девушки 21 года и 30 лет совершенно разные, кмк
все равно здорово.
Только я вот не понимаю, зачем нужна поддержка?
Все женщины говорят: мне нужна поддержка!зачем? Закинуть белье в стиралку тебе нужна поддержка? Начать бегать по утрам поддержка нужна? Что ты такого из ряда вон выходящего делаешь, что тебе нужна поддержка? организуешь революцию?
Ну,бред же.
Думаю, что словом "поддержка" неверно называют другое явление - принятие, социальное "поглаживание" и т.д. А это нужно всем. То есть женщине реально абсолютно не нужно, чтобы кто-то побежал и за нее что-то сделал, или тем более чтобы поддерживал ее, пока она белье в стиралку закидывает. Нужно, чтобы выслушали, не осуждали, сказали что-то доброе.
вооот. Эмпатию то есть.
@anima, там же ясно сказали:поддержка в том, чтоб научиться уживаться с мамой.)
Ну, в этом случае, видимо, нужна поддержка в борьбе с депрессией
да какая у нее депрессия...ха!