KR20200137601A - 챗봇을 이용한 질의응답 처리 장치 및 방법 - Google Patents

챗봇을 이용한 질의응답 처리 장치 및 방법 Download PDF

Info

Publication number
KR20200137601A
KR20200137601A KR1020190064241A KR20190064241A KR20200137601A KR 20200137601 A KR20200137601 A KR 20200137601A KR 1020190064241 A KR1020190064241 A KR 1020190064241A KR 20190064241 A KR20190064241 A KR 20190064241A KR 20200137601 A KR20200137601 A KR 20200137601A
Authority
KR
South Korea
Prior art keywords
user
response
keyword
learning
query
Prior art date
Application number
KR1020190064241A
Other languages
English (en)
Other versions
KR102278020B1 (ko
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 KR1020190064241A priority Critical patent/KR102278020B1/ko
Publication of KR20200137601A publication Critical patent/KR20200137601A/ko
Application granted granted Critical
Publication of KR102278020B1 publication Critical patent/KR102278020B1/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/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/332Query formulation
    • G06F16/3322Query formulation using system suggestions
    • 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/3325Reformulation based on results of preceding query
    • G06F16/3326Reformulation based on results of preceding query using relevance feedback from the user, e.g. relevance feedback on documents, documents sets, document terms or passages
    • 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/3332Query translation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

챗봇을 이용한 질의응답 처리 장치 및 방법이 개시된다.
사용자로부터 질의를 수신하고, 수신된 질의에 대응하여 검색된 응답을 사용자에게 전달하는 인터페이스부; 질의와 응답이 매칭되어 저장되는 질의응답 DB; 이전에 사용자로부터 입력받은 질의에서 추출한 키워드와 상기 키워드로 상기 질의응답 DB에서 검색되어 사용자에게 선택된 응답을 학습 세트로 하여 저장 관리하는 학습 DB; 및 상기 사용자로부터 수신한 질의를 분석하여 키워드를 추출하고, 추출된 키워드로 상기 학습 DB에서 응답을 검색하여 상기 인터페이스부를 통해 사용자에게 제공하는 챗봇 엔진부;를 포함하는 것이 바람직하다.

Description

챗봇을 이용한 질의응답 처리 장치 및 방법{APPARATUS AND METHOD FOR PROCESSING OF QUESTION AND ANSWER USING CHATBOT}
본 발명은 챗봇을 이용한 질의응답 처리 장치 및 방법에 관한 것으로, 더욱 상세하게는 챗봇(Chatbot)을 이용하여 자연어 형식으로 질의응답을 수행할 수 있도록 하는 챗봇을 이용한 질의응답 처리 장치 및 방법에 관한 것이다.
정보통신기술의 발달로 데이터통신망을 매개하여 다양한 분야에 대한 정보를 적어도 하나 이상의 호스트 서버를 통하여 다수의 가입자 측으로 실시간 제공하는 정보 제공 기술의 개발이 활발하게 진행 중이다.
또한, 최근에는 전자상거래를 통한 판매 행위가 매우 활발하게 이루어지고 있다.
전자상거래란 재화나 서비스의 거래에 있어서 그 전부 또는 일부가 전자문서 교환 등의 전자적 방식에 의해 처리되는 거래를 말하는 것으로, 현재 인터넷에는 다수의 전자상거래 사이트가 운영되고 있다.
이러한 전자상거래 사이트는 사용자(소비자)에게 이용 편의를 제공하기 위해 자주 묻는 질문(FAQ)이나 질의응답(Q&A) 메뉴를 제공하는데, 종래에는 사용자가 이용 중에 궁금한 사항이 발생하게 되면, 자주 묻는 질문(FAQ)이나 질의응답(Q&A) 메뉴를 클릭하여 들어가, 검색창에 질문을 입력하고, 입력된 질문에서 추출된 키워드(예를 들어, 탈퇴)를 기반으로 FAQ DB(DataBase)(또는 Q&A DB)에서 검색된 복수의 질문들 중에서 사용자가 원하는 질문(예를 들어, 탈퇴 후 재가입할 수 있나요)을 다시 찾아서 그 답변을 확인하도록 구성되거나, 복수 개로 분류되어 있는 대분류 카테고리(예를 들어, 구매관련, 모바일 웹&앱관련, 판매관련, 판매광고관련) 중에서 사용자가 원하는 질문과 관련된 대분류 카테고리(예를 들어, 구매관련)를 선택하고, 선택된 대분류 카테고리(예를 들어, 구매관련)에서 사용자가 원하는 질문과 관련된 중분류 카테고리(예를 들어, 회원/정보관리)를 선택하고, 선택된 중분류 카테고리(예를 들어, 회원/정보관리)에서 사용자가 원하는 질문과 관련된 소분류 카테고리(예를 들어, 회원가입/탈퇴)를 선택하고, 선택된 소분류 카테고리(예를 들어, 회원가입/탈퇴)에 속한 복수의 질문들 중에서 사용자가 원하는 질문(예를 들어, 탈퇴 후 재가입할 수 있나요)을 찾아서 그 답변을 확인하도록 구성된다.
그러나 검색창에 질문을 입력하여 원하는 질문을 검색하는 방법은, 사용자가 사용하는 어휘와 FAQ DB(또는 Q&A DB)에 저장되어 있는 질문 내용에 포함되어 있는 어휘가 달라 사용자로부터 입력받은 질문의 내용이 검색에 활용되기에 부족하거나 부정확하여 사용자가 원하는 답변이 FAQ DB(또는 Q&A DB)에 저장되어 있음에도 불구하고 검색되지 않는 문제점이 있다.
예를 들어, FAQ DB(또는 Q&A DB)에 '아이디가 기억나지 않아요'라는 질문에 대한 응답이 저장되어 있는 경우, 사용자로부터 입력받은 질문의 내용이 '아이디 까먹었어요', '아이디가 생각나지 않아요'와 같이 검색에 활용되기에 부족하거나 부정확한 경우에는 FAQ DB(또는 Q&A DB)에 사용자가 원하는 질문(예를 들어, 아이디가 기억나지 않아요)이 저장되어 있음에도 불구하고 해당 질문이 검색되지 않는 문제가 있다.
또한, 대분류-중분류-소분류 되어 있는 카테고리를 단계적으로 선택하여 질문을 검색하는 방법은 카테고리를 선택하는 과정을 여러 번 수행해야 하는 번거로움이 있다.
한편, 한류 열풍 등에 힘입어 많은 해외 사용자(해외 소비자)가 국내 전자상거래 사이트를 통해 국내의 상품을 구매하는 추세이다.
이러한 해외 사용자들에게 이용 편의를 제공하기 위해 해외 사용자의 사용 언어로 웹 페이지를 자동 번역(기계 번역)하여 제공할 수 있으며, 해외 사용자들은 이용 중에 궁금한 사항이 발생하게 되면, 자주 묻는 질문(FAQ)이나 질의응답(Q&A) 메뉴를 통해 자신의 사용 언어로 검색창에 질문을 입력하고, 전자상거래 서버는 해외 사용자로부터 입력받은 질문의 내용을 자동 번역한 후, 자동 번역된 질문에서 키워드를 추출하고, 추출된 키워드를 기반으로 FAQ DB(또는 Q&A DB)에서 원하는 질문을 검색한다.
그러나 번역기의 번역 정확도가 낮거나 사용자로부터 입력받은 질문의 내용이 검색에 활용되기에 부족하거나 부정확한 경우에는, 사용자가 원하는 답변이 FAQ DB(또는 Q&A DB)에 저장되어 있음에도 불구하고 검색되지 않는 문제점이 있다.
한국공개특허공보 제10-2018-0059347호(공개일 2018.06.04.)
본 발명은 이러한 문제점을 해결하기 위해 안출된 것으로, 챗봇(Chatbot)을 이용하여 자연어 형식으로 질의응답을 수행하되, 사용자로부터 입력받은 질문의 내용이 검색에 활용되기에 부족하거나 부정확한 경우, 챗봇을 이용하여 질문의 내용을 구체화할 수 있도록 하는 챗봇을 이용한 질의응답 처리 장치 및 방법을 제공함에 그 목적이 있다.
본 발명의 다른 목적은 해외 이용자로부터 입력받은 질문의 번역 내용이 검색에 활용되기에 부족하거나 부정확한 경우, 챗봇을 이용하여 질문의 내용을 구체화할 수 있도록 하는 챗봇을 이용한 질의응답 처리 장치 및 방법을 제공함에 있다.
전술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 챗봇을 이용한 질의응답 처리 장치는, 사용자로부터 질의를 수신하고, 수신된 질의에 대응하여 검색된 응답을 사용자에게 전달하는 인터페이스부; 질의와 응답이 매칭되어 저장되는 질의응답 DB; 이전에 사용자로부터 입력받은 질의에서 추출한 키워드와 상기 키워드로 상기 질의응답 DB에서 검색되어 사용자에게 선택된 응답을 학습 세트로 하여 저장 관리하는 학습 DB; 및 상기 사용자로부터 수신한 질의를 분석하여 키워드를 추출하고, 추출된 키워드로 상기 학습 DB에서 응답을 검색하여 상기 인터페이스부를 통해 사용자에게 제공하는 챗봇 엔진부;를 포함하는 것이 바람직하다.
본 발명의 일 실시예에서, 상기 챗봇 엔진부는, 상기 학습 DB에서 사용자가 원하는 응답이 검색되지 않으면, 추출된 각각의 키워드에 가중치를 설정하고, 가중치가 설정된 키워드를 이용하여 상기 질의응답 DB에서 사용자 질의에 대한 응답을 검색하여 상기 인터페이스부를 통해 사용자에게 제공하는 것이 바람직하다.
본 발명의 일 실시예에서, 상기 챗봇 엔진부는, 사용자로부터 수신한 질의를 분석하여 적어도 하나 이상의 키워드를 추출하는 키워드 추출부; 상기 키워드 추출부에서 추출된 키워드에 가중치를 설정하는 가중치 설정부; 및 상기 키워드 추출부에서 추출된 키워드로 상기 학습 DB에서 사용자 질의에 대한 응답을 검색하여 사용자에게 제공하고, 상기 학습 DB에서 사용자가 원하는 응답이 검색되지 않으면, 상기 가중치 설정부에서 가중치가 설정된 키워드를 이용하여 상기 질의응답 DB에서 사용자 질의에 대한 응답을 검색하여 사용자에게 제공하는 검색부;를 포함하는 것이 바람직하다.
본 발명의 일 실시예에서, 상기 챗봇 엔진부는, 상기 학습 DB에서 검색된 응답을 사용자가 선택하게 되면, 선택된 응답에 대응하는 학습 세트의 클릭 회수를 증가시켜 상기 학습 DB를 업데이트 시키고, 상기 질의응답 DB에서 검색된 응답을 사용자가 선택하게 되면, 상기 추출된 키워드와 사용자에 의해 선택된 응답을 하나의 학습 세트로 하여 상기 학습 DB에 저장하는 학습부;를 더 포함하는 것이 바람직하다.
본 발명의 일 실시예에서, 키워드 별로 서로 다른 값을 갖는 가중치를 저장하는 키워드 가중치 DB;를 더 포함하며, 상기 가중치 설정부는, 상기 키워드 추출부에서 추출된 각각의 키워드에 매칭되어 있는 가중치를 상기 키워드 가중치 DB에서 읽어와 가중치를 설정하는 것이 바람직하다.
본 발명의 일 실시예에서, 사용자의 사용 언어가 상기 챗봇 엔진부의 사용 언어와 다른 경우, 상기 인터페이스부를 통해 사용자로부터 입력받은 문장을 상기 챗봇 엔진부의 사용 언어로 번역하고, 상기 챗봇 엔진부로부터 수신한 문장을 사용자의 사용 언어로 번역하는 번역부;를 더 포함하는 것이 바람직하다.
본 발명의 일 실시예에서, 상기 학습 DB는, 사용자로부터 입력받은 질의, 상기 질의에서 추출한 키워드, 상기 키워드를 이용한 검색결과 중에서 사용자에게 선택된 응답, 상기 사용자에게 선택된 응답에 대한 사용자의 선택 회수를 카운트하는 카운트 값을 포함하여 이루어지는 것이 바람직하다.
본 발명의 일 실시예에 따른 챗봇을 이용한 질의응답 처리 방법은, 인터페이스부를 통해 사용자로부터 질의를 수신하는 단계; 상기 사용자로부터 수신한 질의를 분석하여 키워드를 추출하는 단계; 및 상기 추출된 키워드로 학습 DB에서 응답을 검색하여 상기 인터페이스부를 통해 사용자에게 제공하는 단계;를 포함하며, 상기 학습 DB는, 이전에 사용자로부터 입력받은 질의에서 추출한 키워드와 상기 키워드를 이용하여, 질의와 응답이 매칭되어 저장되는 질의응답 DB에서 검색되어 사용자에게 선택된 응답을 학습 세트로 하여 저장 관리하는 DB인 것이 바람직하다.
본 발명의 일 실시예에서, 상기 학습 DB에서 사용자가 원하는 응답이 검색되지 않으면, 상기 추출된 각각의 키워드에 가중치를 설정한 후, 가중치가 설정된 키워드를 이용하여 상기 질의응답 DB에서 사용자 질의에 대한 응답을 검색하여 상기 인터페이스부를 통해 사용자에게 제공하는 단계;를 더 포함하는 것이 바람직하다.
본 발명의 일 실시예에서, 상기 추출된 키워드로 학습 DB에서 응답을 검색하여 상기 인터페이스부를 통해 사용자에게 제공하는 단계는, 상기 추출된 키워드를 이용하여 학습 DB에서 사용자 질의에 대한 응답을 검색하는 단계; 및 검색결과 상기 학습 DB에서 검색된 응답이 존재하는 경우에는, 검색된 응답을 사용자에게 제공한 후, 사용자에게 제공된 응답이 선택되면, 선택된 응답에 대응하는 질의 제목과 응답 내용을 사용자에게 제공한 후, 상기 학습 DB에서 상기 선택된 응답에 대응하는 학습 세트의 클릭 회수를 증가시키는 단계;를 포함하는 것이 바람직하다.
본 발명의 일 실시예에서, 상기 가중치가 설정된 키워드로 질의응답 DB에서 응답을 검색하여 상기 인터페이스부를 통해 사용자에게 제공하는 단계는, 상기 추출된 각각의 키워드에 가중치를 설정하는 단계; 상기 가중치가 설정된 키워드를 이용하여 상기 질의응답 DB에서 사용자 질의에 대한 응답을 검색하는 단계; 상기 질의응답 DB에서 검색된 응답의 수가 기준치 이상인지를 확인하는 단계; 상기 확인결과 검색된 응답의 수가 기준치 이내인 경우에는, 사용자에게 검색결과를 제공하고, 사용자에게 제공된 검색결과 중에서 어느 하나가 선택되면, 선택된 응답에 대응하는 질의 제목과 응답 내용을 사용자에게 제공한 후, 사용자에게 제공한 응답과 상기 추출된 키워드를 하나의 학습 세트로 하여 상기 학습 DB에 저장하는 단계; 및 상기 확인결과 검색된 응답의 수가 기준치 이상인 경우에는, 사용자로부터 카테고리를 선택받고, 선택받은 카테고리로 검색 범위를 조정하여 상기 질의응답 DB에서 응답을 재검색하여 상기 인터페이스부를 통해 사용자에게 제공하는 단계;를 포함하는 것이 바람직하다.
본 발명의 일 실시예에서, 상기 가중치를 설정하는 단계는, 상기 추출된 각각의 키워드에 매칭되어 있는 가중치를, 키워드 별로 서로 다른 값을 갖는 가중치를 저장하는 키워드 가중치 DB에서 읽어와 가중치를 설정하는 단계인 것이 바람직하다.
본 발명의 일 실시예에서, 상기 사용자에게 제공한 응답과 상기 추출된 키워드를 하나의 학습 세트로 하여 상기 학습 DB에 저장하는 단계는, 사용자로부터 입력받은 질의, 상기 질의에서 추출된 키워드, 상기 키워드를 이용한 검색결과 중에서 사용자에게 선택된 응답을 하나의 학습 세트로 하여 상기 학습 DB에 저장하는 단계인 것이 바람직하다.
본 발명의 챗봇을 이용한 질의응답 처리 장치 및 방법은, 챗봇을 이용하여 자연어 형식으로 질의응답을 수행하되, 사용자로부터 입력받은 질문의 내용 또는 해외 사용자로부터 입력받은 질문의 번역 내용이 검색에 활용되기에 부족하거나 부정확한 경우, 챗봇을 이용하여 질문의 내용을 구체화함으로써, 검색의 정확도를 높일 수 있게 된다.
또한, 학습 DB에 축적된 학습 데이터를 통해 사용자에게 빠르면서도 정확한 검색결과를 제공할 수 있게 된다.
도 1은 본 발명의 일 실시예에 따른 챗봇을 이용한 질의응답 처리 장치의 구성을 개략적으로 보인 도면이다.
도 2 및 도 3은 본 발명의 일 실시예에 따른 챗봇을 이용한 질의응답 처리 장치의 동작을 설명하기 위한 도면이다.
도 4a 및 도 4b는 본 발명에 따라 제공되는 채팅 창을 예시적으로 보인 도면이다.
도 5는 본 발명에 적용되는 사용자 피드백 결과 저장 테이블을 예시적으로 보인 도면이다.
도 6은 본 발명에 적용되는 질의응답 DB를 예시적으로 보인 도면이다.
도 7은 본 발명의 일 실시예에 따른 챗봇을 이용한 질의응답 처리 방법을 설명하기 위한 처리도이다.
도 8a 및 도 8c는 본 발명에 따라 제공되는 채팅 창을 예시적으로 보인 도면이다.
도 9a 내지 도 9c는 본 발명에 따라 제공되는 채팅 창을 예시적으로 보인 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하에서는 첨부한 도면들을 참조하여 본 발명의 바람직한 실시예에 따른 챗봇을 이용한 질의응답 처리 장치 및 방법에 대해서 상세하게 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 챗봇을 이용한 질의응답 처리 장치의 구성을 개략적으로 보인 도면이다.
도 1에 도시하는 바와 같이, 본 발명의 일 실시예에 따른 챗봇을 이용한 질의응답 처리 장치(100)는 인터페이스부(110), 번역부(115), 챗봇 엔진부(120), 질의응답 DB(130), 키워드 가중치 DB(140), 학습 DB(150)를 포함하여 이루어질 수 있다.
이와 같은 구성에 있어서, 인터페이스부(110)는 유무선 인터넷 망을 통해 접속되어 있는 사용자로부터 질의를 수신하고, 수신된 질의에 대응하여 검색된 응답을 사용자에게 전달한다.
인터페이스부(110)는 사용자가 채팅 창을 통해 자연어 형태로 입력한 질의(예를 들어, 회원 탈퇴하고 싶어요)를 수신하고, 수신된 질의에 대응하여 검색된 응답을 채팅 창을 통해 사용자에게 제공할 수 있다.
번역부(115)는 사용자의 사용 언어(예를 들어, 영어)가 챗봇 엔진부(120)의 사용 언어(예를 들어, 한국어)와 다른 경우, 인터페이스부(110)로부터 수신한 문장(질의 내용)을 챗봇 엔진부(120)의 사용 언어로 번역(기계 번역)하여 챗봇 엔진부(120)로 전달하고, 챗봇 엔진부(120)로부터 수신한 문장(검색 결과)을 사용자의 사용 언어로 번역하여 인터페이스부(110)로 전달한다.
챗봇 엔진부(120)는 사용자로부터 수신한 자연어 형태의 질의를 분석하여 적어도 하나 이상의 키워드를 추출하고, 추출된 키워드로 학습 DB(150)를 검색하여 그 검색결과를 채팅 창을 통해 사용자에게 제공할 수 있다.
검색결과, 검색된 응답이 존재하면, 검색된 응답을 사용자에게 제공하되, 검색된 사용자가 원하는 질의에 대한 응답이면, 즉 검색된 응답이 사용자에 의해 선택(클릭)되면, 해당 질의 제목과 응답 내용을 채팅 창을 통해 사용자에게 제공할 수 있다.
검색결과, 검색된 응답이 사용자가 원하는 질의에 대한 응답이 아니거나, 학습 DB(150)에서 검색된 결과가 없는 경우에는, 사용자로부터 수신한 자연어 형태의 질의에서 추출된 각각의 키워드에 가중치를 설정한 후, 가중치가 설정된 키워드로 질의응답 DB(130)에서 응답을 검색할 수 있다.
질의응답 DB(130)에서 검색한 결과, 검색된 응답의 수가 기준치 이상으로 정확도가 떨어지는 경우에는 자연어 형식으로 사용자에게 질문을 하여 사용자가 원하는 질의의 내용을 구체화할 수 있다. 여기서 챗봇 엔진부(120)는 사용자로부터 입력받은 질문 내용에 기반하여 사용자에게 카테고리 선택을 요청하고, 그에 대한 응답으로 사용자로부터 카테고리를 선택받아 사용자 질의 내용을 구체화할 수 있다.
이에 대해 좀 더 자세히 설명하면 다음과 같다.
챗봇 엔진부(120)는 유무선 통신망을 통해 사용자가 인터페이스부(110)를 통해 접속되면, 도 2 내지 도 4b에 도시하는 바와 같이 설정된 메뉴얼에 따라 사용자에게 사용할 언어를 선택하라는 요청 메시지를 채팅 창을 통해 사용자에게 제공하고, 그에 대한 응답으로 사용자로부터 사용 언어를 선택받을 수 있다.
그리고 사용자로부터 선택받은 사용 언어를 이용하여 질의를 요청하는 메시지(예를 들어, 안녕하세요. 궁금한 게 있으면 '#검색'을 치신 후 검색해 주세요.)를 채팅 창을 통해 사용자에게 제공하고, 그에 대한 응답으로 사용자로부터 질의를 수신할 수 있다. 여기서 챗봇 엔진부(120)는 자연어를 이용하여 사용자에게 대화하듯 질의를 요청할 수 있고, 사용자도 자연어를 이용하여 대화하듯 질의를 입력할 수 있다.
또한, 사용자의 사용 언어가 챗봇 엔진부(120)의 사용 언어와 다른 경우, 사용자에게 제공되는 질의 요청 메시지는 번역부(115)를 통해 사용자의 사용 언어로 번역되어 제공될 수 있고, 그에 대한 응답으로 사용자로부터 입력받은 질의 내용은 번역부(115)를 통해 챗봇 엔진부(120)의 사용 언어로 번역되어 제공될 수 있다.
질의 요청에 대한 응답으로 사용자로부터 질의가 입력되면, 사용자로부터 입력받은 질의를 분석하여 적어도 하나 이상의 키워드를 추출하고, 추출된 키워드로 학습 DB(150)를 검색한다. 여기서 추출된 키워드로 학습 DB(150)를 검색할 때, 추출된 키워드로 학습 DB(150)를 검색한 후, 검색된 질의에 매핑되어 있는 질의 내용이 사용자로부터 입력받은 질의 내용과 일치하는 질의에 대해서만 해당 검색된 질의를 검색 결과로 제공할 수 있다.
검색결과, 검색된 응답이 존재하고, 검색된 응답이 사용자가 원하는 질의에 대한 응답이어서 해당 응답을 사용자가 선택하면, 선택된 질의 제목과 응답 내용을 채팅 창을 통해 사용자에게 제공한다.
이와 같이, 사용자가 검색된 응답을 선택하게 되면 챗봇 엔진부(120)는 사용자로부터 입력받은 질의, 사용자로부터 입력받은 질의에서 추출된 키워드, 사용자가 선택한 응답이 하나의 학습 세트로 저장되어 있는 학습 DB(150)에서 사용자가 선택한 응답에 대응하는 학습 세트의 클릭 회수를 1증가시켜, 학습 DB(150)를 업데이트시킨다.
반면, 검색된 응답이 없거나 검색된 응답이 사용자가 원하는 응답이 아니면, 추출된 키워드로 질의응답 DB(130)를 검색한다.
여기서 챗봇 엔진부(120)는 추출된 키워드로 질의응답 DB(130)를 검색하기 전에, 추출된 키워드에 가중치를 설정한 후, 가중치가 설정된 키워드로 질의응답 DB(130)에서 응답을 검색하는 것이 바람직하다.
검색결과 검색된 응답의 개수가 기준치 이상인 경우에는, 사용자에게 카테고리 선택을 요청하여 질의 내용을 구체화할 수 있다.
즉, 챗봇 엔진부(120)는 사용자로부터 입력받은 질문의 내용에 기반하여, 도 4a에 도시하는 바와 같이 채팅 창을 통해 사용자에게 선택할 카테고리(대분류 또는 중분류)를 제공하고, 그에 대한 응답으로 사용자로부터 카테고리를 선택받을 수 있다.
사용자로부터 카테고리를 선택받으면, 검색결과 리스트 중에서 사용자로부터 선택받은 카테고리에 속하는 검색결과만을 추출하고, 도 4b에 도시하는 바와 같이 그 추출결과를 채팅 창을 통해 사용자에게 제공할 수 있다.
이와 같이 사용자로부터 선택받은 카테고리로 검색 범위를 좁힐 수 있게 됨에 따라 사용자의 질의 내용을 좀 더 구체화할 수 있게 된다.
전술한 바와 같이 카테고리를 선택받아 검색 범위를 좁혔음에도 검색된 응답의 수가 기준치 이상인 경우에는, 사용자로부터 하위 카테고리(중분류 또는 소분류)의 선택을 요청하고, 그에 대한 응답으로 사용자로부터 하위 카테고리를 선택받을 수 있다.
사용자로부터 하위 카테고리를 선택받으면, 검색결과 리스트 중에서 사용자로부터 선택받은 하위 카테고리에 속하는 검색결과만을 추출하고, 그 추출결과를 채팅 창을 통해 사용자에게 제공할 수 있다.
이후, 사용자에게 제공된 추출결과 리스트 중에서 어느 하나를 선택받으면, 선택받은 질의 제목과 응답 내용을 채팅 창을 통해 사용자에게 제공할 수 있다. 이때, 챗봇 엔진부(120)는 사용자에게 선택받은 질의 제목과 응답 내용을 앞서 추출된 키워드와 함께 하나의 학습 세트로 형성하여 학습 DB(150)에 저장할 수 있다.
이러한 챗봇 엔진부(120)는 키워드 추출부(121), 가중치 설정부(123), 검색부(125), 학습부(127)를 포함하여 이루어질 수 있다.
키워드 추출부(121)는 번역부(115)를 통해 수신되는 번역문을 포함하여 사용자로부터 수신한 자연어 형태의 질의에 해당하는 텍스트를 구문 분석하여 적어도 하나 이상의 키워드를 추출한다.
여기서 키워드 추출부(121)는 사용자로부터 수신한 언어를 감지한 후, 감지된 언어에 맞게 텍스트를 구문 분석하여 키워드를 추출할 수 있다.
키워드 추출부(121)는 사용자로부터 수신한 질의가 예를 들어 '회원 탈퇴하고 싶어요'인 경우, 텍스트를 구문 분석하여 '회원'과 '탈퇴'라는 키워드를 추출할 수 있고, 사용자로부터 수신한 질의가 예를 들어 '군부대로 상품을 배송하고 싶어요'인 경우, 텍스트를 구문 분석하여 '군부대', '상품', '배송'이라는 키워드를 추출할 수 있으며, 번역부(115)를 통해 사용자로부터 수신한 질의가 예를 들어 '내 물품은 언제쯤 받을 수 있습니까?'인 경우, 텍스트 구문 분석하여 '물품', '언제'라는 키워드를 추출할 수 있다.
가중치 설정부(123)는 키워드 추출부(121)에서 추출된 적어도 하나 이상의 키워드에 각각 가중치를 설정한다.
가중치 설정부(123)는 키워드 가중치 DB(140)에 키워드 별로 저장되어 있는 가중치에 의거하여 각각의 키워드에 서로 다른 가중치를 설정한다.
예를 들어, 키워드 추출부(121)에서 추출된 키워드가 '군부대', '상품', '배송'라고 가정했을 때, 키워드 별로 각각 가중치가 군부대-0.6711134, 상품-0.0015615, 배송-0.0904638와 같이 다르게 설정될 수 있다.
검색부(125)는 키워드 추출부(121)에서 추출된 적어도 하나 이상의 키워드를 이용하여 학습 DB(150)에서 사용자 질의에 대한 응답을 검색하고, 검색된 응답을 인터페이스부(110)를 통해 사용자에게 전달할 수 있다.
여기서 사용자의 사용 언어가 챗봇 엔진부(120)의 사용 언어와 다른 경우, 사용자에게 제공되는 응답은 번역부(115)를 통해 사용자의 사용 언어로 번역되어 제공될 수 있다.
학습 DB(150)에서 응답을 검색할 때, 동일한 키워드에 대해 복수의 검색결과가 검색될 수 있다.
이와 같이 동일한 키워드에 대해 복수의 검색결과가 검색되는 경우에는 카운트 값이 높을수록 검색결과의 정확도가 높다는 의미이므로, 검색부(125)는 학습 DB(150)에서 응답을 검색할 때, 카운트 값이 높은 검색결과에 대해서는 가중치를 높게 하고, 카운트 값이 낮은 검색결과에 대해서는 가중치를 낮게 할 수 있다.
검색부(125)는 학습 DB(150)를 검색한 결과, 사용자 질의에 대한 응답이 검색되지 않거나, 검색된 응답이 사용자가 원하는 응답이 아닌 경우에는, 가중치 설정부(123)에서 가중치가 설정된 키워드를 이용하여 질의응답 DB(130)에서 사용자 질의에 대한 응답을 검색하고, 검색된 응답을 인터페이스부(110)를 통해 사용자에게 전달할 수 있다.
검색부(125)는 가중치 설정부(123)에서 키워드 별로 설정된 가중치에 의거하여 가중치가 높은 키워드에 우선순위를 두어 질의응답 DB(130)에서 응답을 검색할 수 있다.
또한, 검색부(125)는 사용자 질의에 대한 응답이 검색되면, 검색된 응답 각각에 대해 가중치 합을 산출하고, 산출된 가중치 합이 전체에서 상위 몇%에 해당하는지를 기준으로 정확도를 산출할 수도 있으며, 검색된 응답을 인터페이스부(110)를 통해 사용자에게 제공할 때, 정확도가 일정 값 이상인 응답에 대해서만 사용자에게 제공할 수도 있다.
예를 들어, '군부대', '상품', '배송'이라는 3개의 키워드로 검색된 응답이 10개이고, 키워드 별로 가중치가 각각 군부대-0.6711134, 상품-0.0015615, 배송-0.0904638이라고 가정했을 때, 검색된 첫번째 응답에는 '군부대', '상품'이라는 키워드가 포함되고, 두번째 응답에는 '군부대', '배송'이라는 키워드가 포함되고, 세번째 응답에는 '상품', '배송'이라는 키워드가 포함되는 경우, 첫번째 응답은 가중치 합이 0.6726749이고, 두번째 응답은 가중치 합이 0.68015978이고, 세번째 응답은 가중치 합이 0.0920253이 될 수 있다.
이와 같이 가중치 합을 산출한 후에는 산출된 가중치 합이 전체에서 상위 몇%에 해당하는지를 기준으로 정확도를 산출하고, 정확도가 일정 값 이상인 첫번째와 두번째 응답에 대해서만 검색결과로 사용자에게 제공할 수 있다.
또한, 검색부(125)는 가중치가 설정된 키워드를 이용하여 질의응답 DB(130)에서 사용자 질의에 대한 응답을 검색한 결과, 검색된 응답의 수가 기준치 이상인 경우에는, 사용자로부터 입력받은 질문의 내용에 기반하여 사용자에게 카테고리 선택을 요청하고, 그에 대한 응답으로 사용자로부터 카테고리를 선택받을 수 있다.
그리고 사용자로부터 카테고리를 선택받으면, 선택받은 카테고리로 검색 범위를 좁혀 응답을 검색한다.
학습부(127)는 검색부(125)가 학습 DB(150)에서 검색된 응답을 제공한 후, 사용자에게 제공된 응답 중에서 어느 하나를 사용자가 선택하게 되면, 사용자에 의해 선택된 응답에 대응하는 학습 세트의 클릭 회수를 1증가시켜 학습 DB(150)를 업데이트시킨다.
예를 들어, 사용자의 '군부대로 상품을 배송하고 싶어요'라고 질의에 대해, '군부대', '상품', '배송'이라는 키워드가 추출되고, 이 키워드로 학습 DB(150)에서 검색된 결과를 사용자에게 제공했을 때, 검색된 결과를 사용자가 선택(클릭)하면, '군부대', '상품', '배송'을 이용한 검색결과에 대한 카운트 값을 증가시킬 수 있다.
또한 학습부(127)는 검색부(125)가 질의응답 DB(130)에서 검색된 결과를 사용자에게 질의에 대한 응답으로 제공한 후, 제공받은 응답이 사용자가 원하는 답이었는지를 사용자로부터 피드백 받아 그 결과가 긍정적일 때, 도 5에 도시하는 바와 같이 사용자로부터 입력받은 질의(a), 사용자로부터 입력받은 질의에서 추출한 키워드(b), 해당 키워드로 검색되어 사용자에게 제공된 검색결과 중에서 사용자에게 선택된 응답(c)을 하나의 학습 세트로 형성하여 학습 DB(150)에 저장할 수 있다. 여기서, 사용자로부터의 피득백으로는 사용자에게 제공한 응답이 사용자가 원하는 답이면, 사용자로부터 해당 응답을 선택(클릭)하는 긍정적인 결과가 피드백으로 올 수 있고, 해당 응답이 사용자가 원하는 답이 아니면, 되돌아가기(또는 아니오) 등의 부정적인 결과가 피드백으로 올 수 있다.
도 5는 본 발명에 적용되는 학습 DB를 예시적으로 보인 도면으로, 사용자로부터 수신한 질의(a), 사용자로부터 수신한 질의에서 추출한 키워드(b), 해당 키워드를 이용한 검색결과 중에서 사용자에게 선택된 응답(c), 해당 키워드를 이용한 검색결과 중에서 사용자에게 선택된 응답에 대한 사용자의 선택(클릭) 회수를 카운트하는 카운트 값(d)을 포함하여 이루어질 수 있다.
도 5에 도시하는 바와 같이 사용자로부터 수신한 질의(a)는 번역문이 아닌 사용자의 사용 언어로 입력받은 질의 내용이 저장되는 것이 바람직하다.
또한, 학습부(127)는 카운트 값이 높을수록 검색결과의 정확도가 높다는 의미이므로, 카운트 값이 높은 키워드에 대해서는 키워드 가중치 DB(140)에 저장되어 있는 가중치를 높이고, 카운트 값이 낮은 키워드에 대해서는 키워드 가중치 DB(140)에 저장되어 있는 가중치를 낮출 수 있다.
질의응답 DB(130)는 질의에 대한 응답이 일대일 매칭되어 저장된다.
질의응답 DB(130)는 도 6에 도시하는 바와 같이 각각의 질의가 속하는 대분류 카테고리, 중분류 카테고리, 소분류 카테고리, 질의 제목, 응답 내용을 포함하여 이루어질 수 있다.
키워드 가중치 DB(140)는 각각의 키워드에 대한 가중치를 저장하되, 키워드 별로 저장되는 가중치는 서로 다르게 설정될 수 있다.
그리고 키워드 별로 저장되는 가중치는, 검색결과의 빈도수에 따라 검색결과의 빈도수가 많으면 낮게 설정되고, 검색결과의 빈도수가 적으면 높게 설정될 수 있다.
예를 들어, '군부대'와 '배송'이라는 키워드가 있을 때, 검색결과의 빈도수가 적은 '군부대'의 가중치가 검색결과의 빈도수가 많은 '배송'의 가중치보다 높게 설정될 수 있다.
학습 DB(150)는 이전에 사용자로부터 입력받은 질의, 해당 질의에서 추출한 키워드, 해당 키워드로 질의응답 DB(130)에서 검색되어 사용자에게 선택된 응답을 하나의 학습 세트로 형성하여 저장 관리한다.
학습 DB(150)는 도 5에 도시하는 바와 같이 사용자로부터 수신한 질의(a), 해당 질의에서 추출한 키워드(b), 해당 키워드를 이용한 검색결과 중에서 사용자에게 선택된 응답(c), 해당 키워드를 이용한 검색결과 중에서 사용자에게 선택된 응답에 대한 사용자의 선택(클릭) 회수를 카운트하는 카운트 값(d)을 포함하여 이루어질 수 있다.
학습 DB(150)는 사용자의 사용 언어별로 구분되어 복수 개로 구현될 수도 있다.
도 7은 본 발명의 일 실시예에 따른 챗봇을 이용한 질의응답 처리 방법을 설명하기 위한 처리도로, 도 8a 내지 도 9c를 참조하여 설명한다.
우선, 유무선 통신망을 통해 사용자가 인터페이스부(110)를 통해 접속되면, 챗봇 엔진부(120)는 인터페이스부(110)를 통해 사용자에게 사용할 언어를 선택하라는 요청 메시지를 전달하고, 그에 대한 응답으로 사용자로부터 사용 언어를 선택받는다(S10).
이후, 챗봇 엔진부(120)는 상기한 단계 S10에서 선택받은 언어를 사용하여 사용자에게 검색하고자 하는 내용을 입력하라는 질의 요청 메시지를 전달하고, 그에 대한 응답으로 사용자로부터 궁금한 사항을 포함하는 질의 내용을 입력받아 수신한다(S20).
상기한 단계 S20에서 챗봇 엔진부(120)는 사용자에게 대화하듯 자연어 형태로 질의를 요청할 수 있고, 사용자도 대화하듯 자연어 형태로 질의를 입력할 수 있다.
상기한 단계 S10을 통해 사용자로부터 선택받은 사용 언어가 챗봇 엔진부(120)의 사용 언어와 다른 경우, 사용자에게 전달되는 질의 요청 메시지는 번역부(115)를 통해 사용자의 사용 언어로 번역되어 제공될 수 있으며, 그에 대한 응답으로 사용자로부터 입력받은 질의 내용은 번역부(115)를 통해 챗봇 엔진부(120)의 사용 언어로 번역되어 챗봇 엔진부(120)로 제공될 수 있다.
상기한 단계 S20을 통해 사용자로부터 질의를 수신받은 챗봇 엔진부(120)의 키워드 추출부(121)는 사용자로부터 수신한 자연어 형태의 질의를 분석하여 적어도 하나 이상의 키워드를 추출한다(S30).
상기한 단계 S30을 통해 키워드를 추출한 후에는, 검색부(125)가 추출된 키워드로 학습 DB(150)를 검색하고(S40), 검색결과 검색된 응답이 존재하는 지를 확인한다(S50).
상기한 단계 S40에서 검색부(125)가 추출된 키워드로 학습 DB(150)를 검색할 때, 추출된 키워드로 학습 DB(150)를 검색하고, 검색결과 중에서 질의 내용이 사용자로부터 입력받은 질의 내용과 일치하는 질의에 대해서만, 이를 검색결과로 제공할 수 있다.
상기한 단계 S50의 확인결과 도 8a에 도시하는 바와 같이 검색된 응답이 존재하는 경우에는 검색된 응답 결과를 사용자에게 제공하고(S60), 사용자에게 제공된 응답 결과에 사용자가 원하는 질문이 존재하는 지를 확인한다(S70).
상기한 단계 S60에서 사용자의 사용 언어가 챗봇 엔진부(120)의 사용 언어와 다른 경우, 사용자에게 제공되는 응답 결과는 번역부(115)를 통해 사용자의 사용 언어로 번역되어 제공될 수 있다.
상기한 단계 S70에서 사용자에게 제공된 응답 결과에 사용자가 원하는 질문이 존재하는 지에 대한 여부는, 사용자에게 제공된 응답 중에서 어느 하나를 사용자가 선택(클릭)하는 지로 확인할 수 있다. 즉 사용자에게 제공된 응답 결과 중에 사용자가 원하는 질문에 대한 응답이 존재하는 경우에는 사용자가 그 내용을 확인하기 위해 해당 응답을 선택(클릭)하여 확인하고, 사용자에게 제공된 응답 결과 중에 사용자가 원하는 질문에 대한 응답이 존재하지 않는 경우에는, 사용자로부터 되돌아가기(또는 아니오) 등의 결과가 수신될 수 있다.
상기한 단계 S70의 확인결과 사용자에게 제공된 응답 결과에 사용자가 원하는 질문에 대한 응답이 존재하는 경우에는, 즉 사용자에게 제공된 응답 중에서 어느 하나를 사용자가 선택한 경우에는 도 8b에 도시하는 바와 같이 사용자에 의해 선택된 응답에 대응하는 질의 제목과 응답 내용을 사용자에게 제공한다(S80).
상기한 단계 S80에서 사용자의 사용 언어가 챗봇 엔진부(120)의 사용 언어와 다른 경우, 사용자에게 제공되는 질의 제목과 응답 내용은 도 8c에 도시하는 바와 같이 번역부(115)를 통해 사용자의 사용 언어로 번역되어 제공될 수 있다.
그리고 사용자가 응답을 선택함에 따라, 학습 DB(150)는 사용자가 선택한 응답에 대응하는 학습 세트의 클릭 회수를 1증가시켜 학습 DB(150)를 업데이트시킨다(S90).
한편, 상기한 단계 S50의 확인결과 검색된 응답이 존재하지 않거나, 상기한 단계 S70의 확인결과 사용자에게 제공된 응답 결과에 사용자가 원하는 질문이 존재하지 않는 경우에는, 챗봇 엔진부(120)의 가중치 설정부(123)가 키워드 추출부(121)에서 추출된 각각의 키워드에 가중치를 설정한다(S100).
상기한 단계 S100에서 각각의 키워드에 가중치를 설정할 때, 각각의 키워드 별로 서로 다르게 설정되어 있는 가중치에 의거하여 가중치를 설정할 수 있다.
상기한 단계 S100을 통해 각각의 키워드에 가중치를 설정한 후에는, 검색부(125)가 가중치 설정부(123)에서 가중치가 설정된 키워드를 이용하여 질의응답 DB(130)에서 응답을 검색한다(S110).
상기한 단계 S110에서 가중치가 설정된 키워드를 이용하여 질의응답 DB(130)에서 응답을 검색할 때, 검색부(125)는 가중치가 높은 키워드에 우선순위를 두고 질의응답 DB(130)에서 응답을 검색할 수 있다.
상기한 단계 S110을 통해 질의응답 DB(130)에서 응답을 검색한 후에는, 사용자에게 제공될 응답의 수가 기준치 이상인지를 확인한다(S120).
상기한 단계 S120에서 사용자에게 제공될 응답의 수가 기준치 이상인지를 확인할 때, 검색부(125)는 상기한 단계 S110에서 검색된 응답 각각에 대해 각각의 응답에 포함된 키워드의 가중치 합을 산출하고, 산출된 가중치 합이 전체에서 상위 몇%에 해당하는지를 기준으로 정확도를 산출할 수도 있으며, 정확도가 일정 값 이상인 응답에 대해서만 사용자에게 제공할 응답으로 분류할 수 있다.
상기한 단계 S120의 확인결과 사용자에게 제공될 응답의 수가 기준치 이상이 아닌 경우에는, 검색결과 리스트를 사용자에게 제공하고(S130), 사용자에게 제공된 검색결과 리스트 중에 사용자가 원하는 질문에 대한 응답이 존재하는지를 확인한다(S140).
상기한 단계 S130에서 사용자의 사용 언어가 챗봇 엔진부(120)의 사용 언어와 다른 경우, 사용자에게 제공되는 검색결과 리스트는 번역부(115)를 통해 사용자의 사용 언어로 번역되어 제공될 수 있다.
상기한 단계 S140에서 챗봇 엔진부(120)는 사용자에게 제공된 검색결과 리스트 중에서 어느 하나를 사용자가 선택(클릭)하면, 검색결과 리스트 내에 사용자가 원하는 질문에 대한 응답이 존재한다고 판단하고, 사용자로부터 되돌아가기(또는 아니오) 등이 선택되면 검색결과 리스트 내에 사용자가 원하는 질문에 대한 응답이 존재하지 않는다고 판단할 수 있다.
상기한 단계 S140의 확인결과 사용자에게 제공된 검색결과 리스트 중에 사용자가 원하는 질문에 대한 응답이 존재하는 경우에는, 즉 사용자가 검색결과 리스트 중에서 어느 하나를 선택하게 되면, 사용자로부터 선택받은 응답에 대응하는 질의 제목과 응답 내용을 사용자에게 제공한다(S150).
상기한 단계 S150에서 사용자의 사용 언어가 챗봇 엔진부(120)의 사용 언어와 다른 경우, 사용자에게 제공되는 질의 제목과 응답 내용은 번역부(115)를 통해 사용자의 사용 언어로 번역되어 제공될 수 있다.
이후, 학습부(127)는 사용자로부터 선택받은 응답에 대응하는 질의 제목을 상기한 단계S20을 통해 사용자로부터 입력받은 질의 내용 및 상기한 단계 S30을 통해 추출된 키워드와 함께 하나의 학습 세트로 형성하여 학습 DB(150)에 저장한다(S160).
상기한 단계 S160에서 사용자로부터 선택받은 응답에 대응하는 질의 제목, 사용자로부터 입력받은 질의 내용, 추출된 키워드를 하나의 학습 세트로 형성하여 학습 DB(150)에 저장할 때, 사용자로부터 입력받은 질의 내용은 사용자의 사용 언어로 입력받은 질의 내용이 저장되는 것이 바람직하다.
또한, 학습부(127)는 사용자가 검색결과 리스트 중에서 어느 하나를 선택하게 되면, 상기한 단계 S30에서 추출된 키워드에 대응하여 키워드 가중치 DB(14)에 저장되어 있는 가중치를 높일 수 있다.
한편, 상기한 단계 S120의 확인결과 사용자에게 제공될 응답의 수가 기준치 이상이거나, 상기한 단계 S140의 확인결과 사용자에게 제공된 검색결과 리스트 중에 사용자가 원하는 질문에 대한 응답이 존재하지 않는 경우에는, 도 9a에 도시하는 바와 같이 사용자로부터 입력받은 질문의 내용에 기반하여 사용자에게 카테고리 선택을 요청하고, 그에 대한 응답으로 사용자로부터 카테고리를 선택받는다(S170).
그리고 사용자로부터 선택받은 카테고리로 검색 범위를 좁혀 질의응답 DB(130)에서 응답을 재검색한다(S180).
상기한 단계 S180을 통해 검색 범위를 좁혀 질의응답 DB(130)에서 응답을 재검색한 후에는, 상기한 단계 S120으로 진행하여 사용자에게 제공될 응답의 수가 기준치 이상인지를 확인하고, 이후의 과정을 수행한다.
여기서, 챗봇 엔진부(120)는 재검색된 검색결과 리스트를 사용자에게 제공하고, 제공된 검색결과 리스트 중에 사용자가 원하는 검색 내용이 없는 경우에는 도 9b 및 도 9c에 도시하는 바와 같이 사용자의 요청에 따라 카테고리를 다시 설정하여 검색할 수 있다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
110. 인터페이스부, 120. 챗봇 엔진부,
121. 키워드 추출부, 123. 가중치 설정부,
125. 검색부, 127. 학습부,
130. 질의응답 DB, 140. 키워드 가중치 DB
150. 학습 DB

Claims (13)

  1. 사용자로부터 질의를 수신하고, 수신된 질의에 대응하여 검색된 응답을 사용자에게 전달하는 인터페이스부;
    질의와 응답이 매칭되어 저장되는 질의응답 DB;
    이전에 사용자로부터 입력받은 질의에서 추출한 키워드와 상기 키워드로 상기 질의응답 DB에서 검색되어 사용자에게 선택된 응답을 학습 세트로 하여 저장 관리하는 학습 DB; 및
    상기 사용자로부터 수신한 질의를 분석하여 키워드를 추출하고, 추출된 키워드로 상기 학습 DB에서 응답을 검색하여 상기 인터페이스부를 통해 사용자에게 제공하는 챗봇 엔진부;를 포함하는, 챗봇을 이용한 질의응답 처리 장치.
  2. 제1항에 있어서,
    상기 챗봇 엔진부는,
    상기 학습 DB에서 사용자가 원하는 응답이 검색되지 않으면, 추출된 각각의 키워드에 가중치를 설정하고, 가중치가 설정된 키워드를 이용하여 상기 질의응답 DB에서 사용자 질의에 대한 응답을 검색하여 상기 인터페이스부를 통해 사용자에게 제공하는, 챗봇을 이용한 질의응답 처리 장치.
  3. 제1항에 있어서,
    상기 챗봇 엔진부는,
    사용자로부터 수신한 질의를 분석하여 적어도 하나 이상의 키워드를 추출하는 키워드 추출부;
    상기 키워드 추출부에서 추출된 키워드에 가중치를 설정하는 가중치 설정부; 및
    상기 키워드 추출부에서 추출된 키워드로 상기 학습 DB에서 사용자 질의에 대한 응답을 검색하여 사용자에게 제공하고, 상기 학습 DB에서 사용자가 원하는 응답이 검색되지 않으면, 상기 가중치 설정부에서 가중치가 설정된 키워드를 이용하여 상기 질의응답 DB에서 사용자 질의에 대한 응답을 검색하여 사용자에게 제공하는 검색부;를 포함하는, 챗봇을 이용한 질의응답 처리 장치.
  4. 제3항에 있어서,
    상기 챗봇 엔진부는,
    상기 학습 DB에서 검색된 응답을 사용자가 선택하게 되면, 선택된 응답에 대응하는 학습 세트의 클릭 회수를 증가시켜 상기 학습 DB를 업데이트 시키고, 상기 질의응답 DB에서 검색된 응답을 사용자가 선택하게 되면, 상기 추출된 키워드와 사용자에 의해 선택된 응답을 하나의 학습 세트로 하여 상기 학습 DB에 저장하는 학습부;를 더 포함하는, 챗봇을 이용한 질의응답 처리 장치.
  5. 제1항에 있어서,
    키워드 별로 서로 다른 값을 갖는 가중치를 저장하는 키워드 가중치 DB;를 더 포함하며,
    상기 가중치 설정부는,
    상기 키워드 추출부에서 추출된 각각의 키워드에 매칭되어 있는 가중치를 상기 키워드 가중치 DB에서 읽어와 가중치를 설정하는, 챗봇을 이용한 질의응답 처리 장치.
  6. 제1항에 있어서,
    사용자의 사용 언어가 상기 챗봇 엔진부의 사용 언어와 다른 경우, 상기 인터페이스부를 통해 사용자로부터 입력받은 문장을 상기 챗봇 엔진부의 사용 언어로 번역하고, 상기 챗봇 엔진부로부터 수신한 문장을 사용자의 사용 언어로 번역하는 번역부;를 더 포함하는, 챗봇을 이용한 질의응답 처리 장치.
  7. 제1항에 있어서,
    상기 학습 DB는,
    사용자로부터 입력받은 질의, 상기 질의에서 추출한 키워드, 상기 키워드를 이용한 검색결과 중에서 사용자에게 선택된 응답, 상기 사용자에게 선택된 응답에 대한 사용자의 선택 회수를 카운트하는 카운트 값을 포함하여 이루어지는, 챗봇을 이용한 질의응답 처리 장치.
  8. 인터페이스부를 통해 사용자로부터 질의를 수신하는 단계;
    상기 사용자로부터 수신한 질의를 분석하여 키워드를 추출하는 단계; 및
    상기 추출된 키워드로 학습 DB에서 응답을 검색하여 상기 인터페이스부를 통해 사용자에게 제공하는 단계;를 포함하며,
    상기 학습 DB는,
    이전에 사용자로부터 입력받은 질의에서 추출한 키워드와 상기 키워드를 이용하여, 질의와 응답이 매칭되어 저장되는 질의응답 DB에서 검색되어 사용자에게 선택된 응답을 학습 세트로 하여 저장 관리하는 DB인, 챗봇을 이용한 질의응답 처리 방법.
  9. 제8항에 있어서,
    상기 학습 DB에서 사용자가 원하는 응답이 검색되지 않으면, 상기 추출된 각각의 키워드에 가중치를 설정한 후, 가중치가 설정된 키워드를 이용하여 상기 질의응답 DB에서 사용자 질의에 대한 응답을 검색하여 상기 인터페이스부를 통해 사용자에게 제공하는 단계;를 더 포함하는, 챗봇을 이용한 질의응답 처리 방법.
  10. 제8항에 있어서,
    상기 추출된 키워드로 학습 DB에서 응답을 검색하여 상기 인터페이스부를 통해 사용자에게 제공하는 단계는,
    상기 추출된 키워드를 이용하여 학습 DB에서 사용자 질의에 대한 응답을 검색하는 단계; 및
    검색결과 상기 학습 DB에서 검색된 응답이 존재하는 경우에는, 검색된 응답을 사용자에게 제공한 후, 사용자에게 제공된 응답이 선택되면, 선택된 응답에 대응하는 질의 제목과 응답 내용을 사용자에게 제공한 후, 상기 학습 DB에서 상기 선택된 응답에 대응하는 학습 세트의 클릭 회수를 증가시키는 단계;를 포함하는, 챗봇을 이용한 질의응답 처리 방법.
  11. 제8항에 있어서,
    상기 가중치가 설정된 키워드로 질의응답 DB에서 응답을 검색하여 상기 인터페이스부를 통해 사용자에게 제공하는 단계는,
    상기 추출된 각각의 키워드에 가중치를 설정하는 단계;
    상기 가중치가 설정된 키워드를 이용하여 상기 질의응답 DB에서 사용자 질의에 대한 응답을 검색하는 단계;
    상기 질의응답 DB에서 검색된 응답의 수가 기준치 이상인지를 확인하는 단계;
    상기 확인결과 검색된 응답의 수가 기준치 이내인 경우에는, 사용자에게 검색결과를 제공하고, 사용자에게 제공된 검색결과 중에서 어느 하나가 선택되면, 선택된 응답에 대응하는 질의 제목과 응답 내용을 사용자에게 제공한 후, 사용자에게 제공한 응답과 상기 추출된 키워드를 하나의 학습 세트로 하여 상기 학습 DB에 저장하는 단계; 및
    상기 확인결과 검색된 응답의 수가 기준치 이상인 경우에는, 사용자로부터 카테고리를 선택받고, 선택받은 카테고리로 검색 범위를 조정하여 상기 질의응답 DB에서 응답을 재검색하여 상기 인터페이스부를 통해 사용자에게 제공하는 단계;를 포함하는, 챗봇을 이용한 질의응답 처리 방법.
  12. 제11항에 있어서,
    상기 가중치를 설정하는 단계는,
    상기 추출된 각각의 키워드에 매칭되어 있는 가중치를, 키워드 별로 서로 다른 값을 갖는 가중치를 저장하는 키워드 가중치 DB에서 읽어와 가중치를 설정하는 단계인, 챗봇을 이용한 질의응답 처리 방법.
  13. 제11항에 있어서,
    상기 사용자에게 제공한 응답과 상기 추출된 키워드를 하나의 학습 세트로 하여 상기 학습 DB에 저장하는 단계는,
    사용자로부터 입력받은 질의, 상기 질의에서 추출된 키워드, 상기 키워드를 이용한 검색결과 중에서 사용자에게 선택된 응답을 하나의 학습 세트로 하여 상기 학습 DB에 저장하는 단계인, 챗봇을 이용한 질의응답 처리 방법.
KR1020190064241A 2019-05-31 2019-05-31 챗봇을 이용한 질의응답 처리 장치 및 방법 KR102278020B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190064241A KR102278020B1 (ko) 2019-05-31 2019-05-31 챗봇을 이용한 질의응답 처리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190064241A KR102278020B1 (ko) 2019-05-31 2019-05-31 챗봇을 이용한 질의응답 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20200137601A true KR20200137601A (ko) 2020-12-09
KR102278020B1 KR102278020B1 (ko) 2021-07-15

Family

ID=73786728

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190064241A KR102278020B1 (ko) 2019-05-31 2019-05-31 챗봇을 이용한 질의응답 처리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102278020B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102345289B1 (ko) * 2021-02-02 2022-01-03 모바일 엔트로피 주식회사 도시가스 고객상담을 위한 비대면 대화형 서비스 제공 시스템
KR102379051B1 (ko) * 2021-08-18 2022-03-25 주식회사 지인들 시설의 유지보수 플랫폼을 제공하는 서버의 제어 방법, 및 시스템
KR102422948B1 (ko) * 2021-03-18 2022-07-21 주식회사 유스바이오글로벌 아동 발달, 건강 및 육아 상담 챗봇 시스템
KR20220118681A (ko) * 2021-02-19 2022-08-26 (주)아와소프트 시점별로 분석 가능한 챗봇 서비스 제공 시스템 및 그 방법
WO2023163265A1 (ko) * 2022-02-24 2023-08-31 미디어젠 주식회사 Ai 기반의 질의 응답 챗봇을 이용한 언어 학습 시스템

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102498544B1 (ko) 2021-07-22 2023-02-13 주식회사 천재교과서 학습 챗봇을 활용한 학습 유도 방법 및 이를 기록한 기록매체
KR102449349B1 (ko) 2021-07-22 2022-09-30 주식회사 천재교과서 학습 챗봇을 활용한 학습 유도 시스템
KR102510998B1 (ko) 2022-02-11 2023-03-16 주식회사 천재교과서 학습 유도용 챗봇 시스템
KR102640798B1 (ko) 2023-08-25 2024-02-28 망고클라우드 주식회사 기업용 챗봇 서비스 제공 방법 및 장치

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040094236A (ko) * 2003-05-02 2004-11-09 에스케이 텔레콤주식회사 대화형 인터페이스를 이용한 정보제공 시스템 및 방법
KR20180059347A (ko) 2016-11-25 2018-06-04 한국전자통신연구원 대화형 질의응답 장치 및 그 방법
KR101851785B1 (ko) * 2017-03-20 2018-06-07 주식회사 마인드셋 챗봇의 트레이닝 세트 생성 장치 및 방법
KR20190055425A (ko) * 2017-11-15 2019-05-23 (주)페르소나시스템 머신 러닝 기반의 챗봇용 데이터 추가 장치
KR20190058935A (ko) * 2017-11-22 2019-05-30 주식회사 와이즈넛 문서 내 핵심 키워드 추출 시스템 및 방법
US20190163690A1 (en) * 2016-11-10 2019-05-30 Tencent Technology (Shenzhen) Company Limited Keyword extraction method, apparatus and server

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040094236A (ko) * 2003-05-02 2004-11-09 에스케이 텔레콤주식회사 대화형 인터페이스를 이용한 정보제공 시스템 및 방법
US20190163690A1 (en) * 2016-11-10 2019-05-30 Tencent Technology (Shenzhen) Company Limited Keyword extraction method, apparatus and server
KR20180059347A (ko) 2016-11-25 2018-06-04 한국전자통신연구원 대화형 질의응답 장치 및 그 방법
KR101851785B1 (ko) * 2017-03-20 2018-06-07 주식회사 마인드셋 챗봇의 트레이닝 세트 생성 장치 및 방법
KR20190055425A (ko) * 2017-11-15 2019-05-23 (주)페르소나시스템 머신 러닝 기반의 챗봇용 데이터 추가 장치
KR20190058935A (ko) * 2017-11-22 2019-05-30 주식회사 와이즈넛 문서 내 핵심 키워드 추출 시스템 및 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102345289B1 (ko) * 2021-02-02 2022-01-03 모바일 엔트로피 주식회사 도시가스 고객상담을 위한 비대면 대화형 서비스 제공 시스템
KR20220118681A (ko) * 2021-02-19 2022-08-26 (주)아와소프트 시점별로 분석 가능한 챗봇 서비스 제공 시스템 및 그 방법
KR102422948B1 (ko) * 2021-03-18 2022-07-21 주식회사 유스바이오글로벌 아동 발달, 건강 및 육아 상담 챗봇 시스템
KR102379051B1 (ko) * 2021-08-18 2022-03-25 주식회사 지인들 시설의 유지보수 플랫폼을 제공하는 서버의 제어 방법, 및 시스템
KR20230026934A (ko) * 2021-08-18 2023-02-27 주식회사 지인들 영상 통화 중 시설물 정보를 추출하여 제공하는 서버의 제어 방법, 및 시스템
WO2023163265A1 (ko) * 2022-02-24 2023-08-31 미디어젠 주식회사 Ai 기반의 질의 응답 챗봇을 이용한 언어 학습 시스템

Also Published As

Publication number Publication date
KR102278020B1 (ko) 2021-07-15

Similar Documents

Publication Publication Date Title
KR102278020B1 (ko) 챗봇을 이용한 질의응답 처리 장치 및 방법
US11334635B2 (en) Domain specific natural language understanding of customer intent in self-help
US6498921B1 (en) Method and system to answer a natural-language question
CN103970857B (zh) 推荐内容确定系统和方法
US20070078842A1 (en) System and method for responding to a user reference query
CN108920497A (zh) 一种人机交互方法及装置
CN110795542B (zh) 对话方法及相关装置、设备
KR101812222B1 (ko) 로보 어드바이저를 통한 상담 시스템 및 방법
KR20190055425A (ko) 머신 러닝 기반의 챗봇용 데이터 추가 장치
US10846293B1 (en) Factual query pattern learning
US11482223B2 (en) Systems and methods for automatically determining utterances, entities, and intents based on natural language inputs
CN101496003A (zh) 社交网络中用户的兼容性评分
CN103493045A (zh) 对在线问题的自动回答
US11531816B2 (en) Search apparatus based on synonym of words and search method thereof
KR20190086126A (ko) 챗봇을 이용한 매뉴얼 검색 서비스 제공 서버 및 그의 매뉴얼 검색 서비스 제공 방법
CN103593412A (zh) 一种基于树形结构问题的应答方法及系统
US10430522B2 (en) Dynamic suggestions for content translation
JP6388212B2 (ja) タグ付与方法、タグ付与装置、プログラム及び質問回答検索方法
KR101547756B1 (ko) 온라인 대화 문답 완성 시스템 및 방법, 그리고 프로그램이 기록된 컴퓨터에서 판독가능한 기록 매체
JP2020091539A (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP5068358B2 (ja) 回答者抽出装置及びその方法
KR20030040273A (ko) 질문자 답변자 매칭 방법 및 시스템
JP6640519B2 (ja) 情報分析装置及び情報分析方法
KR20170142964A (ko) 로보 어드바이저를 통한 상담 시스템 및 방법
KR100890253B1 (ko) 네트워크상의 휴먼에이전트를 이용한 차세대 지식 획득 및제공 방법과 그 시스템

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right