|
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
|
|
Алгоритм работы чат-бота14.02.2010, 22:11. Показов 33200. Ответов 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 | |
|
Помогаю со студенческими работами здесь
40
Создание чат бота Файл: Реализовать алгоритм работы чат-бота... Написать чат бота Обучение чат бота создание чат-бота Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|