我有一个JavaScript聊天机器人,一个人可以在输入框中键入任何他们喜欢的问题,并希望得到一个准确的答案。我可以做到这一点,但我知道我正在讨论这一切都是错误的,因为我不知道该数字在句子中会出现什么位置。如果一个人正好输入:数字搜索字符串
5这个工作正常的平方根是什么。
如果他键入这样的事情,它不会。
什么的5
平方根5的平方根是什么
你知道的5平方根是什么
等
我需要能够确定出现在句子中的数字,然后从那里进行计算。请注意下面的行是更大的工作聊天机器人的一部分。在下面的行中,我只是试图回答任何平方根问题,而不管数字在句子中出现的位置。我也知道有一个开放式输入框有很多缺陷,人们可以输入任何内容,比如拼写错误等。这仅仅是为了娱乐而不是一个严肃的科学项目。 :)
if(
(word[0]=="what's") &&
(word[1]=="the") &&
(word[2]=="square") &&
(word[3]=="root") &&
(word [4]=="of") &&
(input.search(/\d{1,10}/)!=-1) &&
(num_of_words==6)
){
var root= word[5];
if(root<0){
document.result.result.value = "The square root of a negative number is not possible.";
}else{
word[5] = Math.sqrt(root);
word[5] = Math.round(word[5]*100)/100
document.result.result.value = "The square root of "+ root +" is "+ word[5] +".";
}
return true;
}
只是要清楚,机器人使用“如果statemments”写有一个原因。如果在这种情况下的输入不包括单词“what”和“square root”和“some number”,那么该行不会触发,并且被机器人用一个通用的“我不知道类型响应”。所以我希望任何答案都能符合我使用的格式。善良,我是新来的。我喜欢制作机器人,但我不是一个程序员。谢谢。
哇。你一定要把你的娱乐提高到很高的水平。 :) –