엔트리와 함께하는 인공지능 교실 > Chapter 2. 텍스트 분류 인공지능 모델 응용(1)

[Session 02] 챗봇으로 대한민국을 홍보한다

 챗봇으로 대한민국을 홍보한다
 2-1 대한민국 홍보 챗봇의 기능

SNS(Social Network Service)나 언론을 통해 한국의 K-문화가 세계적인 관심을 끌고 있다는 사실을 모두 공감하고 있다. 본 주제에서 만들고자 하는 챗봇은 한국을 홍보하기 위한 챗봇으로 외국인이 한국의 날씨나 음식, 가볼만한 곳 등을 물었을 때 간단히 답해 줄 수 있는 단순한 기능을 가진 챗봇이다.

모든 질문과 답변은 한국어로 통용된다고 가정하였다. 요즘은 자동 번역기가 제공되는 곳이 많기 때문에 번역기를 통해 들어온 한국어 질문에 한국어로 답변해주는 챗봇이다. 

우선 챗봇이 사용자의 요구를 유도하기 위한 질문을 시작하면 사용자는 자신의 요구를 번역기를 통한 텍스트로 입력한다. 챗봇은 입력된 요구사항을 분석하여 해당서비스로 연결하거나 챗봇이 직접 요구를 분석하여 다음 대화로 넘어가는 구조를 취하고 있다. 이 과정을 세분화하여 간단한 작업흐름도로 나타내면 다음과 같이 도식화할 수 있다.


 


 2-2 챗봇 구현

1) 만들기 메뉴의 작품 만들기를 선택한다.


2) 엔트리 블록 탭에서 인공지능 범주의 인공지능 모델 학습하기 버튼을 눌러 학습모델 선택 단계로 들어간다.


3) 학습 모델 선택에서는 분류:텍스트를 선택하고 학습하기 버튼을 눌러 텍스트 학습을 시작할 수 있도록 한다.


4) 모델 학습을 위한 이름으로는 “한국 홍보 챗봇”이라고 입력한다. 한국 홍보용 챗봇의 목적이 문화, 날씨, 음식, 지리 4가지를 소개하는 것이기 때문에 클래스의 이름도 이와 일치시키도록 한다. 클래스1의 이름은 “문화”로 하고 외국인이 관심을 보이는 문화와 관련된 데이터를 입력한다. 클래스2의 이름은 “날씨”로 하고 날씨를 묻는 질문 데이터를 모아 입력한다.


5) 클래스3의 이름은 “음식”으로 하고 한국 음식에 대한 질문들을 모아 데이터 집합을 구성한다. 같은 방법으로 클래스4의 이름은 “지리”로 하고 한국 관광을 위한 질문을 모아 데이터 집합을 구성한다.


 

6) 모든 클래스의 학습 데이터를 구성한 후에는 모델 학습하기 버튼을 눌러 수집된 학습 문서를 대상으로 모델 학습을 수행한다. 모델 학습이 끝나면 결과 창에 텍스트를 입력하고 모델 학습 결과를 확인해 본다.

테스트 결과, 입력된 텍스트가 모두 해당 범주로 인식되는 것을 볼 수 있다. 모델 학습 결과에서 입력된 텍스트는 학습에 사용된 데이터는 사용하지 않고 유사 텍스트를 입력하여 확인한 것이다.


7) 화면 밑에 있는 적용하기 버튼을 눌러 학습된 결과를 프로그램에서 사용할 수 있도록 하고 엔트리 편집 화면으로 돌아온다.


8) 우선 블록 탭의 인공지능 범주에 새로운 블록이 생겼는지 확인하고 프로그램에서 사용할 오브젝트를 가져온다. 챗봇 오브젝트로는 엔트리봇 범주에서 얼굴 묶음을 가져오며 한국을 궁금해 하는 외국인으로는 사람 범주에서 산책하는 사람을 가져온다.


9) 모델 학습이 끝나고 오브젝트가 선택됐으므로 이제는 2-2 작업 흐름도를 보면서 엔트리의 적절한 블록을 선택하여 프로그래밍한다. 우선 자료 범주에서 변수 질문을 만든다. 다음으로 속성 탭에서 [신호]-[신호추가하기]를 누르고 신호 이름으로 외국인질의라고 입력한 후 확인 버튼을 누른다.


10) 묻고 대답 기다리기와 대답 블록을 가져와 안녕 자리에 “안녕하세요. 한국에 대해 무엇이 알고 싶으신가요?”를 넣고 질문 변수 값으로 대답 블록을 넣어 붙인다.


11) 신호를 받았을 때 블록은 단순하다. 외국인 오브젝트를 선택하고 질문을 4초 동안 말하기를 하면 된다.


12) 외국인 질문을 분석하는 과정은 다음과 같다. 질문을 학습된 모델로 분류하고 분류 결과대로 신호를 보내고 처리하면 된다. 이 블록을 앞 단계 11)번 블록 밑에 붙이면 프로그램은 완성된다. 챗봇에게 계속해서 물어보고 답하는 과정을 반복하려면 블록 전체를 무한 반복에 넣으면 된다.