この質問はおそらく複数の質問に分割できますが、ここでは...
本質的には、ユーザーがやりたいことを入力できるようにし、ウィザードのようなインターフェイスを提供して、要求されたクエリを完了するために不足している情報を要求できるようにしたいと考えています。たとえば、ユーザーが「スプリングフィールドの天気は?」と入力したとします。
ユーザーが天気に興味を持っていることは認識していますが、それはスプリングフィールド、イリノイ州、または別の州のスプリングフィールドである可能性があります。フォローアップの質問は次のとおりです。
どのスプリングフィールドの天気が欲しかったですか? 1 - スプリングフィールド、イリノイ州 2 - スプリングフィールド、ウィスコンシン州
リクエストに重要なデータが欠落している、またはリクエストがあいまいな場合は、おそらく 100 万通りの例が考えられるでしょう。ユーザーが望んでいることの要点は理解できるが、要求を完了するために必要なデータの一部が欠落していると仮定します。
おそらく、ユーザーが何をしたいのかを尋ねて、クエリに「導く」までさかのぼることができます。
これは、何らかの入力を受け取り、それを真に理解するという意味で AI ではありません。私は、ユーザーとの会話を保持する方法について言及しているわけではありません。ユーザーが何を望んでいるのかを推測し、提供できる適切なサービスがあるかどうかを確認し、必要な入力を特定して、それを要求に欠けているものの上に重ね合わせ、残りの情報をユーザーに尋ねます。それでおしまい!:-)
サービスに関する情報をどのように保存しますか? 入力データから欠落しているものをどのように判断しますか?
私の考え: 正規表現を使用して、明確な情報を識別します。これらは、サービスのパラメーターに一致します。一致するデータがないパラメーターを特定し、それらのパラメーターに関連する質問を検索します。それらの質問をして、答えを見つけてください。新しくキャプチャされたデータを渡してサービスを再実行します。これらは、より自由な形式の質問になります。
多肢選択の場合は、あいまいさを特定し、可能性の高い順にランク付けされた潜在的な一致を検索します (決定に役立つユーザー履歴/設定を追加します)。選択肢として上位 3 つを指定します。
考えていただければ幸いです。
乾杯、ヘンリー