Лучшие практики понимания естественного языка

На этой странице представлены некоторые лучшие практики и рекомендации по распознаванию естественного языка (NLU) для создания высококачественных действий.

Общий

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

Намерения

  • Как можно чаще повторно используйте намерения между сценами. Если у вас есть несколько намерений, которые можно сопоставить, пользователям будет сложно сопоставить то, которое они хотят, а Google Assistant еще сложнее выбрать правильное намерение на основе ввода пользователя.
  • Создавайте фразы для тренировки намерений, начиная с наиболее распространенных запросов или потоков взаимодействия для ваших действий.
  • Подумайте о некоторых крайних случаях для ваших обучающих фраз, например о самых коротких и самых длинных допустимых запросах.
  • Количество обучающих фраз, которые вы добавляете к своим намерениям, зависит от сложности и широты того, что намерение должно обрабатывать. Это означает, что для простого понимания достаточно всего 5 фраз ( «да» или «нет» ), но для более сложных языковых моделей можно добавить сотни обучающих фраз.
  • Для сложных намерений, когда вводимые пользователем данные могут различаться, предоставьте столько обучающих фраз, сколько необходимо, чтобы охватить все потенциальные ответы пользователей.
  • Если вам нужно собрать конкретные данные от ваших пользователей, используйте функцию заполнения слотов.
  • Не создавайте намерения, содержащие только параметры намерений в виде произвольного текста. Если вам нужно сопоставить все введенные пользователем данные, используйте заполнение слотов или системное намерение NO_MATCH .

Типы

  • Если синонимы типа состоят из нескольких слов, например названий песен или продуктов питания, рассмотрите возможность включения нечеткого сопоставления. Этот подход позволяет пользователю опускать неважные слова или изменять ожидаемый порядок их ввода.
  • По возможности избегайте использования параметра «Принимать неизвестные значения» , предоставляя дополнительные синонимы.
  • Если вы используете параметр «Принимать неизвестные значения» для своего типа, укажите различные обучающие фразы, чтобы Ассистент мог определить правильную информацию. Например, если у вас есть тип message «Принимать неизвестные значения», ваши обучающие фразы могут выглядеть следующим образом:

    • Send $message
    • Send $message to Tim
    • Send mom $message
  • Если вам нужно сопоставить идентификаторы или другие структурированные данные, рассмотрите возможность использования регулярных выражений.

  • Используйте опцию «Свободная форма текста» с осторожностью. Эта опция соответствует любому непустому вводу и затрудняет эффективное обучение и сопоставление данных языковому процессору. Вам следует использовать его в крайнем случае, когда вы просто не можете предсказать, что может сказать пользователь.