- 인쇄
- PDF
엔티티
- 인쇄
- PDF
Classic/VPC 환경에서 이용 가능합니다.
엔티티는 인명, 기관명, 장소, 날짜와 상품명 등의 단어들이 등록된 사전을 의미합니다. 챗봇은 사용자 발화 속에서 분석한 엔티티를 통해 의도를 파악하고 슬롯을 추출하는데 활용합니다. 같은 의미인 단어를 엔티티로 정의해 두면, 사용자의 발화를 파악하는데 도움이 됩니다. 엔티티를 생성, 수정, 삭제한 후에는 빌드하거나 변경된 설정 적용을 완료해야 챗봇 서비스에 반영됩니다.
- 엔티티의 종류
- 도메인 엔티티: 특정 도메인에서만 자주 사용하는 엔티티. 사전 기반의 사전형 엔티티와 정규식 패턴 기반의 패턴형 엔티티로 나뉨
- 시스템 엔티티: 모든 도메인에서 공통으로 사용 가능한 엔티티. 빌트인으로 제공됨
- API 엔티티: 챗봇 빌더 내부에 직접 엔티티를 정의하지 않고 외부 DB에 저장된 엔티티 데이터를 활용하는 엔티티
도메인 엔티티 생성
도메인 엔티티는 해당 도메인에서 사용될 것으로 예상되는 주요 단어들의 모음입니다. 예를 들어 커피 주문과 관련된 챗봇을 생성한다고 가정했을 때, 커피 주문에 필요한 커피 종류, 커피 사이즈 등을 도메인 엔티티에 등록하여 활용할 수 있습니다.
도메인 엔티티를 등록하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼의 콘솔에서 Services > CLOVA Chatbot > Domain 메뉴를 차례대로 클릭해 주십시오.
- 원하는 도메인의 [빌더 실행하기] 버튼을 클릭하여 챗봇 빌더를 실행해 주십시오.
- 챗봇 빌더에서 엔티티 > [도메인 엔티티] 탭을 클릭해 주십시오.
- [엔티티 생성] 버튼을 클릭해 주십시오.
항목 | 설명 |
---|---|
엔티티 이름 | 엔티티 이름 입력 |
엔티티 유형 | 엔티티 유형 선택
|
민감 정보 보안 설정 | 엔티티에 담길 정보의 민감 정보 여부 설정. 민감한 정보가 담긴 특수한 경우가 아니라면 기본적으로 일반 정보로 설정
|
엔티티 등록 | 엔티티 유형으로 사전형 엔티티를 선택한 경우
|
- 엔티티 정보 입력이 완료되면 [저장] 버튼을 클릭해 주십시오.
<예시> 패턴형 엔티티
<예시> 사전형 엔티티
시스템 엔티티 생성
시스템 엔티티는 모든 도메인에서 공통으로 사용 가능한 엔티티입니다. 네이버 클라우드 플랫폼에서 관리하며, 챗봇 제작자는 등록된 시스템 엔티티 중 사용할 시스템 엔티티만 활성화합니다.
태스크 또는 정규식 질문에서 참조되고 있는 시스템 엔티티는 비활성화할 수 없습니다.
`@SYSTEM_ANY
`@SYSTEM_ANY는 사용자의 자유 발화 중 일부 패턴만을 저장하고 싶은 경우에 사용합니다. 예를 들어 사전형 엔티티 또는 패턴형 엔티티로 정의하기 어려운 사람의 이름이나, 검색어 등을 엔티티로 분석하고자 할 때 활용할 수 있습니다.
- `@SYSTEM_ANY는 정규식 질문에만 입력할 수 있습니다.
- `@SYSTEM_ANY는 어떤 발화든 매칭시킬 수 있습니다. 정규식 문법 중 와일드 카드와 동일합니다.
- `@SYSTEM_ANY만 등록하는 것이 아니라, 등장할 수 있는 다른 패턴을 함께 입력하는 것을 권장합니다.
정규식 질문: `@SYSTEM_ANY [은|는|이|가] [뭐야|뭐니|뭘까요]
- 단, 선택적으로 등장하는 정규식 표현식을 함께 사용하는 경우 `@SYSTEM_ANY에 매칭되는 단어를 보장할 수 없으므로 주의해 주십시오.
정규식 질문 : `@SYSTEM_ANY (을|를) [설명해](줘|주세요)
-> 사용자가 "클로바 챗봇을 설명해줘"라고 입력한 경우 `@SYSTEM_ANY에 "클로바 챗봇을"이 매칭될 수 있습니다.
- `@SYSTEM_ANY만 등록해야 하는 경우, 컨텍스트 또는 조건 등을 설정하여 특정 시점에만 제한적으로 해당 대화가 매칭될 수 있도록 제한하는 것을 권장합니다.
정규식 질문 : `@SYSTEM_ANY
-> `@SYSTEM_ANY만 입력한 정규식 질문을 등록하는 경우, 사용자가 발화를 입력했을 때, 항상 해당 대화에 매칭되어버릴 수 있습니다.
Slot Module
슬롯 모듈은 시나리오를 구축할 때, 가장 자주 쓰는 엔티티들을 공통 모듈로 만들어서 제공하는 엔티티입니다.
- DATE, TIME, PEOPLE, NAME의 4가지 시스템 엔티티를 제공하며, 날짜, 시간, 인원 수, 이름이 포함된 발화가 들어왔을 때, 해당 발화에 포함된 날짜, 시간 및 인원 수의 패턴을 인식하여 시스템 엔티티에 담아 값을 전달해 줍니다.
- 해당 엔티티를 사용할 경우, Date, Time, People, Name과 같은 패턴형 엔티티들을 따로 만들지 않고, 시스템 엔티티에서 필요한 엔티티를 On/Off 하는 형태로 사용할 수 있습니다.
시스템 엔티티 중 DATE, TIME, PEOPLE, NAME은 정규식 질문에 입력할 수 없습니다.
On을 하고 난 뒤에는 반드시 빌드를 해야 해당 엔티티를 사용할 수 있습니다.
슬롯 모듈은 응답 조건에 사용자 변수를 지정하거나 응답 내용에 사용자 변수를 입력하는 데 사용됩니다.
응답 조건 설정의 경우 [사용자 변수] 탭을 선택하고 [ 값 ] 필드에 `@DATE와 같이 일부를 입력하면 슬롯모듈의 리스트가 표시됩니다.
답변에 사용자 변수를 입력하려면 사용자 변수 항목의 값 드롭다운 목록에서 엔티티를 선택합니다. `@DATE와 같이 일부를 입력하면 리스트가 표시됩니다.
DATE
DATE는 '오늘', '크리스마스', '석가탄신일', '1년 후'와 같은 날짜 입력 패턴을 인식하고 해당하는 날짜를 담아서 전달해주는 엔티티입니다.
DATE 값을 시스템 엔티티에 담아서 활용하고 싶은 경우, 해당 엔티티를 On하면 활성화됩니다. DATE를 활성화하면 TIME 엔티티도 동시에 활성화됩니다.
시스템 엔티티인 date와 datetime은 동시에 활성화할 수 없습니다. date를 on하고 datetime을 on하면 date가 off 됩니다.
대화에서 날짜를 처리하는 경우 다음 두 가지 패턴을 생각할 수 있습니다.
- 레스토랑 등에 예약 전화하기 -> analyzed : 미래의 날짜
- 카드 회사에 사용 내역 조회하기 -> alternative: 과거 날짜
레스토랑에 예약 전화를 할 경우에는 보통 미래 날짜를 예약하게 되고, 카드 회사에서 사용내역을 조회할 경우, 과거의 날짜를 조회하게 됩니다.
date 값에는 analyzed 값과 alternative 값 두가지가 있어서, 미래와 과거의 날짜를 모두 유추하여 볼 수 있습니다.
예를 들어 현재 날짜가 2022년 4월 1일이고 '5월 1일'이라고 말하면 다음과 같이 분석됩니다.
- analyzed: 2022-05-01
- alternative: 2021-05-01
현재는, analyzed만 사용 가능합니다. alternative에 대해서는, 향후 사용 가능하게 될 예정입니다.
분석 결과로서 화면에 alternative가 표시되는 경우가 있습니다만, 사양이 변경될 가능성이 있으므로 주의해 주십시오.
attribute | type | description |
---|---|---|
`@{DATE.literal} | string | 사용자가 말한 그대로의 값 ex) 12월 25일 |
`@{DATE.analyzed} | - | 사용자가 확정적인 날짜를 응답하지 않고 일부 정보만 응답한 경우 ex) 25일 → 미래 날짜로 유추하여 반환 ex) 현재 날짜가 2022년 12월 24라면 2022년 12월 25로 분석 |
`@{DATE.analyzed.value} | string | ex) 2020-12-25 |
`@{DATE.analyzed.year} | number | 분석된 년도 값 ex) 2021 |
`@{DATE.analyzed.month} | number | 분석된 달(month) 값 ex) 12 |
`@{DATE.analyzed.day} | number | 분석된 날짜(day) 값 ex) 25 |
`@{DATE.analyzed.dayOfWeek} | number | 분석된 요일 값을 숫자로 표현 ex) 월요일~일요일 → 0~6 ex) 5 → 토요일 |
`@{DATE.analyzed.type} | string | 분석된 값의 type을 표시 |
`@{DATE.analyzed.relative} | - | 현재 날짜 정보와 실제 분석된 날짜 정보 사이의 상대적인 값. analyzed를 기준으로 분석 |
`@{DATE.analyzed.relative.year} | number | 현재 년도와 실제 분석된 날짜의 년도 사이의 상대적인 값. analyzed가 availableDate일 때만 analyzed를 기준으로 분석 또는 사용자가 상대적인 발화를 했을 때만 분석 ex) 2년 전 → -2 |
`@{DATE.analyzed.relative.month} | number | 이번 달과 실제 분석된 날짜의 달 사이의 상대적인 값. analyzed가 availableDate일 때만 analyzed를 기준으로 분석 또는 사용자가 상대적인 발화를 했을 때만 분석 ex) 2달 후 → 2 |
`@{DATE.analyzed.relative.week} | number | 이번 주와 실제 분석된 날짜의 주 사이의 상대적인 값. analyzed가 availableDate일 때만 analyzed를 기준으로 분석 또는 사용자가 상대적인 발화를 했을 때만 분석 ex) 2주 전 → -2 |
`@{DATE.analyzed.relative.day} | number | 오늘 날짜와 실제 분석된 날짜 사이의 상대적인 값. analyzed가 availableDate일 때만 analyzed를 기준으로 분석 또는 사용자가 상대적인 발화를 했을 때만 분석 ex) 3일 후 → 3 |
`@{DATE.alternative} | - |
|
`@{DATE.alternative.value} | string | ex) 2020-12-25 |
`@{DATE.alternative.year} | number | 대체 값의 년도 ex) 2021 |
`@{DATE.alternative.month} | number | 대체 값의 달(month) ex) 12 |
`@{DATE.alternative.day} | number | 대체 값의 날짜(day) ex) 25 |
`@{DATE.alternative.dayOfWeek} | number | 대체 값의 요일을 숫자로 표현 월요일~일요일 → 0~6 ex) 5 → 토요일 |
`@{DATE.alternative.type} | string | 분석된 값의 type을 표시
|
`@{DATE.alternative.relative} | - | 현재 날짜 정보와 실제 분석된 날짜 정보 사이의 상대적인 값. alternative를 기준으로 분석 |
`@{DATE.alternative.relative.year} | number | 현재 년도와 실제 분석된 날짜의 년도 사이의 상대적인 값. alternative가 availableDate일때만 analyzed를 기준으로 분석 또는 사용자가 상대적인 발화를 했을 때만 분석 ex) 2년 전 → -2 |
`@{DATE.alternative.relative.month} | number | 이번 달과 실제 분석된 날짜의 달 사이의 상대적인 값. alternative가 availableDate일 때만 analyzed를 기준으로 분석 또는 사용자가 상대적인 발화를 했을 때만 분석 ex) 2달 후 → 2 |
`@{DATE.alternative.relative.week} | number | 이번 주와 실제 분석된 날짜의 주 사이의 상대적인 값. alternative가 availableDate일 때만 analyzed를 기준으로 분석 또는 사용자가 상대적인 발화를 했을 때만 분석 ex) 2주 전 → -2 |
`@{DATE.alternative.relative.day} | number | 오늘 날짜와 실제 분석된 날짜 사이의 상대적인 값. alternative가 availableDate일 때만 analyzed를 기준으로 분석 또는 사용자가 상대적인 발화를 했을 때만 분석 ex) 3일 후 → 3 |
예 1 : 현재 날짜가 2022년 5월 31일이고 사용자가 '주말'이라고 말한 경우
속성 | 값 | 설명 |
---|---|---|
분석 | 6/4 또는 6/5로 추정 | 미래의 토요일 또는 일요일 |
year | 2022 | 토요일과 일요일 모두 2022년 |
month | 6 | 토요일과 일요일 모두 6월 |
day | null | 토요일인지 일요일인지에 따라 달라짐 |
유형 | multiDate | 여러 날짜가 적용됨 |
예 2 : 현재 날짜가 2022년 5월 2일이고 사용자가 '주말'이라고 말한 경우
속성 | 값 | 설명 |
---|---|---|
분석 | 5/7 또는 5/8로 추정 | 미래의 토요일 또는 일요일 |
year | 2022 | 토요일과 일요일 모두 2022년 |
month | 5 | 토요일과 일요일 모두 5월 |
day | null | 토요일인지 일요일인지에 따라 달라짐 |
유형 | multiDate | 여러 날짜가 적용됨 |
예 3 : 현재 날짜가 2022년 5월 31일이고 사용자가 '오늘'이라고 말한 경우
속성 | 값 | 설명 |
---|---|---|
분석 | 2022-05-31 | 결정적인 날짜 |
year | 2022 | |
month | 5 | |
day | 31 | |
유형 | availableDate | 유효한 날짜 |
예 4 : 현재 날짜가 2022년 5월 31일이고 사용자가 '1일'이라고 말한 경우
속성 | 값 | 설명 |
---|---|---|
분석 | 2022-06-01 | 미래의 확정적인 날짜 |
year | 2022 | |
month | 6 | |
day | 1 | |
유형 | availableDate | 유효한 날짜 |
- 분석된 엔티티의 예시
{
"literal" : "12월 25일",
"analyzed":
{
"value" : "2022-12-25",
"year" : 2022,
"month" : 12,
"day" : 25,
"dayOfWeek" : 5,
"type" : "availableDate",
"relative" :
{
"year" : 0,
"month" : 1,
"week" : 1,
"day" : 11
}
},
"alternatives" :
{
"value" : "2021-12-25",
"year" : 2021,
"month" : 12,
"day" : 25,
"dayOfWeek" : 5,
"type" : "availableDate",
"relative" :
{
"year" : -1,
"month" : 1,
"week" : 1,
"day" : 11
}
}
}
}
TIME
TIME는 '7시 반', '2시간 후', '지금'과 같은 입력 패턴을 인식하고 해당하는 시간을 슬롯에 넣어서 전달합니다.
슬롯 모듈은 '예약'을 테마로 하기 때문에 모든 시간은 10분 단위로 끊어질 수 있도록 추정합니다.
ex) 예를 들어 지금 시간이 오후 6시 30분이고 7분뒤라고 발화했다면, 6시 37분이 아니라 6시 40분으로 반환합니다.
TIME를 활성화하려면 DATE를 ON해 주십시오.
attribute | type | description |
---|---|---|
`@{TIME.literal} | string | 사용자가 말한 그대로의 값 ex) 7시 반 |
`@{TIME.analyzed} | - |
|
`@{TIME.analyzed.value} | string | ex) 19:30 |
`@{TIME.analyzed.hour} | number | 분석된 시간 값 ex) 19 |
`@{TIME.analyzed.minute} | number | 분석된 분(minute) 값 ex) 30 |
`@{TIME.analyzed.type} | string | 분석된 값의 type을 표시
|
`@{TIME.analyzed.relative.hour} | number | 현재 시간과 실제 분석된 시간의 시각 사이의 상대적인 값. analyzed를 기준으로 분석 ex) 1시간 후 → 1 |
`@{TIME.analyzed.relative.minute} | number | 현재 분과 실제 분석된 시간의 분 사이의 상대적인 값. analyzed를 기준으로 분석 ex) 30분 후 → 30 |
`@{TIME.alternative} | - |
|
`@{TIME.alternative.value} | string | ex) 07:30 |
`@{TIME.alternative.hour} | number | 분석된 시간 값 ex) 7 |
`@{TIME.alternative.minute} | number | 분석된 분(minute) 값 ex) 30 |
`@{TIME.alternative.type} | string | 분석된 값의 type을 표시
|
`@{TIME.alternative.relative} | - | 현재 시간 정보와 실제 분석된 시간 정보 사이의 상대적인 값. alternative를 기준으로 분석 |
`@{TIME.alternative.relative.hour} | number | 현재 시간과 실제 분석된 시간의 시각 사이의 상대적인 값. alternative를 기준으로 분석 ex) 1시간 후 → 1 |
`@{TIME.alternative.relative.minute} | number | 현재 분과 실제 분석된 시간의 분 사이의 상대적인 값. alternative를 기준으로 분석 ex) 30분 후 → 30 |
- 분석된 엔티티의 예시
{
"literal" : "7시 반",
"analyzed":
{
"value" : "19:30",
"hour" : 19,
"minute" : 30,
"type" : "availableTime",
"relative" :
{
"hour" : 1,
"minute" : 30,
"second" : -30
}
},
"alternatives" :
{
"value" : "07:30",
"hour" : 7,
"minute" : 30,
"type" : "availableTime",
"relative" :
{
"hour" : 1,
"minute" : 30,
"second" : -30
}
}
}
People
People은 '성인 하나, 아이 둘', '어른 셋'과 같은 인원 수 입력 패턴을 인식하고 총 인원 수나 성인/아이의 숫자를 슬롯에 넣어서 전달합니다.
시스템 엔티티에서 People을 On하여 사용할 수 있습니다.
현재 스펙상으로 '학생'은 아이로 계산하지 않습니다.
attribute | type | description |
---|---|---|
`@{PEOPLE.literal} | string | 사용자가 말한 그대로의 값 ex)'성인 둘에 아이 하나' |
`@{PEOPLE.total} | number | 분석된 사람 수 총 값 ex) 3 |
`@{PEOPLE.numAdult} | number | 분석된 성인의 수 ex) 2, 만일 child 정보가 없다면 항상 total의 값으로 유추하여 채움 |
`@{PEOPLE.numChild} | number | 분석된 아이의 수 ex) 1, child 정보가 없다면 항상 0으로 유추 |
`@{PEOPLE.type} | string | 분석된 값의 type을 표시
|
- 분석된 엔티티의 예시
{
"literal" : "성인둘에 아이 하나",
"total" : 3,
"numAdult" : 2,
"numChild" : 1,
"type" : "availablePeople"
}
Name
사용자가 입력한 값 중 이름을 인식하여 슬롯에 넣어서 내보낼 수 있습니다.
시스템 엔티티에서 People을 On하여 사용할 수 있습니다.
사람의 이름이 아닌 단체이름 /회사이름/닉네임의 경우는 인식하지 않습니다.
attribute | type | description |
---|---|---|
`@{NAME.literal} | string | 사용자가 말한 그대로의 값 ex) '선우정아' |
`@{NAME.lastName} | string | 전체 이름 중 '성' ex) 선우. lastName 정보가 없다면 채우지 않음 |
`@{NAME.firstName} | string | 전체 이름 중 '이름' ex) 정아. firstName 정보가 없다면 채우지 않음 |
`@{NAME.type} | string | 분석된 값의 type을 표시
|
- 분석된 엔티티의 예시
{
"literal" : "선우정아",
"lastName" : "선우",
"firstName" : "정아",
"type" : "availableName"
}
활용방법
사용자 변수에 저장: `@{DATE.analyzed.dayOfWeek}과 같이 원하는 field를 선택하여 사용자 변수에 할당하여 활용할 수 있습니다.
태스크 대화
사용자 응답값인 경우: literal의 값으로 저장하여 활용할 수 있습니다.
노말라이즈 값인 경우
@{DATE.analyzed},@{TIME.analyzed},@{PEOPLE.total}, @{NAME.literal}의 값으로 저장하여 활용할 수 있습니다.
답변
사용자 변수를 그대로 써서 활용할 수 있습니다.
특정 포맷으로 치환하여 사용하고 싶다면 사용자 변수에 넣어 활용할 수 있습니다.
ex) @{TIME:kr.time.partsDay} 맞으시죠?
특정 포맷으로 치환하기 위해서는 사용자 변수는 반드시 json형태로 만들어 주어야 합니다.
format name | user variable | output | detail | e.g |
---|---|---|---|---|
kr.date | {"month" : M, "day" : D, "weekday" : "AAAA"} | [M]월 [D]일 | 5월 5일 | |
kr.date.weekday | {"month" : M, "day" : D, "weekday" : "AAAA"} | [M]월 [D]일 [AAAA] | [AAAA] = [월요일, 화요일, 수요일, 목요일, 금요일, 토요일, 일요일] | 5월 5일 화요일 |
kr.time | {”hour" : H, "minuet" : M} | [H]시 [M]분 | H = 24시간제 | 23시 30분 |
kr.time.partsDay | {”hour" : H, "minuet" : M} | [partsDay] [H]시 [M]분 | H =12시간제 | 밤 23시 30분 |
kr.time.twelveHour | {”hour" : H, "minuet" : M} | [H]시 [M]분 | H =12시간제 | 11시 30분 |
kr.people | {"numPeople" : NNNN} | [NNNN] 분 | 1<= N <50 : 서수로 변환, 50<= N : 기수로 변환 | 네 분 |
kr.people.arabic | {"numPeople" : NNNN} | [NNNN] 분 | N : arabic 숫자 그대로 | 4분 |
kr.telNum | "XXXYYYYZZZZ" | [XXX]에[YYYY]에[ZZZZ] | XYZ : 기수로 변환 | 공일공에 이구이구에 이구이구 |
kr.telNum.fourDigits | "XXXYYYYZZZZ" | [ZZZZ] | N : 기수로 변환 | 이구이구 |
telNum.arabic | "XXXYYYYZZZZ" | [XXX]-[YYYY]-[ZZZZ] | XYZ : arabic 숫자 그대로 | 090-1234-5678 |
telNum.fourDigits.arabic | "XXXYYYYZZZZ" | [ZZZZ] | XYZ : arabic 숫자 그대로 | 2929 |
API 연동형 엔티티 생성
API 연동형 엔티티는 챗봇 빌더에서 관리가 불가능한 엔티티 또는 실시간으로 정보가 변경되는 엔티티가 있는 경우에 활용합니다. 예를 들어 직원명이나 고객명과 같이 보안이 중요한 데이터를 챗봇 빌더에 엔티티로 등록하여 관리하는 것이 어려운 경우, API 연동형 엔티티를 활용합니다. 엔티티를 대신 분석할 수 있는 서버의 API url를 입력하면, 사용자가 입력한 발화를 엔티티 분석이 가능한 API 서버에 전달하여 분석된 결과를 받아 시나리오를 전개해나갈 수 있습니다.
API 연동형 엔티티는 다음과 같은 경우에 사용합니다.
- 태스크의 슬롯으로 사용하는 경우
- 답변 조건에서 엔티티 조건을 체크할 경우
- 액션 메소드v1을 호출할 경우
API 연동형 엔티티를 사용하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼의 콘솔에서 Services > CLOVA Chatbot > Domain 메뉴를 차례대로 클릭해 주십시오.
- 원하는 도메인의 [빌더 실행하기] 버튼을 클릭하여 챗봇 빌더를 실행해 주십시오.
- 챗봇 빌더에서 엔티티 > [API 엔티티] 탭을 클릭해 주십시오.
- URL 영역의 [수정] 버튼을 클릭해 주십시오.
- URL 필드에 엔티티를 분석할 수 있는 API의 주소를 입력하고 [저장] 버튼을 클릭해 주십시오.
- 챗봇은 입력된 URL을 통해 형태소를 분석한 결과를 포함하여 호출함
- [엔티티 생성] 버튼을 클릭해 주십시오.
- 엔티티 생성 창이 나타나면 엔티티 이름을 입력하고 [중복확인] 버튼을 클릭하고 [저장] 버튼을 클릭해 주십시오.
- 생성된 엔티티를 확인해 주십시오.
- 요청 형식
{
"query": "한국살아",
"nlpResult": {
"data": [
{
"words": [
{
"in": [
{
"morph": "한국",
"tag": "NOUN",
"ner": "Ner=B-한국 엔티티 이름",
"lemma": null,
"start": 0,
"end": 5,
"feature": 0,
"additionals": ""
},
{
"morph": "살아",
"tag": "NORMALVERB",
"ner": "Ner=O",
"lemma": "살다",
"start": 6,
"end": 11,
"feature": 0,
"additionals": "아"
}
],
"word": "한국살아"
}
]
}
],
"success": true
}
}
- 응답 형식
{
"code": "OK",
"message": "Option[String]",
"entity": [
{
"name": "국가",
"userInput": "한국",
"represent": "Korea"
}
]
}
수동으로 엔티티 태깅
사전형 엔티티는 대화의 일반 질문에 태깅할 수 있습니다. 엔티티를 등록한 후 모델 빌드가 완료되면 일반 질문 등록 시 엔티티에 해당하는 단어가 자동으로 태깅되며, 태깅된 엔티티는 대화의 질문 목록에서 파란색 글자로 표현됩니다. 엔티티가 태깅된 질문은 대화 모델 학습에 반영되어 사용자의 발화를 인식하는데 도움을 줍니다.
대화 모델 빌드 전이거나 엔티티가 자동으로 태깅되지 않은 경우에는 챗봇 제작자가 엔티티를 수동으로 태깅할 수 있습니다.
수동으로 엔티티를 태깅하는 방법은 다음과 같습니다.
- 사전 작업을 완료해 주십시오.
- ‘피자종류’ 엔티티 추가, 대표어: 포테이토 피자
- ‘피자종류’ 엔티티 추가, 대표어: 포테이토 피자
- 질문을 등록한 후, 엔티티로 태깅할 단어를 드래그해 주십시오.
- 이 시나리오에서는 ‘포테이토 피자’를 드래그합니다.
- 이 시나리오에서는 ‘포테이토 피자’를 드래그합니다.
- 엔티티 선택 창이 나타나면 태깅하고자 하는 엔티티를 선택하고 [적용] 버튼을 클릭해 주십시오.
- 새로운 대표어로 추가하거나, 이미 등록된 대표어의 유의어로 추가할 수 있습니다.
- 만약 엔티티가 없는 경우 [엔티티 생성] 버튼을 클릭하여 신규 생성합니다.
- 엔티티 태깅이 완료되었는지 확인해 주십시오.