KR20200114173A - 자연어 처리 엔진을 관리하는 방법, 서버 및 컴퓨터 프로그램 - Google Patents

자연어 처리 엔진을 관리하는 방법, 서버 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20200114173A
KR20200114173A KR1020190035436A KR20190035436A KR20200114173A KR 20200114173 A KR20200114173 A KR 20200114173A KR 1020190035436 A KR1020190035436 A KR 1020190035436A KR 20190035436 A KR20190035436 A KR 20190035436A KR 20200114173 A KR20200114173 A KR 20200114173A
Authority
KR
South Korea
Prior art keywords
natural language
language processing
processing engine
response
chatbot
Prior art date
Application number
KR1020190035436A
Other languages
English (en)
Inventor
서승원
이상원
류우림
석철환
전현우
박상길
신명철
김태욱
이준석
정시욱
황지수
박한용
최준성
최주환
Original Assignee
주식회사 카카오
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 카카오 filed Critical 주식회사 카카오
Priority to KR1020190035436A priority Critical patent/KR20200114173A/ko
Publication of KR20200114173A publication Critical patent/KR20200114173A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/338Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language

Abstract

본 발명의 일 실시예에 따르는 자연어 처리 엔진을 관리하는 방법은 질문 데이터 및 상기 질문 데이터에 대응하는 응답 데이터로 구성된 업로드 데이터를 등록받는 단계, 상기 등록받은 업로드 데이터에 대해 색인 과정을 수행하는 단계; 상기 색인 과정이 수행된 업로드 데이터에 기초하여 유사 문장 기반 자연어 처리 엔진을 학습시키는 단계, 상기 생성된 유사 문장 기반 자연어 처리 엔진을 이용하는 챗봇을 생성하는 단계 및 상기 생성된 챗봇을 통해 상기 유사 문장 기반 자연어 처리 엔진을 이용하여 상기 색인 과정이 수행된 업로드 데이터로부터 질의 메시지에 대한 응답을 도출하는 단계를 포함한다.

Description

자연어 처리 엔진을 관리하는 방법, 서버 및 컴퓨터 프로그램{METHOD, SERVER AND COMPUTER PROGRAM FOR MANAGING NATURAL LANGUAGE PROCESSING ENGINES}
본 발명은 자연어 처리 엔진을 관리하는 방법, 서버 및 컴퓨터 프로그램에 관한 것으로서, 보다 상세하게는 유사 문장 기반 자연어 처리 엔진을 이용하는 챗봇 또는 자연어 처리 모델을 이용하는 챗봇을 생성하여 질의 메시지에 대한 응답을 도출하는 자연어 처리 엔진을 관리하는 방법, 서버 및 컴퓨터 프로그램에 관한 것이다.
IMS(Instant Message Service)는 전자우편 프로그램이나 웹 브라우저를 별도로 사용하지 않고, 발신자가 보낸 메시지가 수신자의 디바이스의 화면에 즉시로 뜨도록 하는 실시간 온라인 의사소통 서비스를 의미한다. 특히, 모바일 네트워크를 이용하여 채팅, 음성 및 영상통화 등을 제공하는 서비스를 MIM(Mobile Instant Messenger) 서비스라고 한다.
최근에는 IMS에 인간처럼 채팅을 하는 로봇인 챗봇(Chatbot) 또는 메신저봇(Messenger Bot)이 적용되고 있으며, 이를 통해 메신저 내에서 기업과 고객이 일대일 대화를 통해 고객이 원하는 1:1 맞춤형 정보를 자동으로 제공할 수 있게 되었다.
일반적으로 챗봇 또는 메신저봇은 사용자로부터 입력된 메시지를 해석하여 자동적으로 답변 메시지를 생성한 후 사용자에게 제공할 수 있다. 그러나 챗봇 또는 메신저봇은 기계적으로 대응할 수 없는 질문을 입력받은 경우, 질문에 대해 부적절한 답변을 제공하는 경우가 종종 발생한다는 단점을 가지고 있다.
한국등록특허공보 제10-1605430호 (2015.08.24 공개)
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 챗봇을 생성할 수 있는 봇빌더에 질의 메시지 및 질의 메시지에 대응하는 응답 메시지의 세트로 구성된 업로드 데이터를 등록함으로써, 업로드 데이터와 챗봇 플랫폼을 연결하여 챗봇을 생성할 수 있도록 하는 자연어 처리 엔진을 관리하는 방법, 서버 및 컴퓨터 프로그램을 제공하고자 한다.
유사 문장 기반 자연어 처리 엔진을 이용하는 검색형 챗봇을 생성하여, 질의 메시지와 유사한 유사 질의 문장을 참조하여 유사 질의 문장에 대응하는 답변을 제공할 수 있도록 하는 자연어 처리 엔진을 관리하는 방법, 서버 및 컴퓨터 프로그램을 제공하고자 한다.
종래의 기계 학습 기반의 챗봇에서 질의 메시지로부터 사용자 의도를 추출하지 못한 경우, 이를 폴백(FallBack) 처리하지 않고, 보완적으로 유사 문장 기반 자연어 처리 엔진을 이용하여 응답을 도출할 수 있도록 하는 자연어 처리 엔진을 관리하는 방법, 서버 및 컴퓨터 프로그램을 제공하고자 한다.
유사 문장 기반 자연어 처리 엔진 및 의도 기반 자연어 처리 엔진으로 구성된 자연어 처리 모델을 이용하는 경우, 유사 문장 기반 자연어 처리 엔진 및 의도 기반 자연어 처리 엔진 각각에 대해 응답을 도출하고, 도출된 각 응답의 신뢰도에 기초하여 신뢰도가 더 높은 응답을 사용자 단말로 제공함으로써, 더 높은 정확도의 응답을 제공할 수 있도록 하는 자연어 처리 엔진을 관리하는 방법, 서버 및 컴퓨터 프로그램을 제공하고자 한다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예에 따르는 질문 데이터 및 상기 질문 데이터에 대응하는 응답 데이터로 구성된 업로드 데이터를 등록받는 단계, 상기 등록받은 업로드 데이터에 대해 색인 과정을 수행하는 단계, 상기 색인 과정이 수행된 업로드 데이터에 기초하여 유사 문장 기반 자연어 처리 엔진을 학습시키는 단계, 상기 생성된 유사 문장 기반 자연어 처리 엔진을 이용하는 챗봇을 생성하는 단계 및 상기 생성된 챗봇을 통해 상기 유사 문장 기반 자연어 처리 엔진을 이용하여 상기 색인 과정이 수행된 업로드 데이터로부터 질의 메시지에 대한 응답을 도출하는 단계를 포함하는 자연어 처리 엔진 관리 방법을 제공할 수 있다.
본 발명의 다른 실시예에 따르는 질문 데이터 및 상기 질문 데이터에 대응하는 응답 데이터로 구성된 업로드 데이터를 등록받는 업로드 데이터 등록부, 상기 등록받은 업로드 데이터에 대해 색인 과정을 수행하는 색인부, 상기 색인 과정이 수행된 업로드 데이터에 기초하여 유사 문장 기반 자연어 처리 엔진을 학습시키는 유사 문장 기반 자연어 처리 엔진 학습부, 상기 생성된 유사 문장 기반 자연어 처리 엔진을 이용하는 챗봇을 생성하는 챗봇 생성부 및 상기 생성된 챗봇을 통해 상기 유사 문장 기반 자연어 처리 엔진을 이용하여 상기 색인 과정이 수행된 업로드 데이터로부터 질의 메시지에 대한 응답을 도출하는 응답 도출부를 포함하는 관리 서버를 제공할 수 있다.
본 발명의 또 다른 실시예에 따르는 컴퓨터 프로그램은 컴퓨팅 장치에 의해 실행될 경우, 질문 데이터 및 상기 질문 데이터에 대응하는 응답 데이터로 구성된 업로드 데이터를 등록받고, 상기 등록받은 업로드 데이터에 대해 색인 과정을 수행하고, 상기 색인 과정이 수행된 업로드 데이터에 기초하여 유사 문장 기반 자연어 처리 엔진을 학습시키고, 상기 생성된 유사 문장 기반 자연어 처리 엔진을 이용하는 챗봇을 생성하고, 상기 생성된 챗봇을 통해 상기 유사 문장 기반 자연어 처리 엔진을 이용하여 상기 색인 과정이 수행된 업로드 데이터로부터 질의 메시지에 대한 응답을 도출하도록 하는 명령어들의 시퀀스를 포함하는 매체에 저장된 컴퓨터 프로그램을 제공할 수 있다.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 업로드 데이터를 등록받아 학습된 유사 문장 자연어 처리 엔진은 응답의 도출 시, 업로드 데이터에 대해 챗봇 플랫폼에서 정의 및 등록된 유닛 워드를 참조하여 색인 과정을 수행하고, 색인 과정을 통해 복수의 유사 질의 문장을 검색하고, 검색된 복수의 유사 질의 문장으로부터 스코어 형태의 유사 정확도를 산출하고, 산출된 유사 정확도에 기초한 질의 문장 및 응답을 사용자에게 제공함으로써, 질의 메시지에 대한 응답을 지식 기반으로 검색하여 제공하도록 하는 자연어 처리 엔진을 관리하는 방법, 서버 및 컴퓨터 프로그램을 제공할 수 있다.
또한, 본 발명의 자연어 처리 모델은 적어도 하나 이상의 자연어 처리 엔진(의도 기반 자연어 처리 엔진 및 유사 문장 기반 자연어 처리 엔진)이 조합됨으로써, 의도 기반 자연어 처리 엔진에서 질의 메시지로부터 사용자의 의도를 추출하지 못하는 경우, 유사 문장 기반 자연어 처리 엔진에서 응답이 도출되도록 하여 기계 학습 또는 패턴 기반의 챗봇이 갖는 장점과 업로드 데이터를 이용한 지식 검색 기반의 챗봇이 갖는 장점을 모두 가져 상호 보완적으로 작용할 수 있도록 하는 자연어 처리 엔진을 관리하는 방법, 서버 및 컴퓨터 프로그램을 제공할 수 있다.
또한, 본 발명에서 임계치 레벨은 제 1 처리 엔진 및 제 2 처리 엔진 간의 활성화율에 대해 설정되어, 제 1 처리 엔진 및 제 2 처리 엔진의 처리 순서를 결정하고, 제 1 처리 엔진 및 제 2 처리 엔진에 의한 처리 정도를 커스텀할 수 있도록 하는 자연어 처리 엔진을 관리하는 방법, 서버 및 컴퓨터 프로그램을 제공할 수 있다.
또한, 본 발명은 서로 다른 자연어 처리 엔진으로 구성된 순차 연계 처리 모델에 대해 제 1 처리 엔진 및 제 2 처리 엔진 간의 활성화율에 대한 임계치를 설정함으로써, 제 1 처리 엔진을 통해 도출된 응답의 정확도가 임계치 레벨을 초과하는 경우, 제 1 처리 엔진을 통해 도출된 응답을 최종 응답으로 제공하고, 제 1 처리 엔진을 통해 도출된 응답의 정확도가 임계치 레벨 이하인 경우, 제 2 처리 엔진을 통해 도출된 응답을 최종 응답으로 제공하여 제 1 처리 엔진과 제 2 처리 엔진을 상호 보완적으로 이용하여 사용자에게 응답을 제공할 수 있도록 하는 자연어 처리 엔진을 관리하는 방법, 서버 및 컴퓨터 프로그램을 제공할 수 있다.
또한, 본 발명은 서로 다른 자연어 처리 엔진으로 구성된 동시 연계 처리 모델에 대해 제 1 처리 엔진 및 제 2 처리 엔진 간의 가중치 레벨을 설정함으로써, 각각의 처리 엔진을 통해 도출된 각각의 신뢰도에 기초하여 더 높은 신뢰도를 나타내는 응답을 최종 응답으로 사용자에게 제공할 수 있도록 하는 자연어 처리 엔진을 관리하는 방법, 서버 및 컴퓨터 프로그램을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 자연어 처리 엔진 관리 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 관리 서버의 구성도이다.
도 3a 내지 도 3e는 본 발명의 일 실시예에 따른 업로드 데이터를 등록받는 과정을 설명하기 위한 예시적인 도면이다.
도 4a 및 도 4b는 본 발명의 일 실시예에 따른 기등록된 복수의 업데이트를 선택하여 유사 문장 기반 자연어 처리 엔진을 학습시키는 과정을 설명하기 위한 예시적인 도면이다.
도 5a 및 도 5b는 본 발명의 일 실시예에 따른 활성화율에 대한 임계치 레벨을 설정받는 과정을 설명하기 위한 예시적인 도면이다.
도 6a 내지 도 6e는 본 발명의 일 실시예에 따른 도출된 응답이 즉문즉답형으로 출력되도록 설정하는 과정을 설명하기 위한 예시적인 도면이다.
도 7a 내지 도 7c는 본 발명의 일 실시예에 따른 도출된 응답이 답안추천형으로 출력되도록 설정하는 과정을 설명하기 위한 예시적인 도면이다.
도 8a 및 도 8b는 본 발명의 일 실시예에 따른 관리 서버에서 자연어 처리 엔진을 관리하는 방법의 순서도이다.
도 9a 및 도 9b는 본 발명의 일 실시예에 따른 관리 서버에서 자연어 처리 모델을 이용하여 질의 메시지에 대한 응답을 도출하는 과정을 설명하기 위한 예시적인 도면이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다. 한편, '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, '~부'는 어드레싱 할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
이하에서 언급되는 "사용자 단말"은 네트워크를 통해 서버나 타 단말에 접속할 수 있는 컴퓨터나 휴대용 단말기로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop) 등을 포함하고, 휴대용 단말기는 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, 스마트폰(smart phone), 태블릿 PC, 웨어러블 디바이스뿐만 아니라, 블루투스(BLE, Bluetooth Low Energy), NFC, RFID, 초음파(Ultrasonic), 적외선, 와이파이(WiFi), 라이파이(LiFi) 등의 통신 모듈을 탑재한 각종 디바이스를 포함할 수 있다. 또한, "네트워크"는 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 근거리 통신망(LAN: Local Area Network), 광역 통신망(WAN: Wide Area Network), 인터넷 (WWW: World Wide Web), 유무선 데이터 통신망, 전화망, 유무선 텔레비전 통신망 등을 포함한다. 무선 데이터 통신망의 일례에는 3G, 4G, 5G, 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), WIMAX(World Interoperability for Microwave Access), 와이파이(Wi-Fi), 블루투스 통신, 적외선 통신, 초음파 통신, 가시광 통신(VLC: Visible Light Communication), 라이파이(LiFi) 등이 포함되나 이에 한정되지는 않는다.
도 1은 본 발명의 일 실시예에 따른 자연어 처리 엔진 관리 시스템의 구성도이다.
도 1을 참조하면, 자연어 처리 엔진 관리 시스템(1)은 관리 서버(110), 메신저 서버(120) 및 사용자 단말(130)을 포함할 수 있다. 여기서, 관리 서버(110)는 기존의 챗봇 플랫폼을 제공하는 챗봇 서버와 동일한 역할을 수행할 수 있으며, 이러한 도 1의 자연어 처리 엔진 관리 시스템(1)은 본 발명의 일 실시예에 불과하므로 도 1을 통해 본 발명이 한정 해석되는 것은 아니다. 즉, 본 발명의 다양한 실시예들에 따르면 자연어 처리 엔진 관리 시스템은 도 1과 다르게 구성될 수도 있다.
일 실시예에 따르면, 관리 서버(110)는 자연어 처리 엔진을 구축 및 관리 할 수 있고. 구축된 자연어 처리 엔진을 기반으로 하여 챗봇을 생성하여 관리할 수 있다. 관리 서버(110)가 관리하는 자연어 처리 엔진은 유사 문장 기반 자연어 처리 엔진 및 의도 기반 자연어 처리 엔진 등을 포함할 수 있고, 이에 제한되지 않는다.
관리 서버(110)는 관리자로부터 챗봇을 생성할 수 있는 봇빌더에 대한 사용자 인터페이스를 통해 질문 데이터 및 질문 데이터에 대응하는 응답 데이터로 구성된 업로드 데이터를 등록받을 수 있다. 예를 들어, 관리 서버(110)는 관리자로부터 파일 업로드 방식 또는 관리 서버(110)와의 API 연결 방식을 통해 업로드 데이터를 등록받을 수 있다.
관리 서버(110)는 등록받은 업로드 데이터에 기초하여 유사 문장 기반 자연어 처리 엔진을 학습시킬 수 있다. 예를 들어, 관리 서버(110)는 기등록된 복수의 업로드 데이터 중 적어도 하나 이상을 선택받고, 선택된 업로드 데이터에 기초하여 유사 문장 기반 자연어 처리 엔진을 학습시킬 수 있다.
관리 서버(110)는 생성된 유사 문장 기반 자연어 처리 엔진을 이용하는 챗봇을 생성하고, 생성된 챗봇을 통해 유사 문장 기반 자연어 처리 엔진을 이용하여 질의 메시지에 대한 응답을 도출할 수 있다. 예를 들어, 관리 서버(110)는 업로드 데이터에 대해 색인 과정을 수행하고, 색인 과정이 수행된 업로드 데이터에 기초하여 유사 문장 기반 자연어 처리 엔진을 학습시킬 수 있고, 챗봇을 통해 유사 문장 기반 자연어 처리 엔진을 이용하여 색인 과정이 수행된 업로드 데이터로부터 응답을 도출할 수 있다.
여기서, 유사 문장 기반 자연어 처리 엔진을 이용하는 챗봇은 질의 메시지에 대해 소정의 유사 질의 문장을 참조하여 그에 대응하는 응답을 도출하는 검색형 봇으로 동작할 수 있다.
또한, 관리 서버(110)는 유닛 워드에 대한 정보를 등록받고, 이에 기초하여 의도 기반 자연어 처리 엔진을 학습시킬 수 있다. 관리 서버(110)는 의도 기반 자연어 처리 엔진을 이용하는 챗봇을 생성하고, 생성된 챗봇을 통해 의도 기반 자연어 처리 엔진을 이용하여 질의 메시지에 대한 응답을 도출할 수 있다.
유닛 워드는 사용자의 의도(intent) 및 사용자의 의도(intent)를 추출 및 파악할 수 있도록 '@엔티티(entity)' 및 파라미터(parameter)로 구성될 수 있다. 파라미터(parameter)란 사용자의 발화로부터 추출된 엔티티(entity)에 대해서, 외부 컴퓨터/서버로 전송하기 위해 데이터를 전송하는 매개명을 의미할 수 있다. 이에 따라, 본 발명은 파라미터를 통해 챗봇이 특정 액션의 필요값을 전달할 수 있다. 엔티티(entity)는 일종의 데이터 사전으로서, 사용자발화안에서 사용자의도를 정의하기 위한 중요한 대표낱말들의 모음을 의미할 수 있다. 엔티티는 예를 들어, '@가수명', '@분위기', '@sys.address'(주소), '@sys.broadcst.name'(방송사명), '@sys.city'(해외도시), '@sys.currency.code'(통화코드), '@sys.currencyname'(통화이름), '@sys.date'(날짜), '@sys.date.lunar'(음력날짜) 등을 포함할 수 있다. 예를 들어, 사용자 단말(130)로부터 '아이유 노래 들려줘'라는 질의 메시지를 수신한 경우, '@가수명'에 기초하여 '가수-아이유'를 인식할 수 있게 된다.
여기서, 의도 기반 자연어 처리 엔진을 이용하는 챗봇은 질의 메시지에 대해 의도를 판단하여 그에 대응하는 응답을 도출하는 의도 기반 도출형 챗봇으로 동작할 수 있다.
다른 실시예에 따르면, 관리 서버(110)는 유사 문장 기반 자연어 처리 엔진 및 의도 기반 자연어 처리 엔진을 조합하여 복수의 자연어 처리 모델을 구축하고, 구축된 복수의 자연어 처리 모델을 관리할 수 있다. 이 때, 관리 서버(110)는 챗봇을 생성하기 위해 관리자로부터 구축된 복수의 자연어 처리 모델 중 적어도 하나를 선택받을 수 있다. 복수의 자연어 처리 모델은 '유사 문장 기반 자연어 처리 엔진만 사용되는 자연어 처리 모델', '의도 기반 자연어 처리 엔진만 사용되는 자연어 처리 모델' 및 '유사 문장 기반 자연어 처리 엔진 및 의도 기반 자연어 처리 엔진이 순차적으로 사용되는 순차 연계 처리 모델' 및 '유사 문장 기반 자연어 처리 엔진 및 의도 기반 자연어 처리 엔진이 동시에 사용되는 동시 연계 처리 모델'을 포함할 수 있다. 여기서, 적어두 두 개의 자연어 처리 엔진을 이용하는 복합 자연어 처리 엔진 기반의 자연어 처리 모델의 경우, 적어도 두 개의 자연어 처리 엔진 간의 관계에 있어서 각 엔진에 의한 처리 정도를 커스텀할 수 있는 임계치 레벨 또는 가중치 레벨을 설정할 수 있다.
관리 서버(110)는 구축된 복수의 자연어 처리 모델 중 선택된 자연어 처리 모델을 이용하는 챗봇을 생성할 수 있다. 순차 연계 처리 모델로 처리되도록 구성된 자연어 처리 모델을 이용하는 챗봇은 유사 문장 기반 자연어 처리 엔진 및 의도 기반 자연어 처리 엔진을 기설정된 순서에 따라 순차적으로 이용하여 응답이 도출되도록 할 수 있다.
예를 들어, 순차 연계 처리 모델이 선택된 경우, 관리 서버(110)는 제 1 처리 엔진으로 설정된 자연어 처리 엔진을 통해 응답을 도출하고, 제 1 처리 엔진을 통해 응답이 도출되지 않는 경우, 제 2 처리 엔진으로 설정된 자연어 처리 엔진을 통해 응답을 도출할 수 있다. 관리 서버(110)는 제 1 처리 엔진으로 설정된 자연어 처리 엔진을 통해 도출된 응답의 정확도를 산출하고, 산출된 응답의 정확도가 제 1 처리 엔진 및 제 2 처리 엔진 간에 기설정된 활성화율에 대한 임계치 레벨을 초과하는 경우, 도출된 응답을 최종 응답으로 확정할 수 있다. 이와 달리 산출된 응답의 정확도가 활성화율에 대한 임계치 레벨 이하인 경우, 제 2 처리 엔진으로 설정된 자연어 처리 엔진을 통해 응답이 도출되도록 할 수 있다. 여기서, 제 1 처리 엔진 및 제 2 처리 엔진 간의 동작 순서는 관리자에 의해 설정될 수 있다.
다른 예를 들어, 동시 연계 처리 모델로 처리되도록 구성된 자연어 처리 모델을 이용하는 챗봇은 유사 문장 기반 자연어 처리 엔진 및 의도 기반 자연어 처리 엔진을 동시에 이용하여 응답이 도출되도록 할 수 있다.
동시 연계 처리 모델이 선택된 경우, 관리 서버(110)는 제 1 처리 엔진으로 설정된 자연어 처리 엔진 및 제 2 처리 엔진으로 설정된 자연어 처리 엔진 각각을 통해 응답을 도출하고, 도출된 각 응답의 신뢰도를 산출하고, 산출된 각 응답의 신뢰도에 기초하여 도출된 각 응답 중 최종 응답을 확정할 수 있다. 여기서, 관리 서버(110)는 도출된 각 응답의 신뢰도에 대해 기설정된 가중치를 부여하고, 가중치가 부여된 각 응답의 신뢰도에 기초하여, 도출된 각 응답 중 최종 응답을 확정할 수 있다. 이러한 과정을 통해, 관리 서버(110)는 질의 메시지에 대해 도출된 각각의 응답 중 신뢰도가 높은 응답을 사용자 단말(130)로 제공하도록 함으로써, 정확도 높은 응답을 사용자에게 제공할 수 있다.
이러한 일 실시예 및 다른 실시예에서 이용되는 관리 서버(110)는 메신저 서버(120)로부터 사용자 단말(130)에서 입력한 질의 메시지를 수신할 수 있다. 이 때, 관리 서버(110)는 메신저 서버(120)로부터 공식 계정 아이디 및 질의 메시지를 수신하는 경우, 공식 계정 아이디에 대응하는 챗봇을 이용하여 질의 메시지에 대한 응답을 도출할 수 있다.
관리 서버(110)는 도출된 응답을 메신저 서버(120)로 전송할 수 있다. 이 때, 메신저 서버(120)로 전송된 응답은 사용자 단말(130)로 전달될 수 있다.
메신저 서버(120)는 사용자 단말(130)과 실제 친구로 등록된 타 사용자가 채팅방에서 대화를 주고 받을 수 있게 하는 인스턴스 메시징 서비스를 제공할 수 있다. 또한, 메신저 서버(120)는 사용자 단말(130)은 메신저 앱에 가상 친구로 등록된 챗봇 또는 공식 계정과 대화를 주고 받을 수 있게 하는 인스턴스 메시징 서비스를 제공할 수 있다.
예를 들어, 메신저 서버(120)는 사용자 단말(130)로부터 선택된 서비스에 관한 챗봇 아이디 및 질의 메시지를 수신한 경우, 수신한 챗봇 아이디 및 질의 메시지를 관리 서버(110)로 전달할 수 있다. 다른 예를 들어, 메신저 서버(120)는 사용자 단말(130)로부터 선택된 서비스에 관한 공식 계정 아이디 및 질의 메시지를 수신한 경우, 수신한 공식 계정 아이디(또는 수신한 공식 계정 아이디와 매핑된 챗봇 아이디) 및 수신한 질의 메시지를 관리 서버(110)로 전달할 수 있다.
메신저 서버(120)는 관리 서버(110)로부터 챗봇에 의하여 도출된 질의 메시지에 대한 응답을 수신할 수 있다. 메신저 서버(120)는 수신한 응답을 사용자 단말(130)과 챗봇 간에 개설된 채팅방 또는 사용자 단말(130)과 공식 계정 간에 개설된 채팅방에 전송할 수 있다.
사용자 단말(130)에 설치된 메신저 앱을 통해 등록될 수 있는 친구는 실제 친구 및 가상 친구를 포함할 수 있다.
사용자 단말(130)의 사용자는 메신저 앱을 통해 영리적인 목적이 없는 타 사용자(예를 들어, 가족, 지인, 직장 동료 등)를 실제 친구로서 등록할 수 있다. 사용자 단말(130)은 사용자 단말(130)에 설치된 메신저 앱을 통해 실제 친구로 등록된 타 사용자와 채팅방을 통해 대화를 주고 받음으로써 사용자에게 인스턴스 메시징 서비스를 제공할 수 있다.
사용자 단말(130)의 사용자는 메신저 앱을 통해 특정 서비스에 대응하는 공식 계정을 가상 친구로서 등록할 수 있다. 공식 계정이란 특정 기업체 및 단체에서 특정 서비스를 제공하기 위하여 운영하는 계정을 의미할 수 있다. 예를 들어, 공식 계정은 공식 계정과 사용자 단말(130) 사이에 개설된 채팅방을 통해 사용자 단말(130)로 특정 서비스에 대한 정보를 제공할 수 있다. 사용자 단말(130)은 해당 공식 계정을 가상 친구로 등록하여 공식 계정으로부터 특정 서비스에 대한 정보를 제공받을 수 있다. 한편, 해당 공식 계정을 가상 친구로 등록하지 않더라도 특정 서비스에 대한 정보를 제공받을 수도 있다.
공식 계정은 특정 기업체 및 단체에서 제공하는 특정 서비스에 대한 정보를 사용자 단말(130)로 제공하기 위하여 챗봇을 이용 수 있다. 공식 계정의 관리자는 관리 서버(110)에서 제공되는 봇빌더에 관한 사용자 인터페이스를 통해 챗봇을 생성하고, 생성된 챗봇을 공식 계정과 연결하여 연동하게 함으로써 특정 서비스에 대한 정보(예를 들어, 특정 서비스에 관련된 질의 메시지에 대한 응답)를 제공하도록 할 수 있다. 또한, 공식 계정의 관리자는 봇빌더에 관한 사용자 인터페이스를 통해 공식 계정과 챗봇을 일대일 매칭하여 관리할 수 있으며, 복수의 챗봇을 공식 계정과 연결하여 연동하게 하도록 확장할 수도 있다.
또한, 사용자 단말(130)의 사용자는 메신저 앱을 통해 특정 서비스에 대응하는 챗봇을 가상 친구로서 등록할 수 있다. 예를 들어, 가상 친구로서 등록된 챗봇은 사용자 단말(130)로 날씨 서비스, 주식 서비스, 교통 서비스 등에 대한 정보를 제공할 수 있다.
따라서, 사용자 단말(130)은 공식 계정을 가상 친구로서 등록할 경우, 공식 계정과 연동하는 챗봇을 통해 질의 메시지에 대한 응답을 제공받을 수 있으며, 챗봇 자체를 가상 친구로서 등록할 경우, 해당 챗봇을 통해 질의 메시지에 대한 응답을 제공받을 수 있다.
사용자 단말(130)은 메신저 앱에 가상 친구로 등록된 예를 들어, 챗봇 또는 공식 계정과 채팅방을 통해 대화를 주고 받음으로써 사용자에게 인스턴스 메시징 서비스를 제공할 수 있다. 또한, 사용자 단말(130)은 사용자 단말(130)과 실제 친구 사이에 개설된 채팅방에 가상 친구로서 등록된 챗봇을 초대할 수 있다.
사용자 단말(130)은 사용자 단말(130)에 설치된 메신저 앱을 통해 제공되는 복수의 서비스 중 하나의 서비스를 사용자로부터 선택받을 수 있다. 예를 들어, 복수의 서비스는 공식 계정이 제공하는 서비스 및 챗봇이 제공하는 서비스를 포함할 수 있다. 사용자는 가상 친구인 공식 계정 또는 챗봇을 선택함으로 공식 계정이 제공하는 서비스 또는 챗봇이 제공하는 서비스를 채팅방을 통해 제공 받을 수 있다.
사용자 단말(130)은 사용자 단말(130)에 설치된 메신저 앱을 통해 제공되는 복수의 서비스 중 하나의 서비스를 사용자로부터 선택받으면, 선택된 서비스에 대응하는 서비스 계정 정보를 메신저 서버(120)에게 전송할 수 있다. 예를 들어, 서비스 계정 정보는 선택된 서비스에 대응하는 챗봇 아이디(가상 챗봇 아이디 또는 실제 챗봇 아이디) 또는 선택된 서비스에 대응하는 공식 계정의 공식 계정 아이디를 포함할 수 있다.
또한, 사용자 단말(130)은 사용자에 의해 선택된 서비스와 관련된 질의 메시지를 채팅방을 통해 사용자로부터 입력받으면, 해당 질의 메시지를 메신저 서버(120)로 전송할 수 있다. 서비스 계정 정보 및 질의 메시지는 메신저 서버(120)를 통해 관리 서버(110)로 전달될 수 있다.
사용자 단말(130)은 메신저 서버(120)로부터 질의 메시지에 대응하는 응답을 수신하고, 수신한 응답을 디스플레이를 통해 표시할 수 있다. 예를 들어, 사용자 단말(130)은 수신한 응답을 디스플레이를 통해 표시할 수 있다. 다른 예를 들어, 사용자 단말(130)은 질의 메시지와 유사한 소정의 유사 질의 문장을 디스플레이를 통해 표시할 수 있다. 이 때, 사용자 단말(130)은 사용자로부터 소정의 유사 질의 문장 중 어느 하나를 선택받고, 선택된 유사 질의 문장에 대한 응답을 표시할 수 있다.
본 발명은 관리자 또는 개발자가 보유한 질문 데이터 및 질문 데이터에 대응하는 응답 데이터의 세트로 구성된 업로드 데이터를 기계 학습 또는 패턴 기반의 챗봇 플랫폼과 연결함으로써 챗봇을 손쉽게 생성할 수 있다. 이러한 과정을 통해 생성된 챗봇은 업로드 데이터에 기초하여 생성된 유사 문장 기반 자연어 처리 엔진을 통해 사용자 질의 메시지와 유사한 질의를 참조하여 그에 대응하는 응답을 도출하는 검색형 봇으로 동작할 수 있다. 또는, 챗봇은 기계 학습 또는 패턴 기반에서 처리되지 못한 사용자의 질의 메시지를 폴백(fallback) 처리하지 않고, 이를 보완적으로 사용자의 질의와 유사한 질의를 검색하여 그와 연결된 응답을 도출하여 제공할 수 있다.
이와 같은 도 1의 자연어 처리 엔진 관리 시스템에 포함된 각각의 구성요소의 동작에 대해서는 이하의 도면들을 통해 보다 구체적으로 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른 관리 서버의 구성도이다. 도 2를 참조하면, 관리 서버(110)는 업로드 데이터 등록부(210), 유사 문장 기반 자연어 처리 엔진 학습부(220), 자연어 처리 모델 관리부(230), 설정부(240), 챗봇 생성부(250), 응답 도출부(260) 및 통신부(270)를 포함할 수 있다. 다만, 본 발명의 일 실시예에 따른 관리 서버(110)의 구성은 도 3과 다르게 이루어질 수도 있다.
여기서, 관리 서버(110)를 관리하는 관리자는 웹이나 앱을 통해 관리 서버(110)의 봇빌더부에 접속 할 수 있으며, 봇빌더부에서 제공하는 사용자 인터페이스를 통해 챗봇을 생성할 수 있다.
일 실시예에 따르면, 관리 서버(110)는 유사 문장 기반 처리 엔진을 이용하는 챗봇을 생성할 수 있다. 이하에서는, 유사 문장 기반 처리 엔진을 이용하는 챗봇을 생성하는 과정에 대해 설명하도록 한다.
업로드 데이터 등록부(210)는 챗봇을 생성할 수 있는 봇빌더에 대한 사용자 인터페이스를 통해 질문 데이터 및 질문 데이터에 대응하는 응답 데이터로 구성된 업로드 데이터를 등록받을 수 있다. 업로드 데이터가 질문 데이터 및 질문 데이터에 대응하는 응답 데이터로 구성되어 있는 경우, 업로드 데이터 등록부(210)는 질문 데이터 및 응답 데이터에 대한 데이터 분석을 통해 관리자가 작성한 질문 및 답변을 파악하여 업로드 데이터를 등록할 수 있다.
예를 들어, 업로드 데이터 등록부(210)는 파일 업로드 방식 또는 관리 서버(110)와의 API 연결 방식을 통해 챗봇 플랫폼과의 연결을 위한 업로드 데이터를 등록받을 수 있다. 여기서, 업로드 데이터 등록부(210)는 관리자로부터 등록받은 업로드 데이터에 대해 스팸 필터 기능을 적용시킬 수 있다. 예를 들어, 업로드 데이터 등록부(210)는 관리자로부터 특정 단어 세트(예를 들어, 비속어, 욕설, 스팸, 성인 등)을 사전 정보로 입력받음으로써, 스팸 필터 기능을 통해 사용자 단말(130)과의 응대 효과를 높일 수 있다.
업로드 데이터를 등록받는 과정에 대해서는 도 3a 내지 도 3d를 통해 상세히 설명하도록 한다.
도 3a 내지 도 3e는 본 발명의 일 실시예에 따른 업로드 데이터를 등록받는 과정을 설명하기 위한 예시적인 도면이다.
도 3a는 본 발명의 일 실시예에 따른 봇빌더에 관한 사용자 인터페이스를 도시한 예시적인 도면이다. 도 3a를 참조하면, 관리 서버(110)는 봇빌더 메인 화면(300) 중 '지식+' 메뉴(301)를 통해 지식 확장 페이지(302)가 표시되도록 할 수 있다. 이 때, 유사 문장 기반 자연어 처리 엔진과 챗봇 플랫폼을 접목시키기 위해, 관리자는 사용 버튼(303)의 온(on)/오프(off)를 통해 유사 문장 기반 자연어 처리 엔진의 사용 여부를 설정할 수 있다.
관리자는 데이터베이스에 저장된 업로드 데이터를 챗봇에 연결시키도록 하는 지식 학습 설정(304)의 파일 업로드 버튼(305) 또는 API 연결 버튼(306)을 선택하고, 저장 버튼(307)을 입력할 수 있다. 이러한 과정을 통해 유사 문장 기반 자연어 처리 엔진을 학습시키기 위한 초기 설정을 할 수 있다.
도 3b는 본 발명의 일 실시예에 따른 파일 업로드 방식을 통해 업로드 데이터를 등록받는 과정을 설명하기 위한 예시적인 도면이다. 도 3b를 참조하면, 업로드 데이터 등록부(210)는 관리자로부터 지식 업로드 방식 중 스프레드시트형(CSV, excel 등)의 파일 업로드 버튼(305)을 입력받은 후, 지식 파일 업로드 버튼(310)을 통해 업로드 데이터를 등록받을 수 있다. 이러한 과정을 통해 등록된 업로드 데이터에 기초하여 챗봇이 지식 학습되도록 할 수 있다.
도 3c 및 도 3d는 본 발명의 일 실시예에 따른 관리 서버(110)와의 API 연결 방식을 통해 업로드 데이터를 등록받는 과정을 설명하기 위한 예시적인 도면이다. 도 3c를 참조하면, 업로드 데이터 등록부(210)는 관리자로부터 지식 업로드 방식 중 API(JSON/GET/POST) 연결 버튼(306)을 입력받은 후, 연결 생성 버튼(320)을 통해 업로드 데이터를 등록받을 수 있다. 도 3d를 참조하면, 업로드 데이터 등록부(210)는 관리자로부터 API 연결 버튼(306)을 입력받은 경우, API 연결 정보와 연결된 팝업창을 통해 기본 설정(321)의 대상 지식 명칭(322), API URL(323), 헤더값 설정(324) 등을 입력받아 업로드 데이터를 등록받을 수 있다.
업로드 데이터 등록부(210)는 이러한 API 연결 방식을 통해 기존의 챗봇 플랫폼과 연결된 데이터베이스에 업로드 데이터가 저장되어 있던 경우, 업로드 데이터와 봇빌더를 간편하게 연결시킬 수 있다.
도 3e는 본 발명의 일 실시예에 따른 업로드 데이터에 대한 이력 정보를 도시한 예시적인 도면이다. 도 3e를 참조하면, 업로드 데이터 등록부(210)는 파일 업로드 방식(331) 또는 API 연결 방식(332)으로 등록된 업로드 데이터에 대한 이력 정보(340)를 통합하여 관리할 수 있다. 이 때, 업로드 데이터 등록부(210)는 관리자로부터 지식 업로드 방식(330) 중 '파일 업로드 방식(331)'을 선택받은 경우, 파일 업로드 방식(331)의 업로드 데이터의 이력 정보만을 표시하고, 관리자로부터 지식 업로드 방식(330) 중 'API 연결 방식(332)'을 선택받은 경우, API 연결 방식(332)의 업로드 데이터의 이력 정보만을 표시할 수도 있다. 여기서, 이력 정보(340)는 업로드된 업로드 데이터의 버전 정보, 업로드 일시 정보 등을 포함하는 등을 포함할 수 있다.
다시 도 2로 돌아와서, 유사 문장 기반 자연어 처리 엔진 학습부(220)는 등록받은 업로드 데이터 또는 색인 과정이 수행된 업로드 데이터에 기초하여 유사 문장 기반 자연어 처리 엔진을 학습시킬 수 있다. 예를 들어, 유사 문장 기반 자연어 처리 엔진 학습부(220)는 기등록된 복수의 업로드 데이터 중 적어도 하나 이상을 선택받고, 선택된 업로드 데이터에 기초하여 유사 문장 기반 자연어 처리 엔진을 학습시킬 수 있다. 여기서, 유사 문장 기반 자연어 처리 엔진은 챗봇 플랫폼 내의 확장된 형태로 결합(Add-on)되거나 또는 내재된 형태(Embeded)로 동작될 수 있다. 유사 문장 기반 자연어 처리 엔진을 학습시키는 과정에 대해서는 도 4a 및 도 4b를 통해 상세히 설명하도록 한다.
도 4a 및 도 4b는 본 발명의 일 실시예에 따른 기등록된 복수의 업데이트를 선택하여 유사 문장 기반 자연어 처리 엔진을 학습시키는 과정을 설명하기 위한 예시적인 도면이다.
도 4a는 본 발명의 일 실시예에 따른 봇빌더에 대한 사용자 인터페이스를 도시한 예시적인 도면이다. 도 4a를 참조하면, 과거도메인1, 과거도메인2, 과거도메인3, 신규 도메인을 포함하는 복수의 업로드 데이터(400)가 기등록된 경우, 관리자는 기등록된 복수의 업로드 데이터(400) 중 적어도 하나 이상을 선택받을 수 있다.
유사 문장 기반 자연어 처리 엔진 학습부(220)는 기등록된 복수의 업로드 데이터(400) 중 과거도메인1, 과거 도메인2, 신규도메인을 선택받고, 선택된 업로드 데이터(401)에 기초하여 유사 문장 기반 자연어 처리 엔진을 학습시킬 수 있다. 여기서, 선택된 업로드 데이터(401)는 응답의 도출 시, 검색 소스로 반영되기 위한 지식 모수로서 활용될 수 있다.
도 4b는 본 발명의 일 실시예에 따른 유사 문장 기반 자연어 처리 엔진의 수정 화면을 도시한 예시적인 도면이다. 도 4b를 참조하면, 유사 문장 기반 자연어 처리 엔진 학습부(220)는 '지식수정하기' 버튼(410)을 통해 생성된 유사 문장 기반 자연어 처리 엔진에 포함된 업로드 데이터의 질문 데이터 및 질문 데이터에 대응하는 응답 데이터(411)를 표시하고, 관리자로부터 수정 또는 삭제를 입력받을 수 있다.
관리자는 스프레드시트형의 프론트 UI를 따라 질문 데이터 및 질문 데이터에 대응하는 응답 데이터를 입력하고, 이를 기등록된 업로드 데이터와 병합 및 수정하여 검색답변 소스로 활용되도록 할 수 있다.
다시 도 2로 돌아와서, 응답 도출부(260)는 생성된 챗봇을 통해 유사 문장 기반 자연어 처리 엔진을 이용하여 질의 메시지에 대한 응답을 도출할 수 있다. 여기서, 도출된 응답은 개수는 단일 또는 복수개가 될 수 있다.
색인부(미도시)는 업로드 데이터에 대해 색인 과정을 수행할 수 있고, 색인 과정의 수행을 위해 챗봇 플랫폼에서 정의 및 등록된 유닛 워드(unit word)를 참조할 수 있다. 이 경우, 응답 도출부(260)는 챗봇을 통해 이용한 유사 문장 기반 자연어 처리 엔진을 이용하여 색인 과정이 수행된 업로드 데이터로부터 응답을 도출할 수 있고, 유사 문장 기반 자연어 처리 엔진 학습부(220)는 색인 과정이 업로드 데이터에 기초하여 유사 문장 기반 자연어 처리 엔진을 학습시킬 수 있다.
여기서, 색인부는 챗봇 플랫폼에서 정의된 유닛 워드가 태그화된 정보를 이용하여 색인을 수행할 수 있다. 색인부는 별도로 보조되어 연결된 검색 엔진을 통해 빠른 색인 과정을 거침으로써, 대용량 업로드시의 필수불가결한 색인 로딩시간을 저감할 수 있으며, 사전 색인(pre-indexing) 구조의 불편함을 개선하여 실시간(real-time)으로 빠르게 대용량 데이터를 색인할 수 있다는 장점을 제공할 수 있다.
응답 도출부(260)는 문장-벡터 변환 기술 (Sent2Vec* 등)을 이용하여 질의 메시지와 유사한 유사 질의 문장을 검색하고, 별도의 스코어 형태로 유사 정확도(similarity)에 기초하여 추출된 유사 질의 문장을 추출할 수 있다. 여기서, 문장-벡터 변환 기술(sentence to vector)는 문장을 벡터로 표시하여 벡터 간의 거리를 기반으로 유사도를 측정하는 기술을 의미한다.
다른 실시예에 따르면, 관리 서버(110)는 자연어 처리 모델을 이용하는 챗봇을 생성할 수 있다. 이하에서는, 자연어 처리 모델을 이용하는 챗봇을 생성하는 과정에 대해 설명하도록 한다.
자연어 처리 모델 관리부(230)는 유사 문장 기반 자연어 처리 엔진 및 의도 기반 자연어 처리 엔진 중 적어도 하나 이상에 기초하여 복수의 자연어 처리 모델을 구축할 수 있다. 이 때, 자연어 처리 모델 관리부(230)는 챗봇을 생성하기 위하여 구축된 복수의 자연어 처리 모델 중 적어도 하나를 선택받을 수 있다. 복합 자연어 처리 모델은 '유사 문장 기반 자연어 처리 엔진만 사용되는 자연어 처리 모델', '의도 기반 자연어 처리 엔진만 사용되는 자연어 처리 모델' 및 '유사 문장 기반 자연어 처리 엔진 및 의도 기반 자연어 처리 엔진이 순차적으로 사용되는 순차 연계 처리 모델' 및 '유사 문장 기반 자연어 처리 엔진 및 의도 기반 자연어 처리 엔진이 동시에 사용되는 동시 연계 처리 모델'을 포함할 수 있다. 자연어 처리 모델은 순차 연계 처리 모델 또는 동시 연계 처리 모델에 따라 자연어를 처리하는 품질이 달라지게 되므로, 관리자는 봇빌더 도메인에서 Iteration Test를 통해 최적의 자연어 처리 모델을 선택할 수 있다. 이러한 자연어 처리 모델은 의도 기반 자연어 처리 엔진 및 유사 문장 기반 자연어 처리 엔진을 같이 이용함으로써, 응답에 대한 정확도를 향상시킬 수 있다.
설정부(240)는 적어도 두 개의 자연어 처리 엔진을 선택하여 자연어 처리 모델을 구축하는 경우, 선택된 두 개의 자연어 처리 엔진 간의 처리 정도에 대한 임계치 레벨을 설정받을 수 있다. 예를 들어, 관리자는 챗폿 플랫폼을 통해 활성화 게이지에 표시된 바를 조절하여 임계치 레벨을 설정받을 수 있다.
설정부(240)는 사용자 단말(130)로 제공될 응답의 출력 형태를 설정받을 수 있다. 여기서, 응답은 유사도를 기준으로 N개가 출력될 수 있으며, 설정부(240)는 출력의 개수를 관리자로부터 설정받을 수 있다. 예를 들어, 설정부(240)는 하나의 질의 메시지에 대해 하나의 응답이 포함된 말풍선이 출력되도록 하는 즉문즉답형 또는 하나의 질문 메시지에 대해 기등록된 업로드 데이터로부터 추출된 소정의 유사 질의 문장(예를 들어, 3개) 및 각 유사 질의 문장에 대한 응답이 포함된 말풍선이 출력되도록 하여 사용자 단말(130)로부터 응답을 최종 선택받도록 하는 답안추천형 중 어느 하나로 설정받을 수 있다.
챗봇 생성부(250)는 구축된 복수의 자연어 처리 모델 중 선택된 자연어 처리 모델을 이용하는 챗봇을 생성할 수 있다. 예를 들어, 챗봇 생성부(250)는 '유사 문장 기반 자연어 처리 엔진만 사용되는 자연어 처리 모델'이 선택된 경우, 유사 문장 기반 자연어 처리 엔진을 이용하여 질의 메시지를 처리하는 챗봇을 생성할 수 있고, '의도 기반 자연어 처리 엔진만 사용되는 자연어 처리 모델'이 선택된 경우, 의도 기반 자연어 처리 엔진을 이용하여 질의 메시지를 처리하는 챗봇을 생성할 수 있고, '유사 문장 기반 자연어 처리 엔진 및 의도 기반 자연어 처리 엔진이 순차적으로 사용되는 순차 연계 처리 모델' 또는 '유사 문장 기반 자연어 처리 엔진 및 의도 기반 자연어 처리 엔진이 동시에 사용되는 동시 연계 처리 모델'이 선택되는 경우, 유사 문장 기반 자연어 처리 엔진 및 의도 기반 자연어 처리 엔진을 모두 이용하여 질의 메시지를 처리하는 챗봇을 생성할 수 있다.
응답 도출부(260)는 생성된 챗봇을 통해 선택된 자연어 처리 모델을 이용하여 질의 메시지에 대한 응답을 도출할 수 있다.
예를 들어, 순차 연계 처리 모델로 선택된 자연어 처리 모델의 경우, 챗봇은 순차 연계 처리 모델을 이용하여 유사 문장 기반 자연어 처리 엔진 및 의도 기반 자연어 처리 엔진을 기설정된 순서에 따라 순차적으로 이용하여 응답이 도출할 수 있다. 순차 연계 처리 모델이 선택된 경우, 제 1 처리 엔진으로 설정된 자연어 처리 엔진을 통해 응답을 도출하고, 제 1 처리 엔진을 통해 응답이 도출되지 않는 경우, 제 2 처리 엔진으로 설정된 자연어 처리 엔진을 통해 응답을 도출할 수 있다. 여기서, 제 1 처리 엔진은 의도 기반 자연어 처리 엔진이고, 제 2 처리 엔진은 유사 문장 기반 자연어 처리 엔진으로 순서가 설정될 수 있으나, 이에 한정하지 않는다. 응답 도출부(260)는 제 1 처리 엔진으로 설정된 자연어 처리 엔진을 통해 도출된 응답의 정확도를 산출하고, 산출된 응답의 정확도가 제 1 처리 엔진 및 제 2 처리 엔진 간에 기설정된 활성화율에 대한 임계치 레벨을 초과하는 경우, 도출된 응답을 최종 응답으로 확정할 수 있다. 여기서, 산출된 응답의 정확도가 활성화율에 대한 임계치 레벨 이하인 경우, 제 2 처리 엔진으로 설정된 자연어 처리 엔진을 통해 응답이 도출되도록 할 수 있다.
다른 예를 들어, 동시 연계 처리 모델로 구성된 자연어 처리 모델의 경우, 챗봇은 동시 연계 처리 모델은 유사 문장 기반 자연어 처리 엔진 및 의도 기반 자연어 처리 엔진을 동시에 이용하여 응답을 도출할 수 있다. 동시 연계 처리 모델이 선택된 경우, 제 1 처리 엔진으로 설정된 자연어 처리 엔진 및 제 2 처리 엔진으로 설정된 자연어 처리 엔진 각각을 통해 응답을 도출하고, 도출된 각 응답의 신뢰도를 산출하고, 산출된 각 응답의 신뢰도에 기초하여 도출된 각 응답 중 최종 응답을 확정할 수 있다. 여기서, 응답 도출부(260)는 도출된 각 응답의 신뢰도에 대해 기설정된 가중치를 부여하고, 가중치가 부여된 각 응답의 신뢰도에 기초하여, 도출된 각 응답 중 최종 응답을 확정할 수 있다.
통신부(270)는 인스턴트(instant) 메시징 서비스를 제공하는 메신저 앱에 등록된 복수의 서비스 중 하나의 서비스를 사용자 단말(130)의 사용자로부터 선택받은 경우, 선택된 서비스에 대응하는 서비스 계정 정보를 메신저 서버(120)로부터 수신할 수 있다.
예를 들어, 복수의 서비스 중 특정 공식 계정이 제공하는 서비스를 사용자 단말(130)의 사용자로부터 선택받은 경우, 통신부(270)는 선택된 서비스에 대응하는 공식 졔정 아이디 또는 챗봇 아이디를 메신저 서버(120)로 전송하고, 통신부(270)는 공식 계정 아이디 또는 챗봇 아이디를 메신저 서버(120)로부터 수신할 수 있다.
다른 예를 들어, 복수의 서비스 중 특정 챗봇이 제공하는 서비스를 사용자 단말(130)의 사용자로부터 선택받은 경우, 통신부(270)는 선택된 서비스에 대응하는 챗봇 아이디를 메신저 서버(120)로 전송하고, 통신부(270)는 챗봇 아이디를 메신저 서버(120)로부터 수신할 수 있다. 여기서, 챗봇이 제공하는 서비스는 예를 들면, 날씨 서비스, 매장 서비스, 쇼핑몰 서비스 등을 포함할 수 있다. 예를 들면, 통신부(270)는 사용자 단말(130)의 사용자가 메신저 앱에 등록된 복수의 서비스 중 챗봇이 제공하는 날씨 서비스를 선택한 경우, 날씨 서비스에 대응되는 챗봇 아이디를 메신저 서버(120)로부터 수신할 수 있다.
또한, 통신부(270)는 메신저 서버(120)로부터 사용자 단말(130)의 사용자 아이디를 더 수신할 수 있다.
통신부(270)는 사용자에 의해 선택된 서비스와 관련하여 입력된 질의 메시지를 메신저 서버(120)로부터 수신할 수 있다. 여기서, 질의 메시지는 단문 또는 장문으로 구성될 수 있으며, 문장의 길이가 제한되지 않을 수 있다. 예를 들면, 사용자가 날씨 서비스를 선택한 경우, 날씨와 관련된 질의 메시지가 사용자 단말(130)로부터 메시저 서버(120)로 전송되고, 통신부(270)는 질의 메시지를 메신저 서버(120)로부터 수신할 수 있다.
통신부(270)는 챗봇에서 도출된 사용자 단말(130)의 질의 메시지에 대한 응답 메시지를 메신저 서버(120)에게 전송할 수 있다. 이 때, 응답 메시지는 메신저 서버(120)로부터 사용자 단말(130)로 전달될 수 있다.
도 5a 내지 도 5c는 본 발명의 일 실시예에 따른 활성화율에 대한 임계치 레벨을 설정받는 과정을 설명하기 위한 예시적인 도면이다.
도 5a는 본 발명의 일 실시예에 따른 봇빌더에 대한 사용자 인터페이스를 통해 활성화율의 설정 과정을 설명하기 위한 도시한 예시적인 도면이다. 도 5a를 참조하면, 관리 서버(110)는 봇빌더에 대한 사용자 인터페이스를 통해 관리자로부터 '지식+' 메뉴(500)의 지식 확장 페이지(501)에서 설정 버튼(502)을 입력받을 수 있다.
관리 서버(110)는 관리자로부터 의도 기반 자연어 처리 엔진 및 유사 문장 자연어 처리 엔진 중 적어도 하나 이상에 기초하여 구축된 복수의 자연어 처리 모델 중 적어도 하나를 선택받을 수 있다. 이 때, 관리 서버(110)는 관리자로부터 적어도 두 개의 자연어 처리 엔진 간의 처리 비율를 결정하는 활성화율에 대한 임계치(threshold)를 설정받을 수 있다. 여기서, 활성화율에 대한 임계치는 각각의 자연어 처리 엔진의 처리 순서를 결정짓는 역할을 할 수도 있다. 아래에서는 유사 문장 기반 자연어 처리 엔진 및 의도 기반 자연어 처리 엔진이 복합적으로 사용되는 순차 연계 처리 모델 및 동시 연계 처리 모델을 기준으로 하여 활성화율에 대한 임계치(threshold)를 설정받는 실시예를 설명하려고 한다.
도 5b는 본 발명의 일 실시예에 따른 활성화 게이지에 표시된 바를 조절하는 과정을 설명하기 위한 예시적인 도면이다. 도 5b를 참조하면, 지식 확장 페이지(501)에서 설정 버튼(502)을 입력받은 경우, 관리 서버(110)는 활성화 게이지를 조절하기 위한 팝업창(510)이 표시되도록 할 수 있다.
관리자는 활성화 게이지를 조절하기 위한 팝업창(510)을 통해 활성화 게이지(511)에 표시된 바(bar, 514)를 드래그하여 조절함으로써, 활성화율에 대한 임계치 레벨을 설정할 수 있다. 여기서, 의도 기반 자연어 처리 엔진 및 유사 문장 기반 자연어 처리 엔진이 결합된 자연어 처리 모델의 경우, 각각의 자연어 처리 엔진에 대한 활성화율을 결정하는 임계치 레벨은 0.1 단위로 0.0(최저점)과 1.0(최고점) 사이에서 조정될 수 있다.
예를 들어, 활성화율 0%(512)는유사 문장 기반 자연어 처리 엔진에 대한 동작의 오프(off) 설정을 의미하며, 이는 활성화율에 대한 레벨이 0.0이 됨으로써, 의도 기반 자연어 처리 엔진만을 이용하여 질의 메시지로부터 사용자의 의도를 추출하고, 추출된 사용자 의도에 대응되는 응답을 제공하도록 할 수 있다. 이와 달리, 활성화율 100%(513)는 의도 기반 자연어 처리 엔진에 대한 동작의 오프(off) 설정을 의미하고, 이는 활성화율에 대한 레벨이 1.0(유사 문장 기반 자연어 처리 엔진의 기능이 강하게 동작)이 됨으로써, 질의 데이터 및 질의 데이터에 대응하는 응답 데이터로 구성된 업로드 데이터에 기반한 유사 문장 기반 자연어 처리 엔진만을 이용하여 질의 메시지에 대한 응답을 제공하도록 할 수 있다.
즉, 자연어 처리 모델(예를 들어, 의도 기반 자연어 처리 엔진->유사 문장 자연어 처리 엔진이 순차적으로 동작하는 순차 연계 처리 모델)에 대해 활성화율에 대한 임계치 레벨이 설정된 경우, 의도 기반 자연어 처리 엔진에서 도출된 응답이 임계치 레벨 이하인지 여부에 따라 의도 기반 자연어 처리 엔진 또는 유사 문장 기반 자연어 처리 엔진을 통해 응답이 도출되도록 할 수 있다.
예를 들어, 의도 기반 자연어 처리 엔진을 통해 질의 메시지에 대해 도출된 응답의 정확도가 임계치보다 큰 경우(응답 정확도>임계치), 유사 문장 기반 자연어 처리 엔진을 바이패스(bypass)하고, 의도 기반 자연어 처리 엔진에 의해 도출된 응답이 제공되도록 할 수 있다.
다른 예를 들어, 의도 기반 자연어 처리 엔진을 통해 질의 메시지에 대해 도출된 응답의 정확도가 임계치보다 같거나 작은 경우(응답 정확도≤임계치), 의도 기반 자연어 처리 엔진을 바이패스(bypass)하고, 유사 문장 기반 자연어 처리 엔진에 의해 도출된 응답이 제공되도록 할 수 있다.
이 때, 관리자가 활성화율의 레버를 상향 조정한 경우, 임계치가 1.0에 가깝게 상향될수록 의도 기반 자연어 처리 엔진에 의해 응답이 제공될 확률이 증가하고, 활성화율의 레버를 하향 조정한 경우, 임계치가 0.0에 가깝게 하향될수록 유사 문장 기반 자연어 처리 엔진에 의해 응답이 제공될 확률이 증가할 수 있다.
또한, 의도 기반 자연어 처리 엔진에 기계 학습이 적용되는 경우, 활성화율에 대한 임계치 레벨을 0~1사이에서 조절하면서, 사용자 발화에 대한 기계 학습의 결과값을 필터링할 수 있다.
도 6a 내지 도 6e는 본 발명의 일 실시예에 따른 도출된 응답이 즉문즉답형으로 출력되도록 설정하는 과정을 설명하기 위한 예시적인 도면이다.
도 6a를 참조하면, 관리 서버(110)는 관리자로부터 사용자 단말(130)에서 출력될 응답의 출력 설정(600)을 입력받을 수 있다. 예를 들어, 관리 서버(110)는 관리자로부터 출력 설정(600)을 통해 즉문즉답형 버튼(601)을 입력받을 수 있다. 즉문즉답형의 경우, 예를 들어, 관리 서버(110)에서 사용자 단말(130)로부터 "반품하는 법 알려줘"(602)라는 질의 메시지를 수신하면, 관리 서버(110)는 "네, 반품 절차는 다음과 같습니다."와 같이 질의 메시지에 대응하는 단일의 응답을 포함하는 말풍선이 출력되도록 할 수 있다.
도 6b를 참조하면, 관리 서버(110)는 관리자로부터 즉문즉답형 설정(610)을 통해 가이드 말풍선(611)이 텍스트(612)로 표시되도록 설정받을 수 있다. 예를 들어, 관리 서버(110)는 사용자 단말(130)에서 응답이 출력되기 전에 텍스트 형식의 가이드 문구가 "네 문의하신 사항과 관련된 답변은 아래와 같아요!"와 같이 표시되도록 설정받을 수 있다. 또한, 관리 서버(110)는 관리자로부터 '좋아요' 또는 '나빠요'와 같이 피드백 버튼(614)의 온(on)/오프(off)에 대한 설정을 입력받을 수 있다.
도 6c를 참조하면, 관리 서버(110)는 관리자로부터 즉문즉답형 설정(610)을 통해 가이드 말풍선(611)이 이미지(613)로 표시되도록 설정받을 수 있다. 예를 들어, 관리 서버(110)는 사용자 단말(130)에서 응답이 출력되기 전에 이미지 형식의 회사 로고 또는 챗봇 캐릭터 등이 표시되도록 설정받을 수 있다.
도 7a 내지 도 7c는 본 발명의 일 실시예에 따른 도출된 응답이 답안추천형으로 출력되도록 설정하는 과정을 설명하기 위한 예시적인 도면이다.
도 7a를 참조하면, 관리 서버(110)는 관리자로부터 사용자 단말(130)에서 출력될 출력 설정(700)을 입력받을 수 있다. 예를 들어, 관리 서버(110)는 관리자로부터 출력 설정(700)을 통해 답안추천형 버튼(701)을 입력받을 수 있다.
답안추천형의 경우, 예를 들어, 관리 서버(110)에서 사용자 단말(130)로부터 "반품하는 법 알려줘"(702)라는 질의 메시지를 수신하면, 관리 서버(110)는 "다음 중 의미하신 질문을 골려주시면 이어서 답변해드릴께요."와 같은 가이드 문구(703)와 함께 "Q1) 반품 절차 상세 안내해줘. Q2) 반품 대상 알려줘. Q3) 반품 제외 항목 알려줘"와 같은 질의 메시지와 유사한 소정의 유사 질의 문장(704) 및 각 질의 문장에 대응하는 응답을 메신저 서버(120)를 통해 사용자 단말(130)로 제공하도록 할 수 있다. 이 때, 답안추천형은 사용자 단말(130)로부터 소정의 유사 질의 문장(704) 중 어느 하나를 선택받은 경우, 복수의 응답(705) 중 선택된 유사 질의 문장에 대응하는 응답이 사용자 단말(130)로 제공되도록 할 수 있다.
도 7b를 참조하면, 관리 서버(110)는 관리자로부터 답안추천형 설정(710)을 통해 가이드 말풍선(711)이 텍스트(712)로 표시되도록 설정받을 수 있다. 예를 들어, 관리 서버(110)는 사용자 단말(130)에서 응답이 출력되기 전에 텍스트 형식의 가이드 문구가 "네 문의하신 사항과 관련된 답변은 아래와 같아요!"와 같이 표시되도록 설정받을 수 있다.
도 7c 를 참조하면, 관리 서버(110)는 관리자가 질문 데이터(720) 및 질문 데이터(720)에 대응하는 응답 데이터(721)와 함께 이미지 URL 정보(722)가 삽입된 업로드 데이터를 등록받은 경우, 사용자 단말(130)은 예를 들어, 유사 질의 문장, 유사 질의 문장에 대응하는 응답, 해당 URL로부터 자동 변환된 이미지를 포함하는 가이드 말풍선(730)을 표시할 수 있다. 이 때, 이미지 URL 정보가 존재하지 않은 경우, 디폴트로 업로드된 이미지(예를 들어, 회사 로고, 공통 안내 이미지 등)가 표시될 수 있다.
도 7d를 참조하면, 관리 서버(110)는 관리자로부터 답안추천형 설정(710)을 통해 가이드 말풍선(711)이 이미지(740)로 표시되도록 할 수 있다. 이 경우, 사용자 단말(130)은 예를 들어, 해당 URL로부터 변환된 이미지, 유사 질의 메시지 및 유사 질의 메시지에 대한 응답 메시지를 포함하는 가이드 말풍선을 표시할 수 있다.
도 7e를 참조하면, 관리 서버(110)는 관리자가 질문 데이터 및 질문 데이터에 대응하는 응답 데이터와 함께 웹 랜딩 URL 정보가 삽입된 업로드 데이터를 등록받은 경우, 관리 서버(110)는 사용자 단말(130)에서 응답의 출력시, 자동으로 해당 링크가 메시지 내에 별도의 액션 유도 버튼으로 자동 삽입되도록 할 수 있다. 이 경우, 사용자 단말(130)은 예를 들어, 유사 질의 문장, 유사 질의 문장에 대응하는 응답, '링크 가기'를 포함하는 말풍선을 표시할 수 있다.
도 8a 및 도 8b는 본 발명의 일 실시예에 따른 관리 서버에서 응답을 도출하는 방법의 순서도이다.
도 8a는 본 발명의 일 실시예에 따른 관리 서버에서 자연어 처리 엔진을 이용하여 응답을 도출하는 방법의 순서도이다.
도 8a를 참조하면, 단계 S810에서 관리 서버(110)는 질문 데이터 및 질문 데이터에 대응하는 응답 데이터로 구성된 업로드 데이터를 등록받을 수 있다.
단계 S820에서 관리 서버(110)는 등록받은 업로드 데이터에 기초하여 유사 문장 기반 자연어 처리 엔진을 학습시킬 수 있다.
단계 S830에서 관리 서버(110)는 생성된 유사 문장 기반 자연어 처리 엔진을 이용하는 챗봇을 생성할 수 있다.
단계 S840에서 관리 서버(110)는 생성된 챗봇을 통해 유사 문장 기반 자연어 처리 엔진을 이용하여 질의 메시지에 대한 응답을 도출할 수 있다.
이와 같이, 챗봇은 단일 자연어 처리 엔진을 이용하여 질의 메시지에 대한 응답을 도출할 수 있다.
일 실시예에 따르면, 챗봇은 유사 문장 기반 자연어 처리 엔진을 이용하여 지식 검색 기반으로 질의 메시지에 대한 응답을 도출할 수 있다. 예를 들어, 챗봇은 질의 메시지로부터 복수의 유사 질의 문장을 검색할 수 있다. 이 때, 챗봇은 복수의 유사 질의 문장 중 유사 정확도(similarity)가 높은 소정의 유사 질의 문장을 추출하고, 추출한 소정의 유사 질의 문장 및 그에 대응하는 응답을 도출할 수 있다.
다른 실시예에 따르면, 챗봇은 의도 기반 자연어 처리 엔진을 이용하여 기계 학습 기반으로 질의 메시지에 대한 응답을 도출할 수 있다. 예를 들어, 챗봇은 질의 메시지에 포함된 엔티티(entity)에 기초하여 사용자의 의도를 추출하고, 추출한 사용자의 의도에 대응하는 응답을 도출할 수 있다.
도 8b는 본 발명의 일 실시예에 따른 관리 서버에서 자연어 처리 모델을 이용하여 응답을 도출하는 방법의 순서도이다.
도 8b를 참조하면, 단계 S850에서 관리 서버(110)는 유사 문장 기반 자연어 처리 엔진 및 의도 기반 자연어 처리 엔진 중 적어도 하나 이상에 기초하여 복수의 자연어 처리 모델을 구축할 수 있다.
단계 S860에서 관리 서버(110)는 구축된 복수의 자연어 처리 모델 중 적어도 하나를 선택할 수 있다.
단계 S860에서 관리 서버(110)는 선택된 자연어 처리 모델을 이용하는 챗봇을 생성할 수 있다.
단계 S870에서 관리 서버(110)는 생성된 챗봇을 통해 선택된 자연어 처리 모델을 이용하여 질의 메시지에 대한 응답을 도출할 수 있다.
상술한 설명에서, 단계 S810 내지 S870은 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 전환될 수도 있다.
도 9a 및 도 9b는 본 발명의 일 실시예에 따른 관리 서버에서 자연어 처리 모델을 이용하여 질의 메시지에 대한 응답을 도출하는 과정을 설명하기 위한 예시적인 도면이다. 여기서, 자연어 처리 모델은 의도 기반 자연어 처리 엔진 및 유사 문장 기반 자연어 처리 엔진의 결합으로 구성될 수 있으며, 관리자에 의해 활성화 게이지를 통해 활성화율에 대한 임계치 레벨을 설정받음으로써, 각각의 자연어 처리 엔진 간의 활성화율(간섭정도)이 조정될 수 있다.
이러한 자연어 처리 모델을 이용하는 챗봇은 듀얼(dual), 트리플(triple), 멀티(multi)로 구성된 자연어 처리 엔진의 환경에서도 원활하게 동작할 수 있다.
도 9a는 본 발명의 일 실시예에 따른 관리 서버에서 순차 연계 처리 모델을 이용하는 챗봇을 통해 응답을 도출하는 과정을 설명하기 위한 예시적인 도면이다. 도 9a를 참조하면, 관리 서버(110)는 제 1 처리 엔진 및 제 2 처리 엔진이 기설정된 순서에 따라 순차적으로 수행되도록 순차 연계 처리 모델을 이용하는 챗봇을 통해 질의 메시지에 대한 응답을 도출할 수 있다.
이하에서는, 제 1 처리 엔진이 의도 기반 자연어 처리 엔진이고, 제 2 처리 엔진이 유사 문장 기반 자연어 처리 엔진임을 가정하여 설명하도록 한다. 물론, 관리자의 설정에 따라 자연어 처리 엔진 간의 처리 순서를 달리하여 제 1 처리 엔진이 유사 문장 기반 자연어 처리 엔진이고, 제 2 처리 엔진이 의도 기반 자연어 처리 엔진으로 설정될 수도 있다. 이 때, 제 1 처리 엔진이 수행되도록 하는 활성화율에 대한 임계치 레벨은 0~1 사이에서 관리자에 의해 조정될 수 있으며, 제 1 처리 엔진을 통해 도출된 결과값의 필터링을 통해 제 2 처리 엔진으로 유입되는 범위가 임계치 레벨의 조정을 통해 증가 또는 감소 가능해지도록 할 수 있다. 제 1 처리 엔진(910) 및 제 2 처리 엔진(920) 간의 활성화율에 대한 임계치는 도 5a 내지 도 5c를 통해 설명된 내용과 같이 관리자로부터 설정받을 수 있다.
관리 서버(110)는 사용자 단말(130)에서 입력된 질의 메시지(900)를 메신저 서버(120)로부터 수신하면, 제 1 처리 엔진(910)을 통해 질의 메시지(900)에 대한 사용자 의도를 추출하고, 추출된 사용자 의도에 기초하여 제 1 응답을 도출(911)할 수 있다. 이 때, 제 1 응답의 유사 정확도(similarity)가 기설정된 활성화율에 대한 임계치(threshold, 912) 레벨 미만인 경우, 관리 서버(110)는 제 1 처리 엔진(910)을 통해 사용자 의도의 추출이 실패로 판단(913)하여, 제 2 처리 엔진(920)을 통해 질의 메시지(900)에 대해 복수의 유사 문장을 검색하고, 검색된 복수의 유사 문장에 기초하여 제 2 응답을 도출(921)할 수 있다. 이 때, 검색되는 응답이 없는 경우(922), 관리 서버(110)는 폴백(Fallback, 930)을 통해 응답 없음(931) 또는 써드파티(3rd-party)의 플랫폼으로 API가 연결(932)되도록 할 수 있다.
도 9b는 본 발명의 일 실시예에 따른 관리 서버에서 동시 연계 처리 모델을 이용하는 챗봇을 통해 응답을 도출하는 과정을 설명하기 위한 예시적인 도면이다. 도 9b를 참조하면, 관리 서버(110)는 제 1 처리 엔진 및 제 2 처리 엔진이 동시에 수행되는 동시 연계 처리 모델을 이용하는 챗봇을 통해 질의 메시지에 대한 응답을 도출할 수 있다.
이하에서는, 제 1 처리 엔진이 의도 기반 자연어 처리 엔진이고, 제 2 처리 엔진이 유사 문장 기반 자연어 처리 엔진임을 가정하여 설명하도록 한다.
관리 서버(110)는 사용자 단말(130)에서 입력된 질의 메시지(900)를 메신저 서버(120)로부터 수신하면, 제 1 처리 엔진(910) 및 제 2 처리 엔진(920)을 통해 질의 메시지에 대해 도출된 각 응답의 신뢰도를 산출할 수 있다. 예를 들어, 관리 서버(110)는 제 1 처리 엔진(910)을 통해 도출된 응답에 대해 제 1 신뢰도 점수(940)를 산출하고, 제 2 처리 엔진(920)을 통해 도출된 응답에 대해 제 2 신뢰도 점수(950)를 산출할 수 있다.
관리 서버(110)는 산출된 각 응답의 신뢰도에 대해 기설정된 가중치 레벨을 부여하여 각 응답의 신뢰도를 보정(960)할 수 있다. 또한, 관리 서버(110)는 각 응답의 신뢰도 간에 부여될 가중치 레벨을 조정함으로써 특정 자연어 처리 엔진의 성능이 돋보이게 제어할 수 있다.
관리 서버(110)는 보정된 각 응답의 신뢰도의 점수를 비교하여 점수가 높은 응답을 도출(970)하고, 도출된 응답을 최종 응답으로 확정(980)할 수 있다.
본 발명은 활성화율에 대한 임계치가 관리자에 의해 커스텀될 수 있도록 제안함으로써, 자연어 처리 모델이 제 1 자연어 처리 엔진 및 제 2 자연어 처리 엔진을 순차 연계 모델로 구성된 경우, 각각의 자연어 처리 엔진이 동작하는 구분점이 생성되도록 할 수 있다. 또한, 본 발명은 각 자연어 처리 엔진에 의해 도출된 응답의 신뢰도 간에 부여될 가중치 레벨을 관리자에 의해 커스텀될 수 있도록 제안함으로써, 자연어 처리 모델이 제 1 자연어 처리 엔진 및 제 2 자연어 처리 엔진이 동시 연계 모델로 구성된 경우, 제 1 자연어 처리 엔진 및 제 2 자연어 처리 엔진을 동시에 동작시키고, 각각의 자연어 처리 엔진에서 산출된 정확도에 가중치를 부여하여 비교 판단하는 기준점이 생성되도록 할 수 있다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
110: 관리 서버
120: 메신저 서버
130: 사용자 단말
210: 업로드 데이터 등록
220: 유사 문장 기반 자연어 처리 엔진 학습부
230: 자연어 처리 모델 관리부
240: 설정부
250: 챗봇 생성부
260: 응답 도출부
270: 통신부

Claims (18)

  1. 자연어 처리 엔진을 관리하는 방법에 있어서,
    질문 데이터 및 상기 질문 데이터에 대응하는 응답 데이터로 구성된 업로드 데이터를 등록받는 단계;
    상기 등록받은 업로드 데이터에 대해 색인 과정을 수행하는 단계;
    상기 색인 과정이 수행된 업로드 데이터에 기초하여 유사 문장 기반 자연어 처리 엔진을 학습시키는 단계;
    상기 생성된 유사 문장 기반 자연어 처리 엔진을 이용하는 챗봇을 생성하는 단계; 및
    상기 생성된 챗봇을 통해 상기 유사 문장 기반 자연어 처리 엔진을 이용하여 상기 색인 과정이 수행된 업로드 데이터로부터 질의 메시지에 대한 응답을 도출하는 단계
    를 포함하는 것인, 자연어 처리 엔진 관리 방법.
  2. 제 1 항에 있어서,
    상기 업로드 데이터를 등록받는 단계는,
    파일 업로드 방식 또는 관리 서버와의 API 연결 방식을 통해 상기 업로드 데이터를 등록받는 것인, 자연어 처리 엔진 관리 방법.
  3. 제 1 항에 있어서,
    기등록된 복수의 업로드 데이터 중 적어도 하나 이상을 선택받는 단계; 및
    상기 선택된 업로드 데이터에 기초하여 유사 문장 기반 자연어 처리 엔진을 학습시키는 단계
    를 더 포함하는 것인, 자연어 처리 엔진 관리 방법.
  4. 제 1 항에 있어서,
    상기 유사 문장 기반 자연어 처리 엔진 및 의도 기반 자연어 처리 엔진 중 적어도 하나 이상에 기초하여 복수의 자연어 처리 모델을 구축하는 단계;
    상기 구축된 복수의 자연어 처리 모델 중 적어도 하나를 선택받는 단계;
    상기 선택된 자연어 처리 모델을 이용하는 챗봇을 생성하는 단계; 및
    상기 생성된 챗봇을 통해 상기 선택된 자연어 처리 모델을 이용하여 질의 메시지에 대한 응답을 도출하는 단계
    를 더 포함하는 것인, 자연어 처리 엔진 관리 방법.
  5. 제 4 항에 있어서,
    상기 자연어 처리 모델은 순차 연계 처리 모델을 포함하고,
    상기 순차 연계 처리 모델은 상기 유사 문장 기반 자연어 처리 엔진 및 상기 의도 기반 자연어 처리 엔진을 기설정된 순서에 따라 순차적으로 이용하여 상기 응답을 도출하는 것인, 자연어 처리 엔진 관리 방법.
  6. 제 5 항에 있어서,
    상기 순차 연계 처리 모델이 선택된 경우, 제 1 처리 엔진으로 설정된 자연어 처리 엔진을 통해 상기 응답을 도출하는 단계; 및
    상기 제 1 처리 엔진을 통해 상기 응답이 도출되지 않는 경우, 제 2 처리 엔진으로 설정된 자연어 처리 엔진을 통해 상기 응답을 도출하는 단계
    를 더 포함하는 것인, 자연어 처리 엔진 관리 방법.
  7. 제 6 항에 있어서,
    상기 제 1 처리 엔진으로 설정된 자연어 처리 엔진을 통해 도출된 응답의 정확도를 산출하는 단계; 및
    상기 산출된 응답의 정확도가 상기 제 1 처리 엔진 및 상기 제 2 처리 엔진 간에 기설정된 활성화율에 대한 임계치 레벨을 초과하는 경우, 상기 도출된 응답을 최종 응답으로 확정하는 단계
    를 더 포함하는 것인, 자연어 처리 엔진 관리 방법.
  8. 제 7 항에 있어서,
    상기 산출된 응답의 정확도가 상기 활성화율에 대한 임계치 레벨 이하인 경우, 상기 제 2 처리 엔진으로 설정된 자연어 처리 엔진을 통해 상기 응답을 도출하는 단계
    를 더 포함하는 것인, 자연어 처리 엔진 관리 방법.
  9. 제 7 항에 있어서,
    활성화 게이지(guage)에 표시된 바(bar)를 조절하여 상기 임계치 레벨을 설정받는 단계
    를 더 포함하는 것인, 자연어 처리 엔진 관리 방법.
  10. 제 4 항에 있어서,
    상기 자연어 처리 모델은 동시 연계 처리 모델을 포함하고,
    상기 동시 연계 처리 모델은 상기 유사 문장 기반 자연어 처리 엔진 및 상기 의도 기반 자연어 처리 엔진을 동시에 이용하여 상기 응답을 도출하는 것인, 자연어 처리 엔진 관리 방법.
  11. 제 10 항에 있어서,
    상기 동시 연계 처리 모델이 선택된 경우, 제 1 처리 엔진으로 설정된 자연어 처리 엔진 및 제 2 처리 엔진으로 설정된 자연어 처리 엔진 각각을 통해 상기 응답을 도출하는 단계;
    상기 도출된 각 응답의 신뢰도를 산출하는 단계; 및
    상기 산출된 각 응답의 신뢰도에 기초하여 상기 도출된 각 응답 중 최종 응답을 확정하는 단계
    를 더 포함하는 것인, 자연어 처리 엔진 관리 방법.
  12. 제 11 항에 있어서,
    상기 도출된 각 응답의 신뢰도에 대해 기설정된 가중치를 부여하는 단계; 및
    상기 가중치가 부가된 각 응답의 신뢰도에 기초하여, 상기 도출된 각 응답 중 최종 응답을 확정하는 단계
    를 더 포함하는 것인, 자연어 처리 엔진 관리 방법.
  13. 제 1 항에 있어서,
    상기 응답의 출력 형태를 답안 추천형으로 설정받는 단계;
    상기 유사 문장 기반 자연어 처리 엔진을 이용하여 산출된 유사도에 기초하여 복수의 응답을 도출하는 단계;
    상기 질의 메시지를 생성한 사용자 단말로 상기 도출된 복수의 응답을 제공하는 단계
    를 더 포함하는 것인, 자연어 처리 엔진 관리 방법.
  14. 자연어 처리 엔진을 관리하는 관리 서버에 있어서,
    질문 데이터 및 상기 질문 데이터에 대응하는 응답 데이터로 구성된 업로드 데이터를 등록받는 업로드 데이터 등록부;
    상기 등록받은 업로드 데이터에 대해 색인 과정을 수행하는 색인부;
    상기 색인 과정이 수행된 업로드 데이터에 기초하여 유사 문장 기반 자연어 처리 엔진을 학습시키는 유사 문장 기반 자연어 처리 엔진 학습부;
    상기 생성된 유사 문장 기반 자연어 처리 엔진을 이용하는 챗봇을 생성하는 챗봇 생성부; 및
    상기 생성된 챗봇을 통해 상기 유사 문장 기반 자연어 처리 엔진을 이용하여 상기 색인 과정이 수행된 업로드 데이터로부터 질의 메시지에 대한 응답을 도출하는 응답 도출부
    를 포함하는 것인, 관리 서버.
  15. 제 14 항에 있어서,
    상기 유사 문장 기반 자연어 처리 엔진 및 의도 기반 자연어 처리 엔진 중 적어도 하나 이상에 기초하여 복수의 자연어 처리 모델을 구축하고, 상기 구축된 복수의 자연어 처리 모델 중 적어도 하나를 선택받는 자연어 처리 모델 관리부를 더 포함하고,
    상기 챗봇 생성부는 상기 선택된 자연어 처리 모델을 이용하는 챗봇을 생성하고,
    상기 응답 도출부는 상기 생성된 챗봇을 통해 상기 선택된 자연어 처리 모델을 이용하여 질의 메시지에 대한 응답을 도출하는 것인, 관리 서버.
  16. 제 15 항에 있어서,
    상기 자연어 처리 모델은 순차 연계 처리 모델을 포함하고,
    상기 순차 연계 처리 모델은 상기 유사 문장 기반 자연어 처리 엔진 및 상기 의도 기반 자연어 처리 엔진을 기설정된 순서에 따라 순차적으로 이용하여 상기 응답을 도출하는 것인, 관리 서버.
  17. 제 15 항에 있어서,
    상기 자연어 처리 모델은 동시 연계 처리 모델을 포함하고,
    상기 동시 연계 처리 모델은 상기 유사 문장 기반 자연어 처리 엔진 및 상기 의도 기반 자연어 처리 엔진을 동시에 이용하여 상기 응답을 도출하는 것인, 관리 서버.
  18. 자연어 처리 엔진을 관리하는 명령어들의 시퀀스를 포함하는 컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 프로그램은 컴퓨팅 장치에 의해 실행될 경우,
    질문 데이터 및 상기 질문 데이터에 대응하는 응답 데이터로 구성된 업로드 데이터를 등록받고,
    상기 등록받은 업로드 데이터에 대해 색인 과정을 수행하고,
    상기 색인 과정이 수행된 업로드 데이터에 기초하여 유사 문장 기반 자연어 처리 엔진을 학습시키고,
    상기 생성된 유사 문장 기반 자연어 처리 엔진을 이용하는 챗봇을 생성하고,
    상기 생성된 챗봇을 통해 상기 유사 문장 기반 자연어 처리 엔진을 이용하여 상기 색인 과정이 수행된 업로드 데이터로부터 질의 메시지에 대한 응답을 도출하도록 하는 명령어들의 시퀀스를 포함하는, 매체에 저장된 컴퓨터 프로그램.
KR1020190035436A 2019-03-27 2019-03-27 자연어 처리 엔진을 관리하는 방법, 서버 및 컴퓨터 프로그램 KR20200114173A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190035436A KR20200114173A (ko) 2019-03-27 2019-03-27 자연어 처리 엔진을 관리하는 방법, 서버 및 컴퓨터 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190035436A KR20200114173A (ko) 2019-03-27 2019-03-27 자연어 처리 엔진을 관리하는 방법, 서버 및 컴퓨터 프로그램

Publications (1)

Publication Number Publication Date
KR20200114173A true KR20200114173A (ko) 2020-10-07

Family

ID=72883699

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190035436A KR20200114173A (ko) 2019-03-27 2019-03-27 자연어 처리 엔진을 관리하는 방법, 서버 및 컴퓨터 프로그램

Country Status (1)

Country Link
KR (1) KR20200114173A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102230933B1 (ko) * 2020-10-29 2021-03-23 (주)이노그루 챗봇 서비스 제공 서버로 응답 데이터를 제공하기 위한 전자 장치
KR102260558B1 (ko) * 2020-11-12 2021-06-07 지의소프트 주식회사 챗봇용 학습 데이터 생성 시스템 및 그 방법
KR102262035B1 (ko) * 2020-12-03 2021-06-09 주식회사 인조이웍스 비대면 행정민원서비스에 최적화된 음성인식 인공지능 챗봇 서비스 제공 시스템
KR20220073350A (ko) * 2020-11-26 2022-06-03 주식회사 포켓메모리 외부 데이터 연동을 통한 대화 서비스 제공 방법 및 장치
KR20230015194A (ko) * 2021-07-22 2023-01-31 주식회사 천재교과서 학습 챗봇을 활용한 학습 유도 방법 및 이를 기록한 기록매체

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101605430B1 (ko) 2014-02-14 2016-03-22 주식회사 플런티코리아 문답 데이터베이스 구축 시스템 및 방법, 그리고 이를 이용한 검색 시스템 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101605430B1 (ko) 2014-02-14 2016-03-22 주식회사 플런티코리아 문답 데이터베이스 구축 시스템 및 방법, 그리고 이를 이용한 검색 시스템 및 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102230933B1 (ko) * 2020-10-29 2021-03-23 (주)이노그루 챗봇 서비스 제공 서버로 응답 데이터를 제공하기 위한 전자 장치
KR102260558B1 (ko) * 2020-11-12 2021-06-07 지의소프트 주식회사 챗봇용 학습 데이터 생성 시스템 및 그 방법
KR20220073350A (ko) * 2020-11-26 2022-06-03 주식회사 포켓메모리 외부 데이터 연동을 통한 대화 서비스 제공 방법 및 장치
KR102262035B1 (ko) * 2020-12-03 2021-06-09 주식회사 인조이웍스 비대면 행정민원서비스에 최적화된 음성인식 인공지능 챗봇 서비스 제공 시스템
KR20230015194A (ko) * 2021-07-22 2023-01-31 주식회사 천재교과서 학습 챗봇을 활용한 학습 유도 방법 및 이를 기록한 기록매체

Similar Documents

Publication Publication Date Title
KR20200114173A (ko) 자연어 처리 엔진을 관리하는 방법, 서버 및 컴퓨터 프로그램
US10078489B2 (en) Voice interface to a social networking service
CN107004408B (zh) 用于基于将语义知识图的至少一部分转换为概率状态图来确定口语对话中的用户意图的方法和系统
US20190103111A1 (en) Natural Language Processing Systems and Methods
US10698707B2 (en) Using salience rankings of entities and tasks to aid computer interpretation of natural language input
US11425215B1 (en) Methods and systems for virtual assistant routing
US20200334740A1 (en) System and method for a hybrid conversational and graphical user interface
CN114303132B (zh) 在虚拟个人助手中使用唤醒词进行上下文关联和个性化的方法和系统
US20100100371A1 (en) Method, System, and Apparatus for Message Generation
US20210327413A1 (en) Natural language processing models for conversational computing
US20120066202A1 (en) Method and apparatus for enhancing search results by extending search to contacts of social networks
US20190294731A1 (en) Search query dispatcher using machine learning
CN101999119A (zh) 用于输入识别和完成的技术
KR102169397B1 (ko) 챗봇과 상담원을 이용한 반자동 대화제공방법 및 서버
CN101611398A (zh) 用于即时消息收发应用程序的上下文敏感搜索和功能
KR20190080599A (ko) 챗봇과 상담원을 이용한 반자동 대화제공방법 및 서버
US10453477B2 (en) Method and computer system for performing audio search on a social networking platform
KR101891498B1 (ko) 대화형 ai 에이전트 시스템에서 멀티 도메인 인텐트의 혼재성을 해소하는 멀티 도메인 서비스를 제공하는 방법, 컴퓨터 장치 및 컴퓨터 판독가능 기록 매체
US20220157663A1 (en) Bot group messaging using bot-specific voice libraries
CN112351350B (zh) 一种内容显示方法、装置、系统、设备及存储介质
KR20220154062A (ko) 내용 추천 및 정렬 모델 훈련 방법, 장치, 기기, 저장 매체 및 컴퓨터 프로그램
US11263249B2 (en) Enhanced multi-workspace chatbot
US20160247522A1 (en) Method and system for providing access to auxiliary information
WO2022133153A1 (en) Free-form, automatically-generated conversational graphical user interfaces
JP2014052809A (ja) 情報分類プログラム及び情報処理装置

Legal Events

Date Code Title Description
A201 Request for examination