Qubot NLU/ru

From QuData
Revision as of 07:42, 5 July 2022 by Mkuznetsov (talk | contribs) (Created page with "{| | '''Lang:''' | en |} <span id="qubot-nlu"></span> {{TOCright}} ==Введение== Если Вы хотите чтобы Ваш бот отвечал со...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Lang:

en

Введение

Если Вы хотите чтобы Ваш бот отвечал современным тенденциям и умел обрабатывать ввод естественного текста, тогда воспользуйтесь нашей инновационной технологией обработки естественного языка (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Сколько фанты Вы хотите?