KR20220115831A - 멀티 챗봇 서비스의 응답 시간 개선을 위한 방법 및 장치 - Google Patents

멀티 챗봇 서비스의 응답 시간 개선을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20220115831A
KR20220115831A KR1020200178126A KR20200178126A KR20220115831A KR 20220115831 A KR20220115831 A KR 20220115831A KR 1020200178126 A KR1020200178126 A KR 1020200178126A KR 20200178126 A KR20200178126 A KR 20200178126A KR 20220115831 A KR20220115831 A KR 20220115831A
Authority
KR
South Korea
Prior art keywords
sets
question
user
cache memory
chatbot
Prior art date
Application number
KR1020200178126A
Other languages
English (en)
Other versions
KR102440893B1 (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 KR1020200178126A priority Critical patent/KR102440893B1/ko
Publication of KR20220115831A publication Critical patent/KR20220115831A/ko
Application granted granted Critical
Publication of KR102440893B1 publication Critical patent/KR102440893B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Communication Control (AREA)

Abstract

멀티 챗봇 서비스의 응답 시기나 개선을 위한 방법 및 장치가 개시된다. 일 실시예에 따른 멀티 챗봇 서비스를 중개하는 중개 장치의 동작 방법은 사용자 단말로부터 사용자의 질문을 수신하는 동작; 캐시 메모리에 저장된 Q&A 세트들에 상기 사용자의 질문과 일치하는 질문이 있는지 확인하는 동작; 확인 결과에 기초하여 상기 Q&A 세트들 중 하나의 Q&A 세트의 응답 또는 챗봇으로부터 전달받은 응답을 상기 사용자 단말로 전송하는 동작; 및 상기 사용자의 질문에 따른 Q&A 세트의 빈도에 기초하여 상기 캐시 메모리에 저장된 Q&A 세트들을 업데이트하는 동작을 포함할 수 있다.

Description

멀티 챗봇 서비스의 응답 시간 개선을 위한 방법 및 장치{METHOD AND APPARATUS FOR IMPROVING RESPONSE TIME IN MULTI-LAYERED CHATBOT SERVICES}
아래 개시는 멀티 챗봇 서비스의 응답 시간 개선을 위한 방법 및 장치에 관한 것이다.
인공지능(AI) 및 SNS(social network service)의 발달로 기존 메신저를 통해 대화하듯이 정보를 획득할 수 있는 챗봇 서비스가 활발히 도입되고 있다.
챗봇은 사용자가 기존에 사용하던 메신저를 통해 채팅하듯이 질문을 입력하면, 인공지능이 질문 내용을 분석하여 적절한 해답을 주는 대화형 메신저이다. 최근 국내외 유수 기업들은 고객지원 서비스에 챗봇을 도입해 고객 응대에 필요한 인력을 줄임과 동시에 24시간 빠르게 응답을 처리하여 고객지원 서비스의 품질 향상을 도모하고 있다. 이러한 챗봇 서비스는 공공 정보 제공, 음식 주문, 지도 정보 등 다양한 영역에 사용될 수 있다.
한편, 챗봇은 각각의 제공되는 서비스에 따라 구별되어 생성되고, 각각의 챗봇은 해당 서비스와 관련된 질의에 대한 응답만을 제공할 수 있다. 챗봇의 보다 효율적인 활용을 위해 통합적으로 복수의 서비스에 대하여 응답을 제공하는 챗봇을 구현하는 것이 요구될 수 있다. 이러한 채봇의 구현은 대용량의 저장 공간 및 네트워크 리소스가 요구되는 바, 실제적인 구현은 어려움이 뒤따를 수 있다.
실시예들은 아래 개시는 멀티 챗봇 서비스의 응답 시간 개선을 개선하기 위한 캐시 메커니즘 기술을 제공할 수 있다.
다만, 기술적 과제는 상술한 기술적 과제들로 한정되는 것은 아니며, 또 다른 기술적 과제들이 존재할 수 있다.
일 실시예에 따른 멀티 챗봇 서비스를 중개하는 중개 장치의 동작 방법은 사용자 단말로부터 사용자의 질문을 수신하는 동작; 캐시 메모리에 저장된 Q&A 세트들에 상기 사용자의 질문과 일치하는 질문이 있는지 확인하는 동작; 확인 결과에 기초하여 상기 Q&A 세트들 중 하나의 Q&A 세트의 응답 또는 챗봇으로부터 전달받은 응답을 상기 사용자 단말로 전송하는 동작; 및 상기 사용자의 질문에 따른 Q&A 세트의 빈도에 기초하여 상기 캐시 메모리에 저장된 Q&A 세트들을 업데이트하는 동작을 포함할 수 있다.
상기 전송하는 동작은 상기 일치하는 질문이 있는 경우, 상기 Q&A 세트들 중에서 상기 일치하는 질문의 Q&A 세트의 응답을 상기 사용자 단말로 전송하는 동작; 및 상기 일치하는 질문이 없는 경우, 복수의 챗봇들 중에서 상기 사용자의 질문의 내용에 따라 선택된 챗봇으로부터 상기 사용자 질문에 대한 응답을 수신하는 동작을 포함할 수 있다.
상기 캐시 메모리에 저장된 Q&A 세트들은 Q&A 세트 간에 서로에 대한 관련성을 나타내는 관련성 그래프에 기초하여 프리페칭된 것일 수 있다.
상기 관련성 그래프에서 노드는 Q&A 세트이고, 에지는 키워드의 수를 기반으로 하는 Q&A 세트 간의 점수인 것일 수 있다.
상기 업데이트하는 동작은 상기 캐시 메모리에 저장된 Q&A 세트들 중에서 하나 이상의 Q&A 세트를 삭제하거나 교체하는 동작을 포함할 수 있다.
상기 방법은 데이터베이스에 저장된 모든 Q&A 세트들의 키워드들을 추출하는 동작; 상기 키워드들에 기초하여 상기 모든 Q&A 세트들에서 서로에 대한 관련성을 나타내는 Q&A 세트 간의 관련성 그래프를 작성하는 동작; 및 상기 관련성 그래프에 기초하여 상기 캐시 메모리에 저장된 Q&A 세트들을 상기 데이터베이스로부터 프리페칭하는 동작을 더 포함할 수 있다.
일 실시예에 따른 멀티 챗봇 서비스를 중개하는 중개 장치는 Q&A 세트들을 저장하는 캐시 메모리; 및 사용자 단말로부터 사용자의 질문을 수신하고, 상기 캐시 메모리에 저장된 Q&A 세트들에 상기 사용자의 질문과 일치하는 질문이 있는지 확인하고, 확인 결과에 기초하여 상기 Q&A 세트들 중 하나의 Q&A 세트의 응답 또는 챗봇으로부터 전달받은 응답을 상기 사용자 단말로 전송하고, 상기 사용자의 질문에 따른 Q&A 세트의 빈도에 기초하여 상기 캐시 메모리에 저장된 Q&A 세트들을 업데이트하는 프로세서를 포함할 수 있다.
상기 프로세서는 상기 일치하는 질문이 있는 경우, 상기 Q&A 세트들 중에서 상기 일치하는 질문의 Q&A 세트의 응답을 상기 사용자 단말로 전송하고, 상기 일치하는 질문이 없는 경우, 복수의 챗봇들 중에서 상기 사용자의 질문의 내용에 따라 선택된 챗봇으로부터 상기 사용자 질문에 대한 응답을 수신할 수 있다.
상기 캐시 메모리에 저장된 Q&A 세트들은 Q&A 세트 간에 서로에 대한 관련성을 나타내는 관련성 그래프에 기초하여 프리페칭된 것일 수 있다.
상기 관련성 그래프에서 노드는 Q&A 세트이고, 에지는 키워드의 수를 기반으로 하는 Q&A 세트 간의 점수인 것일 수 있다.
상기 프로세서는 상기 캐시 메모리에 저장된 Q&A 세트들 중에서 하나 이상의 Q&A 세트를 삭제하거나 교체할 수 있다.
상기 프로세서는 데이터베이스에 저장된 모든 Q&A 세트들의 키워드들을 추출하고, 상기 키워드들에 기초하여 상기 모든 Q&A 세트들에서 서로에 대한 관련성을 나타내는 Q&A 세트 간의 관련성 그래프를 작성하고, 상기 관련성 그래프에 기초하여 상기 캐시 메모리에 저장된 Q&A 세트들을 상기 데이터베이스로부터 프리페칭할 수 있다.
도 1은 멀티 챗봇 시스템의 프로세스를 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 멀티 챗봇 시스템의 일 예를 나타낸다.
도 3은 도 2의 멀티 챗봇 시스템의 계층 구조를 나타낸다.
도 4는 중개 장치의 캐시 메커니즘의 아키텍처의 일 예를 나타낸다.
도 5는 Q&A 관련성 그래프의 일 예를 나타낸다.
도 6은 Q&A 세트 빈도 그래프의 일 예를 나타낸다.
도 7은 캐시 메커니즘의 알고리즘의 일 예를 나타낸다.
도 8은 중개 장치의 동작을 설명하기 위한 플로우차트를 나타낸다.
도 9는 중개 장치의 일 예를 나타내는 개략적인 블록도이다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 멀티 챗봇 시스템의 프로세스를 설명하기 위한 도면이다.
멀티 챗봇 시스템은 멀티 챗봇 서비스를 제공할 수 있다. 챗봇 기술은 대화형 플랫폼을 제공하기 위해 널리 사용되고 있다. 챗봇은 제품 및 소프트웨어 사용자에게 더 나은 서비스를 제공하기 위해 인간과 소통하는 프로그램일 수 있다. 챗봇은 온라인 비디오 튜터링에 많이 활용되고 있다. 온라인 비디오 튜터링에서, 사용자의 질문에 대한 즉각적인 피드백을 얻기 위한 도우미로 멀티 챗봇이 사용될 수 있다.
멀티 챗봇 시스템은 챗봇과의 대화에서 대기 시간을 가져올 수 있는 복잡한 시스템 프로세스를 포함할 수 있다. 멀티 챗봇 시스템의 시스템 프로세스는 다음과 같다.
1) 사용자로부터 질문(예: 쿼리) 받기
2) 브로커(예: 중개 장치)에게 보내기
3) 브로커는 사용자의 질문에 대한 적절한 챗봇 찾기(예: 선택)
4) 선택한 챗봇에 질문 보내기
5) 선택한 챗봇이 답변을 브로커에게 보내기
6) 브로커가 사용자에게 답변을 보내기
챗봇과의 대화 시간은 사용자의 행동과 챗봇의 반응 사이의 복잡한 프로세스로 인해 지연 시간이 발생하며, 멀티 챗봇 서비스 사용에는 프로세스가 복잡하고 막대한 데이터 수집이 발생할 수 있다.
도 2는 일 실시예에 따른 멀티 챗봇 시스템의 일 예를 나타내고, 도 3은 도 2의 멀티 챗봇 시스템의 계층 구조를 나타낸다.
실시예들에 따르면, 멀티 챗봇 시스템(10)은 사용자 단말(100), 중개 장치(200)(예: 엣지 서버), 제1 클라우드 서버(300), 및 제2 클라우드 서버(400)를 포함할 수 있다. 멀티 챗봇 시스템(10)은 사용자 단말(100)의 단말(예: 제1 레이어), 중개 장치(100)의 에지(또는 캐시)(예: 제2 레이어), 및 클라우드 서버(300, 400)의 서버(예: 제3 레이어)의 세 계층으로 나뉠 수 있다.
멀티 챗봇 시스템(10)의 계층 분할은 비디오 튜터링 시스템에서 캐싱 메커니즘을 사용하기 때문일 수 있다. 멀티 챗봇 시스템(10)은 시스템 프로세스를 용이하게하기 위해 제2 레이어에 대해 캐시 메커니즘을 제공할 수 있다. 멀티 챗봇 시스템(10)은 멀티 챗봇 서비스의 응답 시간을 개선하기 위해 시스템의 계층을 나누고, 대화 기록(conversation history) 및 Q&A 세트의 관련성 기반의 캐시 메커니즘을 제2 레이어인 중개 장치(100)의 에지에서 사용하게 할 수 있다. 캐시 메커니즘은 중개 장치(200)에 구현되어 수행될 수 있다. 캐시 메커니즘은 TextRank 알고리즘을 사용하여 관련 Q&A 세트를 찾아 중개 장치(200)의 캐시 메모리에 캐시할 수 있다. 캐시 메커니즘은 시스템 프로세스를 줄이고 응답 시간을 단축할 수 있다. 중개 장치(200)는 캐시 메커니즘을 통해 더 빠른 응답과 쉬운 프로세스를 갖을 수 있다.
제1 클라우드 서버(300)는 복수의 챗봇들(310)을 포함할 수 있다. 복수의 챗봇들(310)은 하나의 서버에 존재할 수 있지만, 이에 한정되는 것은 아니며, 복수의 서버에 산재해 존재할 수 있다. 딥러닝 챗봇(410)은 제2 클라우드 서버(400)(예: 인공지능 클라우드 서버)와 같은 딥러닝에 특화된 서버에 포함되어 수행될 수 있다. 복수의 챗봇들(310) 및 딥러닝 챗봇(410)은 하나의 클라우드 서버(예: 제1 클라우드 서버(300) 또는 제2 클라우드 서버(400)) 상에 존재하여 수행될 수도 있다.
사용자 단말(100)은 클라이언트 프로그램(client program)인 챗봇 인터페이스(예: 비디오 튜터링 어시스턴트 모듈)를 포함할 수 있다. 챗봇 인터페이스는 사용자 단말(100)과 멀티 챗봇 시스템(10)의 다른 구성(예: 중개 장치(200)) 미들웨어 역할을 수행하며, 사용자와의 대화(예: 사용자 단말(100)과 챗봇(310, 410) 간의 주고받는 대화)를 관리할 수 있다. 사용자 단말(100)은 사용자 단말(100)에 설치된 챗봇 인터페이스를 통해 중개 장치(200)에 접속할 수 있다.
사용자 단말(100)은 PC(Personal Computer), 데이터 서버, 또는 휴대용 장치로 구현될 수 있다. 휴대용 전자 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, 모바일 인터넷 디바이스(mobile internet device(MID)), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), e-북(e-book), 스마트 디바이스(smart device)으로 구현될 수 있다. 이때, 스마트 디바이스는 스마트 워치(smart watch) 또는 스마트 밴드(smart band)로 구현될 수 있다.
챗봇(310, 410)은 사용자의 질문(예: 질의, 쿼리)에 대한 질문 데이터를 분석하여 질문에 적합한 응답을 제공할 수 있다. 챗봇(310, 410)은 질문과 질문에 대응하는 응답 쌍인 Q&A 세트를 데이터베이스(DB)에 저장하고, 사용자(예: 사용자 단말(100))로부터 질문을 수신하는 경우마다 데이터베이스(DB)에서 질문에 대응되는 Q&A 세트를 검색하여 검색된 Q&A 세트로부터 응답을 사용자 단말(100)에게 제공하는 것이다. 딥러닝 챗봇(410)은 모든 챗봇(310)이 사용자의 질문에 응답할 수 없을 때 사용되는 딥러닝 기반의 챗봇일 수 있다. 각 챗봇(310)은 모든 주제에 대해 응답을 제공할 수도 있지만, 대응되는 주제에 대한 질의에만 응답을 제공할 수 있도록 주제별로 존재할 수 있다.
중개 장치(200)는 사용자 단말(100)와 복수의 챗봇들(310) 사이의 중개 역할을 수행할 수 있다. 중개 장치(200)는 사용자 단말(100)의 사용자 질문의 내용에 따라 복수의 챗봇들(310) 중 하나 이상의 챗봇(예: 질문에 가장 적절한 챗봇)을 선택하고, 선택된 챗봇에 질문을 제공할 수 있다. 중개 장치(200)는 선택된 챗봇으로부터 질문에 대한 응답을 수신하고 수신된 응답을 사용자에게 제공할 수 있다. 중개 장치(200)는 선택된 챗봇으로부터 질문에 대한 응답을 수신하지 못하는 경우에는 딥러닝 챗봇(330)으로부터 질문에 대한 응답을 수신하고 수신된 응답을 사용자 단말(100)에게 제공할 수 있다.
또한, 중개 장치(200)는 캐시 메커니즘을 통해 대화 기록(conversation history) 내 빈도(frequency)와 관련성(relevancy)에 기초하여 사용자의 질문과 관련된 Q&A 세트들(예: 챗봇에 자주 묻는 Q&A 세트들)을 미리 캐싱(예: 프리페칭)하고, 사용자와의 대화에서 Q&A 세트들을 사용하여 응답 시간을 개선할 수 있다. 예를 들어, 중개 장치(200)는 사용자의 질문을 수신하는 경우, 사용자의 질문을 복수의 챗봇들(310) 중 하나 이상의 챗봇에게 전달하기 전에, 캐시 메모리에 캐싱된 관련된 Q&A 세트들에 기초하여 사용자의 질문에 대한 응답을 사용자 단말(100)에게 제공할 수 있다. 중개 장치(200)는 캐시 메모리에 캐싱된 관련된 Q&A 세트들로부터 사용자의 질문에 대한 응답을 제공할 수 없을 때 사용자의 질문을 복수의 챗봇들(310) 중 하나 이상의 챗봇에게 전달하여 하나 이상의 챗봇 또는 딥러닝 챗봇으로부터 질문에 대한 응답을 수신하고 수신된 응답을 사용자 단말(100)에게 제공할 수 있다.
실시예들에 따른, 캐시 메커니즘은 높은 관련성과 빈도로 Q&A 세트를 프리페치하여 중개 장치(200)의 프로세스를 가볍게 하는데 도움을 줄 수 있다. 캐시 메커니즘은 빈도(frequency)를 나타내는 대화 기록(conversation history)과 Q&A 세트들 간의 관련성을 나타내는 키워드 추출(keyword extraction)을 사용하여 캐시의 적중률(hit ratio)을 최대화하는 것일 수 있다. 캐시의 적중률은 다음 수학식과 같을 수 있다.
[수학식 1]
Figure pat00001
캐시 메커니즘의 적중률을 최대화하기 위해서, 캐시 메커니즘은 사용자의 질문과 가장 관련성이 높은 Q&A 세트들을 선택할 수 있다.
[수학식 2]
Figure pat00002
여기서, i는 현재 Q(질문)의 수, j는 관련 Q&A 세트의 수, RQ는 관련 Q&A 세트를 의미할 수 있다. 그런 다음, 캐시 메커니즘은 빈도가 높은(예: 가장 자주 묻는) Q&A 세트를 최종 선택하여 캐시 메모리에 캐싱할 수 있다.
[수학식 3]
Figure pat00003
여기서, i는 현재 질문된 Q(질문)의 수, j는 관련 질문의 수, FrQ는 캐시 목표로 선택되는 관련 Q & A 세트로부터 선택한 관련 질문의 빈도일 수 있다
도 4는 중개 장치의 캐시 메커니즘의 아키텍처의 일 예를 나타내고, 도 5는 Q&A 관련성 그래프의 일 예를 나타낸다.
기본적으로 CPU에서 캐시는 바이너리코드의 수행에 최적화되어 있다. 이 최적화는 바이너리코드의 수행이 참조 지역성(reference of locality)에 강하다는 측면에 근거한다. 코드는 주소를 갖고 있어 코드 수행이 지역성을 띄고 있다. 이러한 이유로 근처에 있는 코드들을 캐싱을 하면 적중율이 높아진다.
챗봇(310, 410)의 경우는 바이너리 코드 수행과는 관련이 없다. Q&A 세트가 집합을 이루고 있고, Q&A 세트들이 주소를 갖고 순서적으로 호출되는 것도 아니기 때문에 지역성을 갖지 않는다. 실시예에 따른, 캐시 메커니즘(500)은 Q&A 세트를 캐싱하기 위해 지역성을 대신할 정보로 Q&A 세트 간의 관련성과 대화 내역에 기반하는 Q&A 세트의 빈도(예: 사용 빈도, 발생 빈도, 호출 빈도)을 사용할 수 있다.
캐시 메커니즘(500)은 응답 모듈(510), 키워드 추출 모듈(530), 세트 추출 모듈(550), 및 캐시 메모리 관리자(570)을 포함할 수 있다. 캐시 메커니즘(500)은 챗봇(310, 410)에서 자주 묻는 Q&A 세트들을 중개 장치(200)의 캐시 메모리로 프리페칭하여 사용자가 요청할 때 사용하는 것일 수 있다. 이러한 캐시 메커니즘(500)은 중개 장치(200)의 응답 시간을 개선하고 시스템 프로세스를 용이하게 할 수 있는 것이다.
응답 모듈(510)은 사용자의 질문(예: 쿼리)에 응답하여 캐시 메모리에 저장된 Q&A 세트들로부터 일치하는 질문이 있는지 확인할 수 있다. 응답 모듈(510)은 일치하는 질문이 있는 경우, 일치하는 질문의 Q&A 세트의 응답을 사용자(예: 사용자 단말(100))에게 전송할 수 있다. 응답 모듈(510)은 일치하는 질문이 없는 경우, 사용자의 질문을 복수의 챗봇들(310) 중 하나 이상의 챗봇에게 전달하여 하나 이상의 챗봇 또는 딥러닝 챗봇으로부터 질문에 대한 응답을 수신하고 수신된 응답을 사용자 단말(100)에게 제공할 수 있다. 응답 모듈(510)은 중개 장치(300)의 캐시 메모리 역할을 하며 응답 시간을 줄이는 것이 주요 목표이다.
키워드 추출 모듈(530)은 TextRank 알고리즘을 사용하여 모든 Q&A 세트의 상위 키워드(top keyword)를 추출할 수 있다. 표 1은 컴퓨터와 AI에 대한 Q&A 세트에서 TextRank 알고리즘에 의한 키워드 추출의 상위 키워드 예를 나타낸다.
[표 1]
Figure pat00004
세트 추출 모듈(550)은 키워드 추출 모듈(530)에서 추출한 키워드들에 기초하여 모든 Q&A 세트에서 서로에 대한 관련성을 나타내는 Q&A 세트 간의 관련성 그래프(relevancy graph)를 작성할 수 있다. 관련성 그래프의 노드는 Q&A 세트이고 에지(edge)는 키워드의 수를 기반으로 하는 서로 관련성 Q&A 세트의 점수(score)일 수 있다. 키워드는 Q&A 세트 간의 관련성을 계산하는데 이용될 수 있다. 관련성 그래프를 작성하는 동작에서 키워드가 같은 Q&A 세트를 서로 관련이 있다고 할 수 있다.
도 5는 세트 추출 모듈(550)에 의해서 작성된 Q&A 관련성 그래프의 일 예를 보여주며, 그래프의 의미는 다음과 같을 수 있다.
(1) Q1A1 세트는 키워드로 "컴퓨터"를 포함하고, 관련 질문 목록(예: RelQs = [Q2A2, Q3A3, Q5A5])의 질문과 관련이 있을 수 있다.
(2) Q2A2 세트는 "컴퓨터, 프로그램, 소프트웨어"와 같은 키워드를 포함할 수 있다. 이 키워드는 이 세트를 다음 질문(예: RelQs = [Q1A1, Q3A3, Q4A4, Q5A5])과 관련이 있도록 할 수 있다.
(3) Q3A3 세트는 "컴퓨터 및 인터넷"와 같은 키워드를 포함하고, 다음 질문(예: RelQs = [Q1A1, Q2A2, Q5A5])과 관련이 있을 수 있다.
(4) Q4A4 세트는 "디버거, 소프트웨어 및 프로그램"와 같은 키워드를 포함하고, 다음 질문(예: RelQs = [Q2A2, Q5A5])과 관련이 있을 수 있다.
(5) Q5A5 세트는 "소프트웨어, 컴퓨터 및 프로그램"와 같은 키워드를 포함하고, 다음 질문(예: RelQs = [Q1A1, Q2A2, Q3A3, Q4A4])과 관련이 있을 수 있다.
캐시 메모리 관리자(570)는 세트 추출 모듈(550)에 추출된 Q&A 세트들을 캐시 메모리에 우선 저장할 수 있다. 캐시 메모리 관리자(570)는 챗봇(310, 410)이 실행되는 동안에 계속해서 사용자 단말(100)로부터 수신되는 사용자의 질문의 빈도 정보를 축적할 수 있다. 빈도 정보는 사용자의 질문에 따라 발생(예: 호출, 사용))되는 응답 쌍인 Q&A 세트의 빈도를 포함할 수 있다. 캐시 메모리 관리자(570)는 캐시 메모리에 저장된 Q&A 세트들을 관리(예: Q&A 세트의 교체 및 삭제)할 수 있다.
Q&A 세트의 빈도는 멀티 챗봇 서비스에 따른 사용자 단말(100)과의 대화 내역에 기초할 수 있다. 캐시 메모리 관리자(570)는 대화 내역에 기초하여 해당 질문(예: 해당 Q&A 세트) 이후 다른 질문(예: 다른 Q&A 세트)이 발생하는 빈도를 나타내는 Q&A 세트 빈도 표 및/또는 그래프를 작성할 수 있다. 캐시 메모리 관리자(570)에 의해 작성되는 Q&A 세트 빈도 표 및/또는 그래프는 모든 Q&A 세트에 대한 것일 수 있다. 표2는 Q&A 세트 빈도 표의 일 예를 나타낼 수 있다.
[표 2]
Figure pat00005
표 2는 Q&A 데이터 세트에서 각 질문이 다른 질문을 호출한 횟수를 보여준다. 일 예로, Q1이 호출된 이후에, [Q3]은 각각 5번 호출되고, [Q4]는 3번 호출되고, [Q2]는 한 번 호출되고, [Q1]은 전혀 (그 자체로) 요청하지 않았다. 또 다른 예로, Q5이 호출된 이후에, [Q2]는 8번 호출되고, [Q1]은 3번 호출되고, [Q4]는 2번 호출되고, [Q3]는 요청되지 않았다. Q&A 세트 빈도 표 및/또는 그래프는 새로운 질문이 있을 때마다 업데이트될 수 있다. 이 프로세스에는 다음 수학식이 적용될 수 있다.
[수학식 4]
Figure pat00006
여기서, Qi는 현재 질문(current question)이고, Qj는 이전 질문(previous question)이고, F(i, j)는 이전 질문 바로 뒤에 현재 질문의 발생 수를 의미할 수 있다.
도 6은 Q&A 세트 빈도 그래프의 일 예로, 표 2를 그래프로 나타낸 것일 수 있다. 화살표 "-->"는 해당 질문 이후에 특정 질문이 몇 번 호출되었는지 보여준다. 예를 들어, Q5 이후에 Q1 가 3번 호출되었고, Q2가 8 번 호출되었고, Q4가 2 번 호출된 것이다.
캐시 메모리 관리자(570)는 Q&A 세트 빈도 표 및/또는 그래프에 기초하여 캐시 메모리에 저장된 Q&A 세트들에서 Q&A 세트를 교체하거나 삭제할 수 있다.
캐시 메커니즘(500)에서, Q&A 세트의 캐싱 동작은 Q&A 세트 간의 관련성에 기초하여 수행되고, 캐시 메모리에서 Q&A 세트의 관리(예: 삭제 또는 교체) 동작은 Q&A 세트의 빈도에 따라 수행되는 것일 수 있다.
도 7은 캐시 메커니즘의 알고리즘의 일 예를 나타낸다.
캐시 메커니즘(500)의 알고리즘의 입력은 사용자의 질문(Qi라고 함)일 수 있다. 관련 Q&A 세트를 찾기 위해 키워드 기반 관련성 그래프(RelQ)가 사용되며, Q&A 세트는 RelQsi에 저장될 수 있다. Q&A 세트는 관련성 및 빈도에 따라 캐시되므로 대화 내역을 기반으로 관련 Q&A 세트 (FreqQsi)의 빈도를 가져와야 한다. 즉, 빈도 그래프(FreqQ)에는 Qi 이후 각 관련 질문이 몇 번이나 질문되었는지에 대한 정보가 있다. 빈도는 알고리즘이 관련 질문을 역순으로 정렬하여 캐시해야 하는 상위 Q&A 세트를 얻는 데 도움이 될 수 있다. 이미 캐시된 Q&A 세트(CQ)에서도 마찬가지일 수 있다. 알고리즘은 FreqQ에서 Qi 이후에 이미 캐시된 Q&A 세트(FreqCQsi)의 빈도를 가져와 FreqQsi와 통합할 수 있다. 그런 다음 Q&A 세트의 상위 수(크기) 만 캐시될 수 있다.
도 8은 중개 장치의 동작을 설명하기 위한 플로우차트를 나타낸다.
이 플로우 차트는 중개 장치(200)가 캐시 메모리에서 사용자의 질문에 대한 응답을 확인하는 동작과 캐시 업데이트 동작을 나타낸다. 사용자 질문에 대한 응답은 중개 장치(200)로부터 직접 또는 챗봇(310, 410)으로부터 제공될 수 있다. 사용자 질문에 대한 응답이 중개 장치(200)의 캐시 메모리에 저장되어 있으면, 중개 장치(200)는 직접 사용자 질문에 대한 응답을 사용자에게 제공하고, 사용자 질문이 캐시 메모리에 없다면 사용자 질문을 챗봇(310)으로 전송하여 챗봇(310, 410)으로부터 응답을 수신함으로써 사용자에게 응답을 제공할 수 있다. 중개 장치(200)는 사용자에게 응답을 보낸 후 캐시 메모리를 업데이트할 수 있다.
중개 장치(200)는 캐시 메커니즘(500)의 적중률을 높이기 위해 모든 새 질문을 Q&A 세트 빈도 표 및/또는 그래프의 업데이트에 사용할 수 있다.
도 9는 중개 장치의 일 예를 나타내는 개략적인 블록도이다.
중개 장치(200)는 메모리(210), 프로세서(230), 및 캐시 메모리를 포함할 수 있다. 캐시 메모리는 프로세서(230) 내에 구현될 수도 있다.
메모리(210)는 프로세서(230)에 의해 실행가능한 인스트럭션들(예: 캐시 메커니즘(500), 프로그램)을 저장할 수 있다. 예를 들어, 인스트럭션들은 프로세서(230)의 동작 및/또는 프로세서(230)의 각 구성의 동작을 실행하기 위한 인스트럭션들을 포함할 수 있다. 캐시 메커니즘(500)은 메모리(210)에 저장될 수 있지만, 반드시 이에 한정되는 것은 아니며, 프로세서(230)에 임베디드될 수도 있다.
캐시 메모리는 도 2 내지 도 8을 참조하여 설명된 Q&A 세트들을 저장할 수 있다. Q&A 세트들이 프리페칭되어 캐시 메모리에 저장될 수 있따.
프로세서(230)는 메모리(210)에 저장된 데이터를 처리할 수 있다. 프로세서(230)는 메모리(210)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(230)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.
프로세서(230)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.
예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.
프로세서(230)에 의해 수행되는 동작은 도 2 내지 도 8을 참조하여 설명한 중개 장치(200)의 동작과 실질적으로 동일할 수 있다. 이에, 상세한 설명은 생략하도록 한다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 저장할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (13)

  1. 멀티 챗봇 서비스를 중개하는 중개 장치의 동작 방법에 있어서,
    사용자 단말로부터 사용자의 질문을 수신하는 동작;
    캐시 메모리에 저장된 Q&A 세트들에 상기 사용자의 질문과 일치하는 질문이 있는지 확인하는 동작;
    확인 결과에 기초하여 상기 Q&A 세트들 중 하나의 Q&A 세트의 응답 또는 챗봇으로부터 전달받은 응답을 상기 사용자 단말로 전송하는 동작; 및
    상기 사용자의 질문에 따른 Q&A 세트의 빈도에 기초하여 상기 캐시 메모리에 저장된 Q&A 세트들을 업데이트하는 동작
    을 포함하는, 방법.
  2. 제1항에 있어서,
    상기 전송하는 동작은,
    상기 일치하는 질문이 있는 경우, 상기 Q&A 세트들 중에서 상기 일치하는 질문의 Q&A 세트의 응답을 상기 사용자 단말로 전송하는 동작; 및
    상기 일치하는 질문이 없는 경우, 복수의 챗봇들 중에서 상기 사용자의 질문의 내용에 따라 선택된 챗봇으로부터 상기 사용자 질문에 대한 응답을 수신하는 동작
    을 포함하는, 방법
  3. 제1항에 있어서,
    상기 캐시 메모리에 저장된 Q&A 세트들은 Q&A 세트 간에 서로에 대한 관련성을 나타내는 관련성 그래프에 기초하여 프리페칭된 것인, 방법.
  4. 제3항에 있어서,
    상기 관련성 그래프에서,
    노드는 Q&A 세트이고, 에지는 키워드의 수를 기반으로 하는 Q&A 세트 간의 점수인 것인, 방법.
  5. 제1항에 있어서,
    상기 업데이트하는 동작은,
    상기 캐시 메모리에 저장된 Q&A 세트들 중에서 하나 이상의 Q&A 세트를 삭제하거나 교체하는 동작
    을 포함하는, 방법.
  6. 제1항에 있어서,
    데이터베이스에 저장된 모든 Q&A 세트들의 키워드들을 추출하는 동작;
    상기 키워드들에 기초하여 상기 모든 Q&A 세트들에서 서로에 대한 관련성을 나타내는 Q&A 세트 간의 관련성 그래프를 작성하는 동작; 및
    상기 관련성 그래프에 기초하여 상기 캐시 메모리에 저장된 Q&A 세트들을 상기 데이터베이스로부터 프리페칭하는 동작
    을 더 포함하는, 방법.
  7. 하드웨어와 결합되어 제1항 내지 제6항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
  8. 멀티 챗봇 서비스를 중개하는 중개 장치에 있어서,
    Q&A 세트들을 저장하는 캐시 메모리; 및
    사용자 단말로부터 사용자의 질문을 수신하고, 상기 캐시 메모리에 저장된 Q&A 세트들에 상기 사용자의 질문과 일치하는 질문이 있는지 확인하고, 확인 결과에 기초하여 상기 Q&A 세트들 중 하나의 Q&A 세트의 응답 또는 챗봇으로부터 전달받은 응답을 상기 사용자 단말로 전송하고, 상기 사용자의 질문에 따른 Q&A 세트의 빈도에 기초하여 상기 캐시 메모리에 저장된 Q&A 세트들을 업데이트하는 프로세서
    를 포함하는, 중개 장치.
  9. 제8항에 있어서,
    상기 프로세서는,
    상기 일치하는 질문이 있는 경우, 상기 Q&A 세트들 중에서 상기 일치하는 질문의 Q&A 세트의 응답을 상기 사용자 단말로 전송하고,
    상기 일치하는 질문이 없는 경우, 복수의 챗봇들 중에서 상기 사용자의 질문의 내용에 따라 선택된 챗봇으로부터 상기 사용자 질문에 대한 응답을 수신하는, 중개 장치.
  10. 제8항에 있어서,
    상기 캐시 메모리에 저장된 Q&A 세트들은 Q&A 세트 간에 서로에 대한 관련성을 나타내는 관련성 그래프에 기초하여 프리페칭된 것인, 중개 장치.
  11. 제10항에 있어서,
    상기 관련성 그래프에서,
    노드는 Q&A 세트이고, 에지는 키워드의 수를 기반으로 하는 Q&A 세트 간의 점수인 것인, 중개 장치.
  12. 제8항에 있어서,
    상기 프로세서는,
    상기 캐시 메모리에 저장된 Q&A 세트들 중에서 하나 이상의 Q&A 세트를 삭제하거나 교체하는, 중개 장치.
  13. 제8항에 있어서,
    상기 프로세서는,
    데이터베이스에 저장된 모든 Q&A 세트들의 키워드들을 추출하고, 상기 키워드들에 기초하여 상기 모든 Q&A 세트들에서 서로에 대한 관련성을 나타내는 Q&A 세트 간의 관련성 그래프를 작성하고, 상기 관련성 그래프에 기초하여 상기 캐시 메모리에 저장된 Q&A 세트들을 상기 데이터베이스로부터 프리페칭하는, 중개 장치.
KR1020200178126A 2020-12-18 2020-12-18 멀티 챗봇 서비스의 응답 시간 개선을 위한 방법 및 장치 KR102440893B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200178126A KR102440893B1 (ko) 2020-12-18 2020-12-18 멀티 챗봇 서비스의 응답 시간 개선을 위한 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200178126A KR102440893B1 (ko) 2020-12-18 2020-12-18 멀티 챗봇 서비스의 응답 시간 개선을 위한 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20220115831A true KR20220115831A (ko) 2022-08-19
KR102440893B1 KR102440893B1 (ko) 2022-09-06

Family

ID=83113593

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200178126A KR102440893B1 (ko) 2020-12-18 2020-12-18 멀티 챗봇 서비스의 응답 시간 개선을 위한 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102440893B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190051904A (ko) * 2017-11-07 2019-05-15 삼성생명보험주식회사 챗봇을 이용한 고객 의도 분류 서버, 방법 및 판독 가능 저장매체에 저장된 컴퓨터 프로그램
KR20190075711A (ko) * 2017-12-21 2019-07-01 주식회사 카카오 중계 챗봇을 이용하여 인스턴트 메시징 서비스를 제공하는 서버, 단말 및 방법
KR20190086126A (ko) * 2018-01-12 2019-07-22 주식회사 유비벨록스모바일 챗봇을 이용한 매뉴얼 검색 서비스 제공 서버 및 그의 매뉴얼 검색 서비스 제공 방법
KR20200032893A (ko) * 2018-09-19 2020-03-27 좌우지간 주식회사 챗봇 서비스를 위한 커뮤니케이션 정보 처리 시스템 및 그 제어 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190051904A (ko) * 2017-11-07 2019-05-15 삼성생명보험주식회사 챗봇을 이용한 고객 의도 분류 서버, 방법 및 판독 가능 저장매체에 저장된 컴퓨터 프로그램
KR20190075711A (ko) * 2017-12-21 2019-07-01 주식회사 카카오 중계 챗봇을 이용하여 인스턴트 메시징 서비스를 제공하는 서버, 단말 및 방법
KR20190086126A (ko) * 2018-01-12 2019-07-22 주식회사 유비벨록스모바일 챗봇을 이용한 매뉴얼 검색 서비스 제공 서버 및 그의 매뉴얼 검색 서비스 제공 방법
KR20200032893A (ko) * 2018-09-19 2020-03-27 좌우지간 주식회사 챗봇 서비스를 위한 커뮤니케이션 정보 처리 시스템 및 그 제어 방법

Also Published As

Publication number Publication date
KR102440893B1 (ko) 2022-09-06

Similar Documents

Publication Publication Date Title
US20220245180A1 (en) Query expansion using a graph of question and answer vocabulary
US9519703B2 (en) Refining search results for a compound search query
US11403356B2 (en) Personalizing a search of a search service
US10102482B2 (en) Factorized models
US8805672B2 (en) Translation cache prediction
US20210263978A1 (en) Intelligent interface accelerating
US20150046425A1 (en) Methods and systems for searching software applications
US11263208B2 (en) Context-sensitive cross-lingual searches
TW201120665A (en) Systems and methods for providing advanced search result page content
US11275806B2 (en) Dynamic materialization of feeds for enabling access of the feed in an online social network
CN105550206B (zh) 结构化查询语句的版本控制方法及装置
US9805406B2 (en) Embeddable media content search widget
TWI553493B (zh) 搜尋軟體應用程式之方法及其系統
US11074266B2 (en) Semantic concept discovery over event databases
US11429257B1 (en) Dynamically generated help based on derived hierarchical context
EP3555765A1 (en) Content search engine
US20170147658A1 (en) Pre-instantiating native applications in background
US20110072045A1 (en) Creating Vertical Search Engines for Individual Search Queries
KR102440893B1 (ko) 멀티 챗봇 서비스의 응답 시간 개선을 위한 방법 및 장치
US20160055203A1 (en) Method for record selection to avoid negatively impacting latency
US11755633B2 (en) Entity search system
JP2022106948A (ja) 情報表示方法、装置、電子機器、記憶媒体およびコンピュータプログラム
US11222086B2 (en) Finding content on computer networks
US20200334256A1 (en) Navigation paths between content items
US11663271B1 (en) Serverless search using an index database section

Legal Events

Date Code Title Description
AMND Amendment
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant