発話
重要
LUIS は 2025 年 10 月 1 日に廃止され、2023 年 4 月 1 日から新しい LUIS リソースを作成できなくなります。 継続的な製品サポートと多言語機能のベネフィットを得るために、LUIS アプリケーションを会話言語理解に移行することをお勧めします。
発話は、アプリが解釈する必要のあるユーザーからの入力です。 これらの入力から意図とエンティティを抽出するように LUIS をトレーニングするには、各意図に対してさまざまな異なる発話の例をキャプチャすることが重要です。 LUIS が提供する機械学習インテリジェンスには、アクティブ ラーニング、つまり新しい発話をトレーニングし続けるプロセスが不可欠です。
ユーザーが入力すると思われる発話を収集します。 意味は同じだが、次のような構成が異なる発話を含めます。
- 発話の長さ - クライアント アプリケーションに対して短い、中程度、長い
- 単語や語句の長さ
- 単語の配置 - 発話の先頭、中央、末尾にあるエンティティ
- 文法
- 複数形化
- 語幹検索
- 名詞と動詞の選択
- 句読点 - 正しい文法と正しくない文法の両方を使用する
さまざまな発話を選択する
LUIS モデルに発話の例を追加する場合は、いくつかの原則に注意する必要があります。
発話は常に正しい形式になっているわけではない
アプリで「パリ行きのチケットを予約して」のような文章を処理しなければならない場合もあれば、「予約」や「パリ行きのフライト」のような文章の断片を処理しなければならない場合もあります。また、ユーザーはよくスペル ミスをします。 アプリの計画中に、ユーザー入力を LUIS に渡す前に Bing Spell Check を実行して修正するかどうかを検討してください。
ユーザーの発話のスペルチェックを行わない場合は、タイプミスやミススペルを含む発話で LUIS をトレーニングする必要があります。
ユーザーの代表的な言語を使用する
発話を選択するときに、あなたが一般的な用語または語句と考えるものがクライアント アプリケーションの標準的なユーザーにとっては一般的ではない場合があることに注意してください。 その人たちは、ドメイン エクスペリエンスがないかもしれませんし、別の用語を使用しているかもしれません。 専門家だけが話すような用語や語句を使用するときは注意が必要です。
さまざまな用語と言い回しを選択する
さまざまなセンテンス パターンを作成しようとしても、いくつかのボキャブラリを繰り返していることに気付きます。 たとえば、次の発話の意味は似ていますが、用語や言い回しは異なります。
- 「コンピューターはどうすれば手に入りますか?」
- 「コンピューターはどこで手に入りますか?」
- 「コンピューターを手に入れたいのですが、どうすればよいですか?」
- 「いつコンピューターを入手できますか?」
ここでのコア用語 "コンピューター" は全部同じです。 デスクトップ コンピューター、ラップトップ、ワークステーション、マシンなどの代替を使用します。 LUIS はコンテキストからシノニムをインテリジェントに推論できますが、それでもトレーニング用の発話を作成するときは、常に変更することをお勧めします。
各意図での発話の例
意図ごとに少なくとも 15 個の発話の例が必要です。 発話の例がない意図がある場合、LUIS をトレーニングできません。 発話の例が 1 つまたは少数の意図の場合は、LUIS が意図を正確に予測できないことがあります。
発話の小さなグループを追加する
モデルを反復処理して改善するたび、大量の発話を追加しないようにしてください。 発話は 15 個ずつ追加することを検討してください。 その後で、もう一度トレーニングして、公開し、テストします。
LUIS は、LUIS モデルの作成者によって慎重に選択された発話で有効なモデルを構築します。 追加する発話が多すぎると、混乱が発生するので役に立ちません。
少数の発話で開始し、エンドポイント発話で意図の予測とエンティティの抽出が正しいことを確認することをお勧めします。
発話の正規化
発話の正規化とは、トレーニングおよび予測中に、句読点や分音記号など、テキストの種類の影響を無視する処理のことです。
発話の正規化の設定は、既定でオフになっています。 これらの設定には、以下が含まれます。
- 単語の形式
- 分音記号
- 句読点
正規化設定を有効にすると、 [テスト] ペイン、バッチ テスト、およびエンドポイント クエリのスコアは、その正規化設定のすべての発話に対して変更されます。
LUIS ポータルでバージョンを複製すると、バージョン設定が新しい複製されたバージョンに継続されます。
LUIS ポータルを使用してアプリのバージョン設定を指定するには、[アプリケーション設定] ページの上部にあるナビゲーション メニューで [管理] を選択します。 Update Version Settings API を使用することもできます。 詳しくは、リファレンス ドキュメントをご覧ください。
単語の形式
単語の形式を正規化すると、語根以外に拡張された単語の違いは無視されます。
分音記号
分音記号とは、テキスト内のマークや記号のことです。例を次に示します。
İ ı Ş Ğ ş ğ ö ü
句読点
句読点を正規化すると、モデルがトレーニングされる前、およびエンドポイント クエリが予測される前に、発話から句読点が削除されます。
句読点は、LUIS 内の個別のトークンです。 末尾にピリオドを含む発話と末尾にピリオドを含まない発話は別々の発話であり、2 つの異なる予測が得られる可能性があります。
既定では、句読点を正規化しない場合、LUIS で句読点は無視されません。これは、クライアント アプリケーションによっては、句読点が重要視されるものがあるためです。 必ず、句読点を使用する発話の例と句読点を使用しない発話の例を含めて、どちらのスタイルでも同じ相対スコアが返されるようにしてください。
必ず、モデルは、発話の例 (句読点がある場合とない場合) またはパターン (句読点を簡単に無視できる場合) のどちらかで句読点を処理するようにしてください。 例: 私は {Job} の職を希望します[。]
クライアント アプリケーションで句読点が特別な意味を持たない場合は、句読点を正規化して句読点を無視することを検討してください。
単語と句読点を無視する
パターン内の特定の語や句読点を無視する場合は、パターン使用時に大かっこ []
の ignore 構文を指定します。
すべての発話を使用したトレーニング
トレーニングは非決定論的です。発話の予測は、バージョンまたはアプリ間で若干異なる可能性があります。 すべてのトレーニング データを使用するために、バージョン設定 API を UseAllTrainingData の名前/値のペアで更新して非決定論的トレーニングを削除できます。
発話のテスト
開発者は、発話を予測エンドポイント URL に送信することにより、実際のデータで LUIS アプリケーションのテストを開始する必要があります。 これらの発話は、発話の確認での意図とエンティティのパフォーマンスを向上させるために使われます。 LUIS ポータルの [テスト] ペインを使用して送信されたテストは、エンドポイント経由では送信されず、アクティブ ラーニングには貢献しません。
発話を確認する
モデルがトレーニングされて発行され、エンドポイント クエリを受け取った後、LUIS によって提案された発話を確認します。 LUIS は、意図またはエンティティに対してスコアの低いエンドポイント発話を選択します。
ベスト プラクティス
単語の意味のラベル
単語の選択や配置は同じなのに同じものを意味しない場合は、そのエンティティでラベル付けしません。
次の発話で、「フェア」という単語は同義語です。つまり、スペルは同じですが、意味が異なります。
- "今年の夏、シアトル地区でどのような種類のカウンティー フェアが開催されますか?"
- "レストランの現在の 2 つ星評価はフェア (公平) ですか?
イベント エンティティで、すべてのイベント データを検索する場合は、2 つ目ではなく 1 つ目の発話内の単語「フェア」にラベルを付けます。
考えられる発話のバリエーションを無視しない
LUIS では、意図の発話にバリエーションが必要です。 発話は全体的に意味が同じでも、さまざまな形があります。 バリエーションには、発話の長さ、単語の選択、単語の配置などが含まれます。
同じ形式を使用しない | さまざまな形式を使用する |
---|---|
シアトルまでのチケットを購入する | シアトル行きのチケットを 1 枚購入する |
パリまでのチケットを購入する | パリまでの夜行便のチケットを、次の月曜日に 2 枚予約する |
オーランドまでのチケットを購入する | 春休みの間にオーランドへのチケットを 3 枚確保したいのですが |
2 番目の列では、それぞれ異なる動詞 (購入、予約、確保)、数量 (1、&"二"、3)、語順が使用されていますが、旅行のために航空券を購入するという意図はすべて同じです。
多数の発話の例を意図に追加しない
アプリの公開後は、開発ライフサイクルのプロセスでアクティブ ラーニングから発話を追加するだけにします。 発話が似ている場合は、パターンを追加します。