Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NLP代码段NodeJS_Javascript_Node.js_Nlp_Chatbot - Fatal编程技术网

Javascript NLP代码段NodeJS

Javascript NLP代码段NodeJS,javascript,node.js,nlp,chatbot,Javascript,Node.js,Nlp,Chatbot,我正在用NodeJS和库编写一个应用程序。应用程序的要点是成为聊天机器人。bot的部分功能是获取代码(一种封闭源代码语言)片段,通过restapi处理它们,然后返回结果 我已经能够用talkify创建一些琐碎的技能,而且效果很好。我的主要问题是,在给定的技能中,如何实现bot来解释单引号之间的代码片段 我和talkify没有任何关系。如果有人有更适合我的用例的建议,那么我愿意改变 到目前为止,我掌握了一些代码 // Core dependency const talkify = require(

我正在用NodeJS和库编写一个应用程序。应用程序的要点是成为聊天机器人。bot的部分功能是获取代码(一种封闭源代码语言)片段,通过restapi处理它们,然后返回结果

我已经能够用talkify创建一些琐碎的技能,而且效果很好。我的主要问题是,在给定的技能中,如何实现bot来解释单引号之间的代码片段

我和talkify没有任何关系。如果有人有更适合我的用例的建议,那么我愿意改变

到目前为止,我掌握了一些代码

// Core dependency
const talkify = require('talkify');
const Bot = talkify.Bot;

// Types dependencies
const BotTypes = talkify.BotTypes;
const Message = BotTypes.Message;
const SingleLineMessage = BotTypes.SingleLineMessage;
const MultiLineMessage = BotTypes.MultiLineMessage;

// Skills dependencies
const Skill = BotTypes.Skill;

// Training dependencies
const TrainingDocument = BotTypes.TrainingDocument;

const bot = new Bot();

bot.trainAll([
    new TrainingDocument('how_many_endpoints', 'How many endpoints are there?'),
    new TrainingDocument('how_many_endpoints', 'How many endpoints are there')
], function() {});

var howManyAction = function(context, request, response, next) {
    response.message = new SingleLineMessage(function() {
      var x = someWork();
      return x;
});
    next();
};

var howSkill = new Skill('how_skill', 'how_are_you', howAction);
bot.addSkill(howSkill);

var resolved = function(err, messages) {
    if(err) return console.error(err);

    return console.log(messages);
};

bot.resolve(123, TEXT_FROM_CHAT, resolved);
当我问我想要多少端点时,上面的方法是有效的,但对于更复杂的句子,例如,我可能想说

“执行以下‘这是封闭源代码的东西,我将在服务器端解析它’”

如何将“executethefollowing”与规则匹配,并将字符串作为另一个变量放入单引号中?据我所知,talkify库培训文档必须与其解析的文本相匹配

范例

培训文件

execute the following
要匹配的文本

execute the following <~ Match
execute the following 'foo bar' <~ No match
execute the following,   <~ No match

执行以下您可以使用简单的正则表达式预处理文本以提取和删除任何引用的短语:

/\'[^\']*\'/g

看到它在这里运行:

希望能有帮助