티스토리 뷰

   이 블로그는 Chatscript 라는 인공지능 챗봇 개발 툴로 한국어 챗봇을 개발하려는 분들과 경험을 공유하기 위해 개설한 것이다. 

   머신러닝, 딥러닝, 강화학습 등을 방법론으로 하는 인공신경망(Artificial Neural Network)이 큰 화제이지만, 인공신경망은 아직 두 가지 큰 장벽이 존재한다. 첫째는 수학, 수리논리학, 확률, 통계, 데이타공학, 프로그래밍 등 여러 분야의 지식과 경험을 필요로 하기 때문에 분야별 전문가들로 구성된 팀을 짜서 개발해야 한다는 점이고 둘째는 인공신경망에게 학습시킬 정제된 데이타가 대규모로 필요하다는 점이다. 특히 한국어로 대화를 하는 챗봇을 개발하려면 한글로 만들어진 대규모 대화자료가 있어야 하는데 현재는 이 부분이 큰 장애가 되고 있다.

   이에 반해, Chatscript는 규칙기반의 인공지능 개발툴로 2012년, 2014년, 2015년 뢰브너 경연 대회에서 연속 우승을 했을 정도로 성능이 대단히 뛰어나면서도 프로그래밍 경험이 없는 일반인들도 누구나 개발할 수 있고, 특히 혼자 개발할 수 있을 정도로 무척 쉽다는 장점이 있다. 규칙기반의 인공지능이기 때문에 학습시킬 별도의 데이타도 필요없다.

   이제 Chatscript을 잘 활용하여 한국어로 채팅하는 챗봇을 수 만 ~ 수 십만 개 개발함으로써 한국어로 된 정보에 목말라하는 전세계 한류팬들에게 정확하고 충분한 지식을 제공하기로 하자.


(아래는 앞으로 다룰 내용의 순서를 정리한 것이다.)


1.    대화형 AI 시스템... 6

(1)     대화형 AI 시스템의 분류... 6

(2)     무엇을 있는가?. 10

(3)     인공지능 ChatScript 특장점... 11

2.    대화의 구조와 룰의 기초... 16

(1)     이름은 해리에요... 16

(2)     대화 상대방의 의도 파악... 17

(3)     룰과 토픽의 기초... 21

(4)     패턴 매칭의 기초... 26

(5)     AI 가르칠 대화 예제 : K-POP. 29

3.    기초 대화 가르치기... 32

(1)     말걸기 (화제 꺼내기) 32

(2)     듣고 말하기

(3)     어순에 관계없이 알아듣기

(4)     사용자 응답 예상하기 (예상 응답) 42

(5)     정반대로 알아듣지 않기... 46

(6)     동의어와 집합... 50

(7)     기본형과 활용형... 54

(8)     외래어 표기 알아듣기... 59

(9)     띄어쓰기 복합명사 구별하기... 60

(10)    문자 이모티콘 알아듣기... 61

(11)    자주 틀리는 맞춤법 오류를 알아듣기... 63

(12)    문자숫자 알아듣기... 64

(13)    날짜, 시간 등을 대답하기... 68

4.    응용 대화 가르치기... 70

(1)     상대방 말을 잠시 기억하기... 70

(2)     대화 내용을 오래 기억하기... 74

(3)     모를 때만 질문하기... 78

(4)     숫자 계산하기... 82

(5)     같은 반복하지 않기... 85

(6)     사용자가 동일 질문을 반복해 ... 87

(7)     답변 대신 “왜?”라고 묻는 경우... 91

(8)     질문에 되묻기(Tag Question)하는 경우... 95

(9)     예/아니오” 묶어 답변하는 경우... 99

(10)    어물쩍 대답하기 (얼버무리기)

(11)    지식베이스 구축하기... 110

(12)    답변하기 위해 지식베이스를 이용하기... 115

(13)    사랑, 연애, 결혼 등을 제안해 왔을 ... 119

(14)    마약, 폭력 금지어를 입력하였을 ... 120

5.    한국어 특징을 반영하기... 121

(1)     CS 대화 관리자 이해하기... 121

(2)     사전 만들어 내장시키기... 125

(3)     토픽에 한글 키워드 등록하기... 128

(4)     패턴에서 “명사+조사” 매칭... 130

(5)     용언의 활용형 매칭... 131

(6)     담화 표지자의 등록... 132

(7)     축약어 등의 등록... 133

(8)     문자 숫자의 등록... 134

(9)     라벨은 영어로 작성... 136

(10)    철자 검사 중지, 구문 분석 중지... 137

6.    예제 챗봇의 개발 따라하기... 138

(1)     CS 설치하기... 138

(2)     개발 환경 구축하기... 140

(3)     예제 챗봇 실행하기... 148

(4)     K-POP 소재로 챗봇 개발하기... 153

(5)     클라우드에 올려 서비스하기... 167

7.    나의 챗봇 개발하기... 168

(1)     챗봇의 이력서 작성하기... 168

(2)     대본 작성 가이드... 170

(3)     대본의 논리적 구조... 173

(4)     스크립트의 대표적 유형... 181

(5)     초보자가 흔히 저지르는 실수... 184

8.    테스트 보완... 196

(1)     테스트 단계와 종류... 196

(2)     단위 테스트... 198

(3)     토픽 단위 테스트... 203

(4)     대화 단위 테스트... 206

(5)     최종 점검하기

(6)     대화내용 분석하고 보완하기

9.    부록

(1)     CS의 주요 개념 및 예약어

(2)     패턴 연산자 총정리

(3)     꼭 알아 두어야 할 함수