엔티티
    • PDF

    엔티티

    • PDF

    기사 요약

    엔티티는 인명, 기관명, 장소, 날짜와 상품명 등의 단어들이 등록된 사전을 의미합니다. 챗봇은 사용자 발화 속에서 분석한 엔티티를 통해 의도를 파악하고 슬롯을 추출하는데 활용합니다. 같은 의미인 단어를 엔티티로 정의해 두면, 사용자의 발화를 파악하는데 도움이 됩니다. 엔티티를 생성, 수정, 삭제한 후에는 빌드하거나 변경된 설정 적용을 완료해야 챗봇 서비스에 반영됩니다.

    엔티티의 종류

    • 도메인 엔티티: 특정 도메인에서만 자주 사용하는 엔티티. 사전 기반의 사전형 엔티티와 정규식 패턴 기반의 패턴형 엔티티로 나뉨
    • 시스템 엔티티: 모든 도메인에서 공통으로 사용 가능한 엔티티. 빌트인으로 제공됨
    • API 엔티티: 챗봇 빌더 내부에 직접 엔티티를 정의하지 않고 외부 DB에 저장된 엔티티 데이터를 활용하는 엔티티

    도메인 엔티티 생성

    도메인 엔티티는 해당 도메인에서 사용될 것으로 예상되는 주요 단어들의 모음입니다. 예를 들어 커피 주문과 관련된 챗봇을 생성한다고 가정했을 때, 커피 주문에 필요한 커피 종류, 커피 사이즈 등을 도메인 엔티티에 등록하여 활용할 수 있습니다.
    도메인 엔티티를 등록하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼의 콘솔에서 Services > CLOVA Chatbot > Domain 메뉴를 차례대로 클릭해 주십시오.
    2. 원하는 도메인의 [빌더 실행하기] 버튼을 클릭하여 챗봇 빌더를 실행해 주십시오.
    3. 챗봇 빌더에서 엔티티 > [도메인 엔티티] 탭을 클릭해 주십시오.
    4. [엔티티 생성] 버튼을 클릭해 주십시오.
    항목설명
    엔티티 이름엔티티 이름 입력
    엔티티 유형엔티티 유형 선택
    - 사전형: 사전 기반의 엔티티 유형. 사전형의 엔티티 데이터는 모델 학습에 활용됨. 도메인 엔티티 내에서 중복되는 단어를 대표어 또는 유사어로 등록할 수 없음
    - 패턴형: 정규식 패턴 기반 엔티티 유형. 패턴형 엔티티는 모델 학습에 활용되지 않음
    민감 정보 보안 설정엔티티에 담길 정보의 민감 정보 여부 설정. 민감한 정보가 담긴 특수한 경우가 아니라면 기본적으로 일반 정보로 설정
    - 일반 정보: 해당 엔티티에 담길 정보가 민감한 정보가 아닌 일반적인 정보
    - 일반 민감 정보: 사용자의 이름, 전화번호, 주소와 같은 정보. 사용자가 일반 민감 정보를 포함하여 입력한 경우, 챗봇 빌더 내의 대화 기록 등의 화면에서 해당 민감 정보를 마스킹하여 챗봇 제작자에게 표시되지 않음. 일반 민감 정보를 챗봇의 답변에 삽입하여 사용하는 경우, 챗봇이 사용자의 민감 정보를 재발화할 수 있기 때문에 로깅 제외 옵션을 활성화하여 챗봇 답변도 마스킹하는 것을 권장함.
    - 특수 민감 정보: 사용자의 고유식별정보(주민등록번호, 운전면허번호), 비밀번호와 같은 특수한 민감 정보. 사용자가 특수 민감 정보를 포함하여 입력한 경우, 챗봇 빌더 내의 대화 기록 등의 화면에서 해당 민감 정보를 마스킹하여 챗봇 제작자에게 표시되지 않음. 또한 챗봇 엔진 내 로그에도 마스킹하기 떄문에 특수한 보안 처리가 필요한 경우에 특수 민감 정보로 설정하는 것을 권장함. 단, 엔진 로그에서도 정보를 남기지 않으므로 장애 발생 시 디버그 지원이 어려우므로 특수 민감 정보를 챗봇의 답변에 삽입하여 사용하는 것을 제한함.
    엔티티 등록엔티티 유형으로 사전형 엔티티를 선택한 경우
    - 대표어: 엔티티에 등록할 대표어 입력
    - 유사어: 다양한 표현의 유사어 입력. 여러 개의 유사어를 입력하는 경우 콤마 (,)로 구분

    엔티티 유형으로 패턴형 엔티티를 선택한 경우
    - 정규 표현식을 활용하여 패턴으로서 엔티티 분석.
    - 단, 패턴형 엔티티에는 사전형 엔티티, 시스템 엔티티, 시스템 변수, 도메인 변수만 입력 가능
    - 패턴 정의 시 정규식 입력 가이드 참고
    1. 엔티티 정보 입력이 완료되면 [저장] 버튼을 클릭해 주십시오.

    <예시> 패턴형 엔티티
    chatbot-chatbot-3-2_ex01_ko

    <예시> 사전형 엔티티
    chatbot-chatbot-3-2_ex02_ko

    시스템 엔티티 생성

    시스템 엔티티는 모든 도메인에서 공통으로 사용 가능한 엔티티입니다. 네이버 클라우드 플랫폼에서 관리하며, 챗봇 제작자는 등록된 시스템 엔티티 중 사용할 시스템 엔티티만 활성화합니다.

    참고

    태스크 또는 정규식 질문에서 참조되고 있는 시스템 엔티티는 비활성화할 수 없습니다.

    `@SYSTEM_ANY

    `@SYSTEM_ANY는 사용자의 자유 발화 중 일부 패턴만을 저장하고 싶은 경우에 사용합니다. 예를 들어 사전형 엔티티 또는 패턴형 엔티티로 정의하기 어려운 사람의 이름이나, 검색어 등을 엔티티로 분석하고자 할 때 활용할 수 있습니다.

    • `@SYSTEM_ANY는 정규식 질문에만 입력할 수 있습니다.
    • `@SYSTEM_ANY는 어떤 발화든 매칭시킬 수 있습니다. 정규식 문법 중 와일드 카드와 동일합니다.
    • `@SYSTEM_ANY만 등록하는 것이 아니라, 등장할 수 있는 다른 패턴을 함께 입력하는 것을 권장합니다.
    정규식 질문: `@SYSTEM_ANY [은|는|이|가] [뭐야|뭐니|뭘까요]
    
    • 단, 선택적으로 등장하는 정규식 표현식을 함께 사용하는 경우 `@SYSTEM_ANY에 매칭되는 단어를 보장할 수 없으므로 주의해 주십시오.
    정규식 질문 : `@SYSTEM_ANY (을|를) [설명해](줘|주세요)
    -> 사용자가 "클로바 챗봇을 설명해줘"라고 입력한 경우 `@SYSTEM_ANY에 "클로바 챗봇을"이 매칭될 수 있습니다.
    
    • `@SYSTEM_ANY만 등록해야 하는 경우, 컨텍스트 또는 조건 등을 설정하여 특정 시점에만 제한적으로 해당 대화가 매칭될 수 있도록 제한하는 것을 권장합니다.
    정규식 질문 : `@SYSTEM_ANY
    -> `@SYSTEM_ANY만 입력한 정규식 질문을 등록하는 경우, 사용자가 발화를 입력했을 때, 항상 해당 대화에 매칭되어버릴 수 있습니다.
    

    API 연동형 엔티티 생성

    API 연동형 엔티티는 챗봇 빌더에서 관리가 불가능한 엔티티 또는 실시간으로 정보가 변경되는 엔티티가 있는 경우에 활용합니다. 예를 들어 직원명이나 고객명과 같이 보안이 중요한 데이터를 챗봇 빌더에 엔티티로 등록하여 관리하는 것이 어려운 경우, API 연동형 엔티티를 활용합니다. 엔티티를 대신 분석할 수 있는 서버의 API url를 입력하면, 사용자가 입력한 발화를 엔티티 분석이 가능한 API 서버에 전달하여 분석된 결과를 받아 시나리오를 전개해나갈 수 있습니다.

    API 연동형 엔티티는 다음과 같은 경우에 사용합니다.

    • 태스크의 슬롯으로 사용하는 경우
    • 답변 조건에서 엔티티 조건을 체크할 경우
    • 액션 메소드v1을 호출할 경우

    API 연동형 엔티티를 사용하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼의 콘솔에서 Services > CLOVA Chatbot > Domain 메뉴를 차례대로 클릭해 주십시오.
    2. 원하는 도메인의 [빌더 실행하기] 버튼을 클릭하여 챗봇 빌더를 실행해 주십시오.
    3. 챗봇 빌더에서 엔티티 > [API 엔티티] 탭을 클릭해 주십시오.
    4. URL 영역의 [수정] 버튼을 클릭해 주십시오.
    5. URL 필드에 엔티티를 분석할 수 있는 API의 주소를 입력하고 [저장] 버튼을 클릭해 주십시오.
      • 챗봇은 입력된 URL을 통해 형태소를 분석한 결과를 포함하여 호출함
    6. [엔티티 생성] 버튼을 클릭해 주십시오.
    7. 엔티티 생성 창이 나타나면 엔티티 이름을 입력하고 [중복확인] 버튼을 클릭하고 [저장] 버튼을 클릭해 주십시오.
    8. 생성된 엔티티를 확인해 주십시오.

    요청 형식

    {
      "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"
        }
      ]
    }
    

    수동으로 엔티티 태깅

    사전형 엔티티는 대화의 일반 질문에 태깅할 수 있습니다. 엔티티를 등록한 후 모델 빌드가 완료되면 일반 질문 등록 시 엔티티에 해당하는 단어가 자동으로 태깅되며, 태깅된 엔티티는 대화의 질문 목록에서 파란색 글자로 표현됩니다. 엔티티가 태깅된 질문은 대화 모델 학습에 반영되어 사용자의 발화를 인식하는데 도움을 줍니다.
    대화 모델 빌드 전이거나 엔티티가 자동으로 태깅되지 않은 경우에는 챗봇 제작자가 엔티티를 수동으로 태깅할 수 있습니다.
    수동으로 엔티티를 태깅하는 방법은 다음과 같습니다.

    1. 사전 작업을 완료해 주십시오.
      • ‘피자종류’ 엔티티 추가, 대표어: 포테이토 피자
        chatbot-chatbot-3-2_tag01_ko
    2. 질문을 등록한 후, 엔티티로 태깅할 단어를 드래그해 주십시오.
      • 이 시나리오에서는 ‘포테이토 피자’를 드래그합니다.
        chatbot-chatbot-3-2_tag02_ko
    3. 엔티티 선택 창이 나타나면 태깅하고자 하는 엔티티를 선택하고 [적용] 버튼을 클릭해 주십시오.
      • 새로운 대표어로 추가하거나, 이미 등록된 대표어의 유의어로 추가할 수 있습니다.
      • 만약 엔티티가 없는 경우 [엔티티 생성] 버튼을 클릭하여 신규 생성합니다.
        chatbot-chatbot-3-2_tag03_ko
    4. 엔티티 태깅이 완료되었는지 확인해 주십시오.
      chatbot-chatbot-3-2_tag04_ko

    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.