NLU - извлечь строку, связанную с сущностью - PullRequest
0 голосов
/ 01 июля 2018

возможно ли в любом NLU (например, RASA или Lex) получить привязанную строку сущности? Вот пример: «Пожалуйста, не забудьте напомнить мне о завершении проекта »

скажем, я поставлю напоминать мне как REGEX - как я могу извлечь последний? Я говорю о перспективе НЛУ (а не наивной манипуляции со строками).

хотел бы вывод как { Намерение: "remind_me" Значение: «о завершении проекта» }

1 Ответ

0 голосов
/ 01 июля 2018

Вот описание того, как это сделать в Lex.

Из вашего примера:

Пользователь: «Пожалуйста, не забудьте напомнить мне о завершении проекта»

Это пользовательский ввод, также называемый Utterance .

Сначала вы создаете Намерение . Вы можете назвать это, как вы сделали: remind_me

Затем вы предоставляете Лексу намерение-высказывания , или фразы, которые пользователь скажет, чтобы вызвать это намерение. Возможно, что-то вроде:

"remember this for me"  
"make a reminder"  
"can you remind me about something"  
"please remind me"  

Это просто вызовет намерение, и затем вы можете попросить пользователя запомнить информацию.

Любое значение, которое вы хотите сохранить в Lex, называется Slot Value , потому что оно хранится в Slot , которое в основном является только термином Алекса и Лекса для «переменной».

Вы можете назвать слот: reminder

Если ваше намерение срабатывает, то вы получаете явный слот и спрашиваете пользователя:

«Хорошо, что бы вы хотели, чтобы я вам напомнил?»

Вы «учите» Лекса, что слушать, предоставляя все варианты высказываний, которые, как вы думаете, может сказать пользователь, и просто помещаете SlotName в фигурные скобки {} внутри высказывание в том месте, где они могут произнести слово или фразу, которую вы хотите сохранить в слоте .

"remind me about {reminder}" 
"please remember {reminder}" 
"make sure to remind me {reminder}"

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

Затем Lex предоставит вам именно то, что вы ищете, и больше, я упросту JSON, который Lex создает для вас:

}
    "currentIntent": {
        "name": "remind-me",
        "slots": {
            "reminder": "about getting the project done"
        }
   },
   "inputTranscript": "please make sure to remind me about getting the project done"
}

Для просмотра полного формата см. Функция ввода-вывода Lex Lambda и формат ответа

Обратите внимание, что Lex даже предоставляет полное пользовательское высказывание в inputTranscript. Это отлично подходит для выполнения вашего собственного анализа и проверки.

...