레플리
글 수 59

Rasa와 TMDb를 이용한 영화 챗봇 만들기

조회 수 2162 추천 수 0 2020.03.12 21:05:56


1*bJA3Tz7H49_rGHcJtMeHnQ.png

 

https://medium.com/@ydy1128/%EC%98%81%ED%99%94-%EC%B1%97%EB%B4%87-%EB%A7%8C%EB%93%A4%EA%B8%B0-1-d9fa2bfbc966

 

 

 

챗봇을 개발하기 위해서 보통 Dialogflow 같은 챗봇 빌더를 주로 사용합니다. 이런 서비스들은 웹사이트 내에서 간단하게 구현할 수 있다는 장점이 있습니다. 하지만 매달 내는 사용료가 부담이 되기도 합니다.

 

이와 달리 오픈소스 라이브러리를 설치하여 직접 개발도 가능합니다. 대표적으로 ChatScript가 유명합니다. 그러나 일상대화에 특화되어 목적지향 챗봇에는 적합하지 않습니다. 의도(intent)와 개체(entity)를 기반으로 작동하는 프레임워크도 있는데, 그중에서 RASA가 많은 인기를 끌고 있습니다.

 

 

 

RASA의 가장 큰 특징은 머신러닝을 사용한다는 점입니다. 많은 챗봇 플랫폼들이 문자열을 비교하는 유사도 방식으로 되어 있습니다. 반면에 RASA는 문장을 벡터로 변환하고 학습을 통해 처리합니다.

 

전체 구조는 크게 NLU와 Core로 나누어집니다. NLU는 자연어처리를 담당하고, Core는 스크립트를 작성하여 대화를 관리합니다. 특히 NLU 부분이 확장성도 높고 상당히 뛰어납니다. 기본적으로 문장을 단어로 분리하는 토크나이저, 토큰을 모아 입력 벡터로 만드는 피처라이저, 분류기, 개체명인식기 등의 컴포넌트로 이루어져 있습니다. 이들 컴포넌트들을 조합하여 파이프라인을 만드는 방식입니다.

 

피처 생성은 크게 3가지 입니다. 첫째, 단어의 순서를 고려하지 않는 BoW(Bag of Words). 둘째, Word2Vec 같은 단어 임베딩. 셋째, ConveRT나 BERT를 사용한 문장 임베딩. 단어 임베딩을 쓰면 학습 데이터가 많아야 합니다. 만약 '너를 사랑해'만 데이터에 있다면, '사랑해 너를', '사랑해' 같은 입력을 인식하지 못합니다. 우선 '사랑해'란 단어가 들어가는 입력의 위치가 다르기 때문입니다. 문장 임베딩은 데이터가 적어도 일반화가 잘 되는 편입니다. 미리 사전훈련된 모델을 통해 비슷한 문장은 유사한 벡터값을 가집니다. 그러나 세밀하게 의도를 파악하는데는 아직 적합하지 않습니다. 만약 학습 데이터가 적다면 BoW를 선택하는게 차라리 나을 수 있습니다.

 

 

 

RASA의 단점으로는 우선 한글 지원이 안된다는 것입니다. 한글 형태소분석이 되는 토크나이저를 커스텀으로 추가해야 합니다. 숫자, 시간, 날짜 같은 시스템 엔티티도 영어만 가능합니다. 또한 사용법이 상당히 복잡한 편입니다. 프로그래밍에 능숙한 분도 적응하려면 시간이 좀 걸릴 듯 합니다.

 

챗봇 빌더가 아닌 자체 개발을 하고 싶다면 RASA도 좋은 선택이라 생각합니다. 작년에 150억 이상 투자를 받을 정도로 회사가 크게 성장하고 있습니다. 앞으로 지속적으로 발전을 하는 플랫폼이 될 것 같습니다.

엮인글 :
List of Articles
제목 글쓴이 날짜 조회 수sort
Chatfuel 로 고객 피드백을 이메일로 보내는 챗봇 만들기 깊은바다 2018-05-28 360
왓슨 컨버세이션의 digression 기능 - 대화중 벗어나기 깊은바다 2018-05-15 394
에이브릴을 활용한 챗봇 개발 깊은바다 2018-03-06 415
아마존 알렉사 소셜봇 대회 - Building a Socialbot file 깊은바다 2018-09-15 471
MS의 파워 버추얼 에이전트(Power Virtual Agents) 핸즈온 file 깊은바다 2020-02-10 539
NUGU Play Kit 사용기 - 명상 서비스 개발 [1] 깊은바다 2018-12-13 600
Aibril 소프트웨어로 아주 쉽게 챗봇 만들어보기 깊은바다 2018-06-18 620
왓슨 컨버세이션 – 챗봇은 어떻게 대화의 문맥을 기억할까? 깊은바다 2018-04-17 644
왓슨 컨버세이션 서비스를 활용한 회의실 예약 한글 챗봇 깊은바다 2018-04-10 647
한국어 챗봇 빌더 패키지, KoML onion 2022-12-01 679
코딩없이 페이스북 챗봇 만들기 - Chatfuel과 Dialogflow 사용 깊은바다 2018-05-14 820
AWS Lambda를 활용한 아마존 알렉사 스킬 개발 방법 깊은바다 2017-05-26 894
Doc2Vec 유사도 비교로 FAQ 챗봇 만들기 깊은바다 2021-03-19 911
AI 스마트 스피커 작동 방법 해부하기 깊은바다 2022-02-16 926
Clova Platform 인공지능을 엮는 기술 깊은바다 2018-03-22 938