カスタム・エンティティ

カスタム・エンティティを作成して、スキルのユース・ケースに固有の情報をユーザー入力から抽出できます。

組込みエンティティは一般的な情報を抽出するため、様々なボットで使用できます。一方、カスタム・エンティティの用途はより限定的です。当座預金普通預金クレジット・カードなどのキーワードがユーザー入力に含まれているかどうかを確認することによって様々な銀行取引を行えるようにするFinancialBotのAccountTypeエンティティのように、これらは、ボットが実行する特定のアクションにあわせて作成されます。

コンポジット・バッグ

コンポジット・バッグは、関連エンティティのグループであり、会話内でまとめて扱うことができます。コンポジット・バッグを使用すると、1つのユーザー発話の複数のエンティティの値をスキルが抽出できるようになり、会話の流れがより自然になります。スキルの設計の初期段階で、このような関連エンティティのグループ(明確なビジネス・ドメインを反映することが多い)を識別し、それらのためのコンポジット・バッグを構築します。

たとえば、ピザ用のコンポジット・バッグには、タイプ、サイズ、クラストおよび追加トッピングのエンティティを含めることができます。ユーザーが「グルテンフリー・クラストでラージ・サイズのペパロニ・ピザをください」と入力した場合、スキルはその入力から「ラージ」、「ペパロニ」および「グルテンフリー」を抽出でき、それらの値を個別にユーザーに要求する必要がなくなります。

コンポジット・バッグ・エンティティは、その構成アイテムを様々な方法で解決するように構成できます: たとえば、個々のエンティティ値がユーザー入力から欠落している場合にそれらの入力を求めることも、そのエンティティがエンティティを解決する場合に別のエンティティによって抽出された値を使用することもできます。

コンポジット・バッグには、店の場所など他のタイプの項目も含めることができ、フリー・テキストや添付ファイルも含められます。

コンポジット・バッグ・エンティティは、1つのコンポーネントのみで解決できるため、このエンティティにより、はるかに短く、コンパクトなダイアログ・フロー定義を作成できます。コンポジット・バッグの作成および構成の詳細は、コンポジット・バッグ・エンティティの構成を参照してください。

MLエンティティ

ML (機械学習)エンティティは、モデルを使用してユーザー・メッセージのエンティティ値を識別します。このモデルは、注釈付きトレーニング発話(エンティティに対応するラベル付きテキスト)から構築します。次の発話では、FloとSFOに、経費精算書スキルの仕入先を識別するエンティティの注釈を付けることができます。
  • Flo'sでディナーに$100を払い戻してください
  • SFOは5月25日に駐車料金として2.75ドルを請求しました
独自の注釈付き発話を提供することで開始できますが、データ製造を介してエンティティ注釈ジョブをソーシングすることでトレーニング・データをまとめることができます。エンティティをトレーニングした後、メッセージのコンテキストを解釈してエンティティ値を一般化できます。この柔軟な「空白埋め」アプローチにより、MLエンティティはトレーニング・セットに含まれていない場合でも値を認識できます。

ユーザー・メッセージの形式や表現の予測は難しいため、特に多言語スキルでは、柔軟性の低い値リスト・エンティティや正規表現エンティティのかわりにMLエンティティを使用できます。ファジー・マッチングにもかかわらず、バリュー・リスト・エンティティ(静的エンティティと動的エンティティの両方)は、値またはシノニムと一致する場合にのみエンティティ値を検出できます。たとえば、「コンピュータエンジニア」が「コンピュータエンジニアリング」と一致しない場合があります。正規表現エンティティは、ユーザー入力を、あらかじめ決められたパターンまたはエンティティ値の後に続く文言と一致するように制限します。一方、MLエンティティは適応性が高く、堅牢なトレーニング・データによってより多く作成することができます。

値リスト・エンティティ

共通レスポンス・コンポーネントによって出力されるメニュー・アイテムなど、事前設定済の値のリストに基づくエンティティ。ユーザー入力を抽出するエンティティの能力を最適化するには、シノニムを定義します。これには、略語、俗語およびよくあるスペルミスが含まれます。シノニムの値では、大/小文字は区別されません: たとえば、USAusaは同じ値とみなされます。

動的エンティティ

動的エンティティとは、スキルが公開された後でも値を更新できるエンティティです。
ノート

動的エンティティは、Oracle Cloud Infrastructure (Generation 2クラウド・インフラストラクチャとも呼ばれる)にプロビジョニングされたOracle Digital Assistantのインスタンスでのみサポートされます。インスタンスが(バージョン19.4.1のすべてのインスタンスと同様に)Oracle Cloud Platformにプロビジョニングされている場合、この機能を使用することはできません。
値リスト・エンティティと同様に、動的エンティティは列挙タイプです。ただし、動的エンティティは、値が静的でないという点で値リスト・エンティティとは異なり、変更が頻繁に発生する可能性があります。これに加え、動的エンティティには数千もの値およびシノニムが含まれる場合があるため、通常、これらの値はUIで管理されません。かわりに、動的エンティティAPI (Oracle Digital AssistantのREST APIを参照)によって管理されます。
ノート

動的エンティティ値用に作成された拡張音声モデルは、現在、ファイナライズされたプッシュ・リクエストが動的エンティティAPIから行われた後にしかトレーニングされません。つまり、UIで動的エンティティ値を変更しても、スキルの再トレーニング後に、その変更内容は拡張音声モデルに含まれません。APIの次の更新の後でないと、その変更内容は組み込まれません。変更を保持するには、リクエストのcopyパラメータをTRUEに設定する必要があります。

正規表現

(?<=one\s).*(?=\sthree)のような正規表現(regex)を使用してエンティティを解決します。正規表現を使用すると、チケット番号など、ユーザー入力内の事前定義済パターンをスキルが識別できます。他のエンティティ・タイプとは異なり、厳密にパターンに基づいて照合が行われるため、regexベースのエンティティではNLPは使用されません。

エンティティ・リスト

エンティティのスーパー・セット。旅行スキルを例として使用すると、空港コード、都市、空港名などの値を抽出する、すでに定義したエンティティをDestinationという1つのエンティティにまとめることができます。このようにすることで、空港コード、空港名および都市を同じ意味で使用するユーザー入力にスキルが応答できるようになります。つまり、ユーザーが「JFKからサンフランシスコに行きたい」と入力すると、Destinationエンティティは、空港コードのエンティティを使用して出発地を検出し、都市のエンティティを使用して目的地を検出します。

導出

導出エンティティは、組込みエンティティまたは定義した別のエンティティの子です。この関係は、前置詞句(ボストンからダラスに行きたい当座預金から普通預金に送金したいといった発話内の「に」や「から」)に基づいて作成します。導出エンティティを親エンティティにすることはできません。また、NLUエンジンは、他のタイプのエンティティをすべて検出した後で初めて導出エンティティを検出するため、導出エンティティをエンティティ・リストのメンバーとして追加することはできません。