- 인쇄
- PDF
엔티티
- 인쇄
- PDF
Classic/VPC 환경에서 이용 가능합니다.
엔티티는 인명, 기관명, 장소, 날짜와 상품명 등의 단어들이 등록된 사전을 의미합니다. 챗봇은 사용자 발화 속에서 분석한 엔티티를 통해 의도를 파악하고 슬롯을 추출하는데 활용합니다. 같은 의미인 단어를 엔티티로 정의해 두면, 사용자의 발화를 파악하는데 도움이 됩니다. 엔티티를 생성, 수정, 삭제한 후에는 빌드하거나 변경된 설정 적용을 완료해야 챗봇 서비스에 반영됩니다.
엔티티의 종류
- 도메인 엔티티: 특정 도메인에서만 자주 사용하는 엔티티. 사전 기반의 사전형 엔티티와 정규식 패턴 기반의 패턴형 엔티티로 나뉨
- 시스템 엔티티: 모든 도메인에서 공통으로 사용 가능한 엔티티. 빌트인으로 제공됨
- API 엔티티: 챗봇 빌더 내부에 직접 엔티티를 정의하지 않고 외부 DB에 저장된 엔티티 데이터를 활용하는 엔티티
도메인 엔티티 생성
도메인 엔티티는 해당 도메인에서 사용될 것으로 예상되는 주요 단어들의 모음입니다. 예를 들어 커피 주문과 관련된 챗봇을 생성한다고 가정했을 때, 커피 주문에 필요한 커피 종류, 커피 사이즈 등을 도메인 엔티티에 등록하여 활용할 수 있습니다.
도메인 엔티티를 등록하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼의 콘솔에서 Services > CLOVA Chatbot > Domain 메뉴를 차례대로 클릭해 주십시오.
- 원하는 도메인의 [빌더 실행하기] 버튼을 클릭하여 챗봇 빌더를 실행해 주십시오.
- 챗봇 빌더에서 엔티티 > [도메인 엔티티] 탭을 클릭해 주십시오.
- [엔티티 생성] 버튼을 클릭해 주십시오.
항목 | 설명 |
---|---|
엔티티 이름 | 엔티티 이름 입력 |
엔티티 유형 | 엔티티 유형 선택 - 사전형: 사전 기반의 엔티티 유형. 사전형의 엔티티 데이터는 모델 학습에 활용됨. 도메인 엔티티 내에서 중복되는 단어를 대표어 또는 유사어로 등록할 수 없음 - 패턴형: 정규식 패턴 기반 엔티티 유형. 패턴형 엔티티는 모델 학습에 활용되지 않음 |
민감 정보 보안 설정 | 엔티티에 담길 정보의 민감 정보 여부 설정. 민감한 정보가 담긴 특수한 경우가 아니라면 기본적으로 일반 정보로 설정 - 일반 정보: 해당 엔티티에 담길 정보가 민감한 정보가 아닌 일반적인 정보 - 일반 민감 정보: 사용자의 이름, 전화번호, 주소와 같은 정보. 사용자가 일반 민감 정보를 포함하여 입력한 경우, 챗봇 빌더 내의 대화 기록 등의 화면에서 해당 민감 정보를 마스킹하여 챗봇 제작자에게 표시되지 않음. 일반 민감 정보를 챗봇의 답변에 삽입하여 사용하는 경우, 챗봇이 사용자의 민감 정보를 재발화할 수 있기 때문에 로깅 제외 옵션을 활성화하여 챗봇 답변도 마스킹하는 것을 권장함. - 특수 민감 정보: 사용자의 고유식별정보(주민등록번호, 운전면허번호), 비밀번호와 같은 특수한 민감 정보. 사용자가 특수 민감 정보를 포함하여 입력한 경우, 챗봇 빌더 내의 대화 기록 등의 화면에서 해당 민감 정보를 마스킹하여 챗봇 제작자에게 표시되지 않음. 또한 챗봇 엔진 내 로그에도 마스킹하기 떄문에 특수한 보안 처리가 필요한 경우에 특수 민감 정보로 설정하는 것을 권장함. 단, 엔진 로그에서도 정보를 남기지 않으므로 장애 발생 시 디버그 지원이 어려우므로 특수 민감 정보를 챗봇의 답변에 삽입하여 사용하는 것을 제한함. |
엔티티 등록 | 엔티티 유형으로 사전형 엔티티를 선택한 경우 - 대표어: 엔티티에 등록할 대표어 입력 - 유사어: 다양한 표현의 유사어 입력. 여러 개의 유사어를 입력하는 경우 콤마 (,)로 구분 엔티티 유형으로 패턴형 엔티티를 선택한 경우 - 정규 표현식을 활용하여 패턴으로서 엔티티 분석. - 단, 패턴형 엔티티에는 사전형 엔티티, 시스템 엔티티, 시스템 변수, 도메인 변수만 입력 가능 |
- 엔티티 정보 입력이 완료되면 [저장] 버튼을 클릭해 주십시오.
<예시> 패턴형 엔티티
<예시> 사전형 엔티티
시스템 엔티티 생성
시스템 엔티티는 모든 도메인에서 공통으로 사용 가능한 엔티티입니다. 네이버 클라우드 플랫폼에서 관리하며, 챗봇 제작자는 등록된 시스템 엔티티 중 사용할 시스템 엔티티만 활성화합니다.
태스크 또는 정규식 질문에서 참조되고 있는 시스템 엔티티는 비활성화할 수 없습니다.
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"
}
]
}
수동으로 엔티티 태깅
사전형 엔티티는 대화의 일반 질문에 태깅할 수 있습니다. 엔티티를 등록한 후 모델 빌드가 완료되면 일반 질문 등록 시 엔티티에 해당하는 단어가 자동으로 태깅되며, 태깅된 엔티티는 대화의 질문 목록에서 파란색 글자로 표현됩니다. 엔티티가 태깅된 질문은 대화 모델 학습에 반영되어 사용자의 발화를 인식하는데 도움을 줍니다.
대화 모델 빌드 전이거나 엔티티가 자동으로 태깅되지 않은 경우에는 챗봇 제작자가 엔티티를 수동으로 태깅할 수 있습니다.
수동으로 엔티티를 태깅하는 방법은 다음과 같습니다.
- 사전 작업을 완료해 주십시오.
- ‘피자종류’ 엔티티 추가, 대표어: 포테이토 피자
- ‘피자종류’ 엔티티 추가, 대표어: 포테이토 피자
- 질문을 등록한 후, 엔티티로 태깅할 단어를 드래그해 주십시오.
- 이 시나리오에서는 ‘포테이토 피자’를 드래그합니다.
- 이 시나리오에서는 ‘포테이토 피자’를 드래그합니다.
- 엔티티 선택 창이 나타나면 태깅하고자 하는 엔티티를 선택하고 [적용] 버튼을 클릭해 주십시오.
- 새로운 대표어로 추가하거나, 이미 등록된 대표어의 유의어로 추가할 수 있습니다.
- 만약 엔티티가 없는 경우 [엔티티 생성] 버튼을 클릭하여 신규 생성합니다.
- 엔티티 태깅이 완료되었는지 확인해 주십시오.