1

Bot Framework を使用して FAQ を実装するために取るべきアプローチに苦労しています。LUIS の使用を検討しましたが、質問ごとにインテントを作成する必要があることがわかりました。これらは多数(たとえば100)ある可能性があるため、より良いアプローチがあるかどうか疑問に思いましたか?

4

2 に答える 2

3

よくある質問を返すだけの場合、LUIS が必要かどうかは明確ではありません。検索テクニックを使用するだけです。Lucene のような検索エンジンを使用できます。FAQ が数百しかない場合は、ドキュメントに一致するユーザーのクエリからの単語数に基づいて回答を選択する独自のランカーを作成するというより簡単な方法があります。

非常に単純なランキング アルゴリズムは、ユーザーの発話をトークンに分割し、ドキュメントごとにドキュメント内の各トークンを検索することです。スコアは、ドキュメント内で一致したトークンの数をカウントし、カバレッジ スコアを計算することによって生成されます。カバレッジとは、基本的に、ユーザー クエリ内の用語の何パーセントがドキュメントと一致するかです。

カバレッジを計算するにはいくつかの方法がありますが、ここではかなり単純なアプローチを示します。一致したトークンの長さをすべて合計し、それを検索対象のドキュメント/フィールドの合計の長さで割ります。たとえば、「アジアの犬を見せて」というクエリがあり、「アジアの犬」というタイトルのドキュメントがあるとします。ユーザーの発話には、"dogs" と "asia" に一致する 2 つのトークンがあります。それらの合計の長さは 8 で、タイトルの長さは 10 です。したがって、(8 / 10) は、タイトル フィールドのカバレッジ スコア 0.8 を生成します。

ドキュメントを検索するときに同じ基本的な手法を実行できますが、用語が一致した回数を考慮する必要があります。基本的に、"dog" が 5 回出現し、"asia" が 10 回出現するドキュメントを、それぞれが 1 回しか出現しないドキュメントよりもランク付けする必要があります。

ステミングや TF-IDF のサポートなど、ランキング アルゴリズムに追加できるものは他にもたくさんありますが、その時点では検索エンジンを使用する必要があります。

于 2016-04-10T05:39:18.973 に答える
1

すべての質問に対してインテントを作成する必要はないと思います。その情報設計は受け入れられません。あなたがする必要があるのは、あなたが持っている質問のタイプを分類することであり、それらの分類はあなたの意図でなければなりません.

ほぼ同じことをやっているので、私の場合は、通常「What is..」で始まる質問に対して「Definition」という Intent を作成しました。次に、定義を求める可能性のあるすべての質問を使用して LUIS のトレーニングを試みます。

あなたは FAQ に取り組んでいるので、それは有限の情報セットです。基本的にすべての FAQ を使用して発話として送信し、適切な Intent に分類できます。

于 2016-04-08T18:29:10.997 に答える