Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Внимание
Интеллектуальная служба распознавания речи (LUIS) будет полностью прекращена 31 марта 2026 года. Создание ресурсов LUIS недоступно. Начиная с 31 октября 2025 г. портал LUIS больше не будет доступен. Мы рекомендуем перенести LUIS приложения на систему понимания разговорного языка, чтобы воспользоваться продолжительной поддержкой продукта и многоязычными возможностями.
Намерение представляет задачу или действие, которое хочет выполнить пользователь. Эта цель или задача выражаются в высказывании пользователя.
Определите набор намерений, которые соответствуют действиям пользователей в вашем приложении. Например, в приложении для путешествий можно определить следующие намерения:
Намерения приложения для путешествий | Примеры высказываний |
---|---|
BookFlight | "Забронировать мне рейс в Рио на следующей неделе" Отправьте меня в Рио 24-го числа "I need a plane ticket next Sunday to Rio de Janeiro" ("Мне нужен билет на самолет в Рио-де-Жанейро на следующее воскресенье") |
Приветствие | "Привет" "Hello" "Доброе утро" |
Проверить Погоду | Какая погода в Бостоне? "Show me the forecast for this weekend" ("Покажите мне прогноз на эту неделю") |
нет | Принеси мне рецепт печенья "Did the Lakers win?" ("Лейкерс победили?") |
Все приложения поставляются с предопределенным намерением Нет, которое является резервным намерением.
Предварительно созданные намерения
LUIS предоставляет готовые намерения и их речевые фрагменты для каждого из своих предварительно созданных предметных областей. Намерения можно добавить без добавления всей предметной области. Добавление намерения — это процесс добавления намерения и соответствующих фраз в свое приложение. Имя намерения и список фраз можно изменять.
Вернуть оценки всех намерений
Вы назначаете высказывание одному намерению. Когда LUIS получает речевой фрагмент, по умолчанию он возвращает наивысшее намерение для этого высказывания.
Если вам нужны оценки для всех намерений высказывания, вы можете указать параметр в строке запроса API прогнозирования.
Версия API прогнозирования | Флаг |
---|---|
Версия 2 | verbose=true |
Версия 3 | show-all-intents=true |
Сравнение намерения и сущности
Намерение представляет собой действие, которое приложение должно предпринять для пользователя, основанное на всем речевом фрагменте. Речевой фрагмент может иметь только одно ключевое намерение, но при этом может содержать много сущностей.
Создайте намерение в том случае, когда намерение пользователя вызывает выполнения действия в вашем клиентском приложении, например вызов функции checkweather() из приведенной выше таблицы. Затем создайте сущности для представления параметров, необходимых для выполнения действия.
Намерение | Объект | Пример фразы |
---|---|---|
Проверить погоду | { "type": "location", "entity": "Сиэтл" } { "type": "builtin.datetimeV2.date","entity": "tomorrow","resolution":"2018-05-23" } |
What's the weather like in (Какая сейчас погода в) Seattle tomorrow ? |
Проверить Погоду | { "type": "date_range", "entity": "эти выходные" } | Покажите мне прогноз на this weekend |
Намерение отсутствует
Намерение None создается и оставляется пустым намеренно. Намерение None является обязательным и не может быть удалено или переименовано. Заполните его речевыми фрагментами, не входящими в вашу предметную область.
Намерение Нет — это резервное намерение, которое должно составлять 10 % от общего числа речевых фрагментов. Оно имеет значимость в каждом приложении, поскольку используется для обучения высказываний LUIS, которые не являются важными в домене (предметной области) приложения. Если вы не добавите ни одного высказывания для намерения None, LUIS вынуждает высказывание, находящееся вне домена, перейти в одно из доменных намерений. Это приведет к искажению оценок прогнозирования, поскольку LUIS будет обучен неверному намерению для данного высказывания.
Когда речевой фрагмент прогнозируется как намерение "Нет", клиентское приложение может задать дополнительные вопросы или предоставить меню, чтобы направить пользователя к допустимому выбору.
Отрицательные намерения
Если вы хотите определить положительные и отрицательные намерения, например, "Я хочу автомобиль" и "Я не хочу автомобиль", вы можете создать два намерения (одно положительное и одно отрицательное) и добавить соответствующие высказывания для каждого из них. Или вы можете создать один интент и отметить два разных положительных и отрицательных понятия как сущности.
Намерения и шаблоны
Если у вас есть примеры речевого фрагмента, которые можно частично или полностью определить как регулярное выражение, рассмотрите возможность использования сущности регулярного выражения в паре с каким-либо шаблоном.
Использование сущности регулярного выражения гарантирует извлечение данных, чтобы шаблон был сопоставлен. Сопоставление с шаблоном гарантирует возвращение точного намерения.
Баланс намерений
Для каждого намерения домена приложения необходимо соблюдать баланс. Например, не следует использовать большинство намерений с 10 речевыми фрагментами, а другое намерение с 500 речевыми фрагментами. Это нарушает баланс. В такой ситуации вам может понадобиться проверить намерение с использованием 500 речевых фрагментов, чтобы понять, можно ли реорганизовать многие из этих намерений в шаблон.
Намерение None не включено в баланс. Это намерение должно содержать 10 % от общего числа высказываний в приложении.
Ограничения намерений
Ознакомьтесь с ограничениями, чтобы понять, какое количество намерений можно добавить в модель.
Совет
Если вам требуется больше, чем максимальное количество намерений, подумайте, не использует ли ваша система слишком много намерений, и определите, объединяются ли несколько намерений в единое намерение с сущностями. Если намерения слишком близки, то LUIS может испытывать трудности в том, чтобы различить их. Интенты должны быть достаточно разнообразны, чтобы охватить основные задачи, которые пользователь хочет выполнить, но их не обязательно охватывать все возможные пути, по которым может идти ваш код. Например, два намерения: в приложении для путешествий BookFlight() и FlightCustomerService() могут быть отдельными намерениями, однако намерения BookInternationalFlight() и BookDomesticFlight() могут быть слишком похожими. Если в вашей системе необходимо их различать, используйте сущности или другую логику вместо намерений.
Обратитесь за помощью для приложений с большим количеством намерений
Если уменьшение числа намерений или разделение намерений на несколько приложений не помогает добиться цели, обратитесь в службу поддержки. Если ваша подписка Azure включает службы поддержки, обратитесь в службу технической поддержки Azure.
Рекомендации для намерений:
Определяйте четкие намерения
Убедитесь, что словарь для каждого намерения используется только для этого намерения и не пересекается с другим намерением. Например, если вы хотите приложение, которое обрабатывает организацию поездок, таких как авиаперелёты и отели, вы можете выбрать, чтобы эти тематические области были отдельными намерениями, или объединить их в одно намерение с сущностями для конкретных данных внутри высказывания.
Если лексика для двух намерений совпадает, объедините намерения и используйте сущности.
Взгляните на следующие примеры высказываний:
- Book a flight (забронировать авиабилет)
- Book a hotel (забронировать гостиницу)
В выражениях "Book a flight" ("Забронировать авиабилет") и "Book a hotel" ("Забронировать гостиницу") используется одна и та же фраза "book a <noun>". Формат тот же, поэтому намерение должно быть одинаковым, но с использованием разных слов для перелётов и гостиницы в качестве выделенных сущностей.
Добавляйте особенности к намерениям
Функции описывают основные понятия намерения. Особенность может быть списком фраз, содержащих слова, значимые для этого намерения, или сущностью, важной для этого намерения.
Найдите оптимальный баланс для намерений
Чтобы определить, перекрываются ли намерения, используйте данные прогнозирования из LUIS. Перекрывающиеся намерения сбивают LUIS с толку. Результатом является то, что намерение с максимальной оценкой оказывается слишком близко к другому намерению. Поскольку LUIS каждый раз использует разные пути к данным для обучения, перекрывающееся намерение может оказаться первым или вторым в очерёдности обучения. Необходимо сделать так, чтобы оценки высказываний для каждого намерения находились как можно дальше друг от друга, чтобы эта вариантность не имела места. Хорошее различие между намерениями приведет к тому, что вы всегда будете получать ожидаемое намерение в качестве намерения с максимальной оценкой.
Равномерное распределение речевых фрагментов по намерениям
Чтобы прогнозирование LUIS было точным, количество примеров высказываний по каждому намерению (за исключением намерения None) должно быть примерно одинаковым.
Если у вас есть намерение со 500 примерами высказываний и все прочие ваши намерения с 10 примерами высказываний, то намерение со 500 примерами высказываний будет иметь более высокую точность прогнозирования.
Добавьте примеры речевых фрагментов в неопределенное намерение
Это резервное намерение, которое показывает все, что находится вне вашего приложения. Добавляйте по одному примеру высказывания в намерение None на каждые 10 примеров высказываний в остальной части приложения LUIS.
Не добавляйте слишком много примеров высказываний для намерений
После публикации приложения добавляйте только высказывания из активного обучения в процессе разработки. Если высказывания очень похожи, добавьте шаблон.
Не смешивайте определения намерений и сущностей
Создайте намерения для всех действий, которые может предпринять ваш бот. Используйте сущности в качестве параметров, которые делают возможным выполнение действия.
Например, для бота, который бронирует авиабилеты, создайте намерение BookFlight. Не создавайте намерение для каждой авиакомпании или для каждого места назначения. Используйте эти фрагменты данных как сущности и помечайте их в примерах высказываний.