2016-12-30 55 views
0

我想创建一个多语言机器人并使用LUIS处理自然语言,但我想知道如何在同一个机器人中创建两个模型,每种语言一个。如何使LuisRecognizer为每种语言使用不同的模型

我知道这是可能的,因为OD的documentation

如果你使用像LUIS系统进行自然语言处理 你可以用一个单独的模型 配置LuisRecognizer为每种语言的僵尸支持和SDK将自动 选择匹配用户首选区域设置的模型。

我该如何做到这一点?我尝试这样做:

// Configure bots default locale and locale folder path. 
bot.set('localizerSettings', { 
    botLocalePath: "./locale", 
    defaultLocale: "es" 
}); 

// Create LUIS recognizer. 
//LUIS English 
var model = 'https://api.projectoxford.ai/luis/v2.0/apps/....'; 
var recognizer = new builder.LuisRecognizer(model); 
//LUIS Spanish 
var model_es = 'https://api.projectoxford.ai/luis/v2.0/apps/...'; 
var recognizer_es = new builder.LuisRecognizer(model_es); 

var dialog = new builder.IntentDialog({ recognizers: [recognizer, recognizer_es] }); 

//========================================================= 
// Bots Dialogs 
//========================================================= 

bot.dialog('/', dialog); 

谢谢

回答

2

下面是用两种语言,并让模特之间进行切换僵尸的例子:

var model_en = 'https://api.projectoxford.ai/luis/v2.0/apps/{YOUR ENGLISH MODEL}'; 
var model_es = 'https://api.projectoxford.ai/luis/v2.0/apps/{YOUR SPANISH MODEL}'; 
var recognizer = new builder.LuisRecognizer({'en': model_en, 'es' : model_es}); 

//========================================================= 
// Bots Dialogs 
//========================================================= 
var intents = new builder.IntentDialog({ recognizers: [recognizer] }); 

intents.matches('hello', function (session) { 
    session.send('Hello!'); 
}); 

intents.matches('goodbye', function (session) { 
    session.send('Goodbye!'); 
}); 

intents.matches('spanish', function (session) { 
    session.send('Switching to Spanish Model'); 
    session.preferredLocale('es'); 
}); 

intents.matches('english', function (session) { 
    session.send('Switching to English Model'); 
    session.preferredLocale('en'); 
}); 

intents.matches('None', function (session) { 
    if (session.preferredLocale() == 'en') 
    { 
     session.send('I do not understand'); 
    } 
    else 
    { 
     session.send('No entiendo'); 
    } 
}); 


bot.dialog('/', intents); 
+0

它的工作原理!谢谢 –