У меня есть чат-бот на 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;
}
Просто для ясности, бот написан с использованием «операторов If» по какой-то причине. Если ввод в этом случае не включает слова «какой», «квадратный корень» и «какое-то число», строка не срабатывает, и бот отвечает дальше вниз общим «Я не знаю тип отклик". Поэтому я надеюсь, что любой ответ будет соответствовать формату, который я использую. Будьте добры, я здесь новенький. Мне нравится делать ботов, но я не очень хороший программист. Спасибо.