Qubot NLU/ru
|
Lang: |
Введение
Если Вы хотите чтобы Ваш бот отвечал современным тенденциям и умел обрабатывать ввод естественного текста, тогда воспользуйтесь нашей инновационной технологией обработки естественного языка (NLP). Именно NLP позволяет Вашему боту понимать водимые сообщение от пользователя и формировать подходящие ответы. Хочет клиент “две пиццы Маргарита и колу” или “колу и чизкейк на двоих” бот поймёт и оформит правильный заказ.
Общие сведения о работе NLP
Суть работы NLP сводится к анализу основных составляющих любого предложения - сущностей и намерений.
- Сущности(entities) представляют собой любые объекты реального мира, например, кола (drink), Украина (country), 2022 (number), Дмитрий (name).
- Намерения(intents) - это желание клиента описанное в виде предложения, например, я хочу колу (want), как пройти к театру (finding a way), привет (greeting).
Для распознавания намерений используют методы машинного обучения на основе подготовленных фраз-примеров для каждого класса. Эти методы варьируются от простого мешка слов до нейронных сетей достаточно сложной архитектуры. В качестве признаков выступают слова, n-граммы слов, n-граммы букв (борьба с опечатками), наличие знака вопроса и т.д.
Используя комбинации из распознанных сущностей и намерений мы с уверенностью можем констатировать, что именно хочет клиент и предпринять соответствующие действия.
Ниже в таблице 1 представлено несколько простых примеров из бота пиццерии:
| Сообщение 👩 | Сущности | Намерение | Ответ 💻 |
| Привет | - | greet | Здравствуйте |
| Привет, я Марго | $NAME = Маргарита | greet | Очень приятно, Маргарита! |
| Я хочу две Маргариты и колу | $NUMBER = 2 $NAME = Маргарита $DRINK = кола | want | Вам оформить заказ: 2 пиццы Маргарита и одна кола? |
| Я хочу | - | want | Что Вы хотите? |
| Я хочу в Украину | $COUNTRY = Украина | want | От Вас до Украины 4768.95 км. Удобнее всего Вам будет лететь на самолёте. |
В каждом из представленных примеров бот, несмотря на схожие намерения и распознанные сущности бот дает осмысленные ответы. В случае намерения greet, мы понимаем что $NAME - имя клиента, а в случае намерения want мы понимаем что $NAME название пиццы.
Улучшение интеллектуального развития бота
Описанные ранее общие сведения применяются для работы NLP у многих компаний, это довольно простая схема, только у неё есть недостаток - бот не способен ориентироваться в контексте. Это значит что во всех примерах из таблицы 1 всегда будет один и тот же ответ.
Для предоставления боту большего интеллекта в NLP от QuData используются забываемые намерения, а также механизм сохраняющий историю общения с клиентом.
Забываемые намерения - это такие намерения, которые происходят вне основного направления бота и забываются при первом же обычном намерении.
Благодаря этому Вам бот может ориентироваться в контексте, а также обрабатывать более сложные цепочки диалогов, например, такие:
Желтым выделены забываемые намерения.
| Сообщение 👩 | Сущности | Намерение | Ответ 💻 |
| Хочу фанту | $DRINKS = фанта | want | Сколько фанты Вы хотите? |
| А сколько она стоит? | - | [ want, what-is-the-price ] | Фанта стоит 20 гривен. |
| Тогда три | $NUMBER = 3 | [ want, number ] | Я добавила в заказ 3 фанты |
| Сообщение 👩 | Сущности | Намерение | Ответ 💻 |
| /start | - | start | Здравствуйте. Меня зовут Бот. Как Вас зовут? |
| Меня зовут Катя | $NAME = Екатерина | [start, my name is] | Очень приятно Екатерина, рад знакомству. |
| Привет | - | greet | Всегда рад поздороваться повторно. |
| Meня зовут Маша | $NAME = Мария | my name is | Понятно... То есть Вас зовут Мария? |
| Нет. | - | deny | Как же Вас тогда зовут? |
| Даша | $NAME = Дарья | name | Понятно... То есть Вас зовут Дарья? |
| Да | - | yes | Хорошо, Дарья, я это запомню. |
| Meня зовут Даша | $NAME = Дарья | my name is | Да, Дарья, я знаю. |
| Я хочу фанту | $DRINKS = фанта | want | Сколько фанты Вы хотите? |