엔티티 유형은 인식 및 시스템 성능을 향상하기 위해 사용자 발화에서 예상되는 데이터 유형을 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 채널에서만 지원됩니다.

도시

뉴옥의 온도는 몇 도입니까와 같은 발화에서 도시 이름입니다. 봇은 문자열 형태로 인구 5,000명이 넘는 모든 도시 이름을 캡처합니다. 모든 도시 세부 정보는 www.geonames.org를 사용합니다.

참고: 도시 이름은 현재 명확하지 않지만 인구에 따라 우선순위가 정해집니다. 따라서 사용자 발화가 Portland로 구성된 경우 Portland OR은 Portland 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 국가의 세 자리 코드 USA, GBR 또는 IND
alpha2 국가의 두 자리 코드 US, GB 또는 IN
localName 국가 이름 미국, 영국 또는 인도
shortName 짧은 이름 미국, 영국 또는 인도
numericalCode 국제 연합, 국가에 사용된 숫자 코드 M49 840, 826 또는 356

회사 이름 또는 조직 이름

Amazon의 가장 가까운 지점과 같은 사용자 발화에서 회사 이름을 캡처합니다. 회사 이름 값이 문자열로 반환됩니다(Amazon). 지원되는 회사 목록을 참조하세요. 회사 이름 말뭉치에는 언어별 이름이 포함됩니다. 주식 이름, 등록 이름 등과 같은 회사 이름의 변형은 모두 공통 이름에 매핑됩니다. 예: Amazon, Amazon.com, Amazon Inc는 따라서 모두 단일 회사로 인식됩니다. 지원되는 회사와는 별개로 봇은 항상 대문자로 시작하며 그 다음에 회사 유형으로 접미사가 나옵니다. Inc, Incorporated, Corp, Corporation, Group, Ltd, Limited, Co, Company, LP, LLP, LLLP, LLC, PLLC.

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

색상

사용자 발화에서 색상 이름을 캡처합니다. 예: 상태를 녹색으로 설정합니다. 색상의 값을 문자열 Green으로 반환합니다. 지원되는 색상 목록을 참조하세요.

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

통화

사용자 발화에서 금액과 통화 유형을 캡처합니다. 예: 이 핸드백의 가격은 200달러입니다. 200은 금액이고 USD는 통화입니다. 이 엔티티 유형은 다음을 인식합니다.

  • 전체 통화 이름(달러, 루피, 인도 국가 루피, 디나르)
  • 통화 기호($, S$, £)
  • 표준 통화 약어(INR, USD)
  • 통화에 일반적으로 사용되는 속어(Buck, Nickel, Dime, Quid, Loonie, Toonie, Benjamin, Jackson, Hamilton.)
참고: 통화 이름은 이전 사용법에 따라 명확하지 않습니다. 따라서 사용자 발화가 처음에 달러로 구성되면 인기 때문에 USD가 SGD(싱가포르 달러)보다 높은 순위를 차지합니다. 그러나 사용자가 명시적으로 SGD를 언급하면 봇은 그 위치에서부터 달러를 SGD로 생각합니다.
"CurrencyEntity":[
{
"code": "SGD",
"amount": 20
}

사용자 정의

정규식을 정의하여 표시된 정규식 필드에서 사용자 입력을 검증합니다. 예: 다음을 입력: [a-zA-Z]{3}[-]\d{4}반환된 샘플 응답: {"regex":"NLP-1234"} 자세한 내용은 장규식을 참조하세요.

복합

복합 엔티티는 하나의 엔티티에서 여러 엔티티 값을 캡처하는 데 사용됩니다. 예: 자동차 판매에 대한 판매 문의를 고려해 보세요. 문의는 일반적으로 다음과 같은 형식일 수 있습니다. 테슬라 모델 S 2018 모델에 관심이 있습니다 또는 빨간색 테슬라 2010 모델 가격은 얼마입니까 또는 테슬라 모델 S에 대해 알려주세요. 보시다시피 봇은 이러한 문의에 응답하려면 제조사, 모델, 연도, 색상과 같은 세부 정보의 조합을 처리해야 합니다. 이러한 시나리오는 복합 엔티티 유형으로 처리됩니다. 복합 엔티티 유형을 자세히 알아보려면 여기를 참조하세요.

날짜

사용자 발화에서 날짜 언급을 캡처합니다. 예: 10월 10일 항공편 예약하기 날짜를 ISO8601 날짜 형식인 YYYY-MM-DD로 반환합니다. 봇은 다음과 같이 날짜를 표현하는 모든 가능한 방법과 형식을 인식합니다.

  • YYYY-MM-DD, DD-MM-YYYY, DD-MM-YY, YYYY/MM/DD, DD/MM/YYYY, DD/MM/YY, YYYY.MM.DD, DD.MM.YYYY, DD.MM.YY와 같은 형식화된 날짜.
  • 20180518 및 09102013의 YMD 및 DMY와 같은 모든 숫자 날짜.
  • YYYY MM DD. dd/mm yyyy, dd-mm, dd-mm-yyyy, dd-mm-yy, mm-dd, dd / mm / yyyy, dd . mm . yyyy, ddmm yyyy, mmdd.와 같은 공간 구분 기호가 있는 형식화된 날짜.
  • yyyy/dd/monthNames or yyyy-dd-monthNames or dd.monthNames.yyyy 2018/28/Dec or 2018-28-Dec or 28.Dec.2018과 같은 명명된 월.
  • 오늘, 내일, 어제, 오늘, 오늘 밤, 오늘 저녁, 오늘 오후, 모레, 그제, 어제 아침, 내일 밤, 내일 1시간, 3일 전, 24시간 전, 3일 후, 2개월 후, 작년 다음 달 오늘, 다음 6월, 다음 해 6월 26일, 일주일 후, 2주 전, 이번 달 22일, 다음 달 오늘, 다음 달 25일, 이번 달 30일, 이번 달 27일, 세 번째 달, 이번 달 2일과 같이 지금과 관련된 절대적인 날짜
  • 성탄절, 성탄절 전야, 올해 현충일, 2018년 추수감사절, 지난 추수감사절, 추수감사절 다음 주, 유월절, 새해 전날, 성탄절 다음날과 같은 명명된 날짜.
  • 내일부터 2일 후, 7월 4일 이후 3일, 오늘부터 3일 후, 오늘부터 5일 후, 2일 더, 2일 후와 같은 절대적인 날에서 상대적인 날짜.
  • 토요일, 다가오는 월요일, 일요일, 토요일, 다음 주말, 새해 첫 번째 토요일, 새해 첫 번째 일요일, 다음 달 첫 번째 토요일, 내년 첫 번째 일요일과 같은 평일.
"entities":
{
"DateEntity": "1982-04-13"
}

날짜 시간

사용자 발화에서 시간과 함께 날짜 그룹을 캡처합니다. 예: 10월 10일 오후 6시에 항공편 예약하기 날짜 시간 값을 ISO8601 날짜 형식인 YYYYY-MM-DDThh: mm: ss.sTZD로 반환합니다. 봇은 날짜와 시간을 표현하는 모든 방법과 형식을 인식합니다.

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

날짜 기간

사용자 입력에서 시작일과 종료일을 캡처합니다. 예: 5월 5일부터 5일 동안 호텔을 예약합니다. 사용자 입력에 날짜 중 하나 또는 둘 다 포함되지 않은 경우 봇은 사용자에게 필요한 입력을 요청하는 메시지를 표시합니다.

참고: 다른 엔티티와 달리 날짜 기간 엔티티를 사용하면 사용자 및 오류 프롬프트의 두 세트를 입력할 수 있습니다.

  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.entities와 같은 session variables. context.를 입력하고 컨텍스트 개체 유형을 선택합니다.
    • 표시 이름 키 – 최종 사용자에게 표시된 이름입니다.
    • 값 키 – 목록에 있는 항목 값을 나타내는 키입니다.
    • 동의어 키 – 키를 위한 동의어를 하나 이상 입력합니다(자세한 내용은 여기를 클릭하세요).
  • 자동 수정– 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는 해당 문장에서 사용되지 않는 단어를 나타냅니다.
      • 한 문장에서 여러 단어가 사용된 경우 쉼표로 구분된 값으로 입력해야 합니다.
    • 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. 응답 매핑에 따라 반환된 값을 사용합니다.
    • 원격 시스템에서 단일 값이 반환되면 해당 값이 엔티티에 할당됩니다.
    • 원격 시스템에서 여러 값이 반환되면 플랫폼은 이 목록에서 엔티티를 추출합니다.
      • 일치 항목이 발견되면 엔티티에 할당됩니다.
      • 일치 항목이 없으면 사용자에게 선택할 수 있는 값 목록을 표시합니다. 사용자 입력이 목록의 항목 중 하나와 일치하는 경우 엔티티에 할당됩니다. 사용자 입력이 항목과 일치하지 않으면 입력은 컨텍스트 개체에서 업데이트되고 원격 서비스에 대한 다른 호출이 시작됩니다.
      • 하나 이상의 일치 항목이 발견되면 모호한 것으로 간주되며 사용자에게 선택 항목을 표시합니다. 사용자 입력이 목록의 항목 중 하나와 일치하는 경우 엔티티에 할당됩니다. 사용자 입력이 항목과 일치하지 않으면 입력은 컨텍스트 개체에서 업데이트되고 원격 서비스에 대한 다른 호출이 시작됩니다.
    • 엔티티가 다중 항목 엔티티로 표시된 경우 원격 서버에서 반환된 값 목록이 다시 평가되고 모든 유효한(엔티티 유형별로 유효한) 목록이 엔티티에 대한 값으로 할당됩니다. 유효하지 않은 목록 항목은 삭제됩니다.
  4. 다음 예외를 처리합니다.
    • 서비스 호출의 응답이 비어있거나 예상되는 형식이 아닌 경우 엔티티의 사용자 프롬프트 설정은 사용자에게 입력을 요청하는 데 사용됩니다.
    • 모호한 경우, 예를 들어 하나의 값을 예상했지만 서비스가 여러 값을 반환한 경우 사용자에게 서비스에서 반환한 값 목록 중 하나를 선택하라는 메시지가 표시됩니다.

위치

사용자 발화에서 시/도의 세부 정보를 캡처합니다. 예: 라스베이거스의 벨라지오에서 엔티티는 라스베이거스의 위치 세부 정보를 캡처합니다. 엔티티는 주소 및 좌표와 함께 개체의 위치를 JSON 응답으로 반환합니다.

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

숫자

사용자 발화에서 숫자를 캡처합니다. 예: 16명을 위한 방을 예약합니다. 이 예에서는 값 16이 숫자로 반환됩니다. 봇 플랫폼은 철자로 표기된 숫자와 1M과 같은 표준 약어를 인식합니다. 연속된 수의 단어는 하나의 숫자로 결합됩니다. 예: 1 2 3은 123이 됩니다. 참고: 허용되는 최대 자릿수는 18입니다.

"entities":
{
"NumberEntity": 16
}

사람 이름

사용자 발화에서 사람의 전체 이름을 캡처합니다. 예: John Smith에게 이메일 전송. John Smith는 사람 이름으로 식별됩니다. Kore.ai 봇 플랫폼은 사용자 발화에서 대문자로 된 첫 번째 단어를 이름으로 가정하고 낙타 대문자에서 다음 두 단어를 이름의 일부로 가정합니다. 예: 사용자 발화가 John Smith와 통화하고 싶습니다. John Smith는 이름으로 인식합니다. 사용자 발화가 John smith와 바로 통화하고 싶습니다.인 경우 John만 이름으로 인식합니다.

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

백분율

사용자 발화에서 백분율 값을 캡처합니다. 예: 오늘의 비 올 확률은 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"
}

봇 플랫폼은 이러한 모든 수량을 식별하고 표준 약어, 코드, 기호와 함께 결합합니다.

유형 단위
길이
  • 킬로미터
  • 미터
  • 센티미터
  • 인치
  • 피트
  • 야드
  • 마일
면적
  • 제곱킬로미터
  • 제곱미터
  • 제곱마일
  • 제곱야드
  • 제곱피트
부피
  • 세제곱미터
  • 리터
  • 밀리미터
  • 갤런
  • 온스
시간
  • 밀리초
속도
  • 미터/초
  • 킬로미터/시
  • 마일/시
압력
  • 파스칼
  • 기압
에너지
  • 칼로리
  • 킬로칼로리
  • 와트시
  • 킬로와트시
메모리
  • 비트
  • 바이트
  • 킬로바이트
  • 메가바이트
  • 테라바이트
  • 기가바이트
무게
  • 킬로그램
  • 그램
  • 파운드
  • 온스
각도
나이
  • 10년
  • 100년
온도
  • 섭씨
  • 화씨

문자열

설명 엔티티 유형과 동일하게 작동하지만 한 문장으로 제한됩니다. 문자열 엔티티의 사용자 발화가 학습되지 않은 경우 유효성 검사는 수행되지 않습니다. 따라서 이 엔티티 유형은 요구 사항이 플랫폼 지원 엔티티 유형 중 어느 것과도 충족되지 않을 때 마지막 수단으로 사용됩니다.

시간

사용자 발화에서 시간을 캡처합니다. 예: 알람을 오전 6시로 설정하고, 시간 값을 ISO 8601 시간 형식인 hh:mm:ss.sZD로 반환합니다. 다음 표시를 인식합니다.

    • am, a.m., AM, pm, p.m., PM, P.M.
    • 숫자는 철자로 적습니다. 예: 오전 6시.
    • 아침 및 저녁입니다. 예: 저녁 6시.
"entities":
{
"TimeEntity": "T06:00:00+05:30"
}

시간대

시간대입니다. 동부 표준시는 시간대를 GMT로 변환하고 결과 값을 저장합니다. 예: EST를 입력하면 -6:00으로 저장됩니다. 봇 플랫폼은 표준 시간대를 인식합니다.

"entities":
{
"TimeZoneEntity": "-06:00"
}

URL

발화에서 웹 URL을 캡처합니다. 봇은 모든 표준 형식의 URL을 인식합니다. 예: 당사 웹 사이트(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" }

The Entity Type provides the NLP Interpreter with the expected type of data from a user utterance to enhance recognition and system performance.  The Kore.ai NLP interpreter extracts the entity from the user utterance. If the user does not enter a required entity, you can define a Bot Response node to prompt the user to provide the entity. For more information, refer to Working with the Bot Response Node.

You can also define entity rules to validate user input, refer here for details.

The following Entity Types are specified for an entity node.

Address Composite Person Name
Airport Date Percentage
Attachment Date Period Phone Number
Email Date Time Quantity
City Description String
Country List of Items (enumerated) Time
Company List of items (lookup) Time Zone
Color Location URL
Custom Number Zip Code
Currency

Address

Captures addresses written in the standard US and Germany address formats. For example, 200 E Main ST Pheonix AZ 85123 USA. The complete address is captured as a string: “200 E Main ST Pheonix AZ 85123 USA.”

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

For other country addresses, the platform captures strings that end with a recognizable city or country name. For more details, refer to the City entity.

Post v8.1, the full formatted address for the Address entity can be accessed from the context object. The context object would have the following format and the individual field values can be obtained:

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

Note that all the fields need not be available for all scenarios, it depends upon the address type based on the country.

Airport

Captures airport details with the following inputs:

  • City name
  • Airport name
  • IATA code
  • ICAO
  • Abbreviations of US cities.

Airport details are returned as a JSON entity with the elements shown below:

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

We use https://github.com/opentraveldata/opentraveldata for all the airport details.

Input Description Examples
City
name
Identifies the airport name from the city name in the user utterance. If the city has multiple airports, shows the list of airports to choose from. Utterance: Flying to Los Angeles
Response: The airport you entered seems to be ambiguous. Tell me the option you would like to choose.
<Names of five airports in Los Angeles>
Airport name Identifies the airport name from full airport name or partial name with the prominent keyword. Utterance: Flying to Heathrow
Captured: London Heathrow Airport with the necessary details in the bot.
IATA Identifies airport names by the International Air Transport Association (IATA) codes. Utterance: Flying to LHR
Captured: Details of the London Heathrow Airport
ICAO Identifies International Civil Aviation Organization (ICAO) codes. Utterance: Flying to EGLL
Captured: Details of the London Heathrow Airport
Abbreviations of cities Identifies city abbreviations that are listed in www.geonames.org Utterance: Flying to LA
Response: The airport you entered seems to be ambiguous. Tell me the option you would like to choose.
<Names of five airports in LA>

Attachment (Image / File)

The user can attach a file, image, or email up to 25 MB.

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

Note: Currently, the attachment entity is supported only for the following channels – Facebook, Twitter, Web/Mobile, and Slack.

City

The name of a city in an utterance such as What is the temperature in New York. The bot captures any city name with over 5000 population in the form of a string. We use www.geonames.org for all the city details.

Note: City names are not disambiguated currently but prioritized based on their population. So, if the user utterances consist of Portland, Portland OR ranks higher than Portland ME.
"entities":
{
"CityEntity": "New York"
}

Country

Captures the name of a Country from user utterance such as What is the capital of the United States of America.

Country details are returned as a JSON entity with the elements shown below:

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

See here for a complete list of countries https://www.nationsonline.org/oneworld/country_code_list.htm.

Element Description Examples
alpha3 The three-letter code of the country USA, GBR, or IND
alpha2 The two-letter code for the country US, GB, or IN
localName Name of the country United States of America, United Kingdom, or India
shortName Short name United States, United Kingdom, or India
numericalCode United Nations, used numerical code M49 for countries 840, 826, or 356

Company Name or Organization Name

Captures the name of a company from user utterances such as the Nearest branch for Amazon. The value for Company Name is returned (Amazon) as a string. See Supported Companies list.

The company name corpus includes language-specific names. Variations of a company’s name like stock name, registered name, etc. are all mapped to a common name, thus ensuring that, for example, Amazon, Amazon.com, Amazon Inc are all recognized as a single company.

Apart from the supported companies, the bot recognizes the words starting with a capital letter and followed by these suffixes as a company type: Inc, Incorporated, Corp, Corporation, Group, Ltd, Limited, Co, Company, LP, LLP, LLLP, LLC, PLLC.

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

Color

Captures the name of the color from a user utterance. For example, Set the status to Green. Returns a value for the Color as Green as a string. See Supported Colors list.

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

Currency

Captures the amount and type of currency from the user utterance. For example, This handbag is priced at 200 dollars where 200 is the amount and USD is the currency.

This entity type recognizes:

  • Full currency names (Dollar, Rupees, Indian National Rupees, Dinar)
  • Currency symbols ($, S$, £)
  • Standard currency abbreviations (INR, USD)
  • Commonly used slang for currencies (Buck, Nickel, Dime, Quid, Loonie, Toonie, Benjamin, Jackson, Hamilton.)
Note: Currency names are not disambiguated based on your previous usage. So, if the user utterance consists of a dollar first time, USD might rank higher than SGD (Singapore Dollar) because of the popularity. But if the user explicitly mentions SGD, the bot continues to consider SGD for the dollar from there.
"CurrencyEntity":[
{
"code": "SGD",
"amount": 20
}

Custom

Define a regular expression to validate the user input in the Regex field displayed.

For example, enter: [a-zA-Z]{3}[-]\d{4}
to return a sample response as: {"regex":"NLP-1234"}

For more information, refer to Regex Expressions.

Composite

Composite entities are used to capture multiple entity values in one entity.

For example, consider the sales inquiries to car sales. Typical queries can be of the form: I am interested in the Tesla Model S 2018 model or What would a red Tesla 2010 model cost or Tell me about Tesla Model S.

As you can see, the bot typically needs to process a combination of details like Make, Model, Year, and Color to respond to those queries.

These scenarios are taken care of by the Composite Entity Type. Refer here to know more about Composite Entity Types.

Date

Captures a date mention from a user utterance. For example, Book a flight on the 10th of October returns the value for Date in ISO8601 date format is YYYY-MM-DD.

The bot recognizes all possible ways and formats of dates, like:

  • Formatted dates like YYYY-MM-DD, DD-MM-YYYY, DD-MM-YY, YYYY/MM/DD, DD/MM/YYYY, DD/MM/YY, YYYY.MM.DD, DD.MM.YYYY, DD.MM.YY.
  • All number dates like YMD and DMY for 20180518 and 09102013.
  • Formatted dates with space separators like YYYY MM DD. dd/mm yyyy, dd-mm, dd-mm-yyyy, dd-mm-yy, mm-dd, dd / mm / yyyy, dd . mm . yyyy, ddmm yyyy, mmdd.
  • Named months like yyyy/dd/monthNames or yyyy-dd-monthNames or dd.monthNames.yyyy 2018/28/Dec or 2018-28-Dec or 28.Dec.2018.
  • Absolute dates related to now like today, tomorrow, yesterday, tonight, this evening, this afternoon, day after tomorrow, the day before yesterday, yesterday morning, tomorrow night, tomorrow for 1 hour, 3 days ago, 24 hours ago, in 3 days, 2 months hence, this day next month last year, next June, June 26 of the year after next, in a week, 2 weeks ago, 22nd of this month, Next month this day, Next 25th, This month 30th, 27th of this month, 3rdmonth, 2nd of the month.
  • Named dates like Christmas Day, Christmas Eve, Memorial Day this year, Thanksgiving 2018, last Thanksgiving, week after Thanksgiving, Passover, a day before the new year, day after Christmas.
  • Relative dates from absolute like 2 more days from tomorrow, 3 days after July 4, 3 days from now, 5days from today, Need two more days, in 2 days.
  • Weekdays like Saturday, coming Monday, Sunday, Saturday, next weekend, First Saturday of the upcoming year, First Sunday of the upcoming month, first Saturday of next month, First Sunday of next year.
"entities":
{
"DateEntity": "1982-04-13"
}

Date Time

Captures a date grouping along with time in a user utterance.

For example, Book a flight on the 10 th of October at 6 pm, returns the value for Date Time in ISO8601 date format as YYYYY-MM-DDThh: mm: ss.sTZD.

The bot recognizes all possible ways and formats to express date and time.

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

Date Period

Captures start date and end date from the user input. For example, Book the hotel for five days starting May 5. If the user input does not include one or both of the dates, the bot prompts the user to provide the necessary input.

Note: Unlike other entities, Date Period entities allow you to enter two sets of user and errors prompts:

  1. User and Error Prompt for From Date.
  2. User and Error Prompt for To Date.

The following table lists how the entity works in different scenarios:

Input Type Bot Behaviour
Does not include both From and To dates [For example, Book hotel]. Shows User Prompts for From Date to the user
Includes either From or To date [For example, Book a hotel from 15th Aug] Shows User Prompts for From Date or User Prompts for To Date based on which is missing from the input
Includes implicit reference to From Date and duration [For example, Book a hotel for five days starting from Tuesday] Determines both dates
Includes From Date and duration [For example, Book a hotel for five days from 15th Nov] Determines both dates
Includes From Date and To Date [For example, Book a hotel from 5th to 10th] Determines both dates

Description

Captures statements or paragraphs of text from the user utterance. The value for Description is returned as a string and can include wild characters.

Note: Multi-Item is not available for this entity type.
"entities":
{
"Description": "text here"
}

Email

Captures email address from the utterance. For example, “Send an email to help@koremessenger.com” returns the value of Email as a string.

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

List of Items (enumerated)

Display a list of values to the end-user. To define the list type,

  1. Click the Settings icon next to the List of items (enumerated) Type field.
  2. On the List of items (enumerated) Setup page, define one of the following list types.
    • Static List
    • List from Context

This feature is not fully supported in all languages Click here for details.

  • Static List – Enter the Display Name, Value, and Synonyms for the key. Set up Auto-Correction value for the user inputs.
  • List from Context – Define a context variable to use for this item in the following fields:
    • Specify Context Variable to Use – Defines the context object type. For example, EnterpriseContext, BotContext, UserContexts, or session variables such as context.entities. Entercontext.; select a context object type.
    • Display Name Key – The name displayed to the end-user.
    • Value Key – The key that represents the value of the item in the list.
    • Synonyms Key – Enter one or more synonyms for the key (Click here for details).
  • Auto-Correction– Set up auto-correct thresholds for the LOV entity type so that it not only accepts exact matches but also closest utterances with small variations. For example, let us consider that a list value called Apple for which a typo such as appel is accepted based on your threshold settings. The Auto-Correction setting works in the following way:
    1. The bot identifies the number of letters to be changed (inserts, deletes, or replaces) in user input to match it to a value in the list.
    2. The number is converted to a percentage of the total number of letters in the input.
    3. The list value with the highest similarity is considered as input if the score is greater than or equal to the configured percentage.
    Spell correction does not apply to dictionary words or alphanumeric inputs.

Post v7.1, the following keys are added to the context object for the below-mentioned usage:

  • ambiguousEntityValues: This key contains values when the user input for a multi-item entity is ambiguous. Using this, you can check if any ambiguous values were identified and construct the flow to resolve the ambiguity. This key is reset if the entity is re-prompted during the dialog. The values are an array of JSON objects, each object containing title, value, and synonym.
  • synonymsUsed: This key holds the synonym used to identify the item. You can use this value to personalize the bot response accordingly if needed. This key is reset if the entity is re-prompted during the dialog.

You can also choose to present the list of values as part of the entity prompt to the user. For this, you need to set the Display List of Values to ‘Yes, use channel specific standard formatting for default messages and show available list of values to end user‘. This option works only with the Plain Text prompts. This list will not be presented if JavaScript based templates are used as prompts.


Note: The ‘Display List of Values’ option is available only for the List of Items (enum). It is NOT available for List of Items (lookup)

.

List of Items (lookup)

Display a list of values to the end-user. To define the lookup list,

  1. Click the Settings icon next to the List of items (lookup) Type field.
  2. On the List of items (lookup) Setup page, define one of the following list types.
    • Static List
    • Remote List

This feature is not fully supported in all languages. Click here for details.

Static List: Use Static List to define the entity values as one of the following list types:

  • JSON tab – Enter a list of key/value pairs and synonyms (Click here for more). For example:
    [{
    "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"]
    }
    ]
  • Editor tab – Enter the Display Name, Value, and Synonyms for the key.
  • Upload File – Click Upload File to locate a JSON formatted file list or a .csv file formatted list of key/value pairs. For example,
    CSV File Format

Post v7.1, the following keys are added to the context object for the below-mentioned usage:

  • ambiguousEntityValues: This key contains values when the user input for a multi-item entity is ambiguous. Using this, you can check if any ambiguous values were identified and construct the flow to resolve the ambiguity. This key is reset if the entity is re-prompted during the dialog. The values are an array of JSON objects, each object containing title, value, and synonym.
  • synonymsUsed: This key holds the synonym used to identify the item. You can use this value to personalize the bot response accordingly if needed. This key is reset if the entity is re-prompted during the dialog.

Remote List

Remote List is used when the entity extraction needs to be done by an external service due to security restrictions or any other reasons. This can also be used to handle large data.

The steps involved are as follows:

  1. Define the Service Call: You can set up a service call similar to how a service node is currently set up. You can set headers, body (for POST), etc,. (Click here for more).
    The external service invoked must have a provision to accept and handle the user utterance data that the platform populates. The context.inputData object with the following fields is used for that purpose:

    • input – An array containing the list of inputs received from the user for the current dialog.
    • usedUp – Index form of words that are already used for other entities or intents. The format is x-y-z where
      • x represents the sentence/utterance index (0 till n).
      • y represents the start index of the used up word within the x utterance.
      • z represents the end index of the used up word.
      • sentenceindex-x-x represents no used up words in that sentence.
      • If multiple words are used-up in a single sentence, these should be entered as comma-separated values.
    • isMultiItem – Flag should be set if multiple values are expected from the service call.
        "inputData": {
          "input": [
            "get account"
          ],
          "usedUp": [
            "0-x-x"
          ],
          "isMultiItem": false
        }
  2. Map Response: You can map a response from the service call with the following fields:
    • The context variable that holds the response data from the service call. This must be in an array format.
    • Display Key Name – Name used to refer to this field; this name is used when interacting with the user. For example, in a disambiguation scenario. This can be accessed using {{context.entities.<entity-name>.title}}.
    • Value Key – The field name in the response body from the service call that holds the value, the entity is assigned this value. This can be accessed using {{context.entities.<entity-name>.value}}.
    • Synonyms Key – The field containing the synonyms for this field, if any. This is the value that the user refers to. For example, in response to the disambiguation question. This can be accessed using {{context.entities.<entity-name>.synonym}}.
    • Matched Word Index – To indicate the words in the inputData that were used for entity extraction (in the same format as the usedUp value in the context.inputData object). This is used by the platform to mark the word as used in the user utterance.

Flow: The platform will:

  1. Populate the context.inputData with the values mentioned above.
  2. Make the service call to fetch the entity values passing the values as configured in the service call.
  3. Use the values returned as per Response Mapping:
    • If a single value is returned by the remote system, then that value is assigned to the entity.
    • If multiple values are returned by the remote system, the platform extracts the entity from this list.
      • If a match is found, it is assigned to the entity.
      • If no match is found, the user is presented with a list of values to choose from. If the user input matches with any of the items in the list, then it is assigned to the entity. If the user input does not match any of the items, then the input is updated in the context object and another call to the remote service is initiated.
      • If one or more matches are found, then it is considered ambiguous and the user is presented with the choices.  If the user input matches with any of the items in the list, then it is assigned to the entity. If the user input does not match any of the items, then the input is updated in the context object and another call to the remote service is initiated.
    • If the entity is marked as a multi-item entity, then the list of values returned from the remote server is re-evaluated and all valid (valid as per entity type) list items are assigned as values for the entity. Invalid list items are discarded.
  4. Handle the following exceptions:
    • In case the response from the service call is empty or not in the expected format, the User Prompt settings for the entity are used to prompt the user for input.
    • In case of ambiguity, for example, when the service returns multiple values when one is expected, the user is prompted to choose one from the list of values returned by the service.

Location

Captures the location details of a city or state from a user utterance.

For example, in Bellagio, Las Vegas the entity captures the location details of Las Vegas. The entity returns the location of the object with address and coordinates as a JSON response.

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

Number

Captures a number from a user utterance. For example, Book a room for 16 people. In this example, the value 16 is returned as the number.

The Bots platform recognizes the spelled-out numbers and also standard abbreviations such as 1M. A consecutive number of words are combined into one number. For example, one two three becomes 123.

Note: The maximum number of digits allowed is 18.

"entities":
{
"NumberEntity": 16
}

Person Name

Captures the full name of a person from a user utterance.

For example, Send an email to John Smith, where John Smith is identified as Person Name.

Kore.ai Bot platform assumes that the first word in the user utterance with capital letters as the first name along and the next two words in camel case as a part of the name.

For example, if the user utterance is I want to talk to John Smith, it recognizes John Smith as the name. If the utterance is I want to talk to John smith immediately it recognizes only John as the name.

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

Percentage

Captures the percentage value from a user utterance.

For example, The chance of rain today is more than 60 percent, where 60 is the percentage and is returned as a float value of 0.6 in a range of (0.0-1.0). It supports the percent, percentage, and the % sign.

"entities":
{
"PercentageEntity": 0.6
}

Phone Number

Captures standard 10-digit or 12-digit telephone numbers.

For example, Please call 4075551212, the value for the Phone Number is 4075551212 and is returned as a number.

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

Quantity

Captures the quantity in an utterance with the following details from the user utterance:

  • Type of quantity (length, area, volume, etc.).
  • Unit of measurement (kilometers, square kilometer, cubic meter, etc.).
  • The amount (100, 500, 1.5, etc.).

When you select the Quantity entity type, you also need to select a unit type for the quantity and the default measure.

For example, for capturing volumes, select Volume as the Unity Type and Milliliters as the Default Unit. So, if a user utterance is Add 500 ml of water, the following JSON is returned:

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

Bots platform identifies all these quantities and unites along with the standard abbreviations, codes, and symbols.

Type Units
Length
  • kilometer
  • meter
  • centimeter
  • inch
  • foot
  • yard
  • mile
Area
  • square kilometer
  • square meter
  • square mile
  • square yard
  • square foot
Volume
  • cubic meter
  • liter
  • milliliter
  • gallon
  • ounce
Time
  • hour
  • minute
  • second
  • millisecond
Speed
  • meters per second
  • kilometers per hour
  • miles per hour
Pressure
  • pascal
  • atmosphere
  • bar
Energy
  • calorie
  • kilocalorie
  • watt-hour
  • kilowatt-hour
Memory
  • bit
  • byte
  • kilobyte
  • megabyte
  • terabyte
  • gigabyte
Weight
  • ton
  • kilogram
  • gram
  • pound
  • ounce
Angle
  • degree
Age
  • day
  • week
  • month
  • year
  • decade
  • century
Temperature
  • celsius
  • fahrenheit

String

Works identical to the Description entity type but limited to one sentence.

There won’t be any validations done on the user utterance for string entities unless trained. Hence this entity type is used as a last resort when your requirement is not met with any of the platform supported entity types.

Time

Capture time in a user utterance. For example, Set my alarm for 6 am, return the value of Time in ISO 8601 time format as hh:mm:ss.sZD.
It recognizes the following denotations:

    • am, a.m., AM, pm, p.m., PM, P.M.
    • Numbers spelled out. For example, Six AM.
    • Morning and evening. For example, Six in the evening.
"entities":
{
"TimeEntity": "T06:00:00+05:30"
}

Time Zone

A time zone. Eastern Standard Time converts the timezone into GMT and stores the resulting value. For example, if you type EST, it is stored as -6:00. Bots platform recognizes the standard time zones.

"entities":
{
"TimeZoneEntity": "-06:00"
}

URL

Captures a web URL from the utterance. The bot recognizes all standard formats of URLs. For example, Visit our website: www.kore.ai. The value for the URL is returned as a string.

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

Zip Code

Captures a US zip code from the user utterance. For example, What is the weather for 32746? The value for Zip Code is 32746 and is returned as a string.

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