Есть ли способ указать порядок альтернативных вопросов в паре QnA (QnA Maker)? - PullRequest
2 голосов
/ 20 марта 2020

Я использую QnA Maker Service, а также активную функцию обучения через явную обратную связь , которая работает следующим образом: запрос QnA Maker, поиск неоднозначных пар вопросов / ответов, создание карты героя, выбрав первый вопрос от каждой пары QnA (QnAMakerResult) и отправьте ее пользователю.

Поскольку я использую эту логику c, я хочу получить самый красивый первый вопрос в QnA пара . Но я обнаружил, что когда я нажимаю «Сохранить и обучать» на портале QnA Maker, он переопределяет мой порядок альтернативных вопросов в паре qna, что полностью нарушает процесс активного обучения, поскольку некоторые вопросы в паре qna не так удобны для пользователя, как c Keywords et c.

Есть ли способ, как пометить какой-нибудь альтернативный вопрос для этой цели (например, пометить наиболее удобный для пользователя вопрос) или отключить автоматическую сортировку c в QnA Maker?

1 Ответ

2 голосов
/ 21 марта 2020

Поскольку вы не указали язык, мой ответ относится к C# SDK, но концепции должны быть перенесены на другие SDK.

Я полагаю, что вы сможете достичь функциональности, которая Вы хотите окольным и несколько ручным способом:

  1. На портале QnA Maker добавьте свойство метаданных к вопросам, которые вы хотите устранить, у него может быть ключ disambiguation-question и значение будет тем вопросом, который вы хотели бы использовать для устранения неоднозначности. Пример приводится здесь . например, disambiguation-question: My question that I want to use to disambiguate.
  2. Сохранить, обучить и опубликовать sh вашу базу знаний.
  3. Обновите код для фильтрации на Metadata свойство класса QueryResult, которое содержит массив объектов " rel="nofollow noreferrer">Metadata. TheGetAnswersAsyn cmethod which is how you query your QnA Maker endpoint, will return an array of QueryResult` объекты.
  4. Используйте Value из объекта метаданных для отображения на карте для устранения неоднозначности. Вот пример того, как это сделать здесь .

Здесь также представлен обзор того, как работает система ранжирования ответов QnA Maker здесь , в настоящее время это работает следующим образом:

| Step  | Purpose |
| --- | --- |
| 1 | The client application sends the user query to the GenerateAnswer API |
| 2 | QnA Maker preprocesses the user query with language detection, spellers, and word breakers. |
| 3 | This preprocessing is taken to alter the user query for the best search results. |
| 4 | This altered query is sent to an Azure Cognitive Search Index, which receives the top number of results. If the correct answer isn't in these results, increase the value of top slightly. Generally, a value of 10 for top works in 90% of queries. |
| 5 | QnA Maker uses syntactic and semantic based featurization to determine the similarity between the user query and the fetched QnA results. |
| 6 | The machine-learned ranker model uses the different features, from step 5, to determine the confidence scores and the new ranking order. |
| 7 | The new results are returned to the client application in ranked order. |

Features used include but aren't limited to word-level semantics, term-level importance in a corpus, and deep learned semantic models to determine similarity and relevance between two text strings.

Надеюсь, это поможет.

...