[ChatBot] 챗봇이란
1. 챗봇이란
✅ 음성이나 문자를 통한 인간과의 대화를 통해서 특정한 작업을 수행하도록 제작된 컴퓨터 프로그램이다. 토크봇, 채터박스 혹은 그냥 봇이라고도 한다.
✅ 인간이 사용하는 언어를 이해해서 대화를 진행하는 자연어처리 기술을 심각하게 적용하는 언어이해 방식, 입력받은 말에서 특정 단어나 어구를 검출하여 그에 맞는 미리 준비된 응답을 출력하는 검색 방식, 그리고 각본을 미리 만들고 각본에 따라서 사용자의 입력에 대한 동작과 각본에 있는 응답을 출력하는 각본 방식이 있다.
✅ 네이버클라우드플랫폼, 카카오톡, LINE, Slack, Facebook 메신저, 스냇치봇 등에서 챗봇을 구동할 수 있는 API를 제공한다.
1-1. 장점
✅ 효율성(Efficiency) : 챗봇은 순차적이고 기계적인 가이드가 아니라 자연스러운 대화를 통해 서비스를 제공할 수 있다.
✅ 확장성 : CS 상담 직원의 경우, 다수의 고객을 한번에 상담할 수 없지만, 챗봇은 여러명을 한번에 상담할 수 있다.
✅ 비용 : CS 상담 직원의 인건비에 비해 훨씬 저렴한 가격에 챗봇을 운영할 수 있다.
1-2 종류
✅ 정보제공용 챗봇 : 주식정보 챗봇, 부동산 정보 챗봇, 맛집정보 챗봇 등 정보를제공해주는 챗봇 종류가 있다.
✅ 추천용 챗봇 : 음악 추천, 맛집 추천, 패션 추천 등 사용자에게 특정 아이템을 추천해주는 챗봇 종류가 있다.
✅ CS 챗봇 : 고객문의 및 상담을 위한 CS 챗봇 종류가 있다.
2. 챗봇 개발을 위한 프로세스
- 챗봇의 기능 및 목적 정의
- 챗봇의 이름 짓기
- 로고 디자인
- 개발 방식 정의
- 인텐트, 엔티티, 시나리오 정의
- 챗봇 개발
- 사용자 배포
- 사용자 피드백
- 챗봇 보강
3. 챗봇 개발을 위해 학습해야 하는 기술적 요소
✅ 자연어처리 : 자연스러운 대화를 수행하기 위해서 인간의 언어능력을 컴퓨터에게 이해시키기 위한 자연어처리 기술.
자연어 처리(Natural Language Processing, NLP) : 인간의 언어를 컴퓨터와 같은 기계를 이용해서 묘사할 수 있도록 연구하고 이를 구현하는 인공지능의 주요 분야 중 하나이다.
구현을 위해 수학적 통계적 도구를 많이 활용하며 특히 기계학습 도구를 많이 사용하는 대표적인 분야이다.
정보검색, QA 시스템, 문서 자동 분류, 신문기사 클러스터링, 대화형 Agent 등 다양한 응용이 이루어지고 있다.
✅ 백엔드 : 챗봇과 고객간의 대화를 API 통신으로 주고 받을 수 있는 기능을 개발하기 위한 백엔드 기술.
4. 챗봇 개발에서 사용되는 개념과 용어 정리
✅ 인텐트(Intent) : 사용자가 대화를 통해서 얻고자하는 의도이다. 예를 들어 "피자 두판을 주문해줘"라고 하면 피자 두판을 주문하는 의도를 갖고있는 것이다. 다양한 인텐트 예제를 통해서 챗봇이 학습한다.
✅ 엔티티(Entity) : 문장 내에서 특정 구성요소를 나타낸다. 예를 들어 "270 사이즈의 신발을 구매해줘"라는 문장이 있을 때 엔티티는 다음과 같이 구성된다. 엔티티({사이즈:270}, {종류:신발})
사이즈 : 270
종류 : 신발
✅ 봇빌더(Bot Builder) : 봇을 쉽게 만들 수 있도록 도와주는 두구로써 해외에는 마이크로스프틩 봇 프레임워크 구글의 DiaglogFlow 서비스가 대표적인 봇빌더이며, 국내에서는 네이버 클라우드 플랫폼의 챗봇 서비스, 카카오의 카카오 I 오픈빌더 등이 대표적인 봇 빌더이다.
✅ 시나리오 : 봇과 사용자간의 대화의 흐름을 시나리오로 나타낸 것이다.
e.g.)
상담봇 : 안녕하세요. 고객님. 무엇을 도와드릴까요?
고객 : 배송 상태를 조회해줘.
상담봇 : 네. 고객님의 배송 상태는 아래 버튼을 클릭해서 조회하실 수 있습니다.
✅ 개체명 인식(named-entity recognition, NER) : 비정형 텍스트의 개체명 언급을 인명, 단체, 장소, 의학 코드, 시간 표현, 양, 금전적 가치, 퍼센트 등 미리 정의된 분류로 위치시키고 분류시키는 정보 추출의 하위 태스크이다. 문장 내에서 엔티티를 파악하기 위한 작업이다.
5. NER 실습
실습 URL