Я создал чат-бота, который отвечает на вопросы, связанные с целями в области устойчивого развития (SDG), используя сервис QnA Maker. Как часть этого, основная функциональность бота заключается в том, чтобы отвечать на различные SDG, например, что такое SDG 1, что такое SDG 2 .... что такое SDG 17.

Как я могу получить точные прогнозы от QnA Maker в этом сценарии, где вопросы так похожи, как и в настоящее время, QnA Maker всегда возвращает ответ о том, что такое SDG 1, когда я задаю такие вопросы, как SDG 16, 15, 14 и т. Д., Даже хотя база знаний имеет точно такие же вопросы

4
Praneeth Nooli 9 Янв 2020 в 19:55

2 ответа

Лучший ответ

Проблема была решена с помощью параметра «Top» из QnAMakerOptions Class при вызове метод GetAnswersAsync. Я оставил значение параметра «Top» равным 20.

Если в базе знаний есть очень похожие вопросы, поиск Azure не возвращает соответствующие пары QnA в списке результатов по умолчанию. Эти результаты переопределяются окончательным ранжером QnA Maker, если используется параметр "top".

1
Praneeth Nooli 23 Янв 2020 в 22:05

Я не удивлен. Если рассматривать только символы этих вопросов, если ваш QnA KB обучен распознавать «Что такое SDG 1» и делает, с высокой степенью уверенности, то «Что такое SDG 1x» будет распознаваться просто на основе процент совпадающих символов. Производителю QnA:

«Что такое ЦУР 1x» ВСЕ выглядит как «Что такое ЦУР 1». Вам нужно войти в свою базу знаний QnA и обучить ее, чтобы вопросы типа «Что такое ЦУР 19» имели стопроцентную уверенность. Вы можете проверить это, посмотрев на элемент 'inspect' функции 'test':

QnA Maker Identical Questions

Как вы можете видеть из моего изображения, «Один» был возможным ответом на этот вопрос, но «Один» - это то, что я имею в ответ на «Что такое ЦУР 1». (игнорировать другой ответ, я делаю много тестов на этой КБ). Если вы приступите к такой проверке и увидите, что выбран неправильный ответ, вы можете просто выбрать правильный, а затем переобучить свою КБ.

Я сделал это, выбрав неправильный ответ, затем переобучаясь, пока не получил свой KB (несмотря на то, что уже получил идеальный ответ), чтобы ответить со 100% уверенностью с неправильным ответом (показано ниже):

Forced retrain to wrong answer in KB

Вам придется сделать что-то похожее, но с правильным ответом.

Это не только этот вопрос, но есть также много других подобных вопросов, таких как вопрос о повестке дня SDG 11, каков мандат SDG 11 и т. Д. Для каждого SDG, которые в настоящее время QnA Maker прогнозируют как SDG 1.

Идея, что один вопрос -> один ответ - хорошая, но вам придется работать немного больше, если все вопросы выглядят одинаково. Кроме того, если вы думаете, что это произойдет при работе с клиентами, вы можете написать код в свой бот, чтобы вернуть первые 3 или 5 ответов, и попросить вашего бота ответить на вопрос типа «Я не уверен, что понял, Вы имели в виду «1» или «17» или «19»? », затем пользователь должен выбрать, какой из них он имел в виду.

2
JJ_Wailes 10 Янв 2020 в 17:52