March 26, 2022
딥러닝, NLP, 챗봇 등은 회사에서 아주 자주 들을 수 있는 용어들이다. 내가 담당하지는 않지만 분명히 관심이 있는 영역이기에 그 용어들의 정확한 개념과 서로 어떻게 엮여있는지에 대해서 알고 싶었다. 그래서 이 책을 더욱 재밌게 읽을 수 있었다.
이 책은 Python의 설치, REST API에 대한 설명처럼 아주 기본적인 부분부터 설명이 나와 있다.
아주 기초적인 부분이어도 짤막하게 나마 설명이 있어서 더욱 명쾌하게 개념이 잡히는 기분이었다. (당연히 모든 개념에 대해 자세히 설명할 수는 없고, 세상에 그런 책은 없을 것이다.) 그렇게 해서 결국 책의 후반부에서는 그 개념들로 챗봇을 만들어 본다.
책의 서문에는 ‘파이썬 기본 개요와 웹 개발 지식을 알고 있으며, 한 번이라도 텐서플로 및 케라스로 딥러닝 모델을 학습해본 경험이 있는 독자들을 대상으로 쓰였습니다.‘라고 쓰여있다. 파이썬 기본 개요와 웹 개발 지식은 아주 조금은 알고 있는 것 같지만, 텐서플로나 케라스를 써 본적은 없어서 조금 겁을 먹었던 것이 사실이다. 하지만 책의 자세한 설명 덕분에 아주 어렵지 않게 책을 따라갈 수 있었다.
목차가 좀 길기는 하지만, 정말 잘 짜여진 목차라고 생각이 들어서 큰 챕터들만 가져와보았다.
CHAPTER 1 챗봇 입문하기
CHAPTER 2 파이썬 시작하기
CHAPTER 3 토크나이징
CHAPTER 4 임베딩
CHAPTER 5 텍스트 유사도
CHAPTER 6 챗봇 엔진에 필요한 딥러닝 모델
CHAPTER 7 챗봇 학습툴 만들기
CHAPTER 8 챗봇 엔진 만들기
CHAPTER 9 챗봇 API 만들기
CHAPTER 10 카카오톡 챗봇 만들기
CHAPTER 11 네이버톡톡 챗봇 만들기 이 책의 목차는 아래와 같이 크게 3부분으로 나눌 수 있다.
1.우리가 왜 챗봇을 만들어볼 것이고
2.그것을 만들기 위해 어떤 것을 알아야하는지
3.그것들을 이용해서 어떻게 만들 것인지
나는 목적의식이 있는 개발을 좋아하고, 그에 재미를 느낀다. 이 책은 우리가 이 책을 읽는 목적과 함께 개념들에 대해 상세히 알려주어서 많은 도움이 되었다.
토크나이징: 형태소(일정한 의미가 있는 가장 작은 정보 단위)를 토큰 단위로 정보를 나누는 작업
KoNLPy: 한국어 토크나이징을 지원하는 파이썬 라이브러리
임베딩: 자연어를 숫자나 벡터 공간으로 표현하는 과정
단어 임베딩의 방법들
원-핫 인코딩: 단어의 순서에 의한 인덱스 기반으로 인코딩 → 단어끼리의 유사도는 모름,
Word2Vec: 구글에서 발표한 가장 많이 사용되는 신경망 기반 단어 임베딩 모델
텍스트 유사도: 각 단어의 벡터를 구한 뒤 다음 벡터간의 거리 계산으로 유사도 파악
케라스: 신경망 모델을 구축할 수 있는 API라이브러리로 텐서플로 2.0에서 기본 API로 채택
챗봇을 제작함에 있어 꼭 필요한 개념과 그것을 이용한 실습과정을 두껍지 않은 한 권의 책으로 다루고 있다는 것이 가장 매력적이었다. 챗봇을 만들어야 할 때 이 책 하나만 있으면 든든할 것 같은 느낌!
다소 어려운 개념들도 있었지만, 그건 내가 처음 보는 것들이어서 낯설게 다가와서인 것 같다. 실제로 책에서도 어려운 부분이 있었다면 다시 책을 보거나 학습할 내용에 대해서도 권장해주기도 한다.
또한 흐름을 놓치지 않도록 배려가 잘 되어 있는 것도 좋았다. 아래의 이미지처럼 NOTE 항목을 통해 현재 읽고 있는 부분이 전체에서 어떤 역할을 차지하는지와
아래의 이미지처럼 코드에서 해당 부분이 어떤 역할을 차지하는지 주석과 설명을 통해 자세한 서술이 되어 있다.
챗봇을 만들어보고 싶은데, 수많은 개념과 응용방법으로 감이 잡히지 않는다면 우선 이 책으로 발걸음을 내딛기를 권하고 싶다.
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.