SlideShare une entreprise Scribd logo
1  sur  60
Télécharger pour lire hors ligne
파이썬을 활용한 챗봇 서비스 개발
3일차
1. Tensorflow Basic & Machine learning
2. Word vector representation
3. Tensorflow Deep learning
4. Generative chatbot
5. 챗봇 연동
l 3일차 강의 목차
156
Tensorflow basic
157
l 딥러닝과 챗봇
TensorFlow
머신러닝과 딥러닝을 위한 고성능 수치 계산 라이브러리
Data Flow Grape를 사용하여 수치를 계산함
한 개 이상의 CPU 또는 GPU를 사용하며, 파이썬 기반으로 동작함
Data Flow Grape
노드(Operation)과 엣지(Tense)들의 형태로 연산되어 동작하는 방식
1. Tensorflow basic
158
l 딥러닝과 챗봇
TensorFlow 설치
TensorFlow 실습
$ sudo apt-get install python-pip python-dev
# Ubuntu/Linux 64-bit, CPU only, Python 3.5
$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc0-cp35-c
p35m-linux_x86_64.whl
# Ubuntu/Linux 64-bit, GPU enabled, Python 3.5
# Requires CUDA toolkit 7.5 and CuDNN v5. For other versions, see "Install from sources" below.
$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0rc0-cp35-c
p35m-linux_x86_64.whl
$ sudo pip install --upgrade $TF_BINARY_URL
1. Tensorflow basic
159
l 딥러닝과 챗봇
TensorFlow 문법
Placeholder : 데이터의 형태만 지정하고 실제 데이터는 실행 단계에서 입력받도록 하는 방법
Tensor : Python의 Array 같은 개념
Rank : 차원 수
Shape : Array의 element 개수
Type : tensor의 타입
1. Tensorflow basic
160
l 딥러닝과 챗봇
TensorFlow Linear Regression
train
cost
hy
w b
1. Tensorflow basic
161
l 딥러닝과 챗봇
TensorFlow Logistic Regression
1. Tensorflow basic
162
l 딥러닝과 챗봇
TensorFlow Logistic Regression
1. Tensorflow basic
163
Word vector
representation
164
2. Word vector representation
l Word Representations : 단어를 수치화된 방식으로 표현
Bag of Words Model
one-hot encoding 방법을 적용
단어집합 내에서 각각의 단어가 엄청난 벡터로 표현됨
사전이 [감자, 딸기, 사과, 수박] 이라면 사과를 표현하는 벡터는 [0, 0, 1, 0] 이 되는 방식
단어가 본질적으로 다른 단어와 어떤 차이점 즉, 문맥에 대한 정보를 활용하지 못함
Word Embedding
원하는 차원을 가지는 하나의 벡터로 표현
수많은 corpus에서 딸기를 표현하는 벡터는 [0.4, -0.11, 0.55. . . . 0.1, 0.02]이 되는 방식
Co-occurrence Matrix with SVD
word2vec (Google)
Global Vector Representations (GloVe) (Stanford)
165
l Word Representations : 단어를 수치화된 방식으로 표현
Co-occurrence Matrix with SVD
단어를 중심으로 window size만큼의 주변 단어 출현 횟수를 계산하여 벡터를 표현하는 방법
Co-occurrence Matrix
[‘나는 너를 좋아한다.’, ‘나는 자는 것을 좋아한다.’, ‘나는 여행을 즐긴다.’]
Window size가 1인 co-occurrence Matrix
각 행들이 단어의 벡터로 사용
단어의 개수가 많아지면, 벡터가 엄청 커지게 됨(단어 수 만큼)
나는 너를 좋아한다 자는 것을 여행을 즐긴다
나는 0 1 0 1 0 1 0
너를 0 0 1 0 0 0 0
좋아한다 0 0 0 0 0 0 0
자는 0 0 0 0 1 0 0
것을 0 0 1 0 0 0 0
여행을 0 0 0 0 0 0 1
즐긴다 0 0 0 0 0 0 0
2. Word vector representation
166
l Word Representations : 단어를 수치화된 방식으로 표현
SVD (Singular Value Decomposition)
고차원의 벡터의 활동성이 높은 축은 유지하면서 차원을 축소하는 기법
2. Word vector representation
167
l Word Representations : 단어를 수치화된 방식으로 표현
Co-occurrence Matrix with SVD (실습)
Corpus : I like deep learning. I like NLP. I enjoy flying.
2. Word vector representation
168
l Word Representations : 단어를 수치화된 방식으로 표현
Co-occurrence Matrix with SVD (실습)
문제점
단어의 수만큼 Co-occurrence Matrix가 커짐 [시간복잡도 : O(𝑚𝑛#
)]
새로운 텍스트 데이터를 사용할 경우 다시 계산해야 됨
2. Word vector representation
169
l Word Representations : 단어를 수치화된 방식으로 표현
Word2Vec
단어의 벡터 표현을 위해 다양한 방법들을 적용하여 최적화 해낸 패키지
한 단어에 대해 근처(전후 5-10단어 정도)에 출현하는 다른 단어들(맥락)을 인공신경망에 학습 시킴
연관된 의미의 단어들은 문서 상에서 비슷한 맥락에서 출현할 가능성이 높기 때문에 학습을 반복해 나가는 과정에서 두
단어는 점차 가까운 벡터를 지니게 됨
2. Word vector representation
170
l Word Representations : 단어를 수치화된 방식으로 표현
Word2Vec 설명
토큰 동해물 과 백두산 이 마르고 닳도록
인덱싱 2130 3925 312 49 1222 50
2. Word vector representation
171
l Word Representations : 단어를 수치화된 방식으로 표현
Glove : 구글에서 발표한 단어를 표현하는 방법
Word2vec와 Glove 차이점
Word2Vec는 예측 기반의 모델
문맥 단어로부터 예측하려고 하는 타겟 단어의 확률을 향상시키는 방향으로 접근
Glove는 빈도 기반의 모델
co-occurence matrix에서 차원을 축소시키는 벡터를 구하는 방향으로 접근
Marco	saw a furry little	wampimuk hiding	in the tree.
Word2vec:
$
%
#
%
&
%
%
%
%
%
&
%
#
%
$
%
GloVe:
$
%
$
&
$
#
$
$
$
$
$
#
$
&
$
%
2. Word vector representation
172
l Word Representations : 단어를 수치화된 방식으로 표현
gensim Word2Vec
2. Word vector representation
173
l Word Representations : 단어를 수치화된 방식으로 표현
gensim Word2Vec
2. Word vector representation
174
l Word Representations : 단어를 수치화된 방식으로 표현
Glove
2. Word vector representation
175
Deep learning
176
l CNN(Convolutional Neural Network)
특징점(중요한 부분은 가져가고 불필요한 부분은 제거)하여 학습하는 인공신경망
CNN은 Convolution Pooling, ReLUs Layer, Fully Connected로 구성되어 있음
3. Deep Learning
177
l CNN(Convolutional Neural Network)
목표 : X라는 이미지가 있을 때, X로 분류되고 O라는 이미지가 있을 때 O로 분류하는 것
전통적인 방법 픽셀의 위치로 비교하게 되면 아래 그림과 같은 것은 동일하게 분류하기 힘듦
3. Deep Learning
178
l CNN(Convolutional Neural Network)
아래와 같이 다양한 상황에서도 분류를 할 수 있어야 함
CNN은 학습 이미지를 조각마다 비교함으로써, 특징들을 감지하고 저장해놓음
1 -1 -1
-1 1 -1
-1 -1 1
-1 -1 1
-1 1 -1
1 -1 -1
1 -1 1
-1 1 -1
1 -1 1
3. Deep Learning
179
l CNN(Convolutional Neural Network)
Convolution Layer
필터 1번의 Convolutional하면 다음과 같이 계산을 진행함
3. Deep Learning
180
l CNN(Convolutional Neural Network)
Convolution Layer
연속적으로 x 이미지를 넣으면 다음과 같이 값이 표현이 됨 (1일수록 일치, 0일수록 불일치)
3. Deep Learning
181
l 딥러닝과 챗봇
Convolution Layer (CNN)
새로운 x가 들어왔을 때, 이미지에 필터를 곱해버리면 output이 생성
3. Deep Learning
182
l 딥러닝과 챗봇
Pooling (CNN)
Convolution Layer의 결과에서 Window size만큼을 가져와 max값을 선택
3. Deep Learning
183
l 딥러닝과 챗봇
ReLus (CNN)
입력 값이 0보다 크면, 입력 값을 반환하고 0보다 작거나 같으면 0을 반환
마이너스 값을 제거하기 위해 사용
3. Deep Learning
184
l 딥러닝과 챗봇
ReLus (CNN)
3. Deep Learning
185
l 딥러닝과 챗봇
Fully Connected Layer (CNN)
Backpropagation
은닉층에서 사용되는 가중치의 값을 오류가 낮게끔 가중치를 수정해 나가는 방법
Right	answer Actual	answer Error
X 1 0.92 0.08
O 0 0.51 0.49
Total 0.57
3. Deep Learning
186
l 딥러닝과 챗봇
Convolutional Neural Networks for Sentence Classification
이미지의 픽셀 대신 word2vec 또는 glove와 같은 word embedding을 통해 나온 값을 input 값으로 넣어 학습시키는 CNN
n
k
h
n : 문장에 나오는 단어의 개수, k : word embedding 차원, h : 필터 윈도우 사이즈
3. Deep Learning
187
l Word2Vec + CNN Text Classifier
- 데이터를 전처리한다.
- 학습 셋과 테스트셋을 분리한다.
- word2vec embedding 결과를 학습 셋의 전처리 단계에 적용한다.
- cnn을 돌리면서 labeling 결과에서 축소되는 방향으로 학습시킨다.
3. Deep Learning
188
l Word2Vec + CNN Text Classifier
3. Deep Learning
189
l Word2Vec + CNN Text Classifier
3. Deep Learning
190
l Word2Vec + CNN Text Classifier
3. Deep Learning
191
l Word2Vec + CNN Text Classifier
3. Deep Learning
192
l Word2Vec + CNN Text Classifier
3. Deep Learning
193
l Word2Vec + CNN Text Classifier
3. Deep Learning
194
l Word2Vec + CNN Text Classifier
3. Deep Learning
195
l Word2Vec + CNN Text Classifier
3. Deep Learning
196
l RNN
현재 입력에 대한 결과를 과거 정보를 고려하여 학습함
Sigmoid함수로 thnh, ReLU를 사용(첫번째 hidden state는 0으로 초기화)
3. Deep Learning
197
l RNN
Truncated BPTT or Vanishing Gradient
- 단어를 유추하기 위한 문맥이 가까울 때는 학습이 잘되지만, 멀어질수록 문맥 학습이 안됨
- The clouds are in the sky에서 sky라는 단어는 The clouds are in the만 보더라도 유추 가능함
- I lived in France for 10 years. Therefore, I speak French well에서 French를 유추하기 위해서는 프랑스가 필요함
3. Deep Learning
198
l LSTM
조건 게이트의 연산을 통해 RNN의 단기 기억 능력을 향상시킨 인공신경망(1000단계까지)
- Input gate, forget gate, Output gate로 구성됨
3. Deep Learning
199
l LSTM
Forget gate
- 나는 스티브 잡스를 좋아한다. 그는 애플의 창업주이다. (스티브 잡스를 유지하여 그 라는 것을 생성해낼 수 있음)
- 입력 데이터와 전 데이터를 보고 과거 데이터들를 셀에 유지할지 저장할지를 진행함 (0이면 제거, 1이면 유지)
Input gate
- 어떤 새로운 정보를 셀 상태에 저장하고 선택함
- 새로운 후보 값들의 벡터를 만들고 갱신할 값이라면 연산을 통해 합침
- 나는 스티브 잡스를 좋아한다. 그는 애플의 창업주이다. (스티브 잡스를 셀 상태에 저장)
3. Deep Learning
200
l LSTM
Output gate
- 과거 셀 상태를 현재 업데이트 된 셀 상태로 결정
- 나는 스티브 잡스를 좋아한다. 그는 애플의 창업주이다. (스티브 잡스, 그 업데이트)
3. Deep Learning
201
Generative 모델
202
l Generative sentence
4. Generative model
N-gram
문장 전체를 길이 N의 Sub-String으로 나누는 방법
어절 단위의 N-Gram으로 분할
ex) 나 이대나온 여자야
- unigram(1-gram) : {나, 이대나온, 여자야}
- bigram(2-gram) : {나 이대나온, 여자야}
- trigram(3-gram) : {나 이대나온 여자야}
음절 단위의 N-Gram으로 분할
Ex) 나 이대나온 여자야
- unigram(1-gram) :
{나,이,대,나,온,여,자,야}
- bigram(2-gram) : {나, 이대, 대나, 나온,
여자, 자야}
- trigram(3-gram) : {나, 이대나, 대나온,
여자야}
203
l Generative sentence
4. Generative model
N-Gram 확률
A단어 다음에 B단어가 나올 확률 : 조건부 확률
𝑃 𝐴 𝐵 =	
𝑃 𝐴, 𝐵
𝑃 𝐵
𝑃 𝐴, 𝐵 = 𝑃 𝐴 𝐵 𝑃(𝐵)
P(A, B, C, D) = 𝑃 𝐴 𝑃 𝐵 𝐴 𝑃 𝐶 𝐴, 𝐵 𝑃(𝐷|𝐴, 𝐵, 𝐶)
uni-gram
bi-gram
N-gram
직전의 사건에 의해서만 영향을 받는다고 가정한다면, Markov Assumption
204
l Generative chatbot (MCMC)
4. Generative model
N-Gram 확률 결과
목적: 기존 가사 데이터를 이용하여 가사 생성 모델 제안
N-gram 확률을 연속적으로 이어붙여
MCMC(Markov chian Monte-carlo) 기반의
문장 생성 챗봇 제작
𝑃 𝐶|𝐴, 𝐵 =
𝐴, 𝐵	단어	다음에	등장했던	𝐶	단어의	빈도	수
𝐴, 𝐵	단어	다음에 등장했었던	단어의 빈도수의 합
𝑃 𝐶|𝐴, 𝐵 	×	𝑃 𝐷 𝐵, 𝐶 …
205
Kakao 연동
206
5. Kakao 연동
l 챗봇 제작(웹서버 환경 구축)
https://center-pf.kakao.com/create
207
5. Kakao 연동
Python Flask
@app.route : URL 규칙을 받아 해당하는 규칙의 URL로 요청이 들어온 경우 등록한 함수를 실행하게끔 설정
l 챗봇 제작(웹서버 환경 구축)
208
5. Kakao 연동
l 챗봇 제작(웹서버 환경 구축)
web gunicorn hello:app --log-file=-
Procfile
Heroku
간단한 챗봇을 heroku를 통하여 배포
209
5. Kakao 연동
카카오톡 자동응답 API 확인(GET)
https://github.com/plusfriend/auto_reply
l 챗봇 제작(웹서버 환경 구축)
210
5. Kakao 연동
카카오톡 자동응답 API 확인(POST - request)
https://github.com/plusfriend/auto_reply
l 챗봇 제작(웹서버 환경 구축)
211
5. Kakao 연동
카카오톡 자동응답 API 확인(POST - response)
https://github.com/plusfriend/auto_reply
l 챗봇 제작(웹서버 환경 구축)
212
5. Kakao 연동
웹서버 테스트-1 (GET)
프로젝트 run 후 웹브라우저 열어 테스트
웹서버 테스트-1 (POST)
프로젝트 run 후 postman을 통해 테스트
l 챗봇 제작(웹서버 환경 구축)
213
5. Kakao 연동
관리자센터 접속 후 확인하기
l 챗봇 제작(카카오톡 연동)
214

Contenu connexe

Tendances

딥러닝 기반의 자연어처리 최근 연구 동향
딥러닝 기반의 자연어처리 최근 연구 동향딥러닝 기반의 자연어처리 최근 연구 동향
딥러닝 기반의 자연어처리 최근 연구 동향LGCNSairesearch
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016Taehoon Kim
 
[PYCON Korea 2018] Python Application Server for Recommender System
[PYCON Korea 2018] Python Application Server for Recommender System [PYCON Korea 2018] Python Application Server for Recommender System
[PYCON Korea 2018] Python Application Server for Recommender System Kwangseob Kim
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민종민 김
 
Open domain dialogue Chatbot(잡담봇 삽질기)
Open domain dialogue Chatbot(잡담봇 삽질기)Open domain dialogue Chatbot(잡담봇 삽질기)
Open domain dialogue Chatbot(잡담봇 삽질기)NAVER Engineering
 
Fine tune and deploy Hugging Face NLP models
Fine tune and deploy Hugging Face NLP modelsFine tune and deploy Hugging Face NLP models
Fine tune and deploy Hugging Face NLP modelsOVHcloud
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템NAVER D2
 
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들Chris Ohk
 
한국어 문서 추출요약 AI 경진대회- 좌충우돌 후기
한국어 문서 추출요약 AI 경진대회- 좌충우돌 후기한국어 문서 추출요약 AI 경진대회- 좌충우돌 후기
한국어 문서 추출요약 AI 경진대회- 좌충우돌 후기Hangil Kim
 
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017Taehoon Kim
 
[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기NAVER D2
 
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호NAVER D2
 
golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기
golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기
golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기Sangik Bae
 
elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리Junyi Song
 
알아두면 쓸데있는 신비한 딥러닝 이야기
알아두면 쓸데있는 신비한 딥러닝 이야기알아두면 쓸데있는 신비한 딥러닝 이야기
알아두면 쓸데있는 신비한 딥러닝 이야기Kwangsik Lee
 
카카오톡으로 여친 만들기 2013.06.29
카카오톡으로 여친 만들기 2013.06.29카카오톡으로 여친 만들기 2013.06.29
카카오톡으로 여친 만들기 2013.06.29Taehoon Kim
 
2023년 인공지능 서비스 트렌드
2023년 인공지능 서비스 트렌드2023년 인공지능 서비스 트렌드
2023년 인공지능 서비스 트렌드SK(주) C&C - 강병호
 
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)WON JOON YOO
 
NLU Tech Talk with KorBERT
NLU Tech Talk with KorBERTNLU Tech Talk with KorBERT
NLU Tech Talk with KorBERTLGCNSairesearch
 
Neural Language Generation Head to Toe
Neural Language Generation Head to Toe Neural Language Generation Head to Toe
Neural Language Generation Head to Toe Hady Elsahar
 

Tendances (20)

딥러닝 기반의 자연어처리 최근 연구 동향
딥러닝 기반의 자연어처리 최근 연구 동향딥러닝 기반의 자연어처리 최근 연구 동향
딥러닝 기반의 자연어처리 최근 연구 동향
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
 
[PYCON Korea 2018] Python Application Server for Recommender System
[PYCON Korea 2018] Python Application Server for Recommender System [PYCON Korea 2018] Python Application Server for Recommender System
[PYCON Korea 2018] Python Application Server for Recommender System
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민
 
Open domain dialogue Chatbot(잡담봇 삽질기)
Open domain dialogue Chatbot(잡담봇 삽질기)Open domain dialogue Chatbot(잡담봇 삽질기)
Open domain dialogue Chatbot(잡담봇 삽질기)
 
Fine tune and deploy Hugging Face NLP models
Fine tune and deploy Hugging Face NLP modelsFine tune and deploy Hugging Face NLP models
Fine tune and deploy Hugging Face NLP models
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템
 
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
 
한국어 문서 추출요약 AI 경진대회- 좌충우돌 후기
한국어 문서 추출요약 AI 경진대회- 좌충우돌 후기한국어 문서 추출요약 AI 경진대회- 좌충우돌 후기
한국어 문서 추출요약 AI 경진대회- 좌충우돌 후기
 
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
 
[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기
 
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
 
golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기
golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기
golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기
 
elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리
 
알아두면 쓸데있는 신비한 딥러닝 이야기
알아두면 쓸데있는 신비한 딥러닝 이야기알아두면 쓸데있는 신비한 딥러닝 이야기
알아두면 쓸데있는 신비한 딥러닝 이야기
 
카카오톡으로 여친 만들기 2013.06.29
카카오톡으로 여친 만들기 2013.06.29카카오톡으로 여친 만들기 2013.06.29
카카오톡으로 여친 만들기 2013.06.29
 
2023년 인공지능 서비스 트렌드
2023년 인공지능 서비스 트렌드2023년 인공지능 서비스 트렌드
2023년 인공지능 서비스 트렌드
 
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
 
NLU Tech Talk with KorBERT
NLU Tech Talk with KorBERTNLU Tech Talk with KorBERT
NLU Tech Talk with KorBERT
 
Neural Language Generation Head to Toe
Neural Language Generation Head to Toe Neural Language Generation Head to Toe
Neural Language Generation Head to Toe
 

Similaire à 파이썬을 활용한 챗봇 서비스 개발 3일차

Machine translation survey vol2
Machine translation survey   vol2Machine translation survey   vol2
Machine translation survey vol2gohyunwoong
 
댓글 감성 분석 상용화 개발기(Ver. 2)
댓글 감성 분석 상용화 개발기(Ver. 2)댓글 감성 분석 상용화 개발기(Ver. 2)
댓글 감성 분석 상용화 개발기(Ver. 2)Jeffrey Kim
 
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)Adonis Han
 
Windows Debugging Technique #2
Windows Debugging Technique #2Windows Debugging Technique #2
Windows Debugging Technique #2Wooseok Seo
 
CNN for sentence classification
CNN for sentence classificationCNN for sentence classification
CNN for sentence classificationKyeongUkJang
 
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)WON JOON YOO
 
Adversarial Attack in Neural Machine Translation
Adversarial Attack in Neural Machine TranslationAdversarial Attack in Neural Machine Translation
Adversarial Attack in Neural Machine TranslationHyunKyu Jeon
 
15.ai term project_final
15.ai term project_final15.ai term project_final
15.ai term project_final호상 장
 
머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)홍배 김
 
개발자를 위한 공감세미나 tensor-flow
개발자를 위한 공감세미나 tensor-flow개발자를 위한 공감세미나 tensor-flow
개발자를 위한 공감세미나 tensor-flow양 한빛
 
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013Esun Kim
 
2.supervised learning(epoch#2)-3
2.supervised learning(epoch#2)-32.supervised learning(epoch#2)-3
2.supervised learning(epoch#2)-3Haesun Park
 
딥러닝을 위한 Tensor flow(skt academy)
딥러닝을 위한 Tensor flow(skt academy)딥러닝을 위한 Tensor flow(skt academy)
딥러닝을 위한 Tensor flow(skt academy)Tae Young Lee
 

Similaire à 파이썬을 활용한 챗봇 서비스 개발 3일차 (20)

Pycon Korea 2020
Pycon Korea 2020 Pycon Korea 2020
Pycon Korea 2020
 
Machine translation survey vol2
Machine translation survey   vol2Machine translation survey   vol2
Machine translation survey vol2
 
댓글 감성 분석 상용화 개발기(Ver. 2)
댓글 감성 분석 상용화 개발기(Ver. 2)댓글 감성 분석 상용화 개발기(Ver. 2)
댓글 감성 분석 상용화 개발기(Ver. 2)
 
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
 
Windows Debugging Technique #2
Windows Debugging Technique #2Windows Debugging Technique #2
Windows Debugging Technique #2
 
CNN for sentence classification
CNN for sentence classificationCNN for sentence classification
CNN for sentence classification
 
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
 
Mt
MtMt
Mt
 
Deep learning overview
Deep learning overviewDeep learning overview
Deep learning overview
 
R.T.Bach
R.T.BachR.T.Bach
R.T.Bach
 
Adversarial Attack in Neural Machine Translation
Adversarial Attack in Neural Machine TranslationAdversarial Attack in Neural Machine Translation
Adversarial Attack in Neural Machine Translation
 
15.ai term project_final
15.ai term project_final15.ai term project_final
15.ai term project_final
 
머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)
 
자연어4 | 1차강의
자연어4 | 1차강의자연어4 | 1차강의
자연어4 | 1차강의
 
개발자를 위한 공감세미나 tensor-flow
개발자를 위한 공감세미나 tensor-flow개발자를 위한 공감세미나 tensor-flow
개발자를 위한 공감세미나 tensor-flow
 
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
사례를 통해 살펴보는 프로파일링과 최적화 NDC2013
 
파이썬과 자연어 4 | word/doc2vec
파이썬과 자연어 4 | word/doc2vec파이썬과 자연어 4 | word/doc2vec
파이썬과 자연어 4 | word/doc2vec
 
2.supervised learning(epoch#2)-3
2.supervised learning(epoch#2)-32.supervised learning(epoch#2)-3
2.supervised learning(epoch#2)-3
 
딥러닝을 위한 Tensor flow(skt academy)
딥러닝을 위한 Tensor flow(skt academy)딥러닝을 위한 Tensor flow(skt academy)
딥러닝을 위한 Tensor flow(skt academy)
 
Nlp study1
Nlp study1Nlp study1
Nlp study1
 

파이썬을 활용한 챗봇 서비스 개발 3일차

  • 1. 파이썬을 활용한 챗봇 서비스 개발 3일차
  • 2. 1. Tensorflow Basic & Machine learning 2. Word vector representation 3. Tensorflow Deep learning 4. Generative chatbot 5. 챗봇 연동 l 3일차 강의 목차 156
  • 4. l 딥러닝과 챗봇 TensorFlow 머신러닝과 딥러닝을 위한 고성능 수치 계산 라이브러리 Data Flow Grape를 사용하여 수치를 계산함 한 개 이상의 CPU 또는 GPU를 사용하며, 파이썬 기반으로 동작함 Data Flow Grape 노드(Operation)과 엣지(Tense)들의 형태로 연산되어 동작하는 방식 1. Tensorflow basic 158
  • 5. l 딥러닝과 챗봇 TensorFlow 설치 TensorFlow 실습 $ sudo apt-get install python-pip python-dev # Ubuntu/Linux 64-bit, CPU only, Python 3.5 $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc0-cp35-c p35m-linux_x86_64.whl # Ubuntu/Linux 64-bit, GPU enabled, Python 3.5 # Requires CUDA toolkit 7.5 and CuDNN v5. For other versions, see "Install from sources" below. $ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0rc0-cp35-c p35m-linux_x86_64.whl $ sudo pip install --upgrade $TF_BINARY_URL 1. Tensorflow basic 159
  • 6. l 딥러닝과 챗봇 TensorFlow 문법 Placeholder : 데이터의 형태만 지정하고 실제 데이터는 실행 단계에서 입력받도록 하는 방법 Tensor : Python의 Array 같은 개념 Rank : 차원 수 Shape : Array의 element 개수 Type : tensor의 타입 1. Tensorflow basic 160
  • 7. l 딥러닝과 챗봇 TensorFlow Linear Regression train cost hy w b 1. Tensorflow basic 161
  • 8. l 딥러닝과 챗봇 TensorFlow Logistic Regression 1. Tensorflow basic 162
  • 9. l 딥러닝과 챗봇 TensorFlow Logistic Regression 1. Tensorflow basic 163
  • 11. 2. Word vector representation l Word Representations : 단어를 수치화된 방식으로 표현 Bag of Words Model one-hot encoding 방법을 적용 단어집합 내에서 각각의 단어가 엄청난 벡터로 표현됨 사전이 [감자, 딸기, 사과, 수박] 이라면 사과를 표현하는 벡터는 [0, 0, 1, 0] 이 되는 방식 단어가 본질적으로 다른 단어와 어떤 차이점 즉, 문맥에 대한 정보를 활용하지 못함 Word Embedding 원하는 차원을 가지는 하나의 벡터로 표현 수많은 corpus에서 딸기를 표현하는 벡터는 [0.4, -0.11, 0.55. . . . 0.1, 0.02]이 되는 방식 Co-occurrence Matrix with SVD word2vec (Google) Global Vector Representations (GloVe) (Stanford) 165
  • 12. l Word Representations : 단어를 수치화된 방식으로 표현 Co-occurrence Matrix with SVD 단어를 중심으로 window size만큼의 주변 단어 출현 횟수를 계산하여 벡터를 표현하는 방법 Co-occurrence Matrix [‘나는 너를 좋아한다.’, ‘나는 자는 것을 좋아한다.’, ‘나는 여행을 즐긴다.’] Window size가 1인 co-occurrence Matrix 각 행들이 단어의 벡터로 사용 단어의 개수가 많아지면, 벡터가 엄청 커지게 됨(단어 수 만큼) 나는 너를 좋아한다 자는 것을 여행을 즐긴다 나는 0 1 0 1 0 1 0 너를 0 0 1 0 0 0 0 좋아한다 0 0 0 0 0 0 0 자는 0 0 0 0 1 0 0 것을 0 0 1 0 0 0 0 여행을 0 0 0 0 0 0 1 즐긴다 0 0 0 0 0 0 0 2. Word vector representation 166
  • 13. l Word Representations : 단어를 수치화된 방식으로 표현 SVD (Singular Value Decomposition) 고차원의 벡터의 활동성이 높은 축은 유지하면서 차원을 축소하는 기법 2. Word vector representation 167
  • 14. l Word Representations : 단어를 수치화된 방식으로 표현 Co-occurrence Matrix with SVD (실습) Corpus : I like deep learning. I like NLP. I enjoy flying. 2. Word vector representation 168
  • 15. l Word Representations : 단어를 수치화된 방식으로 표현 Co-occurrence Matrix with SVD (실습) 문제점 단어의 수만큼 Co-occurrence Matrix가 커짐 [시간복잡도 : O(𝑚𝑛# )] 새로운 텍스트 데이터를 사용할 경우 다시 계산해야 됨 2. Word vector representation 169
  • 16. l Word Representations : 단어를 수치화된 방식으로 표현 Word2Vec 단어의 벡터 표현을 위해 다양한 방법들을 적용하여 최적화 해낸 패키지 한 단어에 대해 근처(전후 5-10단어 정도)에 출현하는 다른 단어들(맥락)을 인공신경망에 학습 시킴 연관된 의미의 단어들은 문서 상에서 비슷한 맥락에서 출현할 가능성이 높기 때문에 학습을 반복해 나가는 과정에서 두 단어는 점차 가까운 벡터를 지니게 됨 2. Word vector representation 170
  • 17. l Word Representations : 단어를 수치화된 방식으로 표현 Word2Vec 설명 토큰 동해물 과 백두산 이 마르고 닳도록 인덱싱 2130 3925 312 49 1222 50 2. Word vector representation 171
  • 18. l Word Representations : 단어를 수치화된 방식으로 표현 Glove : 구글에서 발표한 단어를 표현하는 방법 Word2vec와 Glove 차이점 Word2Vec는 예측 기반의 모델 문맥 단어로부터 예측하려고 하는 타겟 단어의 확률을 향상시키는 방향으로 접근 Glove는 빈도 기반의 모델 co-occurence matrix에서 차원을 축소시키는 벡터를 구하는 방향으로 접근 Marco saw a furry little wampimuk hiding in the tree. Word2vec: $ % # % & % % % % % & % # % $ % GloVe: $ % $ & $ # $ $ $ $ $ # $ & $ % 2. Word vector representation 172
  • 19. l Word Representations : 단어를 수치화된 방식으로 표현 gensim Word2Vec 2. Word vector representation 173
  • 20. l Word Representations : 단어를 수치화된 방식으로 표현 gensim Word2Vec 2. Word vector representation 174
  • 21. l Word Representations : 단어를 수치화된 방식으로 표현 Glove 2. Word vector representation 175
  • 23. l CNN(Convolutional Neural Network) 특징점(중요한 부분은 가져가고 불필요한 부분은 제거)하여 학습하는 인공신경망 CNN은 Convolution Pooling, ReLUs Layer, Fully Connected로 구성되어 있음 3. Deep Learning 177
  • 24. l CNN(Convolutional Neural Network) 목표 : X라는 이미지가 있을 때, X로 분류되고 O라는 이미지가 있을 때 O로 분류하는 것 전통적인 방법 픽셀의 위치로 비교하게 되면 아래 그림과 같은 것은 동일하게 분류하기 힘듦 3. Deep Learning 178
  • 25. l CNN(Convolutional Neural Network) 아래와 같이 다양한 상황에서도 분류를 할 수 있어야 함 CNN은 학습 이미지를 조각마다 비교함으로써, 특징들을 감지하고 저장해놓음 1 -1 -1 -1 1 -1 -1 -1 1 -1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 -1 1 3. Deep Learning 179
  • 26. l CNN(Convolutional Neural Network) Convolution Layer 필터 1번의 Convolutional하면 다음과 같이 계산을 진행함 3. Deep Learning 180
  • 27. l CNN(Convolutional Neural Network) Convolution Layer 연속적으로 x 이미지를 넣으면 다음과 같이 값이 표현이 됨 (1일수록 일치, 0일수록 불일치) 3. Deep Learning 181
  • 28. l 딥러닝과 챗봇 Convolution Layer (CNN) 새로운 x가 들어왔을 때, 이미지에 필터를 곱해버리면 output이 생성 3. Deep Learning 182
  • 29. l 딥러닝과 챗봇 Pooling (CNN) Convolution Layer의 결과에서 Window size만큼을 가져와 max값을 선택 3. Deep Learning 183
  • 30. l 딥러닝과 챗봇 ReLus (CNN) 입력 값이 0보다 크면, 입력 값을 반환하고 0보다 작거나 같으면 0을 반환 마이너스 값을 제거하기 위해 사용 3. Deep Learning 184
  • 31. l 딥러닝과 챗봇 ReLus (CNN) 3. Deep Learning 185
  • 32. l 딥러닝과 챗봇 Fully Connected Layer (CNN) Backpropagation 은닉층에서 사용되는 가중치의 값을 오류가 낮게끔 가중치를 수정해 나가는 방법 Right answer Actual answer Error X 1 0.92 0.08 O 0 0.51 0.49 Total 0.57 3. Deep Learning 186
  • 33. l 딥러닝과 챗봇 Convolutional Neural Networks for Sentence Classification 이미지의 픽셀 대신 word2vec 또는 glove와 같은 word embedding을 통해 나온 값을 input 값으로 넣어 학습시키는 CNN n k h n : 문장에 나오는 단어의 개수, k : word embedding 차원, h : 필터 윈도우 사이즈 3. Deep Learning 187
  • 34. l Word2Vec + CNN Text Classifier - 데이터를 전처리한다. - 학습 셋과 테스트셋을 분리한다. - word2vec embedding 결과를 학습 셋의 전처리 단계에 적용한다. - cnn을 돌리면서 labeling 결과에서 축소되는 방향으로 학습시킨다. 3. Deep Learning 188
  • 35. l Word2Vec + CNN Text Classifier 3. Deep Learning 189
  • 36. l Word2Vec + CNN Text Classifier 3. Deep Learning 190
  • 37. l Word2Vec + CNN Text Classifier 3. Deep Learning 191
  • 38. l Word2Vec + CNN Text Classifier 3. Deep Learning 192
  • 39. l Word2Vec + CNN Text Classifier 3. Deep Learning 193
  • 40. l Word2Vec + CNN Text Classifier 3. Deep Learning 194
  • 41. l Word2Vec + CNN Text Classifier 3. Deep Learning 195
  • 42. l Word2Vec + CNN Text Classifier 3. Deep Learning 196
  • 43. l RNN 현재 입력에 대한 결과를 과거 정보를 고려하여 학습함 Sigmoid함수로 thnh, ReLU를 사용(첫번째 hidden state는 0으로 초기화) 3. Deep Learning 197
  • 44. l RNN Truncated BPTT or Vanishing Gradient - 단어를 유추하기 위한 문맥이 가까울 때는 학습이 잘되지만, 멀어질수록 문맥 학습이 안됨 - The clouds are in the sky에서 sky라는 단어는 The clouds are in the만 보더라도 유추 가능함 - I lived in France for 10 years. Therefore, I speak French well에서 French를 유추하기 위해서는 프랑스가 필요함 3. Deep Learning 198
  • 45. l LSTM 조건 게이트의 연산을 통해 RNN의 단기 기억 능력을 향상시킨 인공신경망(1000단계까지) - Input gate, forget gate, Output gate로 구성됨 3. Deep Learning 199
  • 46. l LSTM Forget gate - 나는 스티브 잡스를 좋아한다. 그는 애플의 창업주이다. (스티브 잡스를 유지하여 그 라는 것을 생성해낼 수 있음) - 입력 데이터와 전 데이터를 보고 과거 데이터들를 셀에 유지할지 저장할지를 진행함 (0이면 제거, 1이면 유지) Input gate - 어떤 새로운 정보를 셀 상태에 저장하고 선택함 - 새로운 후보 값들의 벡터를 만들고 갱신할 값이라면 연산을 통해 합침 - 나는 스티브 잡스를 좋아한다. 그는 애플의 창업주이다. (스티브 잡스를 셀 상태에 저장) 3. Deep Learning 200
  • 47. l LSTM Output gate - 과거 셀 상태를 현재 업데이트 된 셀 상태로 결정 - 나는 스티브 잡스를 좋아한다. 그는 애플의 창업주이다. (스티브 잡스, 그 업데이트) 3. Deep Learning 201
  • 49. l Generative sentence 4. Generative model N-gram 문장 전체를 길이 N의 Sub-String으로 나누는 방법 어절 단위의 N-Gram으로 분할 ex) 나 이대나온 여자야 - unigram(1-gram) : {나, 이대나온, 여자야} - bigram(2-gram) : {나 이대나온, 여자야} - trigram(3-gram) : {나 이대나온 여자야} 음절 단위의 N-Gram으로 분할 Ex) 나 이대나온 여자야 - unigram(1-gram) : {나,이,대,나,온,여,자,야} - bigram(2-gram) : {나, 이대, 대나, 나온, 여자, 자야} - trigram(3-gram) : {나, 이대나, 대나온, 여자야} 203
  • 50. l Generative sentence 4. Generative model N-Gram 확률 A단어 다음에 B단어가 나올 확률 : 조건부 확률 𝑃 𝐴 𝐵 = 𝑃 𝐴, 𝐵 𝑃 𝐵 𝑃 𝐴, 𝐵 = 𝑃 𝐴 𝐵 𝑃(𝐵) P(A, B, C, D) = 𝑃 𝐴 𝑃 𝐵 𝐴 𝑃 𝐶 𝐴, 𝐵 𝑃(𝐷|𝐴, 𝐵, 𝐶) uni-gram bi-gram N-gram 직전의 사건에 의해서만 영향을 받는다고 가정한다면, Markov Assumption 204
  • 51. l Generative chatbot (MCMC) 4. Generative model N-Gram 확률 결과 목적: 기존 가사 데이터를 이용하여 가사 생성 모델 제안 N-gram 확률을 연속적으로 이어붙여 MCMC(Markov chian Monte-carlo) 기반의 문장 생성 챗봇 제작 𝑃 𝐶|𝐴, 𝐵 = 𝐴, 𝐵 단어 다음에 등장했던 𝐶 단어의 빈도 수 𝐴, 𝐵 단어 다음에 등장했었던 단어의 빈도수의 합 𝑃 𝐶|𝐴, 𝐵 × 𝑃 𝐷 𝐵, 𝐶 … 205
  • 53. 5. Kakao 연동 l 챗봇 제작(웹서버 환경 구축) https://center-pf.kakao.com/create 207
  • 54. 5. Kakao 연동 Python Flask @app.route : URL 규칙을 받아 해당하는 규칙의 URL로 요청이 들어온 경우 등록한 함수를 실행하게끔 설정 l 챗봇 제작(웹서버 환경 구축) 208
  • 55. 5. Kakao 연동 l 챗봇 제작(웹서버 환경 구축) web gunicorn hello:app --log-file=- Procfile Heroku 간단한 챗봇을 heroku를 통하여 배포 209
  • 56. 5. Kakao 연동 카카오톡 자동응답 API 확인(GET) https://github.com/plusfriend/auto_reply l 챗봇 제작(웹서버 환경 구축) 210
  • 57. 5. Kakao 연동 카카오톡 자동응답 API 확인(POST - request) https://github.com/plusfriend/auto_reply l 챗봇 제작(웹서버 환경 구축) 211
  • 58. 5. Kakao 연동 카카오톡 자동응답 API 확인(POST - response) https://github.com/plusfriend/auto_reply l 챗봇 제작(웹서버 환경 구축) 212
  • 59. 5. Kakao 연동 웹서버 테스트-1 (GET) 프로젝트 run 후 웹브라우저 열어 테스트 웹서버 테스트-1 (POST) 프로젝트 run 후 postman을 통해 테스트 l 챗봇 제작(웹서버 환경 구축) 213
  • 60. 5. Kakao 연동 관리자센터 접속 후 확인하기 l 챗봇 제작(카카오톡 연동) 214