Как передать каждый пользовательский ввод в проверку орфографии Bing, а затем отправить его в LUIS для обработки (Nodejs SDK v3)? - PullRequest
0 голосов
/ 05 января 2019

Я нашел этот пример кода

var https = require ('https');
var msg = new builder.Message(session);
var host = 'api.cognitive.microsoft.com';
var path = '/bing/v7.0/spellcheck';

/* NOTE: Replace this example key with a valid subscription key (see the                 Prequisites section above). Also note v5 and v7 require separate subscription keys. */
var key = '****************';

var mkt = "en-US";
var mode = "proof";
var text = "nthgn can b done";
var query_string = "?mkt=" + mkt + "&mode=" + mode;

var request_params = {
method : 'POST',
hostname : host,
path : path + query_string,
headers : {
    'Content-Type' : 'application/x-www-form-urlencoded',
    'Content-Length' : text.length + 5,
    'Ocp-Apim-Subscription-Key' : key,
//        'X-Search-Location' : CLIENT_LOCATION,
//        'X-MSEdge-ClientID' : CLIENT_ID,
//        'X-MSEdge-ClientIP' : CLIENT_ID,
}
};

var response_handler = function (response) {
var body = '';
response.on ('data', function (d) {
    body += d;
});
response.on ('end', function () {
    console.log (body);
});
response.on ('error', function (e) {
    console.log ('Error: ' + e.message);
});
};

var req = https.request (request_params, response_handler);
req.write ("text=" + text);
req.end ();

1.Как отправлять каждый пользовательский ввод в текст?

2. Можно ли отобразить правильное написание в окне чата после обработки?

3.Как отправить это в LUIS?

Любая помощь с документами или ссылками будет оценена.

1 Ответ

0 голосов
/ 07 января 2019

LUIS имеет встроенную проверку орфографии Bing.

Вы можете включить его на панели управления LUIS, перейдя по адресу:

> Управление> Ключи и конечные точки

Затем включите «Проверка орфографии Bing»

Bing spell check radio toggle

Каждый раз, когда вы используете builder.EntityRecognizer или builder.IntentRecognizer, ввод сначала отправляется в Bing для проверки орфографии, а затем отправляется в LUIS для определения намерения и сущности (Ответы на вопрос 3).

Вот пример ответа, который я получил от LUIS, когда произнес «сиэтл» как «seatle» (пропуская «t»).

{
  "query": "seatle",
  "alteredQuery": "seattle",
  "topScoringIntent": {
    "intent": "Help",
    "score": 0.340962738
  },
  "intents": [
    {
      "intent": "Help",
      "score": 0.340962738
    },
    {
      "intent": "SearchHotels",
      "score": 0.274775743
    },
    {
      "intent": "None",
      "score": 0.03235885
    },
    {
      "intent": "ShowHotelsReviews",
      "score": 0.00128200091
    }
  ],
  "entities": [
    {
      "entity": "seattle",
      "type": "builtin.geographyV2.city",
      "startIndex": 0,
      "endIndex": 6
    }
  ]
}

Вы можете видеть, что оно исправило орфографию "seattle" в alteredQuery и вернуло "seattle" как правильную сущность внизу под entity (отвечает на вопрос 3).

Я тестировал это на одном из ботов V3 . Обратите внимание, что связанный бот не использует LUIS для проверки орфографии, но предоставляет альтернативный способ использования API проверки орфографии Bing (отвечает на ваш вопрос 1). Чтобы этот бот использовал встроенную проверку правописания Bing в LUIS, оставьте флаг IS_SPELL_CORRECTION_ENABLED в .env установленным на false, затем установите LUIS_MODEL_URL для включения ключа подписки Bing, например:

LUIS_MODEL_URL=https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/{LUIS-APP-ID}?spellCheck=true&bing-spell-check-subscription-key={BING-SPELL-CHECK-KEY}&verbose=true&timezoneOffset=-360&subscription-key={LUIS-SUBSCRIPTION-KEY}&q=

Дополнительная документация:

Распознавать намерения с помощью документов LUIS

Документы для проверки орфографии Bing

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...