Манипулировать input_text в диалоге Watson

Я разрабатываю диалог Watson, в котором я пытаюсь манипулировать пользовательским вводом, если уверенность падает ниже 85%, и может быть возможное слово, которое снижает доверие, и я сохраняю эти возможные слова в объектах.

{
  "context": {
     "input_text": "<? input_text.replaceAll(entities['toBeExtracted'].literal,'') ?>"
   },
  "output": {}
}

Вышеупомянутое не работает

Примечание. У меня уже есть "переход к", который возвращает обратно


person user2881430    schedule 26.04.2017    source источник


Ответы (2)


Внутреннее манипулирование input_text не влияет на input_text, полученное в запросе, который обрабатывается классификатором, извлекающим из него намерения и сущности. Короче говоря, вы не можете сделать это внутри диалоговых узлов, но вам нужно изменить текст на стороне клиента и создать новый запрос с «исправленным» текстом. Но лучшим решением будет просто добавить текст, который был неправильно классифицирован, как еще один пример того, как он должен быть классифицирован.

person Michal Bida    schedule 27.04.2017

Я думаю, что если вы поставите условие триггера:

    if intents[0].confidence < 0.85 or @toBeExtracted

Это уже даст то, что вы хотите, без контекстной части. Взгляните на этот сайт, потому что это мне очень помогло.

person barbs    schedule 27.04.2017
comment
Мне нужно, чтобы этот объект был удален из пользовательского ввода - person user2881430; 03.05.2017