(재발표) Creating AI chat bot with Python 3 and Tensorflow

  • 데이터와 학습
  • 2016-08-14 (일요일) 14:00 - 14:40
  • 영어
  • 102
  • Photography and recording is allowed

Slide

https://speakerdeck.com/inureyes/building-ai-chat-bot-using-python-3-and-tensorflow

Video

https://www.youtube.com/watch?v=tNGDm3a1cuQ

PDF

https://github.com/pythonkr/pyconapac-2016-files/raw/master/20160814-102-63-junggyushin.pdf

Description

chat bot은 2015년부터 모바일을 중심으로 새로운 사용자 UI로 주목받고 있다. 챗 봇은 상담시 인간-인간 인터랙션을 줄이는 용도부터 온라인 쇼핑 구매에 이르기까지 다양한 분야에 활용되고 있으며 그 범위를 넓혀 나가고 있다. 챗 봇은 대화형 인터페이스의 기초이면서 동시에 (음성 인식과 결합을 통한) 무입력 방식 인터페이스의 기반 기술이기도 하다.

기존의 챗 봇들은 자연어 분석과 베이지안 통계에 기반한 사용자 의도 패턴 인식과 그에 따른 템플릿 응답을 기본 원리로 하여 개발되었다. 그러나 2012년 이후 급속도로 발전한 딥러닝 및 그에 기초한 자연어 인식 기술은 기계 학습을 이용해 챗 봇을 만들 수 있는 가능성을 열었다. 기계학습을 통해 챗 봇을 개발할 경우, 충분한 학습도의 모델을 구축한 후에는 학습 데이터에 따라 컨텍스트에서 벗어난 임의의 문장 입력에 대해서도 적당한 답을 생성할 수 있다는 장점이 있다.

이 세션에서는 Python 3 를 이용하여 실제 사용할 수 있는 챗 봇을 만드는 과정을 단계별로 진행한다. 우선 데이터를 구한 후 Python 3 와 Pandas를 사용하여 데이터를 전처리한다. 이렇게 전처리한 데이터를 학습에 적당한 형태로 재가공한다. 그 후 컴퓨터에 Tensorflow의 python 3 패키지를 설치한다. 이후 Tensorflow 를 이용하여 문장형 입출력에 적절한 딥러닝 모델을 설계한 후, 앞에서 전처리한 데이터를 이용하여 학습시킨 모델을 만든다. 이렇게 만든 모델을 telegram API 를 이용해 인터페이스를 만든 후, telegram에 봇을 친구로 등록하여 대화를 시연한다.

이 과정에서 여러 문제들을 해결해야 한다. 우선 한국어 자연어 처리를 위해 데이터를 적절히 전처리하는 과정과, 모델 학습을 위해 문장의 길이 및 형태를 적절히 토크나이징하는 과정이 필요하다. 그 다음 Tensorflow 로 모델을 설계하고 딥러닝 모델로 학습하는 단계에서 장애가 되는 조사 및 접속사 처리, 오타 처리등의 문제를 해결해야 한다. 또한 연속 대화 구현을 위하여 문장 단위의 입출력이 아니라 컨텍스트를 인식하기 위한 모델 설계 또한 필요하다. 학습한 결과를 파이썬 HTTP 서버 및 telegram API를 이용해 서빙하는 부분에서 몇가지 고려할 부분들도 있다. 이러한 부분들에 대한 방법 및 팁을 공유하고자 한다.

Comments

blog comments powered by Disqus

Sponsors

키스톤

다이아몬드

플래티넘

골드

스타트업

실버

미디어