Как управлять бесконечными вариациями вопроса с LUIS? - PullRequest
0 голосов
/ 30 мая 2019

Бот спросит следующее:

- «Сколько человек останется в квартире? И сколько комнат в квартире?»

Еслипользователь отвечает следующим образом:

- «3 человека останутся в моей квартире с 2 спальнями.»

Тогда легко получить нужную мне информацию с помощьюиспользование 1 простого объекта с 2 ролями (AmountOfPeople и RoomsInApartment).

Однако пользователь может отвечать на вопросы различными способами.Например:

- "3 человека и одна собака останутся в моей квартире с 2 спальнями."

или

- "3люди останутся в коттедже моего друга с 2 спальнями. "

или

-" 3 человека не останутся в моей квартире с 2 спальнями. "

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

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

Я приложил все усилия, чтобы показать это в LUIS.Смотрите фотографии ниже (здесь я использую 1 Простое Enttiy и 7 Ролей).

enter image description here enter image description here

Я не уверен, что это правильный подход?Я действительно должен обозначать каждое слово энтузиазмом, как я делаю?

1 Ответ

2 голосов
/ 30 мая 2019

Пара предложений:

  1. Нет, вам не нужно маркировать каждое слово в высказывании сущностью.Вы должны только пометить значимые части, такие как количество человек, количество комнат и тип размещения.Из них вы можете сделать вывод и передать информацию о пользователе, например, если вы используете Accomodation:AmountPersons, то вы знаете, что говорите о людях, поэтому вам нужно только извлечь номер, а не тему и действие.
  2. Исследуйте паттернов , чтобы упростить ваши варианты.
  3. Начните с простого, а затем опирайтесь на то, что у вас есть:
    • Я не знаю, есть ли в вашем сценарии дополнительные «существа»например, домашние животные очень важны, но я бы начал с того, что лишил их только поддержки базового сценария - то есть людей, которые останавливаются.
    • Является ли тип комнаты критическим для вашего сценария?Предположительно люди бронируют номер, а не спят на диване.;-) Опять же, я бы просто выбрал тип размещения (квартира, коттедж и т. Д.).
    • Разбейте вопрос вашего бота на две части - сначала спросите, сколько людей остановилось, затем где они остановились.Это упростит вашу жизнь с точки зрения добавления высказываний и шаблонов, и снова вы сможете использовать эту функцию позже, если хотите поддерживать пользователей, вводящих одну строку.

I'mНе уверен, что только LUIS является лучшим инструментом для этого, Bot Framework поддерживает диалоги, и диалоги водопада кажутся идеальными для того, что вы хотите.Существует пример проекта, доступного в C # и NodeJS , который должен дать вам что-то для сборки.

...