はじめに
対話型AIプラットフォーム
チャットボットの概要
自然言語処理(NLP)
ボットの概念と用語
クイックスタートガイド
プラットフォームへのアクセス
ボットビルダーの操作
リリースノート
最新バージョン(英語)
以前のバージョン(英語)
廃止機能(英語)
コンセプト
設計
ストーリーボード
ダイアログタスク
ダイアログタスクとは
ダイアログビルダー
ノードタイプ
インテントノード
ダイアログノード
エンティティノード
フォームノード
確認ノード
ロジックノード
ボットアクションノード
サービスノード
Webhookノード
スクリプトノード
グループノード
エージェント転送ノード
ユーザープロンプト
音声通話プロパティ
イベント ハンドラー
ナレッジグラフ
ナレッジグラフの抽出
ナレッジグラフの構築
ボットにナレッジグラフを追加
グラフの作成
ナレッジグラフの構築
既存のソースからFAQを構築
通知タスク
スモールトーク
デジタルスキル
デジタルフォーム
デジタルビュー
デジタルビューとは
パネル
ウィジェット
トレーニング
トレーニングとは
機械学習
機械学習とは
モデル検証
ファンダメンタルミーニング
ナレッジグラフ
示唆
ランキングおよび解決
NLPの詳細設定
NLPのガイドライン
インテリジェンス
インテリジェンスとは
コンテキスト
コンテキストインテント
割り込み
複数インテントの検出
エンティティの変更
デフォルトの会話
センチメント管理
トーン分析
テストとデバッグ
ボットと会話
発話テスト
バッチテスト
会話テスト
デプロイ
チャネル
公開
分析
ボットの分析
NLPメトリクス
会話フロー
Usage Metrics
封じ込め測定
カスタムダッシュボード
カスタムダッシュボードとは
メタタグ
カスタムダッシュボードとウィジェット
LLM and Generative AI
Introduction
LLM Integration
Kore.ai XO GPT Module
Prompts & Requests Library
Co-Pilot Features
Dynamic Conversations Features
Guardrails
ユニバーサルボット
ユニバーサルボットとは
ユニバーサルボットの定義
ユニバーサルボットの作成
ユニバーサルボットのトレーニング
ユニバーサルボットのカスタマイズ
他言語の有効化
ストア
プラントと使用
Overview
Usage Plans
Support Plans
Invoices
管理
ボット認証
複数言語対応ボット
個人を特定できる情報の編集
ボット変数の使用
IVRのシステム連携
一般設定
ボット管理
ハウツー
会話スキルの設計
バンキングボットを作成
バンキングボット – 資金の振り替え
バンキングボット – 残高を更新
ナレッジグラフを構築
スマートアラートの予約方法
Integrations
Actions
Actions Overview
Asana
Configure
Templates
Azure OpenAI
Configure
Templates
BambooHR
Configure
Templates
Bitly
Configure
Templates
Confluence
Configure
Templates
DHL
Configure
Templates
Freshdesk
Configure
Templates
Freshservice
Configure
Templates
Google Maps
Configure
Templates
Here
Configure
Templates
HubSpot
Configure
Templates
JIRA
Configure
Templates
Microsoft Graph
Configure
Templates
Open AI
Configure
Templates
Salesforce
Configure
Templates
ServiceNow
Configure
Templates
Stripe
Configure
Templates
Shopify
Configure
Templates
Twilio
Configure
Templates
Zendesk
Configure
Templates
Agents
Agent Transfer Overview
Custom (BotKit)
Drift
Genesys
Intercom
NiceInContact
NiceInContact(User Hub)
Salesforce
ServiceNow
Configure Tokyo and Lower versions
Configure Utah and Higher versions
Unblu
External NLU Adapters
Overview
Dialogflow Engine
Test and Debug
デジタルスキルの設計
デジタルフォームの設定方法
デジタルビューの設定方法
データテーブルのデータの追加方法
データテーブルのデータの更新方法
Add Data from Digital Forms
ボットのトレーニング
示唆の使用方法
インテントとエンティティのパターンの使用方法
コンテキスト切り替えの管理方法
ボットのデプロイ
エージェント転送の設定方法
ボット関数の使用方法
コンテンツ変数の使用方法
グローバル変数の使用方法
ボットの分析
カスタムダッシュボードの作成方法
カスタムタグを使ってフィルタリング
Data
Overview
Guidelines
Data Table
Table Views
App Definitions
Data as Service
Build a Travel Planning Assistant
Travel Assistant Overview
Create a Travel Virtual Assistant
Design Conversation Skills
Create an ‘Update Booking’ Task
Create a Change Flight Task
Build a Knowledge Graph
Schedule a Smart Alert
Design Digital Skills
Configure Digital Forms
Configure Digital Views
Train the Assistant
Use Traits
Use Patterns
Manage Context Switching
Deploy the Assistant
Use Bot Functions
Use Content Variables
Use Global Variables
Use Web SDK
Build a Banking Assistant
APIs & SDKs
API Reference
API Introduction
Rate Limits
API List
koreUtil Libraries
SDK Reference
SDK Introduction
Web SDK
How the Web SDK Works
SDK Security
SDK Registration
Web Socket Connect and RTM
Tutorials
Widget SDK Tutorial
Web SDK Tutorial
BotKit SDK
BotKit SDK Deployment Guide
Installing the BotKit SDK
Using the BotKit SDK
SDK Events
SDK Functions
Installing Botkit in AWS
Tutorials
BotKit - Blue Prism
BotKit - Flight Search Sample VA
BotKit - Agent Transfer

ADMINISTRATION
Intro to Bots Admin Console
Administration Dashboard
User Management
Managing Your Users
Managing Your Groups
Role Management
Manage Data Tables and Views
Bot Management
Enrollment
Inviting Users
Sending Bulk Invites to Enroll Users
Importing Users and User Data
Synchronizing Users from Active Directory
Security & Compliance
Using Single Sign-On
Two-Factor Authentication for Platform Access
Security Settings
Cloud Connector
Analytics for Bots Admin
Billing
  1. ホーム
  2. Docs
  3. Virtual Assistants
  4. Builder
  5. Dialog Task
  6. サポートされているエンティティタイプ

サポートされているエンティティタイプ

エンティティタイプは、ユーザーの発話から想定されるデータのタイプをNLPインタプリターに提供し、認識およびシステムパフォーマンスを向上させます。Kore.aiのNLPインタプリターは、ユーザーの発話からエンティティを抽出します。ユーザーが必須のエンティティを入力しなかった場合、ボットレスポンスノードを定義して、ユーザーにエンティティの入力を指示することができます。詳細情報は、ボットレスポンスノードの操作をご参照ください。また、ユーザーの入力を検証するためのエンティティルールを定義することもできます。詳細はこちらをご参照ください。エンティティノードには、以下のエンドユーザータイプが指定されます。

アドレス コンポジット 個人名
空港 日付 パーセンテージ
添付ファイル 日付期間 電話番号
メール 日時 数量
都市名 説明 文字列
国名 アイテムのリスト(列挙型) 時間
会社名 アイテムのリスト(ルックアップ) タイム ゾーン
場所 URL
カスタム 数字 郵便番号
通貨

アドレス

アメリカとドイツの標準的な住所形式で書かれた住所をキャプチャします。例:200 E Main ST Pheonix AZ 85123 USA。完全な住所が文字列としてキャプチャされます。“200 E Main ST Pheonix AZ 85123 USA.”

"entities":
{
"AddressEntity": "200 E Main ST Pheonix AZ 85123 USA"
}

その他の国の住所については、認識可能な都市名や国名で終わる文字列をキャプチャします。詳細については、市内エンティティをご参照ください。

v8.1以降では、コンテキストオブジェクトから住所エンティティの完全なフォーマット化された住所にアクセスできるようになりました。コンテキストオブジェクトは以下のような形式になり、個別のフィールド値を取得することができます。

"autoFormattedEntities": {
     "Address": {
        "streetNumber": "200"
        "streetName": "E Main ST"
        "streetType":
        "POBox":
        "roadPrefix":
        "roadNumber":
        "city": "Pheonix"
        "county": "USA"
        "zip": "AZ 85123"
    }
 }

なお、すべてのシナリオですべてのフィールドが利用できるというわけではなく、国によって住所のタイプが異なります。

空港

以下の入力で空港の詳細をキャプチャします。

  • 都市名
  • 空港名
  • IATAコード
  • ICAO
  • アメリカの都市の略語。

空港の詳細は、以下の要素を持つJSONエンティティとして返されます。

"AirportEntity":
  {"IATA": "LHR",
   "AirportName": "London Heathrow Airport",
   "City": "London",
   "ICAO": "EGLL",
   "Latitude": "51.4775", "Longitude": "-0.461389"
  }

すべての空港の詳細については、 https://github.com/opentraveldata/opentraveldata を使用しています。

入力 説明 サンプル
都市名 ユーザーの発話に含まれる都市名から、空港名を特定します。都市に複数の空港がある場合は、選択できる空港のリストを表示します。 発話:ロスアンゼルスへのフライト応答入力した空港が明確でないようです。選択したいオプションを教えてください。<ロサンゼルスにある5つの空港の名前>。
空港名 完全な空港名、または著名なキーワードを含む部分的な空港名から、空港名を特定します。 発話:キャプチャされたヒースローへのフライト:ロンドン・ヒースロー空港では、必要な情報をボットに記載しています。
IATA 国際航空運送協会(IATA)のコードで空港名を特定します。 発話:キャプチャされたLHRへのフライト:ロンドン・ヒースロー空港の詳細
ICAO 国際民間航空機関(ICAO)のコードを識別します。 発話:キャプチャされたEGLLへのフライト:ロンドン・ヒースロー空港の詳細
都市の略語 www.geonames.org に掲載されている都市の略語を特定します。 発話:LAへのフライト応答:入力した空港が不明瞭なようです。選択したいオプションを教えてください。<LAにある5つの空港の名前>

添付ファイル(画像/ファイル)

ユーザーは25MBまでのファイル、画像、メールを添付することができます。

"entities":
{
"AttachmentEntity": "send"
}

メモ:現在、アタッチメントエンティティは以下の、Facebook、Twitter、Web/Mobile、Slackの各チャネルでのみサポートされています。

都市名

ニューヨークの気温はどのくらいですかのような発話における都市の名前。ボットは、人口5000人以上の都市名を文字列の形でキャプチャします。すべての市内の詳細については、www.geonames.org を使用しています。

メモ:現在、都市名は明確性を欠きますが、人口に基づいて優先順位をつけています。つまり、ユーザーの発話がポートランドで構成されている場合、ポートランドORはポートランドMEよりも上位にランクされます。
"entities":
{
"CityEntity": "New York"
}

国名

アメリカ合衆国の首都はどこですかのようなユーザーの発話から、国名をキャプチャします。国の詳細は、下記の要素を持つJSONエンティティとして返されます。

"CountryEntity": {
      "alpha3": "USA",
      "alpha2": "US",
      "localName": "United States of America",
      "shortName": "United States",
      "numericalCode": 840
}

国名および国名コード表:https://www.nationsonline.org/oneworld/country_code_list.htm

要素 説明 サンプル
alpha3 3文字の国名コード USA、GBR、あるいはIND
alpha2 2文字の国名コード US、GB、あるいはIN
localName 国名 アメリカ合衆国、英国、あるいはインド
shortName 省略語 合衆国、英国、あるいはインド
numericalCode 国連では、国名に数値コードM49を使用 840、826、あるいは356

会社名または組織名

Amazonの最寄りの支店のようになユーザーの発話から、企業名をキャプチャします。会社名の値は、文字列として返されます(Amazon)。サポートされている企業のリストをご覧ください。会社名コーパスには、言語固有の名前も含まれています。これにより、たとえばAmazon、Amazon.com、Amazon Inc.などの会社名が1つの会社として認識されます。サポートされている企業とは別に、ボットは、大文字で始まり、以下のような企業タイプの接尾語が続く単語を認識します。Inc, Incorporated, Corp, Corporation, Group, Ltd, Limited, Co, Company, LP, LLP, LLLP, LLC, PLLC。

 "entities":
{
"OrganizationEntity": "amazon"
}

ユーザーの発話から色の名前をキャプチャします。例:ステータスをグリーンに設定します。グリーンの色の値を文字列で返します。サポートされている色のリストをご覧ください。

"entities":
{
"ColorEntity": "green"
}

通貨

ユーザーの発話から、通貨の金額と種類をキャプチャします。例として、このハンドバッグの価格は200ドルです、200は金額で、米ドルは通貨です。このエンティティタイプは、以下を認識します。

  • 完全な通貨名(ドル、ルピー、インド国民ルピー、ディナール)
  • 通貨記号($, S$, £)
  • 標準通貨の略語(INR、USD)
  • 通貨によく使われるスラング(バック、ニッケル、ダイム、クイッド、 ルーニー、 トゥーニー、ベンジャミン、ジャクソン、ハミルトン。)
メモ:通貨名は、以前の使用方法に基づくと明確性を欠きます。そのため、ユーザーの発話が初めてドルで構成される場合、人気の高さからUSDがSGD(シンガポール・ドル)よりも上位になる可能性があります。しかし、ユーザーが明示的にSGDと言った場合、ボットはそこからドルに対してSGDを考慮し続けます。
"CurrencyEntity":[
{
"code": "SGD",
"amount": 20
}

カスタム

表示された 正規表現フィールドに、ユーザー入力を検証するための正規の表現を定義します。たとえば、次のように入力します。[a-zA-Z]{3}[-]d{4} とすると、以下のようなサンプル応答を返すことができます。 {"regex":"NLP-1234"} 詳細情報は、正規の表現をご参照ください。

コンポジット

複合エンティティは、複数のエンティティ値を1つのエンティティでキャプチャするために使用されます。例として、自動車販売へ販売の問い合わせを考えてみましょう。一般的な質問は以下のようなものです。「テスラモデルSの2018年モデルに関心があります」、または「レッドのテスラ2010年モデルはいくらですか」、または「テスラモデルSについて教えてください」。 ご覧のように、ボットは通常、これらのクエリに応答するために、メーカー、モデル、年式、色などの詳細を組み合わせて処理する必要があります。これらのシナリオは、複合エンティティタイプによって処理されます。複合エンティティタイプの詳細については、こちらをご参照ください

日付

ユーザーの発話から日付への言及をキャプチャします。例として、「10月10日のフライトを予約します」の場合、ISO8601の日付形式の値は、YYYY-MM-DDです。ボットは、以下のように、日付の可能性のあるあらゆる方法と形式を認識します。

  • YYYY-MM-DD、DD-MM-YYY、DD-MM-YYY、YYY/MM/DD、DD/MM/YY、YYY.MM.DD、DD.MM.YYY、DD.MM.YYのようにフォーマット化された日付。
  • 20180518および09102013などのYMDとDMYのようなすべて数字の日付。
  • YYYY MM DD. dd/mm yyyy, dd-mm, dd-mm-yyy, mm-dd, dd / mm / yyyy, dd . mm . yyyy, ddmm yyyy, mmdd のようにスペース区切りでフォーマット化した日付。
  • yyyy/dd/monthNames または yyyy-dd-monthNames または dd.monthNames.yyyy 2018/28/Dec または 2018-28-Dec または 28.Dec.2018 のような名前付きの月。
  • 今日、明日、昨日、今夜、今日の夕方、今日の午後、明後日、一昨日、昨日の朝、明日の夜、明日の1時間前、3日前、24時間前、3日後、2ヶ月後の今日、去年の来月の今日、来年の6月、再来年の6月26日、1週間後、2週間前、今月の22日、来月の今日、来月の25日、今月の30日、今月の27日、3月、今月の2日のように現在に関連する絶対的な日付。
  • クリスマスの日、クリスマスイブ、今年のメモリアルデー、サンクスギビング2018年、最後のサンクスギビング、サンクスギビングの翌週、過越祭、新年の前日、クリスマスの翌日といった名前のついた日付。
  • 明日からあと2日、7月4日から3日後、今から3日後、今日から5日後、あと2日必要、2日後のように絶対的な日付から相対的な日付。
  • 土曜日、来週の月曜日、日曜日、土曜日、次の週末、来年度の第1土曜日、来月の第1日曜日、来月の第1土曜日、来年度の第1日曜日などの曜日。
"entities":
{
"DateEntity": "1982-04-13"
}

日時

ユーザーの発話の中で、時間で日付をグループ化してキャプチャします。例として、「10月10日午後6時のフライト予約する」と入力すると、これは、YYYY-MM-DDThh: mm: ss.sTZDとしてISO8601の日付形式の日付の値で返されます。ボットは、日付と時刻のあらゆる可能性のある表現方法と形式を認識します。

"entities":
{
"DateEntity": "2017-10-10T18:00:00+05:30"
}

日付期間

ユーザー入力から開始日と終了日をキャプチャします。例:5月5日から5日間ホテルを予約する。ユーザー入力に日付の一方または両方が含まれていない場合、ボットはユーザーに必要な入力提示を指示します。

メモ:他のエンティティと異なり、日付期間のエンティティでは、ユーザープロンプトとエラープロンプトの2セットを入力できます。

  1. 開始日のユーザープロンプトとエラープロンプト。
  2. 終了日のユーザープロンプトとエラープロンプト。

次のテーブルは、さまざまなシナリオでエンティティがどのように機能するかをリストアップしています。

入力タイプ ボットの動作
開始日と終了日の両方は含まれません[例:ホテルの予約]。 開始日のユーザープロンプト をユーザーに表示します
開始日または終了日のいずれかを含めます(例:8月15日からホテルを予約)。 入力されていない日付に基づいて、 開始日のユーザープロンプト または 終了日のユーザープロンプト を表示します。
開始日と期間の黙示的な参照を含めます(例:火曜日から5日間のホテル予約] 両方の日付を決定
開始日と期間を含めます(例:11月15日から5日間、ホテルを予約する] 両方の日付を決定
開始日と終了日を含めます [例:5日から10日までホテルを予約]。 両方の日付を決定

説明

ユーザーの発話からテキストの文やパラグラフをキャプチャします。説明の値は文字列として返され、ワイルド文字を含めることができます。

メモ:このエンティティタイプでは、マルチアイテムは使用できません。
"entities":
{
"Description": "text here"
}

メール

発話からメールアドレスをキャプチャします。例として、「メールを help@koremessenger.comに送信する」 は、メールの値を文字列として返します。

"entities":
{
"Email": "help@koremessenger.com"
}

アイテムのリスト(列挙型)

値のリストをエンドユーザーに表示します。リストタイプを定義するには、

  1. アイテムのリスト(列挙型) タイプフィールドの横にある 設定アイコンをクリックします。
  2. 「アイテムのリスト(列挙型) セットアップ」ページで、以下のリストタイプのいずれかを定義します。
    • 静的リスト
    • コンテクストからのリスト

この機能はすべての言語で完全にサポートされているわけではありません。詳細はこちらをクリックしてください

  • 静的リスト – キーの表示名同義語を入力します。ユーザー入力の 自動修正値をセットアップします。
  • コンテキストからのリスト表示 – このアイテムに使用するコンテキスト変数を以下のフィールドで定義します。
    • 使用するコンテキスト変数の指定 – コンテキストオブジェクトのタイプを定義します。例:EnterpriseContext、BotContext、UserContexts、またはcontext.entityのようなセッション変数。context.を入力して、コンテキストオブジェクトのタイプを選択します。
    • 表示名キー – エンドユーザーに表示される名前。
    • 値キー – リスト内のアイテムの値を表すキー。
    • 同義語キー – キーの同義語を1つ以上入力します(詳細はこちらをクリックしてください)
  • 自動修正– LOVエンティティタイプに自動修正のしきい値をセットアップして、完全に一致するものだけでなく、小さい変化を伴う最も近い発話も受け入れるようにします。例として、Appleというリストの値に、appel のようなタイプミスがしきい値設定に基づいて受け入れられると考えましょう。自動修正の設定は、以下のように機能します。
    1. ボットは、ユーザー入力において変更(挿入、削除、置換)される文字数を特定し、リストの値に一致させます。
    2. この数字は、入力された文字の総数に対する割合に変換されます。
    3. 設定された割合以上のスコアがある場合、最も類似性の高いリストの値が入力と見なされます。
    辞書に載っている単語や英数字の入力には、スペルの修正が適用されません。

v7.1以降では、以下のキーがコンテキストオブジェクトに追加され、以下のような使用方法になります。

  • ambiguousEntityValues:このキーには、複数アイテムのエンティティに対するユーザー入力が不明瞭な場合の値が含まれます。これにより、不明瞭な値があったかどうかを確認し、その不明瞭さを解決するためのフローを構築することができます。このキーは、ダイアログ中にエンティティが再指示されると、リセットされます。値はJSONオブジェクトの配列で、各オブジェクトにはタイトル、値、同義語が含まれています。
  • synonymsUsed: このキーは、アイテムを特定するために使用される同義語を保持します。この値は、必要に応じてボット応答をパーソナライズするために使用できます。このキーは、ダイアログ中にエンティティが再指示されると、リセットされます。

ユーザーにリストを表示するには、値リストの表示を「はい」に設定する必要があります。これは、チャネル固有の形式でユーザーに値リストを提示しますが、要件に応じてテンプレートを使用したくなります(詳細はこちらをご覧ください)

アイテムのリスト(ルックアップ)

値リストをエンドユーザーに表示します。ルックアップリストを定義するには、

  1. アイテムのリスト(ルックアップ型) タイプフィールドの横にある 設定アイコンをクリックします。
  2. アイテムのリスト(ルックアップ型)のセットアップページで、以下のリストタイプのいずれかを定義します。
    • 静的リスト
    • リモートリスト

この機能は、すべての言語で完全にサポートされているわけではありません。詳細はこちらをクリックしてください静的リスト:静的リストを使用して、エンティティの値を以下のリストタイプのいずれかとして定義します。

  • JSONタブ – キー/値のペアおよび同義語のリストを入力します(詳細はこちらをクリックしてください) 。例:
    [{
    "title": "United States",
    "value": "US",
    "synonyms": ["united states", "USA", "US", "U.S.A", "America"]
    },
    {
    "title": "John F. Kennedy International Airport",
    "value": "JFK",
    "synonyms": ["John F. Kennedy International Airport", "New York International Airport", "JFK"]
    }
    ]
  • エディター – キーの表示名同義語を入力します。
  • ファイルのアップロードファイルのアップロードをクリックして、JSON形式のファイルリスト、または.csvファイル形式のキー/値ペアのリストを検索します。例: CSVファイル形式

v7.1以降では、以下のキーがコンテキストオブジェクトに追加され、以下のような使用方法になります。

  • ambiguousEntityValues:このキーには、複数アイテムのエンティティに対するユーザー入力が不明瞭な場合の値が含まれます。これにより、不明瞭な値があったかどうかを確認し、その不明瞭さを解決するためのフローを構築することができます。このキーは、ダイアログ中にエンティティが再指示されると、リセットされます。値はJSONオブジェクトの配列で、各オブジェクトにはタイトル、値、同義語が含まれています。
  • synonymsUsed: このキーは、アイテムを特定するために使用される同義語を保持します。この値は、必要に応じてボット応答をパーソナライズするために使用できます。このキーは、ダイアログ中にエンティティが再指示されると、リセットされます。

ユーザーにリストを表示するには、値リストの表示を「はい」に設定する必要があります。これは、チャネル固有の形式でユーザーに値リストを提示しますが、要件に応じてテンプレートを使用したくなります(詳細はこちらをご覧ください)

リモートリスト

リモートリストは、セキュリティ上の制限やその他の理由で、エンティティの抽出を外部のサービスで行う必要がある場合に使用します。また、大規模なデータを扱う場合にも使用できます。その手順は以下のとおりです。

  1. サービスコールの定義:現在のサービスノードのセットアップと同様の方法で、サービスコールをセットアップすることができます。ヘッダーや本文(POSTの場合)などを設定できます。(詳しくはこちらをクリックしてください)。呼び出された外部サービスは、プラットフォームが入力するユーザーの発話データを受け入れて処理するための規定を備えている必要があります。以下のフィールドを持つcontext.inputDataオブジェクトは、その目的のために使用されます。
    • input – 現在のダイアログに関して、ユーザーから受け取った入力リストを含む配列。
    • usedUp – 既に他のエンティティやインテントに使用されている単語のインデックス形式。形式は、以下のx-y-zです
      • xは、文/発話インデックス(0からnまで)を表します。
      • yは、x発話の中で使用された単語の開始インデックスを表します。
      • zは、使用し終わった単語の終了インデックスを表します。
      • sentenceindex-x-x は、その文の中で使われていない単語を表します。
      • 1つの文章の中で複数の単語が使われている場合は、カンマで区切って入力する必要があります。
    • isMultiItem – フラグは、サービスコールで複数の値が想定される場合に設定する必要があります。
        "inputData": {
          "input": [
            "get account"
          ],
          "usedUp": [
            "0-x-x"
          ],
          "isMultiItem": false
        }
  2. マップ応答:サービスコールからの応答には、以下のフィールドをマッピングできます。
    • サービスコールからの応答データを保持する コンテキスト変数。これは、配列形式である必要があります。
    • 表示キー名 – このフィールドを参照するために使用される名前。この名前はユーザーとの対話時に使用されます。例:明瞭にされたシナリオ時にこれには、{{context.entities.<entity-name>.title}}を使用してアクセスできます。
    • 値キー – 値を保持するサービスコールの応答本文内のフィールド名。エンティティにはこの値が割り当てられます。これには、{{context.entities.<entity-name>.value}}を使用してアクセスできます。
    • 同義語キー – このフィールドの同義語を含むフィールド(もしあれば)。これは、ユーザーが参照する値です。例:明瞭にされた質問に対して。これには、{{context.entities.<entity-name>.synonym}}を使用してアクセスできます。
    • 一致ワードインデックス – エンティティ抽出に使用された inputData内の単語を示すこと(context.inputData オブジェクトの usedUp 値と同じ形式)。これは、プラットフォームがユーザーの発話で使用された単語をマークするために使用されます。

フロー:このプラットフォームは、

  1. context.inputData に上記の値を入力します。
  2. サービスコールで設定した値を渡して、エンティティの値を取得するサービスコールを行います。
  3. 応答マッピングに従って返された値を使用します。
    • リモートシステムから単一の値が返された場合は、その値がエンティティに割り当てられます。
    • リモートシステムから複数の値が返された場合、プラットフォームはこのリストからエンティティを抽出します。
      • 一致が見つかった場合、そのエンティティに割り当てられます。
      • 一致が見つからなかった場合、ユーザーには選択する値のリストが表示されます。ユーザー入力がリスト内のいずれかのアイテムと一致した場合、そのアイテムはエンティティに割り当てられます。ユーザー入力がいずれのアイテムにも一致しない場合は、入力がコンテキストオブジェクトで更新され、リモートサービスへの別の呼び出しが開始されます。
      • 1つ以上の一致が見つかった場合は、不明瞭であるとみなされ、ユーザーに選択肢が提示されます。ユーザー入力がリスト内のいずれかのアイテムと一致した場合、そのアイテムはエンティティに割り当てられます。ユーザー入力がいずれのアイテムにも一致しない場合は、入力がコンテキストオブジェクトで更新され、リモートサービスへの別の呼び出しが開始されます。
    • エンティティが複数アイテムのエンティティとしてマークされている場合は、リモートサーバーから返された値のリストが再評価され、すべての有効な(エンティティタイプごとに有効な)リストアイテムがエンティティ値として割り当てられます。無効なリストアイテムは破棄されます。
  4. 以下の例外を処理します。
    • サービスコールからの応答が空であったり、想定した形式でない場合、エンティティのユーザープロンプト設定を使用して、ユーザーに入力を指示します。
    • 例として、1つの値を想定していたのに、サービスが複数の値を返してきた場合など、不明瞭である場合には、ユーザーは、サービスが返してきた値のリストから1つを選択するように指示されます。

位置

ユーザーの発話から、都市や州の位置情報をキャプチャします。例として、ベラージオ、ラスベガスでは、エンティティはラスベガスの位置の詳細をキャプチャします。エンティティは、オブジェクトの位置情報を、JSONレ応答として住所と座標で返します。

"Location":
{
"formatted_address": "Las Vegas, NV, USA",
"lat": 36.1699412,
"lng": -115.1398296
}

数字

ユーザーの発話から数字への言及をキャプチャします。例:16人用の部屋を予約する。この例では、値16が数字として返されます。ボットプラットフォームは、スペルアウトされた数字や、1Mなどの標準的な略語も認識します。連続した数字の単語が1つの数字にまとめられます。例として、いち、に、さんは123になります。メモ:最大許容桁数は18桁です。

"entities":
{
"NumberEntity": 16
}

個人名

ユーザーの発話から個人のフルネームをキャプチャします。例として、「ジョン・スミス宛にメールを送信する」では、 ジョン・スミスが個人名として特定されます。Kore.ai Botプラットフォームは、ユーザーの発話の中の最初の単語が大文字であればファーストネームであり、次の2つの単語はキャメルケースで名前の一部として表示されると想定しています。例として、ユーザーの発話が「I want to talk to John Smith(私はジョン・スミスと話したい)」の場合、John Smithを名前として認識します。「I want to talk to John smith」 という発話があった場合、名前としては Johnだけを認識します。

"entities":
{
"PersonName": "John Smith"
}

パーセンテージ

ユーザーの発話からパーセント値をキャプチャします。例として、「The chance of rain today is more than 60 percent(今日の雨の確率は60%以上です)」のように、60はパーセンテージで、0.0~1.0の範囲で0.6のフロート値として返されます。パーセント、パーセンテージ、および%記号がサポートされています。

"entities":
{
"PercentageEntity": 0.6
}

電話番号

10桁または12桁の標準的な電話番号をキャプチャします。例として、「4075551212に電話してください」の場合、電話番号の値は 4075551212となり、数字として返されます。

"entities":
{
"PhoneNumber": "+4075551212"
}

数量

ユーザーの発話から、以下の詳細を含む発話の量をキャプチャします。

  • 数量のタイプ(長さ、面積、体積など)。
  • 測定単位(キロメートル、平方キロメートル、立方メートルなど)。
  • 金額(100、500、1.5など)。

数量のエンティティタイプを選択する際には、数量の単位タイプとデフォルトの測定値も選択する必要があります。例として、体積をキャプチャする場合、 単位元のタイプ体積デフォルトの単位キロリットルを選択します。つまり、ユーザーの発話が「500mlの水を加える」の場合、次のようなJSONが返されます。

"Quantity":
{
"unit": "millilitre",
"amount": 500,
"type": "volume",
"source": "500 ml"
}

ボットプラットフォームは、これらの数量や単位を、標準的な略語やコード、記号で識別します。

タイプ 単位
長さ
  • キロメートル
  • メートル
  • センチメートル
  • インチ
  • フィート
  • ヤード
  • マイル
面積
  • 平方キロメートル
  • 平方メートル
  • 平方マイル
  • 平方ヤード
  • 平方フィート
体積
  • 立方メートル
  • リットル
  • ミリリットル
  • ガロン
  • オンス
時間
  • 時間
  • ミリ秒
速度
  • メートル/秒
  • km/時
  • マイル/時
圧力
  • パスカル
  • 気圧
  • バール
エネルギー
  • カロリー
  • キロカロリー
  • ウォット時
  • キロワット時
メモリ
  • ビット
  • バイト
  • キロバイト
  • メガバイト
  • テラバイト
  • ギガバイト
重量
  • トン
  • キログラム
  • グラム
  • ポンド
  • オンス
角度
期間
  • 10年
  • 世紀
温度
  • 摂氏
  • 華氏

文字列

説明エンティティタイプ と同じ作品ですが、一文に限定されています。トレーニングされていない限り、ユーザーの発話に対して文字列エンティティの検証を行うことはありません。したがって、このエンティティタイプは、プラットフォームでサポートされているどのエンティティタイプでも要件が満たされない場合の最終手段として使用されます。

時間

ユーザーの発話で時間をキャプチャします。例として、「アラームを午前6時にセットする」の場合、時間の値はISO 8601時間形式でhh:mm:ss.sZDとして返されます。以下のような明示的意味が認識されています。

    • am、a.m.、AM、pm、p.m.、PM、P.M.
    • 数字を綴り。例:6 AM。
    • 朝と夜。例:夕方の6時。
"entities":
{
"TimeZoneEntity": "-06:00"
}

タイムゾーン

あるタイムゾーン。東部標準時は、タイムゾーンをGMTに変換し、その結果の値を保存します。例として、ESTと入力すると、-6:00と保存されます。ボットプラットフォームは標準タイムゾーンを認識しています。

"entities":
{
"URLEntity": "www.kore.ai"
}

URL

発話からWebのURLをキャプチャします。ボットは、あらゆる標準形式のURLを認識します。例として、「私たちのWebサイト: www.kore.ai 訪問してください。」URLの値を文字列で返します。

"entities": { "URLEntity": "www.kore.ai" }

郵便番号

ユーザーの発話から米国の郵便番号をキャプチャします。例:「32746の天気はどうですか?郵便番号の値は32746で、文字列として返されます。

"entities": { "ZipcodeEntity": "32746" }

サポートされているエンティティタイプ

エンティティタイプは、ユーザーの発話から想定されるデータのタイプをNLPインタプリターに提供し、認識およびシステムパフォーマンスを向上させます。Kore.aiのNLPインタプリターは、ユーザーの発話からエンティティを抽出します。ユーザーが必須のエンティティを入力しなかった場合、ボットレスポンスノードを定義して、ユーザーにエンティティの入力を指示することができます。詳細情報は、ボットレスポンスノードの操作をご参照ください。また、ユーザーの入力を検証するためのエンティティルールを定義することもできます。詳細はこちらをご参照ください。エンティティノードには、以下のエンドユーザータイプが指定されます。

アドレス コンポジット 個人名
空港 日付 パーセンテージ
添付ファイル 日付期間 電話番号
メール 日時 数量
都市名 説明 文字列
国名 アイテムのリスト(列挙型) 時間
会社名 アイテムのリスト(ルックアップ) タイム ゾーン
場所 URL
カスタム 数字 郵便番号
通貨

アドレス

アメリカとドイツの標準的な住所形式で書かれた住所をキャプチャします。例:200 E Main ST Pheonix AZ 85123 USA。完全な住所が文字列としてキャプチャされます。“200 E Main ST Pheonix AZ 85123 USA.”

"entities":
{
"AddressEntity": "200 E Main ST Pheonix AZ 85123 USA"
}

その他の国の住所については、認識可能な都市名や国名で終わる文字列をキャプチャします。詳細については、市内エンティティをご参照ください。

v8.1以降では、コンテキストオブジェクトから住所エンティティの完全なフォーマット化された住所にアクセスできるようになりました。コンテキストオブジェクトは以下のような形式になり、個別のフィールド値を取得することができます。

"autoFormattedEntities": {
     "Address": {
        "streetNumber": "200"
        "streetName": "E Main ST"
        "streetType":
        "POBox":
        "roadPrefix":
        "roadNumber":
        "city": "Pheonix"
        "county": "USA"
        "zip": "AZ 85123"
    }
 }

なお、すべてのシナリオですべてのフィールドが利用できるというわけではなく、国によって住所のタイプが異なります。

空港

以下の入力で空港の詳細をキャプチャします。

  • 都市名
  • 空港名
  • IATAコード
  • ICAO
  • アメリカの都市の略語。

空港の詳細は、以下の要素を持つJSONエンティティとして返されます。

"AirportEntity":
  {"IATA": "LHR",
   "AirportName": "London Heathrow Airport",
   "City": "London",
   "ICAO": "EGLL",
   "Latitude": "51.4775", "Longitude": "-0.461389"
  }

すべての空港の詳細については、 https://github.com/opentraveldata/opentraveldata を使用しています。

入力 説明 サンプル
都市名 ユーザーの発話に含まれる都市名から、空港名を特定します。都市に複数の空港がある場合は、選択できる空港のリストを表示します。 発話:ロスアンゼルスへのフライト応答入力した空港が明確でないようです。選択したいオプションを教えてください。<ロサンゼルスにある5つの空港の名前>。
空港名 完全な空港名、または著名なキーワードを含む部分的な空港名から、空港名を特定します。 発話:キャプチャされたヒースローへのフライト:ロンドン・ヒースロー空港では、必要な情報をボットに記載しています。
IATA 国際航空運送協会(IATA)のコードで空港名を特定します。 発話:キャプチャされたLHRへのフライト:ロンドン・ヒースロー空港の詳細
ICAO 国際民間航空機関(ICAO)のコードを識別します。 発話:キャプチャされたEGLLへのフライト:ロンドン・ヒースロー空港の詳細
都市の略語 www.geonames.org に掲載されている都市の略語を特定します。 発話:LAへのフライト応答:入力した空港が不明瞭なようです。選択したいオプションを教えてください。<LAにある5つの空港の名前>

添付ファイル(画像/ファイル)

ユーザーは25MBまでのファイル、画像、メールを添付することができます。

"entities":
{
"AttachmentEntity": "send"
}

メモ:現在、アタッチメントエンティティは以下の、Facebook、Twitter、Web/Mobile、Slackの各チャネルでのみサポートされています。

都市名

ニューヨークの気温はどのくらいですかのような発話における都市の名前。ボットは、人口5000人以上の都市名を文字列の形でキャプチャします。すべての市内の詳細については、www.geonames.org を使用しています。

メモ:現在、都市名は明確性を欠きますが、人口に基づいて優先順位をつけています。つまり、ユーザーの発話がポートランドで構成されている場合、ポートランドORはポートランドMEよりも上位にランクされます。
"entities":
{
"CityEntity": "New York"
}

国名

アメリカ合衆国の首都はどこですかのようなユーザーの発話から、国名をキャプチャします。国の詳細は、下記の要素を持つJSONエンティティとして返されます。

"CountryEntity": {
      "alpha3": "USA",
      "alpha2": "US",
      "localName": "United States of America",
      "shortName": "United States",
      "numericalCode": 840
}

国名および国名コード表:https://www.nationsonline.org/oneworld/country_code_list.htm

要素 説明 サンプル
alpha3 3文字の国名コード USA、GBR、あるいはIND
alpha2 2文字の国名コード US、GB、あるいはIN
localName 国名 アメリカ合衆国、英国、あるいはインド
shortName 省略語 合衆国、英国、あるいはインド
numericalCode 国連では、国名に数値コードM49を使用 840、826、あるいは356

会社名または組織名

Amazonの最寄りの支店のようになユーザーの発話から、企業名をキャプチャします。会社名の値は、文字列として返されます(Amazon)。サポートされている企業のリストをご覧ください。会社名コーパスには、言語固有の名前も含まれています。これにより、たとえばAmazon、Amazon.com、Amazon Inc.などの会社名が1つの会社として認識されます。サポートされている企業とは別に、ボットは、大文字で始まり、以下のような企業タイプの接尾語が続く単語を認識します。Inc, Incorporated, Corp, Corporation, Group, Ltd, Limited, Co, Company, LP, LLP, LLLP, LLC, PLLC。

 "entities":
{
"OrganizationEntity": "amazon"
}

ユーザーの発話から色の名前をキャプチャします。例:ステータスをグリーンに設定します。グリーンの色の値を文字列で返します。サポートされている色のリストをご覧ください。

"entities":
{
"ColorEntity": "green"
}

通貨

ユーザーの発話から、通貨の金額と種類をキャプチャします。例として、このハンドバッグの価格は200ドルです、200は金額で、米ドルは通貨です。このエンティティタイプは、以下を認識します。

  • 完全な通貨名(ドル、ルピー、インド国民ルピー、ディナール)
  • 通貨記号($, S$, £)
  • 標準通貨の略語(INR、USD)
  • 通貨によく使われるスラング(バック、ニッケル、ダイム、クイッド、 ルーニー、 トゥーニー、ベンジャミン、ジャクソン、ハミルトン。)
メモ:通貨名は、以前の使用方法に基づくと明確性を欠きます。そのため、ユーザーの発話が初めてドルで構成される場合、人気の高さからUSDがSGD(シンガポール・ドル)よりも上位になる可能性があります。しかし、ユーザーが明示的にSGDと言った場合、ボットはそこからドルに対してSGDを考慮し続けます。
"CurrencyEntity":[
{
"code": "SGD",
"amount": 20
}

カスタム

表示された 正規表現フィールドに、ユーザー入力を検証するための正規の表現を定義します。たとえば、次のように入力します。[a-zA-Z]{3}[-]d{4} とすると、以下のようなサンプル応答を返すことができます。 {"regex":"NLP-1234"} 詳細情報は、正規の表現をご参照ください。

コンポジット

複合エンティティは、複数のエンティティ値を1つのエンティティでキャプチャするために使用されます。例として、自動車販売へ販売の問い合わせを考えてみましょう。一般的な質問は以下のようなものです。「テスラモデルSの2018年モデルに関心があります」、または「レッドのテスラ2010年モデルはいくらですか」、または「テスラモデルSについて教えてください」。 ご覧のように、ボットは通常、これらのクエリに応答するために、メーカー、モデル、年式、色などの詳細を組み合わせて処理する必要があります。これらのシナリオは、複合エンティティタイプによって処理されます。複合エンティティタイプの詳細については、こちらをご参照ください

日付

ユーザーの発話から日付への言及をキャプチャします。例として、「10月10日のフライトを予約します」の場合、ISO8601の日付形式の値は、YYYY-MM-DDです。ボットは、以下のように、日付の可能性のあるあらゆる方法と形式を認識します。

  • YYYY-MM-DD、DD-MM-YYY、DD-MM-YYY、YYY/MM/DD、DD/MM/YY、YYY.MM.DD、DD.MM.YYY、DD.MM.YYのようにフォーマット化された日付。
  • 20180518および09102013などのYMDとDMYのようなすべて数字の日付。
  • YYYY MM DD. dd/mm yyyy, dd-mm, dd-mm-yyy, mm-dd, dd / mm / yyyy, dd . mm . yyyy, ddmm yyyy, mmdd のようにスペース区切りでフォーマット化した日付。
  • yyyy/dd/monthNames または yyyy-dd-monthNames または dd.monthNames.yyyy 2018/28/Dec または 2018-28-Dec または 28.Dec.2018 のような名前付きの月。
  • 今日、明日、昨日、今夜、今日の夕方、今日の午後、明後日、一昨日、昨日の朝、明日の夜、明日の1時間前、3日前、24時間前、3日後、2ヶ月後の今日、去年の来月の今日、来年の6月、再来年の6月26日、1週間後、2週間前、今月の22日、来月の今日、来月の25日、今月の30日、今月の27日、3月、今月の2日のように現在に関連する絶対的な日付。
  • クリスマスの日、クリスマスイブ、今年のメモリアルデー、サンクスギビング2018年、最後のサンクスギビング、サンクスギビングの翌週、過越祭、新年の前日、クリスマスの翌日といった名前のついた日付。
  • 明日からあと2日、7月4日から3日後、今から3日後、今日から5日後、あと2日必要、2日後のように絶対的な日付から相対的な日付。
  • 土曜日、来週の月曜日、日曜日、土曜日、次の週末、来年度の第1土曜日、来月の第1日曜日、来月の第1土曜日、来年度の第1日曜日などの曜日。
"entities":
{
"DateEntity": "1982-04-13"
}

日時

ユーザーの発話の中で、時間で日付をグループ化してキャプチャします。例として、「10月10日午後6時のフライト予約する」と入力すると、これは、YYYY-MM-DDThh: mm: ss.sTZDとしてISO8601の日付形式の日付の値で返されます。ボットは、日付と時刻のあらゆる可能性のある表現方法と形式を認識します。

"entities":
{
"DateEntity": "2017-10-10T18:00:00+05:30"
}

日付期間

ユーザー入力から開始日と終了日をキャプチャします。例:5月5日から5日間ホテルを予約する。ユーザー入力に日付の一方または両方が含まれていない場合、ボットはユーザーに必要な入力提示を指示します。

メモ:他のエンティティと異なり、日付期間のエンティティでは、ユーザープロンプトとエラープロンプトの2セットを入力できます。

  1. 開始日のユーザープロンプトとエラープロンプト。
  2. 終了日のユーザープロンプトとエラープロンプト。

次のテーブルは、さまざまなシナリオでエンティティがどのように機能するかをリストアップしています。

入力タイプ ボットの動作
開始日と終了日の両方は含まれません[例:ホテルの予約]。 開始日のユーザープロンプト をユーザーに表示します
開始日または終了日のいずれかを含めます(例:8月15日からホテルを予約)。 入力されていない日付に基づいて、 開始日のユーザープロンプト または 終了日のユーザープロンプト を表示します。
開始日と期間の黙示的な参照を含めます(例:火曜日から5日間のホテル予約] 両方の日付を決定
開始日と期間を含めます(例:11月15日から5日間、ホテルを予約する] 両方の日付を決定
開始日と終了日を含めます [例:5日から10日までホテルを予約]。 両方の日付を決定

説明

ユーザーの発話からテキストの文やパラグラフをキャプチャします。説明の値は文字列として返され、ワイルド文字を含めることができます。

メモ:このエンティティタイプでは、マルチアイテムは使用できません。
"entities":
{
"Description": "text here"
}

メール

発話からメールアドレスをキャプチャします。例として、「メールを help@koremessenger.comに送信する」 は、メールの値を文字列として返します。

"entities":
{
"Email": "help@koremessenger.com"
}

アイテムのリスト(列挙型)

値のリストをエンドユーザーに表示します。リストタイプを定義するには、

  1. アイテムのリスト(列挙型) タイプフィールドの横にある 設定アイコンをクリックします。
  2. 「アイテムのリスト(列挙型) セットアップ」ページで、以下のリストタイプのいずれかを定義します。
    • 静的リスト
    • コンテクストからのリスト

この機能はすべての言語で完全にサポートされているわけではありません。詳細はこちらをクリックしてください

  • 静的リスト – キーの表示名同義語を入力します。ユーザー入力の 自動修正値をセットアップします。
  • コンテキストからのリスト表示 – このアイテムに使用するコンテキスト変数を以下のフィールドで定義します。
    • 使用するコンテキスト変数の指定 – コンテキストオブジェクトのタイプを定義します。例:EnterpriseContext、BotContext、UserContexts、またはcontext.entityのようなセッション変数。context.を入力して、コンテキストオブジェクトのタイプを選択します。
    • 表示名キー – エンドユーザーに表示される名前。
    • 値キー – リスト内のアイテムの値を表すキー。
    • 同義語キー – キーの同義語を1つ以上入力します(詳細はこちらをクリックしてください)
  • 自動修正– LOVエンティティタイプに自動修正のしきい値をセットアップして、完全に一致するものだけでなく、小さい変化を伴う最も近い発話も受け入れるようにします。例として、Appleというリストの値に、appel のようなタイプミスがしきい値設定に基づいて受け入れられると考えましょう。自動修正の設定は、以下のように機能します。
    1. ボットは、ユーザー入力において変更(挿入、削除、置換)される文字数を特定し、リストの値に一致させます。
    2. この数字は、入力された文字の総数に対する割合に変換されます。
    3. 設定された割合以上のスコアがある場合、最も類似性の高いリストの値が入力と見なされます。
    辞書に載っている単語や英数字の入力には、スペルの修正が適用されません。

v7.1以降では、以下のキーがコンテキストオブジェクトに追加され、以下のような使用方法になります。

  • ambiguousEntityValues:このキーには、複数アイテムのエンティティに対するユーザー入力が不明瞭な場合の値が含まれます。これにより、不明瞭な値があったかどうかを確認し、その不明瞭さを解決するためのフローを構築することができます。このキーは、ダイアログ中にエンティティが再指示されると、リセットされます。値はJSONオブジェクトの配列で、各オブジェクトにはタイトル、値、同義語が含まれています。
  • synonymsUsed: このキーは、アイテムを特定するために使用される同義語を保持します。この値は、必要に応じてボット応答をパーソナライズするために使用できます。このキーは、ダイアログ中にエンティティが再指示されると、リセットされます。

ユーザーにリストを表示するには、値リストの表示を「はい」に設定する必要があります。これは、チャネル固有の形式でユーザーに値リストを提示しますが、要件に応じてテンプレートを使用したくなります(詳細はこちらをご覧ください)

アイテムのリスト(ルックアップ)

値リストをエンドユーザーに表示します。ルックアップリストを定義するには、

  1. アイテムのリスト(ルックアップ型) タイプフィールドの横にある 設定アイコンをクリックします。
  2. アイテムのリスト(ルックアップ型)のセットアップページで、以下のリストタイプのいずれかを定義します。
    • 静的リスト
    • リモートリスト

この機能は、すべての言語で完全にサポートされているわけではありません。詳細はこちらをクリックしてください静的リスト:静的リストを使用して、エンティティの値を以下のリストタイプのいずれかとして定義します。

  • JSONタブ – キー/値のペアおよび同義語のリストを入力します(詳細はこちらをクリックしてください) 。例:
    [{
    "title": "United States",
    "value": "US",
    "synonyms": ["united states", "USA", "US", "U.S.A", "America"]
    },
    {
    "title": "John F. Kennedy International Airport",
    "value": "JFK",
    "synonyms": ["John F. Kennedy International Airport", "New York International Airport", "JFK"]
    }
    ]
  • エディター – キーの表示名同義語を入力します。
  • ファイルのアップロードファイルのアップロードをクリックして、JSON形式のファイルリスト、または.csvファイル形式のキー/値ペアのリストを検索します。例: CSVファイル形式

v7.1以降では、以下のキーがコンテキストオブジェクトに追加され、以下のような使用方法になります。

  • ambiguousEntityValues:このキーには、複数アイテムのエンティティに対するユーザー入力が不明瞭な場合の値が含まれます。これにより、不明瞭な値があったかどうかを確認し、その不明瞭さを解決するためのフローを構築することができます。このキーは、ダイアログ中にエンティティが再指示されると、リセットされます。値はJSONオブジェクトの配列で、各オブジェクトにはタイトル、値、同義語が含まれています。
  • synonymsUsed: このキーは、アイテムを特定するために使用される同義語を保持します。この値は、必要に応じてボット応答をパーソナライズするために使用できます。このキーは、ダイアログ中にエンティティが再指示されると、リセットされます。

ユーザーにリストを表示するには、値リストの表示を「はい」に設定する必要があります。これは、チャネル固有の形式でユーザーに値リストを提示しますが、要件に応じてテンプレートを使用したくなります(詳細はこちらをご覧ください)

リモートリスト

リモートリストは、セキュリティ上の制限やその他の理由で、エンティティの抽出を外部のサービスで行う必要がある場合に使用します。また、大規模なデータを扱う場合にも使用できます。その手順は以下のとおりです。

  1. サービスコールの定義:現在のサービスノードのセットアップと同様の方法で、サービスコールをセットアップすることができます。ヘッダーや本文(POSTの場合)などを設定できます。(詳しくはこちらをクリックしてください)。呼び出された外部サービスは、プラットフォームが入力するユーザーの発話データを受け入れて処理するための規定を備えている必要があります。以下のフィールドを持つcontext.inputDataオブジェクトは、その目的のために使用されます。
    • input – 現在のダイアログに関して、ユーザーから受け取った入力リストを含む配列。
    • usedUp – 既に他のエンティティやインテントに使用されている単語のインデックス形式。形式は、以下のx-y-zです
      • xは、文/発話インデックス(0からnまで)を表します。
      • yは、x発話の中で使用された単語の開始インデックスを表します。
      • zは、使用し終わった単語の終了インデックスを表します。
      • sentenceindex-x-x は、その文の中で使われていない単語を表します。
      • 1つの文章の中で複数の単語が使われている場合は、カンマで区切って入力する必要があります。
    • isMultiItem – フラグは、サービスコールで複数の値が想定される場合に設定する必要があります。
        "inputData": {
          "input": [
            "get account"
          ],
          "usedUp": [
            "0-x-x"
          ],
          "isMultiItem": false
        }
  2. マップ応答:サービスコールからの応答には、以下のフィールドをマッピングできます。
    • サービスコールからの応答データを保持する コンテキスト変数。これは、配列形式である必要があります。
    • 表示キー名 – このフィールドを参照するために使用される名前。この名前はユーザーとの対話時に使用されます。例:明瞭にされたシナリオ時にこれには、{{context.entities.<entity-name>.title}}を使用してアクセスできます。
    • 値キー – 値を保持するサービスコールの応答本文内のフィールド名。エンティティにはこの値が割り当てられます。これには、{{context.entities.<entity-name>.value}}を使用してアクセスできます。
    • 同義語キー – このフィールドの同義語を含むフィールド(もしあれば)。これは、ユーザーが参照する値です。例:明瞭にされた質問に対して。これには、{{context.entities.<entity-name>.synonym}}を使用してアクセスできます。
    • 一致ワードインデックス – エンティティ抽出に使用された inputData内の単語を示すこと(context.inputData オブジェクトの usedUp 値と同じ形式)。これは、プラットフォームがユーザーの発話で使用された単語をマークするために使用されます。

フロー:このプラットフォームは、

  1. context.inputData に上記の値を入力します。
  2. サービスコールで設定した値を渡して、エンティティの値を取得するサービスコールを行います。
  3. 応答マッピングに従って返された値を使用します。
    • リモートシステムから単一の値が返された場合は、その値がエンティティに割り当てられます。
    • リモートシステムから複数の値が返された場合、プラットフォームはこのリストからエンティティを抽出します。
      • 一致が見つかった場合、そのエンティティに割り当てられます。
      • 一致が見つからなかった場合、ユーザーには選択する値のリストが表示されます。ユーザー入力がリスト内のいずれかのアイテムと一致した場合、そのアイテムはエンティティに割り当てられます。ユーザー入力がいずれのアイテムにも一致しない場合は、入力がコンテキストオブジェクトで更新され、リモートサービスへの別の呼び出しが開始されます。
      • 1つ以上の一致が見つかった場合は、不明瞭であるとみなされ、ユーザーに選択肢が提示されます。ユーザー入力がリスト内のいずれかのアイテムと一致した場合、そのアイテムはエンティティに割り当てられます。ユーザー入力がいずれのアイテムにも一致しない場合は、入力がコンテキストオブジェクトで更新され、リモートサービスへの別の呼び出しが開始されます。
    • エンティティが複数アイテムのエンティティとしてマークされている場合は、リモートサーバーから返された値のリストが再評価され、すべての有効な(エンティティタイプごとに有効な)リストアイテムがエンティティ値として割り当てられます。無効なリストアイテムは破棄されます。
  4. 以下の例外を処理します。
    • サービスコールからの応答が空であったり、想定した形式でない場合、エンティティのユーザープロンプト設定を使用して、ユーザーに入力を指示します。
    • 例として、1つの値を想定していたのに、サービスが複数の値を返してきた場合など、不明瞭である場合には、ユーザーは、サービスが返してきた値のリストから1つを選択するように指示されます。

位置

ユーザーの発話から、都市や州の位置情報をキャプチャします。例として、ベラージオ、ラスベガスでは、エンティティはラスベガスの位置の詳細をキャプチャします。エンティティは、オブジェクトの位置情報を、JSONレ応答として住所と座標で返します。

"Location":
{
"formatted_address": "Las Vegas, NV, USA",
"lat": 36.1699412,
"lng": -115.1398296
}

数字

ユーザーの発話から数字への言及をキャプチャします。例:16人用の部屋を予約する。この例では、値16が数字として返されます。ボットプラットフォームは、スペルアウトされた数字や、1Mなどの標準的な略語も認識します。連続した数字の単語が1つの数字にまとめられます。例として、いち、に、さんは123になります。メモ:最大許容桁数は18桁です。

"entities":
{
"NumberEntity": 16
}

個人名

ユーザーの発話から個人のフルネームをキャプチャします。例として、「ジョン・スミス宛にメールを送信する」では、 ジョン・スミスが個人名として特定されます。Kore.ai Botプラットフォームは、ユーザーの発話の中の最初の単語が大文字であればファーストネームであり、次の2つの単語はキャメルケースで名前の一部として表示されると想定しています。例として、ユーザーの発話が「I want to talk to John Smith(私はジョン・スミスと話したい)」の場合、John Smithを名前として認識します。「I want to talk to John smith」 という発話があった場合、名前としては Johnだけを認識します。

"entities":
{
"PersonName": "John Smith"
}

パーセンテージ

ユーザーの発話からパーセント値をキャプチャします。例として、「The chance of rain today is more than 60 percent(今日の雨の確率は60%以上です)」のように、60はパーセンテージで、0.0~1.0の範囲で0.6のフロート値として返されます。パーセント、パーセンテージ、および%記号がサポートされています。

"entities":
{
"PercentageEntity": 0.6
}

電話番号

10桁または12桁の標準的な電話番号をキャプチャします。例として、「4075551212に電話してください」の場合、電話番号の値は 4075551212となり、数字として返されます。

"entities":
{
"PhoneNumber": "+4075551212"
}

数量

ユーザーの発話から、以下の詳細を含む発話の量をキャプチャします。

  • 数量のタイプ(長さ、面積、体積など)。
  • 測定単位(キロメートル、平方キロメートル、立方メートルなど)。
  • 金額(100、500、1.5など)。

数量のエンティティタイプを選択する際には、数量の単位タイプとデフォルトの測定値も選択する必要があります。例として、体積をキャプチャする場合、 単位元のタイプ体積デフォルトの単位キロリットルを選択します。つまり、ユーザーの発話が「500mlの水を加える」の場合、次のようなJSONが返されます。

"Quantity":
{
"unit": "millilitre",
"amount": 500,
"type": "volume",
"source": "500 ml"
}

ボットプラットフォームは、これらの数量や単位を、標準的な略語やコード、記号で識別します。

タイプ 単位
長さ
  • キロメートル
  • メートル
  • センチメートル
  • インチ
  • フィート
  • ヤード
  • マイル
面積
  • 平方キロメートル
  • 平方メートル
  • 平方マイル
  • 平方ヤード
  • 平方フィート
体積
  • 立方メートル
  • リットル
  • ミリリットル
  • ガロン
  • オンス
時間
  • 時間
  • ミリ秒
速度
  • メートル/秒
  • km/時
  • マイル/時
圧力
  • パスカル
  • 気圧
  • バール
エネルギー
  • カロリー
  • キロカロリー
  • ウォット時
  • キロワット時
メモリ
  • ビット
  • バイト
  • キロバイト
  • メガバイト
  • テラバイト
  • ギガバイト
重量
  • トン
  • キログラム
  • グラム
  • ポンド
  • オンス
角度
期間
  • 10年
  • 世紀
温度
  • 摂氏
  • 華氏

文字列

説明エンティティタイプ と同じ作品ですが、一文に限定されています。トレーニングされていない限り、ユーザーの発話に対して文字列エンティティの検証を行うことはありません。したがって、このエンティティタイプは、プラットフォームでサポートされているどのエンティティタイプでも要件が満たされない場合の最終手段として使用されます。

時間

ユーザーの発話で時間をキャプチャします。例として、「アラームを午前6時にセットする」の場合、時間の値はISO 8601時間形式でhh:mm:ss.sZDとして返されます。以下のような明示的意味が認識されています。

    • am、a.m.、AM、pm、p.m.、PM、P.M.
    • 数字を綴り。例:6 AM。
    • 朝と夜。例:夕方の6時。
"entities":
{
"TimeZoneEntity": "-06:00"
}

タイムゾーン

あるタイムゾーン。東部標準時は、タイムゾーンをGMTに変換し、その結果の値を保存します。例として、ESTと入力すると、-6:00と保存されます。ボットプラットフォームは標準タイムゾーンを認識しています。

"entities":
{
"URLEntity": "www.kore.ai"
}

URL

発話からWebのURLをキャプチャします。ボットは、あらゆる標準形式のURLを認識します。例として、「私たちのWebサイト: www.kore.ai 訪問してください。」URLの値を文字列で返します。

"entities": { "URLEntity": "www.kore.ai" }

郵便番号

ユーザーの発話から米国の郵便番号をキャプチャします。例:「32746の天気はどうですか?郵便番号の値は32746で、文字列として返されます。

"entities": { "ZipcodeEntity": "32746" }
メニュー