Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Автоответчик
123456  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 894
Пользователь №: 30352
На форуме: 5 лет, 3 месяца, 19 дней
Карма: 13




Всем привет!

Может у кого есть идеи, как реализовать автоответчик??

Интересует сама структура БД и запросы к ней...


К примеру пользователь написал "Как дела?"

И запросом необходимо выбрать из бд ответ.... если ответа нет, то ничего не выбирать....


Я думаю создать две таблицы
Вопросы
id_вопроса | text_вопроса
------------------------------


и

Ответы
id_ответа | id_вопроса | id_текст ответа
----------------------------------------------



И каким-то образом искать вопросы по соответствующей таблице... Только вот каким образом лучше всего искать?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2605
Пользователь №: 37963
На форуме: 3 года, 6 месяцев, 14 дней
Карма: 28




Тема из старой оперы wink.gif

Были такие игрушки в детстве, создавалась с нуля так:

если знак вопроса в конце предложения, значит записываем в таблицу как вопрос, если следующее сообщение без знака вопроса - значит это ответ. Но это программка с самообучением.

Ответ выбирается с наибольшим количеством совпадений слов в предложении и не забывай, что форма слова может меняться.


--------------------
Болтовня ничего не стоит. Покажите мне код.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
123456  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 894
Пользователь №: 30352
На форуме: 5 лет, 3 месяца, 19 дней
Карма: 13




Надо вопрос по другому задать:

"Как сделать нечеткий поиск по таблице?"

Есть сообщение от пользователя

и есть таблица с всевозможными сообщениями(могут отличаться падежи, могут быть опечатки, разные знаки препинания и т.д.)

И надо найти сообщение в таблице... Если такое имеется
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чеширский кот
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 5978
Пользователь №: 1
На форуме: 11 лет, 18 дней
Карма: 126

Не пью :
22 года, 5 месяцев, 18 дней


Цитата (123456 @ 6.08.2016 - 17:44)
могут отличаться падежи, могут быть опечатки, разные знаки препинания и т.д.)

Дарю:
Функция отсекает окончания слов
function clean_y_value($v){
$v = strtolower($v);
if( strlen($v)>8 and in_array(substr($v,-6),array("овская","евская")) )$v = substr($v,0,-6);
elseif( strlen($v)>7 and in_array(substr($v,-5),array("аться","яться","иться","ается","яется","енный","енная","енное")) )$v = substr($v,0,-5);
elseif( strlen($v)>6 and in_array(substr($v,-4),array("ться","аюсь","яюсь","евый","ёвый","овый","овой","евая","ёвая","овая","евое","ёвое","овое","евые","ёвые","овые","ость","есть","йный","йная","ящий","ящая","ящие","вный","вная")) )$v = substr($v,0,-4);
elseif( strlen($v)>5 and in_array(substr($v,-3),array("ать","ять","ить","ого","оем","ому","ает","яет")) )$v = substr($v,0,-3);
elseif( strlen($v)>4 and in_array(substr($v,-2),array("ів","ам","ая","ее","ей","ий","ие","их","ию","ия","ми","ов","ое","ой","ок","ом","оя","ую","ые","ый","ых","ья","ям","ях","яя")) )$v = substr($v,0,-2);
elseif( strlen($v)>3 and in_array(substr($v,-1),array("a","e","i","а","е","и","й","о","у","ы","ь","ю","я","э")) )$v = substr($v,0,-1);
return $v;
}


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11847
Пользователь №: 23195
На форуме: 6 лет, 7 месяцев, 1 день
Карма: 433

Трезвый :
7 лет, 6 месяцев


Цитата (123456 @ 6.08.2016 - 19:44)
"Как сделать нечеткий поиск по таблице?"

Есть сообщение от пользователя

и есть таблица с всевозможными сообщениями(могут отличаться падежи, могут быть опечатки, разные знаки препинания и т.д.)

И надо найти сообщение в таблице... Если такое имеется

Sphinx, например.


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
123456  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 894
Пользователь №: 30352
На форуме: 5 лет, 3 месяца, 19 дней
Карма: 13




Invis1ble
на сервере не установлен sphinx, а устанавливать на сервер ничего нельзя.

FatCat
Спасибо.

В общем что я сделал:
1. Сделал проверку на опечатки о орфографию;
2. Удалил окончания и падежи;
3. Удалил все знаки припенания.

А вот смысл от этого?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Цитата (123456 @ 7.08.2016 - 09:31)
Invis1ble
на сервере не установлен sphinx, а устанавливать на сервер ничего нельзя.

Ты сначала сделай сайт используя всё инструменты, которые тебе необходимы, затем уже арендуешь сервер на котором сможешь запустить сайт.

Это же глупо думать, что раз на большинстве хостингов установлен только php и mysql, то буду делать сайт используя только php и mysql. Так можно навсегда застрять в вебе 90ых.

Всё равно полнотекстовый поиск mysql ничего не умеет http://www.hackingwithphp.com/9/3/18/advan...ll-text-indexes, так что не мучай задний привод и ищи другие решения. Начни например с сфинкса.
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чеширский кот
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 5978
Пользователь №: 1
На форуме: 11 лет, 18 дней
Карма: 126

Не пью :
22 года, 5 месяцев, 18 дней


Цитата (123456 @ 7.08.2016 - 07:31)
смысл от этого?

Искать в БД.


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса