私は、ボットフレームワークを使用してFAQを実装するために取るべきアプローチに苦労しています。私はLUISの使用を検討しましたが、すべての質問に対してインテントを作成しなければならないことがわかりました。これらの数が多い場合(100など)、より良いアプローチがあるかどうか疑問に思っていましたか?Bot FrameworkでFAQを実装するにはどうすればよいですか?
答えて
すべての質問に対してインテントを作成する必要はないと思われますが、その情報デザインは受け入れられません。あなたがしなければならないことは、あなたが持っている質問の種類を分類することであり、その分類はあなたの意図でなければなりません。
私はほとんど同じことをやっているので、私の場合、「What is ..」で始まる質問に対しては、「定義」というインテントを作成しました。私はLUISを定義するために必要なすべての質問を練習しようとします。
FAQで作業しているので、有益な情報セットです。基本的にすべてのFAQを使用して発言として提出し、適切なインテントで分類することができます。
あなたがしているのは、FAQを返すだけであれば、LUISが必要なことは明らかではありません。検索技術を使用してください。 Luceneのような検索エンジンを使うこともできますし、単純なことであれば、数百のFAQしかないかもしれません。ユーザーのクエリの単語数に基づいて答えを選ぶ独自のランカーを書くことでしょう。
非常に簡単なランキングアルゴリズムは、ユーザーの発言をトークンに分解し、次にドキュメント内の各トークンを検索することです。スコアは、文書内で一致するトークンの数を数え、カバレッジスコアを計算することによって生成されます。カバレッジは、基本的には、ユーザークエリの用語のうち、ドキュメントと一致するものの割合です。
カバレッジを計算するにはいくつかの方法がありますが、ここではかなり簡単な方法があります。一致したトークンの長さをすべて追加し、それを検索対象の文書/フィールドの合計長で除算します。それで、「アジアからの犬を見せて」という質問があり、「アジアの犬」というタイトルの文書があるとします。ユーザーの発言には、「dogs」と「asia」という2つのトークンがあります。それらは合計長さが8でタイトルの長さは10です。したがって、タイトルフィールドのカバレッジスコアが0.8になります。
ドキュメントを検索する際にも同じ基本的な手法を使用できますが、用語の一致回数を考慮する必要があります。基本的には、「出現」が5回、「アジア」が10回出現した文書では、1回の出現で文書をランク付けする必要があります。
& TF-IDFのサポートのようなランキングアルゴリズムに追加できることはたくさんありますが、その時点で検索エンジンを使用するだけです。
- 1. 自動アップデータ(bot)を実装するにはどうすればよいでしょうか
- 2. Microsoft Bot Frameworkを使用してメッセージにファイルを添付するにはどうすればよいですか?
- 3. iPhoneでセッションタイムアウトを実装するにはどうすればよいですか?
- 4. PHPでコールバックを実装するにはどうすればよいですか?
- 5. IronPythonでインターフェイスを実装するにはどうすればよいですか?
- 6. JavaScriptでpostMessage()を実装するにはどうすればよいですか?
- 7. neo4jでリビジョンを実装するにはどうすればよいですか?
- 8. FlashでRichTextEditorを実装するにはどうすればよいですか?
- 9. スイングでフェードボタンエフェクトを実装するにはどうすればよいですか?
- 10. Require.jsでTinyMCEを実装するにはどうすればよいですか?
- 11. Xamarinでドキュメントプロバイダエクステンションを実装するにはどうすればよいですか?
- 12. iPadにカスタムグリッドを実装するにはどうすればよいですか?
- 13. アプリケーションにタッチイベントを実装するにはどうすればよいですか?
- 14. Dipity Timeline UIを実装するにはどうすればよいですか?
- 15. 推奨エンジンを実装するにはどうすればよいですか?
- 16. solrスペルチェッカーを実装するにはどうすればよいですか?
- 17. SpinnerのMatrixCursorを実装するにはどうすればよいですか?
- 18. javax.naming.Referenceableの実装をユニットテストするにはどうすればよいですか?
- 19. IValidatableObjectを実装するにはどうすればよいですか?
- 20. "パススルー"データバインディングを実装するにはどうすればよいですか?
- 21. ネットワークコールバックを実装するにはどうすればよいですか?
- 22. ポイントアンドクリックのユーザーインタラクションモデルを実装するにはどうすればよいですか?
- 23. Pythonで "ネスト"サブコマンドをどのように実装すればよいですか?
- 24. TypeScriptで実装されたインターフェイスでコンストラクタオーバーロードを実行するにはどうすればよいですか?
- 25. Acceptヘッダーを尊重するようにIHttpActionResultを実装するにはどうすればよいですか?
- 26. Railsでこのようにデータベース検索を実装するにはどうすればよいですか?
- 27. このカスタムイコールをどのように実装すればよいですか?
- 28. どこでAndroid onTouchListenerを実装すればよいですか?
- 29. クラスを実装するにはどうすればいいですか?Interface?
- 30. タイプ関数を実装するにはどうすればいいですか?
はい、インテントの数を大幅に減らす必要があります。ありがとうございます。 –
私は彼が根本的に正しいので、ローマ人の答えに積み重ねます。 「FAQ」のような単一の意図を作成し、LUISエンティティをトレーニングしてユーザの質問を抽出するだけです。そこから、最も関連性の高い定義を見つけるために標準的な検索手法を使用します。大量のFAQがある場合は、Luceneのような検索エンジンを使って答えを検索することができます。 –