ChatBot 2019. 7. 6. 16:35

 

<챗봇 시스템 구성요소>

 

1) 대화 엔진(시나리오 엔진) : 흐름이 있는 대화는 하나의 질/답으로 끝나지 않는다. 이 말은 시나리오가 있는 대화흐름으로 이루어진다는 것이다. 이러한 시나리오 대화를 위해서는 대화엔진, 즉 시나리오 엔진이 필요하다. 단순 Q&A성 질/답은 해당 엔진이 필요 없을 수 있지만 말이다. 그리고 이 대화엔진 안에도 여러 구성요소가 존재한다.

 

  • 대화 세션 매니저 : 시나리오는 분명 흐름이 있는 대화라고 했다. 이를 위해서는 직전 질문/답변이 무엇인지등이 대화흐름에 사용되기 때문에 이를 저장하고 있는 대화 세션매니저가 필요하다. 그리고 기타 대화에 필요한 정보등을 담을 수도 있을 것이다.
  • 지식 Parser : 모든 챗봇에는 지식학습을 위한 데이터가 존재한다. 그리고 그 중 우리가 사용할 챗봇 엔진은 2가지 종류의 지식학습 데이터가 있다. 하나는 시나리오 엔진이 사용하기 위한 지식데이터, 그리고 나머지 하나는 의도파악,Q&A를 위한 지식데이터이다. 그 중 시나리오 엔진이 사용하는 지식데이터는 파일 형태로 특정 문법이 존재하는 데이터이다. 이러한 파일을 파싱해 메모리에 지식트리를 구성해주는 지식Parser 모듈이 필요하다.
  • Operation Module : 대화 세션 매니저에서 데이터를 읽고 쓰고 수정하며 지식 Parser에 의해 구성된 지식트리에서 질문을 전달하여 답변을 얻어오는 등의 역할을 하는 Operation Module이다.

사실 더욱 복잡한 대화엔진은 위의 요소보다 많은 요소로 구성되어 있을 것이다. 

 

2) 자연어 처리 엔진(의도파악, Q&A...) : 우리말 한글을 이용하지 않더라도 모든 챗봇 시스템은 자연어 처리라는 과정이 필요하다. 단순히 패턴기반의 챗봇이라면 얘기가 다를 수 있지만 해당 엔진을 통해 사용자의 질문에서 의도를 파악하고, 또는 Q&A성 답변을 제공하는 등의기능을 제공한다.

 

3) 관리자 페이지 : 챗봇을 사용하기 위해서는 지식을 학습시켜야 하고, 자연어 처리를 위한 사전 데이터 등록 그리고 채팅 로그등을 살펴볼 수 있는 챗봇 관리자 페이지가 필요할 것이다. 

 

  • 챗봇을 관리할 수 있는 메뉴
  • 지식데이터를 관리할 수 있는 메뉴
  • 사전 데이터를 관리할 수 있는 메뉴
  • 사용자들의 채팅 로그를 확인할 수 있는 메뉴
  • 지식을 학습하고 지식을 테스트 해볼 수 있는 테스트 툴

 

4) 웹 채팅 페이지 : 사용자들에게 채팅을 할 수 있는 인터페이스를 구현해야 서비스를 제공할 것이다. 

 

5) 사용자 채팅 로그 수집&분석 : 사실 챗봇시스템에서 가장 중요하다고 할 수 있는 기능 중 하나일 것이다. 사실 관리자가 직접 학습시키는 데이터는 주관적인 성격의 데이터이다. 실제 사용자들이 채팅을 사용하면 관리자의 지식으로만으로 커버리지 안에 모두 담기지는 않을 것이다. 그렇기에 사용자들의 채팅 내용(로그)을 수집하고 분석하여 통계를 내주어 지속적인 재학습 루틴을 만들어 주는 것이 중요하다. 여기서 중요한 것은 사실 아직까지 완벽한 자동 재학습이란 것은 없다.(최소한 필자가 아는 한은..)

 

여기까지 대략적인 챗봇 시스템의 구성요소이다. 사실 위의 구성요소 이외에도 많은 요소들이 있다.

'ChatBot' 카테고리의 다른 글

Spring으로 카카오톡 챗봇만들기  (27) 2018.02.05
posted by 여성게
: