好きな質問を入力ボックスに入力して、正確な回答を得たいと思っている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 ステートメント」を使用して記述されているのには理由があります。この場合の入力に「what」、「平方根」、「some number」という単語が含まれていない場合、行はトリガーされず、ボットによって一般的な「タイプがわからない」でさらに下に回答されます。応答"。だから、どんな答えも私が使っているフォーマットに合うことを願っています。親切にしてください、私はここに来たばかりです。ボットを作るのは好きですが、プログラマーはあまり得意ではありません。ありがとう。