[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Диалоговые ИИ на PHP
LRCenter
Здравствуйте, уважаемые эксперты php-кодинга.

Очень интересно как может быть реализован механизм семантического анализа речи у таких ботов как iii.ru или Анна на ikea.ru ?

Основной принцип в простейшем способе реализации ясен: бот работает по принципу значение->событие (акция -> реакция, а-ля гештальт)), выдавая ответ, обрабатывая свою базу знаний, в которой эти связи указаны. Обучается, записывая новые, неизвестные обороты в базу, для которой потом назначается реакция и проводится коррекция администратором бота.

Очень интересно как он принимает решение. Вряд-ли исходная фраза просто анализируется на схожесть, алгоритмом шинглов или еще как нибудь. При близкой семантике вопросов, их морфология может очень отличаться, к тому же слишком ресурсоемко. Если он просто цепляется за слова как за триггеры, предворительно проводя их морфологическую обработку, то это еще более ресурсоемко.

Может можно что почитать на эту тему, именно применительно к php? Поделитесь опытом и ссылками)

_____________
Меньше кода - меньше багов ©
waldicom
Тут, думается, не пхп-шникам вопрос (не технический), а к филологам (морфология и семантика)...

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
haZe
Я думаю здесь надо подключать нейросети, это будет очень кстати. Плюс база данных и база знаний.
Каждый вопрос имеет какой-то смысл и система должна понимать что за смысл несмотря на используемые слова.
Например если Анне задать вопрос:

Я: Что продается в ресторане?
Анна: Относительно ресторана какого магазина вы хотели бы узнать?
Я: Теплый стан
Анна: На странице ИКЕА Tёплый стан, которую я сейчас открываю, Вы найдёте информацию относительно ресторана.

Вроде все хорошо, но:
Я: у вас очень вкусная еда!
Анна: Относительно ресторана какого магазина вы хотели бы узнать?

Я: Сколько стоят фрикадельки?
Анна: На этой странице Вы найдете шведские продукты.

Я: еда
Анна: Относительно ресторана какого магазина вы хотели бы узнать?
Я: все
Анна: Это все, что я могу сказать на эту тему. Если у Вас есть еще вопросы об ИКЕА, я c удовольствием продолжу беседу.

Я: фрикаделька пол кровать стоять
Анна: На этой странице Вы можете найти категорию: Кровати.

Простые тесты показывают, что Анна просто разбивает вопрос на слова, выделяет из них самое весомое и выдает стандартный ответ.

Если использовать нейросети, то можно давать пользователям обучать бота, ну и самом заниматься его обучением.
haZe
Бгг:
Я: Вы используете нейросети?
Анна: На этой странице Вы можете найти подкатегорию: Посуда.
FatCat
Цитата (LRCenter @ 11.05.2010 - 14:53)
как может быть реализован механизм семантического анализа речи

Моя реализация определяет тематику текста и выдает 5 наиболее вероятных: http://coda.su/index.php
Алгоритм на основе анализа "ожиданий". Например, за словом "Аллах" ожидается где-нибудь в тексте "акбар" или "Магомет", но никак не "программирование" или "кодинг". laugh.gif
Чем больше оправдавшихся ожиданий, и чем выше "вес" каждого оправдавшегося ожидания - тем больше баллов получает каждая тема.

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

_____________
Бесплатному сыру в дырки не заглядывают...
LRCenter
Цитата
Простые тесты показывают, что Анна просто разбивает вопрос на слова, выделяет из них самое весомое и выдает стандартный ответ.


Да, только вот как определяется весомость? Наверное, первое значимое берет.

делаю запрос "Кастрюля" - открывает раздел сковороды и кастрюли
"Кровать" - открывает кровати
"кастрюля кровать" - открывает кастрюли
"кровать кастрюля" - все равно открывает кастрюли)) может значимость как-то админ выставляет.

Думаю что мне и уровня Анны хватит. Конечно о высоких материях с ней не поговоришь, но как справочно-навигационное средство самое то. rolleyes.gif


Цитата
Если использовать нейросети, то можно давать пользователям обучать бота, ну и самом заниматься его обучением.


Обучать кстати и без нейросетей можно.


Цитата
Бгг:
Я: Вы используете нейросети?
Анна: На этой странице Вы можете найти подкатегорию: Посуда.


Да точно, проверил, слово "нейросети" четко привязано к посуде)

"нейро" - открывает расписание автобусов
"ейросети" - открывает все товары под названием барометр))
"сети" - не понимает

странная какая-то логика)

---

FatCat, словари, наверное нехилые нужны.

_____________
Меньше кода - меньше багов ©
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.