聊天机器人应用程序回复总是缺少变量的一个字母
chatbot app reply always missing a letter of the variable
我正在使用HTML和javascript开发一个聊天机器人。我使用了一个开源的在线ELIZA风格的代码作为我的起点。然而,我注意到代码有一个问题:
例如,代码上写着:
var convpatterns = new Array (
new Array (".*my name is (.*)'.", "Nice to meet you $1!"),
new Array ("^I (?:wish |would like )(?:I could |I was able to |to be able to )(.*)'.","What would it be like to be able to $1?"));
uinput = ""
soutput = ""
dialog = ""
function mainroutine() {
uinput = document.mainscreen.BasicTextArea4.value;
dialog = dialog + "User: " + uinput + ''r' + "'n";
conversationpatterns()
dialog = dialog + ''r' + "'n";
updatescreen()
}
function conversationpatterns() {
for (i=0; i < convpatterns.length; i++) {
re = new RegExp (convpatterns[i][0], "i");
if (re.test(uinput)) {
len = convpatterns[i].length - 1;
index = Math.ceil( len * Math.random());
reply = convpatterns[i][index];
soutput = uinput.replace(re, reply);
soutput = initialCap(soutput);
dialog = dialog + "System: " + soutput + ''r' + "'n";
break;
}
}
}
然而,如果我问机器人"我希望我能飞",机器人会回答"能飞是什么感觉?"注意到"fly"在末尾缺少一个"y"字母。无论我键入什么,每次都会发生这种情况,例如"我叫Michelle",机器人回复"很高兴见到你Michell",再次缺少变量的最后一个字母。
删除正则表达式中的最后一个点
new Array ("^I (?:wish |would like )(?:I could |I was able to |to be able to )(.*)'.","What would it be like to be able to $1?"))
----------------------------------------------------------------------------------^^
更改到此
new Array ("^I (?:wish |would like )(?:I could |I was able to |to be able to )(.*)","What would it be like to be able to $1?"))
你可以在这里测试:
https://regex101.com/r/hN2gA2/1
相关文章:
- 导航到特定事件的另一个变量页面
- 我可以在Javascript/jQuery中使用一个变量作为键吗
- 使用mongodb更新中的一个变量
- 将节点数据分配给另一个变量jstree
- Javascript:在激发函数后返回一个变量以供使用
- 替换另一个变量对象中的变量值
- 什么'它的意思是当一个变量位于括号外时
- 可以't将sessionStorage设置为Javascript中的一个变量
- 在Flickr API的标签参数中传递一个变量
- 从Jquery函数中获取一个变量
- 为两个ID设置一个变量的正确语法
- 如何将变量值附加到另一个变量
- 通过加载函数发送一个变量
- 如何将一个变量从一个控制器传递到合金中的另一个控制器
- 如何在Jquery函数中为自动完成文本区域指定一个变量作为Id
- Javascript未在其中一个变量上输出0
- 保留“;这个“;在一个变量中;这个“;使用此变量
- 是否可以在另一个变量中使用未声明的变量
- JS/ANGULAR使用一个变量's值作为另一个对象的键
- 如何每秒从一个变量中提取一定次数的javascript/html