|
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
|
|
Алгоритм работы чат-бота14.02.2010, 22:11. Показов 33694. Ответов 53
Метки нет (Все метки)
Задумал создать чат бота.
Кюрю доки и хотелось юы услышать советы умных людей. Пока я сдел альфу альфа. и недоволен результатом совсем. у меня сейчас только одна таблица. аля ------------------ привет | прив/ку/хай | приветствие как тя звать?/ты кто?| я бот | Знакомство ------------------ последний столбец тема разговора. тоесть поддержка синонимов не более. читал что мона искать сначала по всех фразе потом по частям фразы... еще хочется чтоб бот тему держал. пример юзер сказал слово про компы .бот узнал из базы что слова это относиться к компам и будет говриь про компы с юзером... но все ранво получается что юзер спршивает - бот отвечате и все... или может парсить строку на наличие ? еслинет значти юзер чтото сказал - смотрим в бд к каой теме относиться это и спрпшивае юзера чтонить про эту тему или тож фразу говрим. кактотак)
0
|
|
| 14.02.2010, 22:11 | |
|
Ответы с готовыми решениями:
53
Обсуждение идеи алгоритма чат-бота Алгоритм создания самообучающегося бота для какой-то простой игры Алгоритм обработки запроса. Чат. Client+server+mysql bd |
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|
| 20.02.2010, 21:47 | |
|
2 Krist_ALL. Хех, ну я же вам дал PHP код. Или вы не на нем делаете? Смысл сначала разделить в массив по разделителю "пробел" а потом тримить)
"привет, бот! ты - просто чудо..." => explode(' ') => {"привет,", "бот!", "ты", "-", "просто", "чудо..." } => trim() => {"привет", "бот", "ты", "", "просто", "чудо" } Не помню как там в PHP с тримом, но смысл функции трим в удалении лишних символов в начале и конце строки
0
|
|
|
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
|
|
| 20.02.2010, 23:44 [ТС] | |
|
С пробелами разобрался)
Теперь проблема с - может быть так: человек:жизнь-сплошная скука тогда делим по пробелу 1 ->жизнь-сплошная 2 ->скука если удалим - то будет жизньсплошная а вот если молоко - еда то да, норм будет, а как быть в первом слкчаи - мож парсит на наличие других букв в элементе массива, если тру то делить эесплоде -...
0
|
|
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|
| 21.02.2010, 00:17 | |
|
Теоретически можно сделать под другому... сначало заменить в строке все символы типа "-" "\t" "," на пробелы. Потом убрать лишние пробелы и разделить по словам. Но я не знаю даст ли это нужный результат
0
|
|
|
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
|
|
| 21.02.2010, 00:20 [ТС] | |
|
с пробелами новая трабла - известная проблема в пхп - ядовитый ноль...
пример привет (3 пробела например) бот (4) ура будет привет бот
0
|
|
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|
| 21.02.2010, 00:29 | |
|
Вам нужно регулярными выражениями вырезать пробелы. Тема эта сложная и сходу я так не могу дать решение, однако если завтра руки дойдут выложу. Но может сами разберетесь если с регулярными выражениями умеете работать?
Вот мануальчик, вроде по нему начинал http://php.su/lessons/?lesson_17
0
|
|
|
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
|
||
| 21.02.2010, 14:39 [ТС] | ||
|
умею с регулярками работать)
чувтсвую тема будет на 500 страниц) Добавлено через 13 часов 51 минуту Ура! сделал) корректо обрабатывается все фразы
0
|
||
|
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
|
||
| 22.02.2010, 19:41 [ТС] | ||
|
Сделал пока поиск фраз по точному совпадению..
буду улучшать. вопрос:как определить ключевые слова если фраза
+ я не знаю как наполнять базу. каконйтиь словарб чтоли или фразы какнить загать.. руками тупо заносить не айс как-то. + бот алиса может спрашивать вопросы связанные друг с другом... например какие ты языки знаешь? рашан а можешь меня обучить? да как будет на руском слово хрень? как то так.мона канешно в сессию затолкать... вообщем мнго интересных моментов. Можно сделать хорошего бота если у него гипер база или гипер алгоритмы. я хочу сделать второе. прочитал гдето что есть боыт которые анализируют фразу целиком? эт реально?
0
|
||
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
||||||
| 23.02.2010, 00:21 | ||||||
![]() кроме того уже сама платформа - веб - дает многие ограничения. С учетом платформы... нет, я бы не советовал... гипер база тоже не покатит. Никому не захочется ждать три часа ответа от бота На практике придется ограничиться умным алгоритмом (если мудрить то задолбаться можно и забить, или запутаться и сделать криво-систему) и средней базой ![]()
0
|
||||||
|
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
|
||
| 24.02.2010, 15:50 [ТС] | ||
0
|
||
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|
| 24.02.2010, 15:54 | |
|
Конечно же ограничения по выборке. Дергать из базы данных по фразе для проверки - дорого, а загрузить все сразу - памяти не хватит
Имхо гибкости запросов не хватит для той системы которую я описывал, т.к. тут нужно оперировать с массивами данных. Кстати говоря чтобы сравнивать можно упорядочить слова в строке по алфавиту и сравнивать тоже с упорядоченной фразой. Этим решится проблема многообразия словестных перестановок которые разрешает русский язык))
0
|
|
|
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
|
|
| 24.02.2010, 16:13 [ТС] | |
|
Человек:интересно как у тебя дела?
Поиск интересно как тебя дела - FALSE поиск дела тебя как интересно - FALSE поиск интересно как - FALSE поиск как тебя - FALSE поиск тебя дела - FALSE поиск интересно тебя - FALSE поиск как дела - TRUE! или фигня? попробую or юзать.
0
|
|
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
||
| 24.02.2010, 16:30 | ||
Окончания вырезаем, малоинформативные слова вырезаем... уже не так много вариантов для сравнения останется)
0
|
||
|
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
|
|
| 24.02.2010, 16:33 [ТС] | |
|
как дела ->по алфавиту ->дела как ->select ... from.. where word like '%дела как%' -FALSE
0
|
|
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|
| 24.02.2010, 16:48 | |
|
Нууу... В базу все тоже должно записываться в упорядоченном виде...
0
|
|
|
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
|
|
| 24.02.2010, 18:47 [ТС] | |
|
а не кажется тебе что если сортировать слвоа во фразе по алфавиту то может потеряться смысл фразы?
0
|
|
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|
| 24.02.2010, 18:51 | |
|
Да, так и есть) Однако распознование которое я выше описывал ведется по массиву слов которые образуют триггер - фразы нет. Для бота фразы нет
Зато можно укоротить базу в разы, особых потерь для бота я не вижу. Хотя конечно если писать ИИ то такого делать не стоит)
0
|
|
|
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
|
|
| 24.02.2010, 21:06 [ТС] | |
|
SELECT * FROM `dictionary` WHERE q like '%твое%' or q like '%имя%' or q like '%gfgdgdg%'
выводит нормальный ответ. норм запрос?
0
|
|
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|||
| 24.02.2010, 21:26 | |||
Анатолий Мотев 'Уроки MySQL'
Логически - нет: сработает даже по 1 слову. Так каши не сваришь. В итоге смысл базы сведется что к каждому слову есть своя фраза. Оно вам надо? А я ведь говорил про ограничения платформы ![]() ЗЫ. Единственная не банальная реализация которую я вижу - забирать из базы по N строк те строки которые начинаются с первого слова триггера. Эти N строк обрабатываются и упорядочиваются по % совпадения. Если N = 0 -> удаляем первое слово юзера из фразы и снова пытаемся взять N строк. Все вышеописанное тоже накладно, но по крайне мере будет отлично выполнять свою работу. N ограниченно выделенной для PHP памятью
0
|
|||
|
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
|
|
| 24.02.2010, 22:11 [ТС] | |
|
привет приветствую хай ку прив здорово - прив;привет;здорово;приветствую;хай;ку - welcome
твое имя тебя зовут звать - бот - welcome твой возраст тебе лет твое - 1 - welcome вот такая база сейчас. на данный момент бот отвечает превосходно. я понимаю что логичемски запрос ваще ппц но...
0
|
|
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|
| 24.02.2010, 23:25 | |
|
ЮЗЕР: Кто тебя разработал?
-> реакция на "твое имя тебя зовут звать" БОТ: бот
0
|
|
| 24.02.2010, 23:25 | |
|
Создание чат бота Файл: Реализовать алгоритм работы чат-бота... Написать чат бота Обучение чат бота создание чат-бота Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|