#alexa
#alexa
Вопрос:
Мы создаем навык немецкой alexa, в котором в одном из наших намерений используется DateSlot
. Если мы задаем запрос с названием дня (например, Dienstag, Mittwoch), Alexa понимает наши входные данные и правильно вызывает наш API с этим днем. Если мы запрашиваем "morgen"
(расшифровывается как tommorrow), Alexa понимает "morgan"
и не может сопоставить ввод с датой, поэтому Alexa запрашивает другой ввод.
Как мы можем гарантировать, что Alexa интерпретирует наш голосовой ввод как немецкое слово, а не как английское?
Комментарии:
1. Итак, в чем ваш вопрос?
2. Я явно добавил свой вопрос
Ответ №1:
Не уверен насчет немецкого против Русский, но мы столкнулись с аналогичной проблемой с типами слотов. Изначально мы не понимали, что типы слотов — это не конечный список входных данных, а обучающие значения. В итоге мы использовали метод JaroWinklerDistance в естественном пакете. Мы составили список из ожидаемых типов слотов для попытки сопоставления и выбрали наиболее подходящий. Наши типы слотов были для марок, типов и цветов автомобилей. Итак, вы можете представить, какие недопустимые значения мы получили.
Возможно, вы можете сделать что-то подобное, создав новое намерение захватить ваши известные недопустимые значения и выполнить сопоставление с естественным.JaroWinklerDistance. Вам нужно будет добавить больше высказываний, чтобы соответствовать вашим высказываниям в слоте данных, которые ожидают другого слота с ‘morgen’ и другими значениями, которые вы неправильно получаете. Затем, передавая намерение, определите строковое значение и сопоставьте его по вашему известному списку значений. Вы всегда можете выйти из строя, если произойдет что-то совершенно неожиданное, как это происходит сейчас, когда вы получаете ‘morgan’. Нам пришлось играть с пороговым значением для наилучшего соответствия, чтобы определить, использовали мы его или нет.
Или вы можете создать список элементов, которые вы постоянно получаете, и сопоставить их с допустимыми значениями. У нас также был слот, который ожидал 1, 2, 3, 4 или 5. Во время разработки мы тоже получали четыре, два, до и т.д… В итоге мы отобразили эти известные значения в списке и перевели их в то, что мы ожидали. В этой ситуации у нас был довольно ограниченный список значений, для которых мы должны были перевести, но это сработало хорошо.