Ещё один имитатор ИИ

Здесь находятся темы форума, утратившие актуальность

Модератор: Администраторы

Ещё один имитатор ИИ

Сообщение Logos » Ср янв 25, 2006 10:45:38

Извините если такая идея уже излагалась. Она не претендует ни на что более серьезное чем занимательная игрушка, поэтому сильно не пинать :wink:

Суть игрушки заключается в адекватном поддержании разговора с живым собеседником. Беру базу текстов в электронном формате. Чем больше её объём, тем лучше, у меня положительные результаты начинались уже с 2 - 3Гб архивированных текстов художественного содержания. Далее беру фразу, которую я хотел бы задать "ИИ", чтобы он мне на неё ответил, например, "как дела?", "Чем вчера занимался?", "у меня плохое настроение", "мой друг оказался сволочью", "мне нравится клубника со сливками" "ты веришь в Бога?" и т.п. и сканирую вышеупомянутую базу winrar'ом ( :oops: ) на наличие таковой фразы. В 90% случаев таковая находится, как правило в диалогах, и обычно, следующая реплика после найденного с фразой предложения оказывается адекватным ответом. Очень хотел бы создать цельную программу, способную вычленять в диалогах реплики, осуществлять поиск по заданной фразе, находить фразы которые имеют не полное совпадение с заданной и отвечать той фразой, которая наиболее совпадает с заданной. Но... ни одного языка толком не знаю :( Уверен, написать её не очень сложно. Вопрос программистам: сколько запросит средестатистический программист за написание таковой?
Аватара пользователя
Logos
Заинтересованный
 
Сообщения: 29
Зарегистрирован: Пн янв 23, 2006 17:10:05
Откуда: Донецк

1

Сообщение Dimmy » Ср янв 25, 2006 11:52:23

Идея обычная.
Цена - от 200 до 600.
Но: не затрудняйтесь! Вы пробовали это же поискать? Это известный способов общения ботов. И есть много ботов, работающих аналогично. И я уверен что вы найдете то что вам надо. Есть одно но: если не нашли в яндексе - ищите в гугле, так как в основном такие боты - не русские. :wink:





- - -
С уважением, Dimmy.
Vivere est cogitare!
"Во время работы в одиночестве человек в идеале находится в состоянии, которое психологи называют потоком."
Осознать необъятное, объять неосознанное (с) Dimmy, 2008
Делать возможным то, что другие считают невероятным (с) Dimmy, 2009
"Когда люди предпочитают верить, а не знать - наступает время шарлатанов." Академик Эдуард Кругляков.
Главная задача ИИ — не выиграть у игрока, а красиво ему отдаться. (с) Тимур Бухараев, Nival
«Никогда не ошибается тот, кто ничего не делает» Т. Рузвельт

...хожу сам по себе :)
ИзображениеИзображение
Dimmy
Эксперт ИИ
 
Сообщения: 555
Зарегистрирован: Пт янв 14, 2005 17:11:17
Откуда: РнД

Сообщение Logos » Ср янв 25, 2006 12:37:13

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

Спасибо, попробую поискать в гугле по иностранщине...
Аватара пользователя
Logos
Заинтересованный
 
Сообщения: 29
Зарегистрирован: Пн янв 23, 2006 17:10:05
Откуда: Донецк

Сообщение programania » Ср янв 25, 2006 21:14:01

>сканирую вышеупомянутую базу winrar'ом

и сколько времени это занимает для 2-3гб архивированных текстов?

>Она не претендует ни на что более серьезное чем занимательная игрушка,

Она могла бы служить справочной программой отвечая на произвольные вопросы
по тексту не хуже чем то что в правом верхнем углу Word "Введите вопрос"

я делал подобный поиск:
из вопроса делал ответ и искал самое похожее, если интересно опишу подробнее
однако 2-3гб архивированных текстов это 10гб не архивированных
чтобы искать в нем за секунды нужно создать индексный файл
примерно такого же обьема а если важна последовательность слов то и больше
это так долго что кроме вас никто эту программу не будет использовать
потому что не дождется
Предложите как ускорить и я попытаюсь на том что есть у меня 600мб rar
Возможно сначала можно выделить диалоги
возможно это удобно делать с помощью регулярных выражений
подробнее о них http://programania.com/rex.htm
ими можно например преобразовать вопрос в ответ и т.п.
попробуйте написать такой шаблон или трафарет
чтобы охватить все возможные диалоги какие у вас есть
и я сделаю программу для delphi5 для выбора по нему но
не представляю сколько она будет работать даже для 600мб rar

>Dimmy
>Это известный способов общения ботов. И есть много ботов, работающих аналогично.

Те что я видел надо долго вручную учить и все равно ответы слишком однообразны
а использование готовых текстов может облегчить и разнообразить
programania
Редкий гость
 
Сообщения: 7
Зарегистрирован: Вс янв 15, 2006 22:32:18
Откуда: Тверь

Сообщение Михайло » Чт янв 26, 2006 5:26:57

Проще заготовить базу готовых фраз, если нужен имитатор ИИ.

Если же нужен полноценный ИИ, то нужно брать, действительно, банк художественной литературы.
Я специалист по неопределенности!
Аватара пользователя
Михайло
Полноправный участник
 
Сообщения: 904
Зарегистрирован: Пт окт 07, 2005 15:20:05
Откуда: Нижний Тагил

Сообщение Logos » Чт янв 26, 2006 15:12:54

programania писал(а):и сколько времени это занимает для 2-3гб архивированных текстов?


Около часа (Pent 2.4, 512, Sata Baracuda)

programania писал(а):Предложите как ускорить


1. Программа может подготовить из обычных архивов литературы свою собственную базу, по следующему шаблону: ищем текст начинающийся с "-" и заканчивающийся на " ./.../?/?!/!!!" , копируем его и добавляем в подготавливаемую базу. Таким же образом ищем следующую фразу после найденной и добавляем в базу. Далее делаем небольшой анализатор который "видит" где заканчивается диалог и начинается повествование. Его задачей будет ставить разделители в подготавливаемой базе чтобы ИИ не отвечал начальной репликой следующего диалога на последнюю реплику из предидущего. Таким образом подготовленная база будет намного короче сырых архивированных текстов -> скорость поиска намного повысится.
(Этот пункт подходит только для диалогового варианта программы)

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

programania, спасибо большое за ваш оптимистический подход. Сейчас внимательно изучаю ваш Синтаксис Регулярных Выражений.
Нечто подобное изучают лингвисты и психологи, называют фреймами. IMHO В этом есть большой смысл и толк.

Тупой Михайло писал(а):Проще заготовить базу готовых фраз, если нужен имитатор ИИ

Мы как раз об этом и говорим. Если вы считаете, что проще вручную набрать на клавиатуре 30 - 50 миллионов готовых фраз - ваше право.
Аватара пользователя
Logos
Заинтересованный
 
Сообщения: 29
Зарегистрирован: Пн янв 23, 2006 17:10:05
Откуда: Донецк

Сообщение programania » Чт янв 26, 2006 21:32:48

>Logos
>ищем текст начинающийся с "-" и заканчивающийся на " ./.../?/?!/!!!"

так найдем много лишнего после переносов и разделителей слов

>скорость поиска намного повысится.

Это время индексации уменьшится, а скорость поиска должна быть 0-5 секунд
и она мало зависит от размера индексированных данных

>programania, спасибо большое за ваш оптимистический подход.

подход у меня как раз пессимистичный однако интересно

>Сейчас внимательно изучаю ваш Синтаксис Регулярных Выражений.

Это не мой синтаксис.
Регулярные Выражения возможны во всех языках с незначительными отличиями
и широко используются при обработке текстов
например в моем броузере можно выбрать на сервере
только русский текст с нерусскими включениями по шаблону
/(([А-я][А-яA-Za-z0-9\.,\-!\?\%\s]*){1,16})/
тогда эта страница займет не 60 а 10 кб при той же информативности

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

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

Для изучения регов сделал программу для delphi5,6,7
http://programania.com/fi.zip 40 кб
там можно указать
путь к текстовым файлам, их маску например *.txt,
регулярное выражение, нажать "Ищи" и она будет искать
потом можно посмотреть что и где нашла нажав "покажи"
например:
" +- +[А-я][^\r\n\.\-!]+"
кавычки убрать
ищет текст, начинающийся с русской буквы после - с несколькими пробелами,
содержащий любые символы кроме конца строки .-!
53мб 88 текстов за 28 минут 241000 фраз c2.8ггц
или
" +- +(Что|Где|Когда|Какой|Как) [^\r\n\.\-!]+"
2 мин 7200 фраз

Советую посмотреть этот результат чтоб думать как его использовать
возможно к нему нужно применить еше несколько типовых регов
с вариантами как в примере выше, их же применить к заданному вопросу,
выбрать те которые одновременно сравнились с вопросом и с базой текстов
и ответ формировать подставляя текущие варианты в шаблон ответа
связанный со сравнившимся регом.
programania
Редкий гость
 
Сообщения: 7
Зарегистрирован: Вс янв 15, 2006 22:32:18
Откуда: Тверь

Сообщение Logos » Вт фев 21, 2006 12:28:13

programania писал(а):так найдем много лишнего после переносов и разделителей слов

Это мелочи, достаточно условия что верному "-" должны предшествовать "./.enter"

programania писал(а):Это время индексации уменьшится, а скорость поиска должна быть 0-5 секунд


С таким огромным объемом сложно предложить как сократить до 0-5 сек.
Есть вариант расположить все фразы в алфавитном порядке с сохранением привязок к диалогам из которых они были отсортированы, тогда, думаю, скорость немного увеличится (программа будет практически сразу работать только с одним сектором базы, начинающимся с определенной буквы). В любом случае это решимо, существуют же алгоритмы по которым с отличной скоростью работает Гугл.

К сожалению, с delphi5,6,7 не знаком...
Аватара пользователя
Logos
Заинтересованный
 
Сообщения: 29
Зарегистрирован: Пн янв 23, 2006 17:10:05
Откуда: Донецк

Сообщение programania » Вт фев 21, 2006 21:54:49

>С таким огромным объемом сложно предложить как сократить до 0-5 сек.

Поиск в отсортированом файле на современной технике происходит
практически мгновенно даже для 1-2 гб без всяких секторов базы
Зато его сортировка займет часы но это 1 раз
а потом новое можно добавлять слиянием это быстро 1-2 мин

>существуют же алгоритмы по которым с отличной скоростью работает Гугл.

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

>К сожалению, с delphi5,6,7 не знаком...

Так есть возможность познакомиться на простом примере
delphi проще чем C и Java
нужно всего лишь открыть fi.dpr и нажать F9
еще там сделал возможность формировать ответ из кусочков вопроса
например если заполнить:
что искать:
мне ([а-я]+)ся ([а-я]+) ([а-я]+ )*
что выдавать:
почему \2 тебе \3\1ся?

то найдя фразу
"мне хочется пожить"
программа выдаст результат:
"почему пожить тебе хочется?"
и так далее еще 407 разных штук для 57мб текстов

теперь надо еще сделать сравнение 1 строки со списком регов
в виде рег вопроса-рег ответа
а потом рег ответа искать в текстах заранее отобрав из них
то что сравнивается с регами ответов
и выдавать что сравниться
возможно вначале преобразовав с помошью других регов

если нет delphi еще записал exe 162 кб
http://programania.com/fi_exe.zip
programania
Редкий гость
 
Сообщения: 7
Зарегистрирован: Вс янв 15, 2006 22:32:18
Откуда: Тверь

Сообщение Logos » Чт фев 23, 2006 12:08:18

Теперь гораздо понятнее. Начал совершенствовать трафарет для вычленения прямой речи. Однако по срокам ничего не обещаю. В принципе он уже существует - Word практически безошибочно разбирается в синтаксисе, однако как его оттуда вытащить??
Аватара пользователя
Logos
Заинтересованный
 
Сообщения: 29
Зарегистрирован: Пн янв 23, 2006 17:10:05
Откуда: Донецк

Сообщение Дэвид » Пт мар 03, 2006 17:10:16

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

Сообщение programania » Пн мар 06, 2006 20:16:01

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

Эти фразы можно забить в память и добавлять к половине тем в этом форуме
и многие будут считать что это ЕИ и даже находить в них какой-то смысл
и пытаться опровергнуть
Дело в том что люди способны найти смысл в чем угодно
например в песнях БГ или обмене бессмыслеными фразами в форумах
Больше смысла в ответах будет когда будет больше данных у программы
тогда из них можно выбрать более связанные с вопросом
и в этой теме как раз и решается задача как легче получить эти данные

а я нахожу смысл в развлечении или получении пользы для себя и других
поэтому добавил в программу как описывал выше
сравнение 1 строки со списком регов
в виде рег вопроса-->рег ответа из файла wo.txt
приведение ответа в нужный вид путем замены слов на синонимы
понятные программе и установка глаголов в нужное лицо регами из i.txt
поиск ответов в текстах
и показ одного из найденных и списка всех
так что можно выбрать удачные, запомнить
и потом искать только в них что намного быстрее
все это на странице "Ответы"
Для выдачи выбранных ответов сделал программу
http://programania.com/php/say.php
пока программа по разному отвечает на вопросы типа
что тебе хочется? что ты можещь? кто ты такая? какая ты?
что у тебя есть? что ты любишь? что ты умеешь?
на остальные пока увиливает от ответа как может.
Ответы занимают всего 20 кб и выбраны из 18 мб любовной лирики
это намного проще чем придумывать самому
поэтому их можно наделать и в 100 раз больше
только надо еще больше формализовать описание
подробнее в
http://programania.com/fi.htm
programania
Редкий гость
 
Сообщения: 7
Зарегистрирован: Вс янв 15, 2006 22:32:18
Откуда: Тверь

Сообщение Пупырышка » Пн мар 06, 2006 21:25:09


В порядке оффтопика:

programania писал(а):Для выдачи выбранных ответов сделал программу
http://programania.com/php/say.php


Как создать искусственный интеллект?
я уже устала

Как ты работаешь?
я скоро устала

Замучили вопросами? :)
ты меня не хочешь

Ты меня хочешь?
я сильно устала

Почему?
я действительно устала

Ты меня не любишь?
хватит разыгрывать

Ты меня любишь?
я уже устала


"Ржу, не могу" :)
Пупырышка
 

Сообщение Пупырышка » Пн мар 06, 2006 21:29:43

Ой, поторопился :)

Чего ты хочешь?
я порядком устала

Что ты хочешь?
я хочу тебя голую

Но я мужчина
ты меня не хочешь

Ты мужчина?
ты так этого хочешь
Пупырышка
 

Сообщение Гость » Вт мар 07, 2006 10:17:28

Занятный диалог :)
Почему такой замес на сексуальной почве?
Гость
 

Сообщение Гость » Вт мар 07, 2006 23:48:06

>Pavel Phomenko
>Почему такой замес на сексуальной почве?

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

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

1

Сообщение Dimmy » Чт мар 09, 2006 10:27:42

programania , я спрашивал:

сколько тебе лет?
почему устала?
ты бот?

и мне ответы все время:
сильно устала,
действительно устала
и еще 25 вариантов как она устала. :wink: 8)
Vivere est cogitare!
"Во время работы в одиночестве человек в идеале находится в состоянии, которое психологи называют потоком."
Осознать необъятное, объять неосознанное (с) Dimmy, 2008
Делать возможным то, что другие считают невероятным (с) Dimmy, 2009
"Когда люди предпочитают верить, а не знать - наступает время шарлатанов." Академик Эдуард Кругляков.
Главная задача ИИ — не выиграть у игрока, а красиво ему отдаться. (с) Тимур Бухараев, Nival
«Никогда не ошибается тот, кто ничего не делает» Т. Рузвельт

...хожу сам по себе :)
ИзображениеИзображение
Dimmy
Эксперт ИИ
 
Сообщения: 555
Зарегистрирован: Пт янв 14, 2005 17:11:17
Откуда: РнД

Сообщение APP » Сб мар 11, 2006 11:11:30

А вот еще диалог :D
Сколько тебе лет?
мне минуло двадцать лет
у меня еще дела

Такая молодая и уже замужем?
ты слишком много хочешь

Замучили вопросами?
да вопреки всему
у меня еще остались ответы

Какая сегодня погода?
погода стояла отличная мороз и легкий снежок
какой ты ласковый
чем мне еще заняться

А чем ты занималась?
я порядочная женщина
хотите меня еще раз

Займемся любовью?
хватит заговаривать


Предложение к разработчикам (programania):
А может, базу из протоколов чатов создавать?
APP
 

Сообщение programania » Вс мар 12, 2006 1:07:13

>Предложение к разработчикам (programania):
>А может, базу из протоколов чатов создавать?

Да из любых текстов с диалогами чем больше тем лучше
для этого нужно запустить программу из
http://programania.com/fi_exe.zip 189 кб
на странице "ответы" ввести вопрос например "кто ты"
указать файл или файлы с маской с текстами
нажать "отвечай"
программа найдет в текстах все кусочки,
которые соответствуют шаблону ответа, (после знаков -->)
который соответствует шаблону вопроса (перед знаками -->)
который совпал с заданым вопросом
эти шаблоны в виде регулярных выражений можно видеть и менять в wo.txt кнопкой "реги"
все найденные кусочки будут показаны в списке
удачные можно пометить и кнопкой "запомни" запомнить в favorite.txt
если теперь пометить "ищи в запомненом"
то будет поиск в favorite.txt что намного быстрее
Чтоб добавить новые шаблоны или реги в wo.txt
нужно придумать рег вопроса, который сравнивается с наибольшим числом вопросов такого типа
и рег ответа который выдает наибольшее число подходящих ответов из текстов
для их проверки служат страницы "поиск" и "отладка"

И нет тут никаких разработчиков и все это сделано мной за 2-3 дня на прошлой неделе
и находится еще в самом начале развития и будет не раз переделано
и пока слишком много идей и возможностей
как описать наиболее компактно наибольшее число возможных вопросов и ответов
Думаю надо написать шаблоны вопрос --> ответ на все случаи и это реально
и в них указать переменные части которые и вытаскивать из текстов по окружению
programania
Редкий гость
 
Сообщения: 7
Зарегистрирован: Вс янв 15, 2006 22:32:18
Откуда: Тверь


Вернуться в Архив тем

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


cron


Rambler's Top100 Каталог ресурсов ListTop.Ru Каталог сайтов Союз образовательных сайтов Parenting.ru - Родители семья дети ребенок

     Сайт "Искусственный интеллект" - программирование ИИ от разработчика: общение, статьи, ссылки.