엔티티
엔티티(Entity)란 봇이 이해할 수 있는 용어를 체계적으로 정리한 데이터 사전입니다. 엔티티가 정의되어 있다면, 봇은 사용자 발화로부터 사용자의 의도에 맞는 동작 수행을 위한 주요 데이터를 추출할 수 있게 됩니다.
'엔티티 설정'은 빠른 접근성과 쉬운 사용성을 위해 대메뉴 우측에 위치하고 있습니다
Definition.
사용자 발화란?
사용자가 봇과 커뮤니케이션하기 위해 내뱉는 말 또는 텍스트 등을 의미합니다. 챗봇의 경우에는 입력하는 텍스트 데이터이고, 스피커봇의 경우에는 실제 사용자의 음성일 수 있습니다. 사용자 발화는 블록 내 [사용자 발화 패턴 설정] 영역을 통해 입력됩니다.
엔티티의 구조
아래 그림처럼 엔티티 구조를 미리 설계한 후 발화등록 작업을 진행하시면 제작 과정이 훨씬 수월해집니다.
'나의 엔티티' 구조 : 사용자가 정의할 수 있는 엔티티는 [엔티티명], [대표엔트리], [동의어] 총 세 가지 요소로 구성됩니다
엔티티의 종류
챗봇 관리자센터에서 엔티티는 작업자가 직접 정의하는 '나의 엔티티'와 자주 사용하는 엔티티를 미리 정의해놓은 '시스템 엔티티'로 나누어집니다. 특히, '나의 엔티티'에서는 봇이 알아 들어야 하는 주요 용어들을 대표 엔트리로 설정할 수 있으며, 동의어를 추가할 수도 있습니다. 엔티티의 동의어가 중복 등록될 경우 봇에서 판단하기가 어렵기 때문에 원하는 응답이 되지 않을 수 있습니다. 따라서 동의어가 중복되지 않도록 계획적인 설계가 필요합니다.
Tip.
- 봇을 생성한 직후에는 '시스템 엔티티'만 설정되어 있기 때문에 알아들을 수 있는 용어가 제한적입니다.
- 봇의 특성에 맞도록 '나의 엔티티'를 잘 정의하여 많은 용어를 이해할 수 있도록 하는 것이 좋습니다.
- ‘시스템 엔티티’에 이미 등록되어 있고 ON처리 되어 있는 동의어를 ‘나의 엔티티’에서 추가로 등록할 경우 원하는 응답이 되지 않을 수 있습니다. 이경우 ‘시스템 엔티티’를 사용하여 주시기 바랍니다.
나의 엔티티
'나의 엔티티'는 작업자가 직접 설정한 엔티티입니다.
'나의 엔티티' 관리 화면: 작업자에 의해 등록된 엔티티 리스트가 나타납니다
엔티티는 대표 엔트리를 입력한 후 '동의어'를 입력하는 방식으로 데이터를 완성합니다. 동의어는 필수가 아니지만, 추가로 등록할 경우 사용자 입력발화에서 봇이 인식하는 엔티티의 범위를 넓힐수 있습니다. 동의어로 엔티티가 인식될 경우 해당 대표 엔트리가 최종값으로 인식되어, 발화 입력 화면에서 출력됩니다.
엔티티명은 공백 없이 입력 가능하며 자음만 입력하는 것은 불가합니다. 대표 엔트리와 동의어는 문자간 최대 1자의 공백 입력이 가능하며 자음만으로 구성할 수 있습니다.
'나의 엔티티' 상세 화면: 엔티티는 '대표 엔트리'와 '동의어'로 구성되어 있습니다
또한, 정해진 구조의 CSV, xlsx 파일형식으로 대량의 엔트리를 손쉽게 등록할 수도 있습니다. 구성에 변경이 없다면 반복적으로 덮어쓰기가 가능하기 때문에 효율적으로 관리할 수 있습니다. 단, 엔트리는 최대 6,000개까지 입력 가능합니다.
Information.
엔트리 업로드 파일(샘플) 다운받기(CSV , xlsx)
※CSV파일은 utf-8로 인코딩 모드를 맞춰주어야 합니다.
시스템 엔티티
챗봇 관리자센터에서는 날짜, 시간, 지명과 같이 일반적, 공통적으로 통용되는 개념들에 대해서는 작업자가 일일이 입력할 필요가 없도록 미리 정의해 둔 엔티티들을 제공하고 있습니다. 이를 ‘시스템 엔티티’라 부릅니다.
'시스템 엔티티' 리스트 화면: '시스템 엔티티'는 '나의 엔티티'와 마찬가지로 엔티티 설정 메뉴에서 찾을 수 있습니다. '시스템 엔티티'는 엔티티명 앞에
sys.
라는 단어로 시작합니다
아래는 시스템 엔티티 예시입니다.
엔티티명 | 설명 | 예시 | 발화 예시 |
@sys.date | '날짜'에 해당하는 엔티티를 태깅합니다. | 오늘, 내일, 어제, 2018년 1월15일, 1월 1일, 수요일 | 오늘 뉴스 들려줘 1월 1일은 무슨 요일이야 |
@sys.date.period | 날짜 중에서 '기간 범위'에 해당하는 엔티티를 태깅합니다. | 이번주, 올해, 주말, 2019년, 1월, 1일부터 10일까지 | 이번주 사수자리 운세 알려줘 올해 무슨 해야 |
@sys.date.lunar | 날짜 중에서 '음력'에 해당하는 엔티티를 태깅합니다. | 음력 1월1일, 음력 2019년 5월 5일, 올해 음력 5월 16일, 음력 설날 | 음력 1월 1일이 언제야 음력 2019년 5월 5일 양력으로 며칠이야 |
@sys.date.period.lunar | 날짜 중에서 '음력 기간'에 해당하는 엔티티를 태깅합니다. | 음력 1월, 음력 6월, 음력 8월 | 정월은 음력 1월을 말합니다 음력 8월은 음력에서 여덟 번째 달이다 |
@sys.time | '시간'에 해당하는 엔티티를 태깅합니다. ※시간흐름에 따른 date 정보 속성값도 포함됨 |
30분, 7시, 10분 뒤, 오전 6시, 30초, 정오 | 7시 알람 맞춰줘 알람 정오 지워줘 |
@sys.time.period | 시간 중에서 '시간대'에 해당하는 엔티티를 태깅합니다. ※시간흐름에 따른 date 정보 속성값도 포함됨 |
오전, 아침, 새벽, 저녁, 1시부터 2시까지 | 오전 알람 삭제해줘 아침 뉴스 틀어줘 |
@sys.date.time | 날짜 중에서 '날짜와 시간' 조합에 해당하는 엔티티를 태깅합니다. | 내일 7시, 현재, 모레 오후 11시, 내일 오전 7시, 오늘 1시, 1월1일 오후 2시 | 내일 7시 알람 맞춰줘 현재 상영작 알려줘 |
@sys.date.time.period | 날짜 중에서 '기간 범위와 시간' 조합에 해당하는 엔티티를 태깅합니다. | 오늘 낮, 내일 오전, 모레 오후, 어젯밤, 월요일 오후, 오늘 1시부터 2시까지, 1월1일 9시부터 10시 | 오늘 낮 날씨 어때 내일 오전 알람 꺼 |
@sys.number | '숫자'에 해당하는 엔티티를 태깅합니다. | 1, 삼, 다섯, 열명, 30개 | 삼 더하기 삼 볼륨 다섯 키 낮춰 줘 |
@sys.number.times | 숫자 중에서 '회차'에 해당하는 엔티티를 태깅합니다. | 11회차, 40회, 1화, 2부, 1편, 3차, 834회 | 미우새 1부 틀어줘 로또 당첨 번호 제 834회 알려줘 |
@sys.number.percent | 숫자 중에서 '퍼센트'에 해당하는 엔티티를 태깅합니다. | 20퍼센트, 30프로, 백퍼센트, 50% | 블라인드 20퍼센트 정도 열어줘 블라인드 30프로만 내려줘 |
@sys.number.ordinal | 숫자 중에서 '순서'에 해당하는 엔티티를 태깅합니다. | 1번, 첫 번째, 열 번째, 백 번째 | 플레이리스트 1번 틀어줘 네 번째 playlist 재생 |
@sys.number.age | 숫자 중에서 '나이'에 해당하는 엔티티를 태깅합니다. | 1살, 18세, 스무살, 20세 | 내 아이는 1살입니다 스무살에 대학에 입학했어요 |
@sys.number.birthyear | 숫자 중에서 '출생년도'에 해당하는 엔티티를 태깅합니다. | 1995년생, 85년생, 72년도생 | 1996년생 운세 알려줘 87년생 운세 알려줘 |
@sys.number.decade | 숫자 중에서 '년대(~년대)'에 해당하는 엔티티를 태깅합니다. | 1900년대, 2000년대, 80년대, 90년대 | 90년대 인기 팝 들려줘 1990년대 발라드 틀어줘 |
@sys.number.album | 숫자 중에서 '앨범(~집)'에 해당하는 엔티티를 태깅합니다. | 1집, 2집, 3집, 10집 | winner 2집 재생해줘 자우림 10집 틀어줘 |
@sys.number.rank | 단위 중에서 '순위'에 해당하는 엔티티를 태깅합니다. | 1위, 100위, 1등 | 실시간 이슈 10위 알려줘 멜론 차트 10위부터 틀어줘 |
@sys.unit.duration | 단위 중에서 '기간/시간'을 의미하는 엔티티를 태깅합니다. |
1시간, 1시간 반, 1개월, 4주, 일주일, 이주일, 5년 2개월, 5개월, 5개월 20일, 이틀, 30분 동안, 3일동안, 4분 30초동안 | 1시간 타이머 시작 빗소리 10분 동안 틀어줘 |
@sys.unit.length | 단위 중에서 '길이'에 해당하는 엔티티를 태깅합니다. | 5mm, 1cm, 10cm, 1m, 1km, 100km, 1야드, 100피트, 20인치, 1마일 | 1m 간격으로 앉아주세요 서울부터 부산까지 거리는 325km입니다 |
@sys.unit.area | 단위 중에서 '넓이'에 해당하는 엔티티를 태깅합니다. | 1제곱미터, 25m², 100km², 1헥타아르, 200헥타아르, 1yd², 200ft², 25평, 30에이커 | 서울의 면적은 605.2km²입니다 152 제곱미터는 몇 제곱킬로미터입니까 |
@sys.unit.weight | 단위 중에서 '무게'에 해당하는 엔티티를 태깅합니다. | 1g, 1kg, 10kg, 100mg, 100g, 1톤, 100파운드, 10온스, 7그레인, 1돈, 1근, 10냥, 10관 | 1kg 상자에 넣어주세요 금 1돈은 정확히 3.75 그램입니다. |
@sys.unit.volume | 단위 중에서 '부피'에 해당하는 엔티티를 태깅합니다. | 1세제곱미터, 1cc, 10ml, 500ml, 10데시리터, 1리터, 100cc, 1갤론, 100cm³, 10m³, 10in³, 10ft³, 1yd³, 1홉, 1되, 1말 | 물 1세제곱미터는 약 1 톤 물의 중량이다 1cc는 0.001 리터를 의미한다 |
@sys.unit.pressure | 단위 중에서 '압력'에 해당하는 엔티티를 태깅합니다. | 1기압, 20프사이, 20파스칼, 20헥토파스칼, 20킬로파스칼, 20메가파스칼, 100밀리바, 100바, 1수은주밀리미터, 1mmH₂O, 10inHg, 10inchH₂O | 1기압은 몇 파스칼입니까? 1bar는 100kPa 입니다. |
@sys.unit.temperature | 단위 중에서 '온도'에 해당하는 엔티티를 태깅합니다. | 17°c, 20도, 33.8°f | 거실 난방 20도로 맞춰줘 거실 난방 온도 22도로 맞춰줘 |
@sys.unit.speed | 단위 중에서 '속도'에 해당하는 엔티티를 태깅합니다. | 100m/s, 1마하, 10km/h, 1knot | 100m/s는 0.1km/s 입니다 10000km/h는 8.17마하입니다.. |
@sys.unit.data | 단위 중에서 '정보(데이터량)'에 해당하는 엔티티를 태깅합니다. | 1바이트, 100기가바이트, 100GB, 1TB | 1바이트는 8비트 입니다 1TB는 1024GB입니다. |
@sys.unit.energy | 단위 중에서 '에너지 단위'에 해당하는 엔티티를 태깅합니다. | 1헤르츠, 1킬로헤르츠, 1메가헤르츠, 1기가헤르츠, 100데시벨, 10ampre, 10암페어, 10마력 | 1Mhz는 1000kHz 입니다 |
@sys.unit.currency | 단위 중에서 '통화'에 해당하는 엔티티를 태깅합니다. | 천원, 5천원, 1달러, 100엔, 100위안, 1유로, 오백 파운드, 1파운드, 10프랑, 10센트 | 1달러 환율이 어떻게 돼? 1파운드가 한화로 얼마야 |
@sys.text | 되묻기 상황에서 '유저가 입력한 문장 전체'를 태깅합니다. | ||
@sys.location | 지역 중에서 '국내 지역'에 해당하는 엔티티를 태깅합니다. | 제주도, 강원도, 서울, 송파구, 잠실동 | 제주도 날씨 알려줘 내일 강원도 날씨 |
@sys.nation | '국가명'에 해당하는 엔티티를 태깅합니다. | 대한민국, 프랑스, 일본, 영국, 미국 | 1월 7일 대한민국 날씨 알려줘 지금 프랑스 파리 몇시야? |
@sys.state | 지역 중에서 '해외 주 단위'에 해당하는 엔티티를 태깅합니다. | 캘리포니아, 버몬트, 뉴저지, 콜로라도 | 지금 캘리포니아 몇 시야 미국 뉴저지 시간은 어떻게 돼요 |
@sys.city | 지역 중에서 '해외도시명'에 해당하는 엔티티를 태깅합니다. | 뉴욕, 도쿄, 워싱턴 D.C., 베이징, 런던 | 오늘 뉴욕 날씨 좋아? 워싱턴 D.C.와 베이징의 시차 알려줘 |
@sys.fortune.starsign | '별자리 이름'에 해당하는 엔티티를 태깅합니다. | 물병자리, 물고기자리, 게자리 | 이번주 물병자리 운세 알려줘 1월 이달의 사자자리 운세 어때 |
@sys.fortune.zodiac | '띠 이름'에 해당하는 엔티티를 태깅합니다. | 돼지띠, 쥐띠, 소띠 | 이번주 돼지띠 운세 알려줘 토끼띠는 몇 년생이야 |
@sys.person.name | '인물 : 개인'에 해당하는 엔티티를 태깅합니다. | 아이유, 박지성, 김광석 | 아이유 인기곡 들려줘 박지성에 대해서 알려줘 |
@sys.person.group | '인물 : 그룹명'에 해당하는 엔티티를 태깅합니다. | 엑소, exo, 퀸, queen, 블랙핑크, blackpink, 방탄소년단, bts | 방탄소년단 최신 앨범 틀어줘 퀸 1991년 앨범 틀어줘 |
@sys.currencyname | '통화명'에 해당하는 엔티티를 태깅합니다. | 달러, 엔, 유로, 오스트레일리아달러, 베트남동, 파운드 | 미국의 통화는 달러입니다 영국의 화폐단위는 파운드입니다. |
@sys.currency.code | '통화 코드'에 해당하는 엔티티를 태깅합니다. | USD, JPY, EUR, AUD, VND, GBP, ZWD | 일본 화폐인 '엔'의 통화코드는 JPY입니다. |
@sys.sports.name | 스포츠 정보 중에서 '종목명'에 해당하는 엔티티를 태깅합니다. | 야구, 축구, 태니스, 태권도 | 오늘 축구 경기 있어? 내일 야구 일정 알려줘 |
@sys.sports.league | 스포츠 정보 중에서 '리그명'에 해당하는 엔티티를 태깅합니다. | 프리미어리그, NBA, KBO리그, mlb | 작년 프리미어리그 순위 알려줘 이번달 KBO리그 경기 있어? |
@sys.sports.team | 스포츠 정보 중에서 '팀명'에 해당하는 엔티티를 태깅합니다. | 리버플, 토트넘, 맨체스터 유나이티드, KIA 타이거즈 | 2018년 1월15일 리버풀 경기 알려줘 토트넘 경기에 손흥민 나왔어? |
@sys.sports.stadium | 스포츠 정보 중에서 '경기장'에 해당하는 엔티티를 태깅합니다. | 잠실 종합 운동장 야구장, 수원 월드컵 경기장, 대구 스타디움, 문학 경기장 | 상암월드컵 경기장 축구 경기 있어? 대구 스타디움 경기장 오늘 일정 없어? |
@sys.tv.name | TV 정보 중에서 '프로그램명'에 해당하는 엔티티를 태깅합니다. | 무한도전, 라디오 스타, 런닝맨 | 오늘 라디오 스타에 누구 나와? 런닝맨 멤버 알려줘 |
@sys.tv.channelname | TV 정보 중에서 '채널명'에 해당하는 엔티티를 태깅합니다. | tvn, mbc, kbs 1tv, ocn, jtbc | 지금 tvn에서 뭐 해? mbc 편성표 알려줘 |
@sys.radio.name | 라디오 정보 중에서 '프로그램명'에 해당하는 엔티티를 태깅합니다. | 음악캠프, 정오의 희망곡, 별이 빛나는 밤에, 정지영 라디오 | 배철수의 음악캠프에 나온 노래 들려줘 정지영 라디오 선곡표 들려줘 |
@sys.radio.channelname | 라디오 정보 중에서 '채널명'에 해당하는 엔티티를 태깅합니다. | MBC FM 4u, SBS 러브FM, kbs1 라디오 | mbc fm 4u 틀어줘 sbs 파워 fm 틀어줘 |
@sys.movie.name | 콘텐츠 정보 중에서 '영화명'에 해당하는 엔티티를 태깅합니다. | 신과 함께, 킹스맨, 어벤져스 인피니티 워 | 신과 함께 관객수 알려줘 영화 킹스맨 장르 알려줘 |
@sys.organization.name | 콘텐츠 정보 중에서 '제작사'에 해당하는 엔티티를 태깅합니다. | 디즈니, 월트디즈니픽쳐스, 마블 스튜디오, 롯데엔터테인먼트 | 디즈니에서 제작한 영화 알려줘 마블 스튜디오에서 만든 영화 뭐 있어? |
@sys.theater.name | 콘텐츠 정보 중에서 '극장명'에 해당하는 엔티티를 태깅합니다. | CGV천호점, 메가박스, 롯데시네마 | cgv천호점 상영영화 알려줘 메가박스 개봉작 알려줘 |
@sys.broadcast.name | 콘텐츠 정보 중에서 '방송사'에 해당하는 엔티티를 태깅합니다. | KBS, MBC, SBS, 극동방송, 불교방송 | 극동방송 틀어줘 불교방송 틀어 주세요 |
@sys.url | 문장에서 'URL'에 해당하는 패턴을 태깅합니다. | https://www.kakaocorp.com, http://www.kakaocorp.com, www.kakaocorp.com | 카카오의 공식사이트는 https://www.kakaocorp.com 입니다. |
@sys.bussiness.number | 문장에서 '사업자등록번호'에 해당하는 패턴을 태깅합니다. | 120-81-47521 | 카카오의 사업자등록번호는 120-81-47521 입니다. |
@sys.phone.number | 문장에서 '전화번호'에 해당하는 패턴을 태깅합니다. | 010-1234-5678, 02-2456-7890 | 전화번호는 010-1234-5678 입니다. |
@sys.licenseplate.number | 문장에서 '차량번호'에 해당하는 패턴을 태깅합니다. | 12 가 1234, 123 가 1234 | 차량번호는 12 가 1234 입니다. 123 가 1234 번호가 제 차량입니다. |
상세한 설정 방법은 튜토리얼 > 엔티티 설정하기를 참조하시길 바랍니다.