책소개
비대면 시대를 이끄는 챗봇 기술, 한 권의 책으로 만나다!
이 책은 챗봇 엔진부터 NLP, 딥러닝, REST API, 카카오톡 연동에 이르기까지 챗봇에 필요한 기술을 한 권으로 만나볼 수 있는 챗봇 개발 입문서입니다. 어려운 개념은 직관적인 그림과 도식을 활용해서 설명했으며, 책에서 담고자 하는 수준에서 벗어나는 개념은 과감하게 생략하여 기본에 더 충실했습니다. 또한 챗봇을 구현하는 데 필요한 개념과 코드를 개발 순서대로 학습하고 카카오톡, 네이버 챗봇을 만들어봄으로써 실무 적용의 `감`까지 익힐 수 있습니다. 비대면 시대 챗봇 엔진, API 개발을 준비하는 개발자라면 이 책으로 시작해보세요.
기초부터 꼼꼼하게 익히고 실무까지 유연하게 적용하는 챗봇 입문서
이 책은 파이썬 기본 개요와 웹 개발 지식을 알고 있으며, 한 번이라도 텐서플로/케라스로 딥러닝 모델을 학습해본 경험이 있는 독자들을 대상으로 쓰였습니다. 공부한 내용을 어떻게 활용해야 할지 모르는 독자나 챗봇 개발에 관심이 많은 독자가 쉽게 개념을 이해하고 실습해볼 수 있도록 내용을 구성한 챗봇 개발 입문서입니다. 개발 경험이 있는 독자라면 이 책의 내용을 아주 쉽게 이해할 수 있을 것입니다.
입문서 난이도에 맞추어 어려운 개념은 그림과 도식을 최대한 활용해서 설명했으며, 입문자 수준에서 벗어나는 개념은 과감하게 생략하고 기본과 핵심이 되는 내용에 더 집중했습니다. 챗봇을 구현하는 데 필요한 개념과 코드를 개발 순서에 맞게 구성했으며, 이 책을 통해 독자들이 챗봇의 기본 개념과 구현 방법을 알 수 있도록 만들었습니다.
이 책을 읽기 위한 필수 조건은 아니지만 기본적으로 다음 내용을 선수 학습했다면 내용을 이해하는 데 도움이 될 것입니다.
● 파이썬 기본 문법
● 자연어 처리 모델에 대한 이해는 없어도 무관하나 기본적인 딥러닝 모델을 접해본 경험
● 기본적인 데이터베이스 이해
● 기본적인 웹 개발 이해
경험이 부족한 독자라 하더라도 너무 걱정하지 않아도 됩니다. 학습을 하다 이해가 안 되는 부분은 인터넷 자료를 참고하면서 읽어보세요. 반복해서 읽다 보면 어느 순간 이해가 되는 신기한 경험을 하게 될 것입니다.
목차
CHAPTER 1 챗봇 입문하기
1.1 챗봇의 이해
1.2 챗봇 활용 사례
__1.2.1 카카오 챗봇 사례
__1.2.2 대학병원 챗봇 사례
__1.2.3 제약회사 챗봇 사례
1.3 마치며
CHAPTER 2 파이썬 시작하기
2.1 파이썬 소개
2.2 파이썬 기본
__2.2.1 자료형
__2.2.2 파이썬 제어문
__2.2.3 함수
__2.2.4 클래스
__2.2.5 모듈
__2.2.6 예외 처리
__2.2.7 엑셀 파일을 읽고 쓰는 방법
2.3 데이터 분석을 위한 필수 라이브러리
__2.3.1 넘파이
__2.3.2 팬더스
__2.3.3 맷플롯립
2.4 마치며
CHAPTER 3 토크나이징
3.1 토크나이징 소개
3.2 KoNLPy
__3.2.1 Kkma
__3.2.2 Komoran
__3.2.3 Okt
__3.2.4 사용자 사전 구축
3.3 마치며
CHAPTER 4 임베딩
4.1 임베딩이란?
4.2 단어 임베딩
__4.2.1 원-핫 인코딩
__4.2.2 희소 표현과 분산 표현
__4.2.3 Word2Vec
4.3 마치며
CHAPTER 5 텍스트 유사도
5.1 텍스트 유사도 개요
5.2 n-gram 유사도
5.3 코사인 유사도
5.4 마치며
CHAPTER 6 챗봇 엔진에 필요한 딥러닝 모델
6.1 빠르게 케라스 정리하기
__6.1.1 인공 신경망
__6.1.2 딥러닝 분류 모델 만들기
__6.1.3 학습된 딥러닝 모델 사용하기
6.2 문장 분류를 위한 CNN 모델
__6.2.1 CNN 모델 개념
__6.2.2 챗봇 문답 데이터 감정 분류 모델 구현
__6.2.3 챗봇 문답 데이터 감정 분류 모델 사용
6.3 개체명 인식을 위한 양방향 LSTM 모델
__6.3.1 RNN
__6.3.2 LSTM
__6.3.3 양방향 LSTM
__6.3.4 개체명 인식
6.4 마치며
CHAPTER 7 챗봇 학습툴 만들기
7.1 MySQL 소개
7.2 파이썬으로 데이터베이스 연동하기
__7.2.1 데이터베이스 연결하기
__7.2.2 데이터 조작하기
7.3 챗봇 학습툴 만들기
__7.3.1 프로젝트 구조
__7.3.2 학습용 데이터베이스 설계 및 데이터 테이블 생성
__7.3.3 챗봇 학습 데이터 엑셀 파일 및 DB 연동
7.4 마치며
CHAPTER 8 챗봇 엔진 만들기
8.1 챗봇 엔진 소개
8.2 챗봇 엔진 구조
8.3 전처리 과정
8.4 단어 사전 구축 및 시퀀스 생성
8.5 의도 분류 모델
__8.5.1 의도 분류 모델 학습
__8.5.2 의도 분류 모듈 생성
8.6 개체명 인식 모델 학습
__8.6.1 개체명 인식 모델 학습
__8.6.2 개체명 인식 모듈 생성
8.7 답변 검색
__8.7.1 데이터베이스 제어 모듈 생성
__8.7.2 답변 검색 모듈 생성
8.8 챗봇 엔진 서버 개발
__8.8.1 통신 프로토콜 정의
__8.8.2 다중 접속을 위한 TCP 소켓 서버
__8.8.3 챗봇 테스트 클라이언트 프로그램
8.9 마치며
CHAPTER 9 챗봇 API 만들기
9.1 챗봇 API 소개
9.2 파이썬 Flask
__9.2.1 Hello Flask
__9.2.2 URI 동적 변수
__9.2.3 기본적인 REST API 서비스 구현
9.3 챗봇 API 서버 구현
9.4 마치며
CHAPTER 10 카카오톡 챗봇 만들기
10.1 카카오 아이 오픈빌더 소개
__10.1.1 카카오톡 채널 가입
__10.1.2 카카오 아이 오픈빌더 OBT 신청
__10.1.3 봇 생성
10.2 카카오톡 챗봇 연동
__10.2.1 시나리오와 블록
__10.2.2 스킬
10.3 스킬 사용하기
__10.3.1 스킬 서버 이해하기
__10.3.2 스킬 서버 만들기
__10.3.3 오픈빌더에서 스킬/블록 등록하기
__10.3.4 응답 타입별 JSON 포맷
10.4 챗봇 API 서버에 카카오톡 연동
__10.4.1 챗봇 API 서버 수정
__10.4.2 오픈빌더 폴백 블록 설정 및 스킬 연결
10.5 마치며
CHAPTER 11 네이버톡톡 챗봇 만들기
11.1 네이버톡톡 챗봇 플랫폼 소개
__11.1.1 네이버톡톡 가입
__11.1.2 챗봇 API 설정
11.2 네이버톡톡 Chat Bot API v1
__11.2.1 이벤트 명세
__11.2.2 메시지 타입 명세
__11.2.3 보내기 API 작성
11.3 챗봇 API 서버에 네이버톡톡 연동
__11.3.1 챗봇 API 서버 수정
11.4 마치며
APPENDIX A 개발 환경 구축
A.1 맥에서 파이썬 설치하기
A.2 윈도우에서 파이썬 설치하기
A.3 아나콘다 설치하기
A.4 CLI 환경에서 콘다로 가상 환경 만들기
A.5 기타 패키지 설치하기
A.6 PyCharm 설치 및 프로젝트 생성
APPENDIX B AWS에서 챗봇 구동 환경 만들기
B.1 EC2
B.2 RDS