KR101917325B1 - 리시버 스테이트를 이용한 챗봇 대화 관리 장치, 방법 및 컴퓨터 판독가능 저장매체 - Google Patents
리시버 스테이트를 이용한 챗봇 대화 관리 장치, 방법 및 컴퓨터 판독가능 저장매체 Download PDFInfo
- Publication number
- KR101917325B1 KR101917325B1 KR1020180003274A KR20180003274A KR101917325B1 KR 101917325 B1 KR101917325 B1 KR 101917325B1 KR 1020180003274 A KR1020180003274 A KR 1020180003274A KR 20180003274 A KR20180003274 A KR 20180003274A KR 101917325 B1 KR101917325 B1 KR 101917325B1
- Authority
- KR
- South Korea
- Prior art keywords
- state
- state node
- information
- task
- user
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 60
- 238000004458 analytical method Methods 0.000 claims abstract description 24
- 230000004044 response Effects 0.000 claims description 44
- 238000007726 management method Methods 0.000 claims description 41
- 230000008569 process Effects 0.000 description 21
- 239000000284 extract Substances 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/40—Business processes related to the transportation industry
-
- G06Q50/30—
-
- G06F17/2705—
Landscapes
- Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Engineering & Computer Science (AREA)
- Marketing (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Operations Research (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
챗봇 대화 관리 장치가 일반적으로 설명된다. 일 예시적인 챗봇 대화 관리 장치는 챗봇 모듈, 메시지 분석 모듈 및 대화 관리자를 포함할 수 있다. 챗봇 모듈은 사용자로부터 입력 메시지를 수신하도록 구성될 수 있다. 메시지 분석 모듈은 입력 메시지로부터 하나 이상의 정보를 추출하고, 하나 이상의 정보와 연관된 사용자의 의도를 결정하도록 구성될 수 있다. 대화 관리자는 메시지 분석 모듈 및 챗봇 모듈에 동작 가능하게 연결될 수 있다. 대화 관리자는 하나 이상의 스테이트 노드 및 리시버 노드를 포함할 수 있다. 하나 이상의 스테이트 노드는 순차적으로 연결되고, 그 각각은 해당 스테이트 노드가 실행되면 미리 정해진 태스크를 수행하도록 구성될 수 있다. 리시버 스테이트 노드는 입력 메시지로부터 추출된 하나 이상의 정보 각각에 대응하는 스테이트 노드를 결정하며 결정된 스테이트 노드로 하여금 대응하는 미리 정해진 태스크를 수행하도록 구성될 수 있다. 이후, 대화 관리자는 메시지 분석 모듈에 의해 결정된 의도에 기초하여, 미리 정해진 태스크의 수행이 완료된 스테이트 노드를 스킵하면서, 순차적으로 연결된 하나 이상의 스테이트 노드 중 최초의 스테이트 노드로부터 하나 이상의 스테이트 노드를 순차적으로 실행하도록 구성될 수 있다.
Description
본 개시는 컴퓨팅 장치에서 실행되는 챗봇 대화를 관리하기 위한 장치, 방법 및 컴퓨터 판독가능 저장 매체에 관한 것이다.
여기에서 달리 언급하지 않으면, 본 섹션에서 기술되는 내용은 본 출원에서의 청구항의 선행 기술이 아니며 본 섹션에 기재된 것 만으로 선행 기술로서 인정되는 것이 아니다.
챗봇은 사용자에 의해 입력된 메시지를 수신하고, 수신된 메시지로부터 사용자의 의도를 추출하며, 추출된 의도에 대응하는 응답을 출력하는 메시징 시스템이다. 챗봇은 보통 사용자에게 필요한 정보를 요청하거나 사용자의 정보를 수집하는 방식으로 대화를 관리한다.
챗봇 대화 관리 기법 중 하나로 유한 스테이트 기반 기법이 있다. 유한 스테이트 기반 기법에서, 챗봇 대화 관리 장치는 하나 이상의 스테이트 노드를 가진다. 챗봇 대화 관리 장치가 현재 스테이트 노드에 해당하는 질문을 사용자에게 전송하고, 이후 질문에 대한 응답을 수신하면, 다음 스테이트 노드로 이동한다. 이러한 유한 스테이트 기반 기법은 사용자가 챗봇 대화 관리 장치로부터 수신한 질문에 대한 응답이 아닌 다른 의도의 답변을 입력하는 경우, 결과적으로 챗봇 대화의 오류 또는 실패로 이어질 수 있다.
챗봇 대화 관리 기법 중 다른 하나로 프레임(frame) (또는 폼(form)) 기반 기법이 있다. 프레임 기반 기법에서, 챗봇 대화 관리 장치는, 사용자로부터 수집해야 하는 정보의 항목을 미리 설정하고, 사용자로 하여금 항목에서 수집되지 않은 정보를 입력하도록 가이드한다. 프레임 기반 기법은 미리 설정된 항목 내의 정보를 일괄적으로 요청하므로, 순차적으로 정보를 요청해야 하는 대화에는 적합하지 않다.
최근, 챗봇 대화 관리 기법으로서, 상술한 유한 스테이트 기반 대화 관리 기법 및 프레임 기반 대화 관리 기법의 결합된 기법이 이용되고 있다. 예컨대, 아래 제시되는 선행기술문헌 1 및 2에서는 전술한 유한 스테이트 기반 기법 및 프레임 기반 기법을 결합함으로써, 챗봇 대화 관리 기법을 향상시키고자 한다. 이러한 종래의 챗봇 대화 관리 기법에서는 스테이트 노드 각각에 프레임을 형성함으로써 단계별로 정보를 수집한다. 그러나, 이러한 기법에서, 사용자가 현재 스테이트 노드에 해당하는 정보가 포함된 입력 메시지를 입력하지 않을 경우에 대응하기 위하여 스테이트 노드 간의 연결을 증가시킬 필요가 있으므로, 챗봇 대화 관리 장치의 설계는 복잡해지게 된다.
일부 실시예에서, 챗봇 대화 관리 방법이 설명된다. 일 예시적인 챗봇 대화 관리 방법은 컴퓨팅 장치의 제어 하에서 수행될 수 있다. 일부 예시에서, 챗봇 대화 관리 방법은 사용자로부터 입력 메시지를 수신하는 단계; 수신된 입력 메시지로부터 하나 이상의 정보를 추출하는 단계; 추출된 하나 이상의 정보와 연관된 하나 이상의 의도를 결정하는 단계; 의도가 결정되는 것에 응답하여, 대화 관리자를 실행하는 단계; 및 대화 관리자로부터 생성된 응답을 수신하는 단계를 포함할 수 있다. 대화 관리자는 순차적으로 연결된 하나 이상의 스테이트 노드를 포함하고, 하나 이상의 스테이트 노드 각각은 해당 스테이트 노드가 실행되면, 컴퓨팅 장치로 하여금 미리 정해진 태스크를 수행하도록 구성될 수 있다. 대화 관리자를 실행하는 단계는 입력 메시지로부터 추출된 하나 이상의 정보 각각에 대응하는 스테이트 노드를 결정하는 단계; 하나 이상의 정보 각각에 기초하여, 결정된 스테이트 노드에 대응하는 미리 정해진 태스크를 수행하는 단계; 및 미리 정해진 태스크의 수행이 완료된 스테이트 노드를 스킵(skip)하면서 순차적으로 연결된 하나 이상의 스테이트 노드 중 최초의 스테이트 노드로부터 하나 이상의 스테이트 노드를 순차적으로 실행하는 단계를 포함할 수 있다.
일부 추가적인 예시에서, 입력 메시지로부터 하나 이상의 정보를 추출하는 단계는 입력 메시지를 파싱(parsing)하는 단계를 포함할 수 있다. 일부 추가적인 예시에서, 챗봇 대화 관리 방법은 대화 관리자로부터 수신된 응답에 기초하여 출력 메시지를 생성하는 단계 및 생성된 출력 메시지를 사용자에게 출력하는 단계를 더 포함할 수 있다.
일부 실시예에서, 챗봇 대화 관리 장치가 설명된다. 일 예시적인 챗봇 대화 관리 장치는 챗봇 모듈, 메시지 분석 모듈 및 대화 관리자를 포함할 수 있다. 챗봇 모듈은 사용자로부터 입력 메시지를 수신하도록 구성될 수 있다. 메시지 분석 모듈은 입력 메시지로부터 하나 이상의 정보를 추출하고, 하나 이상의 정보와 연관된 사용자의 의도를 결정하도록 구성될 수 있다. 대화 관리자는 메시지 분석 모듈 및 챗봇 모듈에 동작 가능하게 연결될 수 있다. 대화 관리자는 하나 이상의 스테이트 노드 및 리시버 노드를 포함할 수 있다. 하나 이상의 스테이트 노드는 순차적으로 연결되고, 그 각각은 해당 스테이트 노드가 실행되면 미리 정해진 태스크를 수행하도록 구성될 수 있다. 리시버 스테이트 노드는 입력 메시지로부터 추출된 하나 이상의 정보 각각에 대응하는 스테이트 노드를 결정하며 결정된 스테이트 노드로 하여금 대응하는 미리 정해진 태스크를 수행하도록 구성될 수 있다. 이후, 대화 관리자는 메시지 분석 모듈에 의해 결정된 의도에 기초하여, 미리 정해진 태스크의 수행이 완료된 스테이트 노드를 스킵하면서, 순차적으로 연결된 하나 이상의 스테이트 노드 중 최초의 스테이트 노드로부터 하나 이상의 스테이트 노드를 순차적으로 실행하도록 구성될 수 있다.
일부 추가적인 예시에서, 챗봇 모듈은 대화 관리자로부터 응답을 수신하고, 수신된 응답에 기초하여 출력 메시지를 생성하도록 구성될 수 있다. 챗봇 모듈은 생성된 출력 메시지를 사용자에게 출력할 수 있다. 일부 추가적인 예시에서, 메시지 분석 모듈은 입력 메시지를 파싱하도록 구성되는 메시지 파서(message parser)를 포함할 수 있다.
일부 실시예에서, 사용자와의 챗봇 대화를 관리하기 위한 하나 이상의 컴퓨터 실행가능 명령어가 저장된 컴퓨터 판독가능 저장 매체가 설명된다. 하나 이상의 컴퓨터 실행가능 명령어가 실행되면, 컴퓨팅 장치로 하여금, 사용자로부터 입력 메시지를 수신하는 동작; 입력 메시지로부터 하나 이상의 정보를 추출하는 동작; 추출된 하나 이상의 정보와 연관된 사용자의 의도를 결정하는 동작; 의도가 결정되는 것에 응답하여, 대화 관리자를 실행하는 동작; 및 대화 관리자로부터 생성된 응답을 수신하는 동작을 포함하는 동작들을 수행하도록 할 수 있다. 대화 관리자는 순차적으로 연결된 하나 이상의 스테이트 노드를 포함하고 각각의 스테이트 노드는 해당 스테이트 노드가 실행되면 컴퓨팅 장치로 하여금 미리 정해진 태스크를 수행하도록 구성될 수 있다. 대화 관리자는 실행되는 경우, 입력 메시지로부터 추출된 하나 이상의 정보 각각에 대응하는 스테이트 노드를 결정하고 하나 이상의 정보 각각에 기초하여, 결정된 스테이트 노드의 미리 정해진 태스크를 수행하며, 미리 정해진 태스크의 수행이 완료된 스테이트 노드를 스킵하면서 순차적으로 연결된 하나 이상의 스테이트 노드 중 최초의 스테이트 노드로부터 하나 이상의 스테이트 노드를 순차적으로 수행하도록 구성될 수 있다.
이상의 요약은 단순히 예시적인 것으로서 어떠한 방식으로든 제한적으로 의도된 것이 아니다. 이하의 상세한 설명과 도면을 참조함으로써, 상술된 예시적인 양태들, 실시예들, 그리고 특징들에 더하여, 추가적인 양태들, 실시예들, 그리고 특징들 또한 명확해질 것이다.
본 개시의 전술한 특징들 및 기타 특징들은, 첨부 도면을 참조하여 이하의 설명으로부터 충분히 분명해질 것이다. 이러한 도면들은 본 개시에 따르는 단지 몇 가지의 실시예만을 도시한 것이고, 따라서 그 범위를 제한하는 것으로 간주되어서는 안되는 것을 이해하면서, 본 개시는 첨부된 도면의 사용을 통하여, 더 구체적이고 상세하게 기술될 것이다.
도 1은 본 개시의 적어도 일부 실시예에 따른 챗봇 대화 관리 장치를 개략적으로 예시하는 블록도이고;
도 2는 도 1에 따른 챗봇 대화 관리 장치의 대화 관리자를 예시하는 개략적인 블록도이고;
도 3은 본 개시의 적어도 일부 실시예에 따라 챗봇 대화 방법에 관한 예시적인 프로세스를 도시하는 흐름도이고;
도 4는 도 3에 따라 대화 관리자를 실행하는 프로세스를 보다 상세하게 예시한 흐름도이고;
도 5는 본 개시의 적어도 일부 실시예에 따라 사용자와의 챗봇 대화를 관리하는 데 이용될 수 있는 예시적인 컴퓨터 프로그램 제품을 도시하고;
도 6는 본 개시의 적어도 일부 실시예에 따라 배열되는 컴퓨팅 장치의 예시적인 실시예의 블록도이고;
도 7는 본 개시의 적어도 일부 실시예에 따라, 챗봇 대화가 수행되는 일 예시를 도시한다.
도 1은 본 개시의 적어도 일부 실시예에 따른 챗봇 대화 관리 장치를 개략적으로 예시하는 블록도이고;
도 2는 도 1에 따른 챗봇 대화 관리 장치의 대화 관리자를 예시하는 개략적인 블록도이고;
도 3은 본 개시의 적어도 일부 실시예에 따라 챗봇 대화 방법에 관한 예시적인 프로세스를 도시하는 흐름도이고;
도 4는 도 3에 따라 대화 관리자를 실행하는 프로세스를 보다 상세하게 예시한 흐름도이고;
도 5는 본 개시의 적어도 일부 실시예에 따라 사용자와의 챗봇 대화를 관리하는 데 이용될 수 있는 예시적인 컴퓨터 프로그램 제품을 도시하고;
도 6는 본 개시의 적어도 일부 실시예에 따라 배열되는 컴퓨팅 장치의 예시적인 실시예의 블록도이고;
도 7는 본 개시의 적어도 일부 실시예에 따라, 챗봇 대화가 수행되는 일 예시를 도시한다.
본 개시의 전술한 특징들 및 기타 특징들은, 첨부 도면을 참조하여 이하의 설명으로부터 충분히 분명해질 것이다. 이러한 도면들은 본 개시에 따르는 단지 몇 가지의 실시예만을 도시한 것이고, 따라서 그 범위를 제한하는 것으로 간주되어서는 안되는 것을 이해하면서, 본 개시는 첨부된 도면의 사용을 통하여, 더 구체적이고 상세하게 기술될 것이다.
이하에서, "챗봇 대화 서비스"라는 용어는 사용자가 컴퓨팅 장치에 메시지를 전송하고 컴퓨팅 장치가 수신된 메시지에 응답한 응답 메시지를 출력하는 예컨대, 챗봇(chatbot), 채터봇(chatter bot)과 같은 인공지능 메시징 서비스를 지칭할 수 있다. "대화 관리"라는 용어는 서버 또는 개인용 컴퓨팅 장치와 같은 컴퓨팅 장치가 사용자로부터 입력을 수신하는 경우 그에 따른 응답을 출력함으로써 "챗봇 대화 서비스"를 이용가능하게 하기 위한 프로세스를 지칭할 수 있다.
본 개시는 일반적으로, 챗봇 대화 관리 장치(예컨대, 서버 또는 모바일 장치와 같은 개인 컴퓨팅 장치), 방법 및/또는 컴퓨터 판독가능 저장매체에 관련된다.
간단히 설명하면, 다양한 실시예에서, 사용자의 컴퓨팅 장치 또는 사용자의 컴퓨팅 장치와 통신 가능하게 연결된 서버는 사용자에게 챗봇 대화 서비스를 제공할 수 있다. 이하에서는, 설명의 편의를 위하여, 컴퓨팅 장치가 챗봇 대화 서비스를 제공하기 위하여 대화 관리를 수행하는 것으로 설명될 것이지만, 통상의 기술자는 챗봇 대화 서비스가 서버 상에서 수행되고 사용자의 컴퓨팅 장치가 서버로부터 데이터를 수신하고 디스플레이함으로써 챗봇 대화 서비스를 제공하는 것 또한 가능함을 인정할 것이다.
일부 예시에서, 컴퓨팅 장치는 사용자로부터 입력 메시지를 수신할 수 있다. 입력 메시지는 사람이 사용하고 이해 가능한 자연어를 포함할 수 있다. 컴퓨팅 장치는 수신된 입력 메시지로부터 하나 이상의 정보를 추출할 수 있다. 컴퓨팅 장치는 수신된 입력 메시지를 분석함으로써, 유의미한 정보를 추출할 수 있다. 예컨대, 하나 이상의 정보는 입력 메시지를 파싱(parsing)함으로써 추출될 수 있다. 일부 예시에서, 컴퓨팅 장치는 추출된 하나 이상의 정보와 연관되는 사용자의 의도(intent)를 결정할 수 있다.
일부 예시에서, 컴퓨팅 장치는 의도가 결정되는 것에 응답하여 대화 관리자를 실행할 수 있다. 대화 관리자는 순차적으로 연결된 하나 이상의 스테이트 노드를 포함할 수 있다. 하나 이상의 스테이트 노드 각각은 해당 스테이트 노드가 실행되면, 컴퓨팅 장치로 하여금 미리 정해진 태스크를 수행하도록 할 수 있다. 예컨대, 미리 정해진 태스크는 이전에 실행된 스테이트 노드에 저장된 정보에 기초하여 수행되는 태스크, 하나 이상의 서브 노드를 실행하는 태스크, 사용자 또는 서버로 정보를 요청하는 태스크, 정보를 저장하는 태스크, 적어도 하나의 연산을 수행하는 태스크 또는 적어도 하나의 동작을 수행하는 태스크 중 적어도 하나를 포함할 수 있지만, 이에 제한되지 않는다. 또한, 대화 관리자는 리시버 스테이트 노드를 더 포함할 수 있다. 리시버 스테이트 노드는 사용자의 입력 메시지로부터 추출된 하나 이상의 정보 각각에 대응하는 스테이트 노드를 결정하고, 결정된 스테이트 노드를 실행하도록 구성될 수 있다. 결정된 스테이트 노드가 실행됨에 따라, 스테이트 노드에 대응하는 미리 정해진 태스크가 대응하는 정보에 기초하여, 수행될 수 있다. 이와 같이, 대화 관리자는 하나 이상의 스테이트 노드를 실행하기 전에, 사용자의 입력 메시지로부터 추출된 정보에 기초하여 대응하는 스테이트 노드를 우선 실행할 수 있다.
일부 예시에서, 대화 관리자는 예컨대, 리시버 스테이트 노드를 통하여, 추출된 하나 이상의 정보에 대응하는 스테이트 노드를 실행한 이후, 미리 정해진 태스크의 수행이 완료된 스테이트 노드를 스킵(skip)하면서, 순차적으로 연결된 하나 이상의 스테이트 노드를 실행할 수 있다.
하나 이상의 스테이트 노드는 최초의 스테이트 노드로부터 순차적으로 실행된다. 예컨대, 하나 이상의 스테이트 노드는 최초의 스테이트 노드인 제1 스테이트 노드, 제1 스테이트 노드 이후의 제2 스테이트 노드 및 제2 스테이트 노드 이후의 제3 스테이트 노드를 포함할 수 있으며, 제2 스테이트 노드는 사용자로부터 정보를 요청하는 태스크를 포함할 수 있다. 이러한 예시에서, 컴퓨팅 장치는 사용자로부터 입력 메시지를 수신하고, 대화 관리자는 제1 스테이트 노드로부터 하나 이상의 스테이트 노드를 순차적으로 실행할 수 있다. 제1 스테이트 노드의 실행 이후 제2 스테이트 노드가 실행되는 경우, 컴퓨팅 장치는 태스크에 따라 사용자에게 정보를 요청할 수 있으며, 사용자는 이러한 요청에 응답하여 새로운 입력 메시지를 입력할 수 있다. 사용자로부터 새로운 입력 메시지를 수신하는 경우, 컴퓨팅 장치는 새로운 입력 메시지로부터 정보를 추출하고, 컴퓨팅 장치의 대화 관리자는 다시 제1 스테이트 노드로부터 순차적으로 하나 이상의 스테이트 노드를 실행할 수 있다.
도 1은 본 개시의 적어도 일부 실시예에 따른 챗봇 대화 관리 장치를 개략적으로 예시하는 블록도이다. 예시적인 챗봇 대화 관리 장치(100)는 챗봇 모듈(110), 메시지 분석 모듈(120) 및 대화 관리자(130)를 포함할 수 있다. 일부 예시에서, 챗봇 대화 관리 장치(100)는 사용자에게 챗봇 대화 서비스를 제공하도록 구성될 수 있다. 예컨대, 챗봇 대화 관리 장치(100)는 데스크 탑 컴퓨터, 랩탑 컴퓨터, 스마트폰, 태블릿 컴퓨터, 휴대 전화기, 개인 휴대용 단말기(PDA), 특정 용도 장치, 또는 상기 기능 중 임의의 것을 포함하는 융합 장치와 같은 소형 폼팩터 휴대용(모바일) 전자 장치를 포함하지만, 이에 제한되는 것은 아니다. 일 예시에서, 챗봇 대화 관리 장치(100)는 사용자 장치일 수 있으며, 이 경우, 사용자 장치는 이하에서 설명되는 챗봇 대화 서비스와 연관된 프로세스를 수행함으로써 사용자에게 챗봇 대화 서비스를 제공할 수 있다. 다른 예시에서, 챗봇 대화 관리 장치(100)는 서버와 같은 장치일 수 있으며, 이 경우, 사용자 장치는 서버로 데이터를 송신하고 서버로부터 데이터를 수신함으로써, 사용자에게 챗봇 대화 서비스를 제공할 수 있다.
챗봇 모듈(110)은 사용자로부터 입력 메시지를 수신하도록 구성될 수 있다. 입력 메시지는 다양한 유형의 메시지를 포함할 수 있다. 입력 메시지는 사람이 일반적으로 사용하고 이해 가능한 자연어를 포함할 수 있다. 일부 예시에서, 입력 메시지는 문자, 단어, 문구, 문장 또는 문단의 형태일 수 있으나, 이에 제한되지 않는다. 또한, 입력 메시지는 문자뿐만 아니라 사용자가 컴퓨팅 장치를 통하여 입력 가능한 숫자, 기호 또는 특수문자를 포함할 수 있다. 추가적으로, 요구되는 구현예에 따라, 문자 메시지 뿐만 아니라 음성 메시지를 포함할 수 있다. 일부 예시에서, 챗봇 모듈(110)은 챗봇 모듈(110)에 연결된 메시지 분석(120) 모듈로 하여금 수신된 입력 메시지를 분석하도록 지시할 수 있다.
일부 실시예에서, 챗봇 모듈(110)은 이하에서 보다 상세히 설명되는 바와 같이, 대화 관리자(130)로부터 응답을 수신하도록 구성될 수 있다. 챗봇 모듈(110)은 수신된 응답에 기초하여, 출력 메시지를 생성하고, 생성된 출력 메시지를 사용자에게 출력하도록 구성될 수 있다. 출력 메시지는 입력 메시지와 동일하거나 유사한 형태일 수 있다. 일부 예시에서, 출력 메시지는 사용자에게 전달하기 위한 하나 이상의 정보를 포함할 수 있다. 일부 예시에서, 출력 메시지는 사용자에게 새로운 입력 메시지의 입력을 요구하는 내용을 포함할 수 있다.
메시지 분석 모듈(120)은 챗봇 모듈(110)에 의해 수신된 입력 메시지로부터 하나 이상의 정보를 추출하고, 추출된 정보와 연관된 사용자의 의도(intent)를 결정하도록 구성될 수 있다. 일부 실시예에서, 메시지 분석 모듈(120)은 메시지 파서(125)를 더 포함할 수 있다. 메시지 분석 모듈(120)은 메시지 파서(125)에 의해 입력 메시지를 파싱(parsing)함으로써 입력 메시지로부터 하나 이상의 정보를 추출하는 한편, 입력 메시지로부터 하나 이상의 정보와 연관된 사용자의 의도를 결정할 수 있다. 메시지 파서(125)는 미리 정해진 절차에 따라 입력 메시지를 구문 해석 하도록 구성될 수 있다. 메시지 파서(125)는 잘 알려진 다양한 방식으로 구현될 수 있으며, 프로그램, 프로그램 모듈, 또는 장치 등 다양한 형태일 수 있다.
대화 관리자(130)는 메시지 분석 모듈(120)에 의해 결정된 의도에 기초하여, 입력 메시지에 대한 응답을 생성할 수 있다. 일부 예시에서, 챗봇 모듈(110)은 메시지 분석 모듈(120)이 입력 메시지로부터 하나 이상의 정보를 추출하고 추출된 정보와 연관된 사용자의 의도를 결정하는 경우, 대화 관리자(130)가 실행되도록 지시할 수 있다. 대화 관리자(130)는 사용자의 의도 및 하나 이상의 정보에 기초하여 입력 메시지에 대한 응답을 생성할 수 있다. 대화 관리자(130)가 응답을 생성하는 특징에 대해서는 도 2를 참조하면서 보다 상세히 설명될 것이다.
도 2는 도 1에 따른 챗봇 대화 관리 장치(100)의 대화 관리자(130)를 예시하는 개략적인 블록도이다. 예시적인 대화 관리자(130)는 리시버 스테이트 노드(210) 및 제1 스테이트 노드(220-1), 제2 스테이트 노드(220-2), ..., 제n 스테이트 노드(220-n)(여기서, n은 자연수임)와 같이 순차적으로 연결된 하나 이상의 스테이트 노드(이하, 220으로 통칭함)를 포함할 수 있다.
일부 실시예에서, 대화 관리자(130)는 예컨대, 도 1의 메시지 분석 모듈(120)에 의해 결정된 사용자의 의도에 기초하여 실행될 수 있다. 사용자의 의도는 다양한 내용을 포함할 수 있다. 일 예시에서, 사용자의 의도가 새로운 대화에 대한 요구를 포함하는 경우, 대화 관리자(130)는 실행되기 전에, 하나 이상의 스테이트 노드(220) 중 적어도 하나 내에 저장된 정보를 삭제 또는 초기화 하도록 구성될 수 있다. 다른 예시에서, 사용자의 의도가 새로운 대화에 대한 요구를 포함하지 않는 경우, 대화 관리자(130)는 하나 이상의 스테이트 노드(220) 중 적어도 하나 내에 저장된 정보를 유지하도록 구성될 수 있다.
리시버 스테이트 노드(210)는 하나 이상의 스테이트 노드(220) 각각에 동작 가능하게 연결될 수 있다. 또한, 하나 이상의 스테이트 노드(220) 각각은 해당 스테이트 노드가 실행되면, 미리 정해진 태스크를 수행할 수 있다. 미리 정해진 태스크는 예컨대, 이전에 실행된 스테이트 노드에 저장된 정보에 기초하여 수행되는 태스크, 하나 이상의 서브 노드를 실행하는 태스크, 사용자 또는 서버로 정보를 요청하는 태스크, 정보를 저장하는 태스크, 적어도 하나의 연산을 수행하는 태스크 또는 적어도 하나의 동작을 수행하는 태스크 중 적어도 하나를 포함할 수 있지만, 이에 제한되지 않는다. 하나 이상의 스테이트 노드(220)는 순차적으로 연결되어 있으며, 대화 관리자(120)에 의해 실행되는 경우, 순차적으로 실행된다. 예컨대, 제2 스테이트 노드(220-2)는 제1 스테이트 노드(220-1)를 실행한 이후에 실행될 수 있고, 제n 스테이트 노드는 제n-1 스테이트 노드를 실행한 이후에 실행될 수 있다.
리시버 스테이트 노드(210)는 대화 관리자(130)가 실행되는 경우, 사용자의 입력 메시지로부터 추출된 하나 이상의 정보에 기초하여 하나 이상의 스테이트 노드(220) 중 일부를 결정하도록 구성될 수 있다. 일부 예시에서, 리시버 스테이트 노드(210)는 하나 이상의 정보에 대응하는 스테이트 노드(220)를 결정할 수 있다.
리시버 스테이트 노드(210)는 결정된 스테이트 노드(220)를 실행하도록 구성될 수 있다. 일부 예시에서, 리시버 스테이트 노드(210)는 결정된 스테이트 노드(220)로 하여금 미리 정해진 태스크를 수행하도록 구성될 수 있다.
이후, 대화 관리자(120)는 리시버 스테이트 노드(210)가 예컨대, 도 1의 메시지 분석 모듈(120)에 의해 결정된 사용자의 의도에 기초하여 하나 이상의 스테이트 노드(220)를 최초의 제1 스테이트 노드(또는 루트 노드)(220-1)로부터 순차적으로 실행할 수 있다. 일부 실시예에서, 대화 관리자(120)는 미리 정해진 태스크의 수행이 완료된 스테이트 노드를 스킵하면서, 최초의 스테이트 노드(220-1)로부터 순차적으로 하나 이상의 스테이트 노드(220-1, 220-2, ..., 220-n)를 실행하도록 구성될 수 있다.
이와 같이, 대화 관리자(120)는 하나 이상의 스테이트 노드(220) 중 적어도 하나의 실행에 의해 응답을 생성할 수 있다. 도 1로 돌아가면, 챗봇 모듈(110)은 대화 관리자(130)로부터 응답을 수신하도록 구성될 수 있다. 이후, 챗봇 모듈(110)은 대화 관리자(120)로부터 수신된 응답에 기초하여, 출력 메시지를 생성할 수 있으며, 생성된 출력 메시지를 사용자에게 출력하도록 구성될 수 있다.
이하에서는 도 1 및 2를 참조하여, 도 1의 챗봇 대화 관리 장치(100) 및 도 1 및 도 2의 대화 관리자(130)가 수행되는 일 예시를 설명한다. 제1 스테이트 노드(220-1) 및 제2 스테이트 노드(220-2)는 사용자에게 일부 응답을 요구하고 대응하는 사용자의 응답을 저장하는 태스크를 수행할 수 있다. 챗봇 대화 관리 장치(100)의 챗봇 모듈(110)은 사용자로부터 제1 입력 메시지를 수신할 수 있다. 메시지 문석 모듈(120)은 제1 입력 메시지로부터 제1 정보를 추출할 수 있고, 제1 정보와 연관된 제1 의도를 결정할 수 있다. 챗봇 모듈(130)은 제1 의도에 기초하여, 대화 관리자(130)가 실행되도록 지시할 수 있다. 대화 관리자(130)의 리시버 스테이트 노드(210)는 제1 정보에 대응하는 제1 스테이트 노드(210-1)를 결정할 수 있다. 리시버 스테이트 노드(210)는 제1 스테이트 노드(210-1)가 제1 정보를 저장하도록 함으로써, 제1 스테이트 노드(210-1)를 실행할 수 있다. 이후, 대화 관리자(130)는 하나 이상의 스테이트 노드(220)를 제1 스테이트 노드(220-1)로부터 순차적으로 실행할 수 있다. 대화 관리자(130)는 제1 스테이트 노드(220-1)에 제1 정보가 저장되어 있으므로, 제1 스테이트 노드(220-1)의 실행을 스킵하고, 제2 스테이트 노드(220-2)를 실행할 수 있다.
제2 스테이트 노드(220-2)가 사용자의 응답을 요구하는 태스크를 수행하므로, 대화 관리자(130)는 사용자의 응답을 요구하는 응답을 생성할 수 있고, 챗봇 모듈(110)은 대화 관리자(130)로부터 생성된 응답에 기초하여 제1 출력 메시지를 생성하고 출력 할 수 있다. 사용자가 제1 출력 메시지에 응답하여 제2 입력 메시지를 입력하면, 챗봇 모듈(110)은 제2 입력 메시지를 수신하고, 메시지 분석 모듈(120)은 제2 입력 메시지로부터 제2 정보를 추출하고 제2 정보와 연관된 제2 의도를 결정할 수 있다. 챗봇 모듈(110)은 제2 의도에 기초하여 대화 관리자(130)를 실행할 수 있다.
예컨대, 제2 정보가 제2 스테이트 노드(220-n)에 대응하는 경우, 리시버 스테이트 노드(210)는 제2 스테이트 노드(220-2)를 결정할 수 있으며, 제2 스테이트 노드(220-2)가 제2 정보를 저장하도록 할 수 있다. 이후, 대화 관리자(130)는 제1 스테이트 노드(220-1)로부터 순차적으로 하나 이상의 스테이트 노드(220)를 수행하도록 제1 및 제2 스테이트 노드(220-2)를 스킵하고, 제3 스테이트 노드(도시하지 않음)를 실행할 수 있다.
다른 예시에서, 제2 정보가 제1 스테이트 노드(220-1)에 대응하는 경우, 리시버 스테이트 노드(210)는 제1 스테이트 노드(220-1)를 결정할 수 있으며, 제2 정보에 대응하는 제1 스테이트 노드(220-1)로 하여금 제1 정보를 제2 정보로 갱신하도록 할 수 있다.
또 다른 예시에서, 제2 정보가 제n 스테이트 노드(220-n)에 대응하는 경우, 리시버 스테이트 노드(210)는 제n 스테이트 노드(220-n)을 결정할 수 있으며, 제2 정보에 대응하는 제n 스테이트 노드(220-n)를 실행할 수 있다. 이후, 대화 관리자(130)는 제1 스테이트 노드(220-1)를 스킵하고 다시 제2 스테이트 노드(220-2)를 실행할 수 있다.
도 3은 본 개시의 적어도 일부 실시예에 따라 챗봇 대화 방법에 관한 예시적인 프로세스를 도시하는 흐름도이다. 예컨대, 프로세스(300)는 도 1의 챗봇 대화 관리 장치(100)와 같은 컴퓨팅 장치의 제어 하에서 수행될 수 있다. 도 3에 도시된 프로세스(300)는 블록(310, 320, 330, 340 및/또는 350)에 의해 예시된 바와 같은 하나 이상의 동작, 기능 또는 작용을 포함할 수 있다. 다양한 블록은 설명된 실시예로 제한하려고 의도되지는 않는다. 예컨대, 당업자는 여기에서 개시된 본 프로세스에 대하여, 프로세스 및 방법에서 수행되는 기능이 상이한 순서로 구현될 수 있다는 것을 인정할 것이다. 한편, 도 3에 예시된 개략적인 동작들은 예시로서만 제공되고, 개시된 실시예의 본질에서 벗어나지 않으면서, 동작들 중 일부가 선택적일 수 있거나, 더 적은 동작으로 조합될 수 있거나, 추가적인 동작으로 확장될 수 있다. 프로세스(300)는 입력 메시지를 수신하는 블록(310)에서 시작할 수 있다.
블록(310)에서, 컴퓨팅 장치는 사용자로부터 입력 메시지를 수신할 수 있다. 입력 메시지는 다양한 유형의 메시지를 포함할 수 있다. 예컨대, 입력 메시지는 사람이 일반적으로 사용하고 이해 가능한 자연어를 포함할 수 있다. 프로세스(300)는 블록(310)으로부터 하나 이상의 정보를 추출하는 블록(320)으로 이어질 수 있다.
블록(320)에서, 컴퓨팅 장치는 블록(310)에서 수신한 입력 메시지로부터 하나 이상의 정보를 추출할 수 있다. 일부 예시에서, 컴퓨팅 장치는 입력 메시지를 파싱(parsing)함으로써 하나 이상의 정보를 추출할 수 있다. 메시지를 파싱하는 파서(parser)는 잘 알려진 다양한 방식을 이용하여 구현될 수 있으며, 프로그램, 프로그램 모듈, 또는 장치 등 다양한 형태일 수 있다. 프로세스(300)는 블록(320)으로부터 사용자의 의도를 결정하는 블록(330)으로 이어질 수 있다.
블록(330)에서, 컴퓨팅 장치는 블록(320)에서 추출된 하나 이상의 정보와 연관된 사용자의 의도를 결정할 수 있다. 일부 예시에서, 컴퓨팅 장치는 입력 메시지를 파싱(parsing)하여, 구문해석 함으로써, 하나 이상의 정보를 추출함과 동시에 또는 추출한 이후에 사용자의 의도를 결정할 수 있다. 프로세스(300)는 블록(330)으로부터 대화 관리자를 실행하는 블록(340)으로 이어질 수 있다.
블록(340)에서, 컴퓨팅 장치는 결정된 사용자의 의도에 기초하여 컴퓨팅 장치 내의 대화 관리자를 실행할 수 있다. 일부 예시에서, 컴퓨팅 장치가 블록(330)에서 결정된 사용자의 의도가 새로운 대화에 대한 요구를 포함하는 경우, 대화 관리자 내의 전부 또는 일부 정보를 초기화할 수 있다. 다른 일부 예시에서, 컴퓨팅 장치가 블록(330)에서 결정된 사용자의 의도가 새로운 대화에 대한 요구를 포함하지 않는 경우, 즉, 계속된 대화의 요구를 포함하는 경우, 대화 관리자는 대화 관리자 내의 전부 또는 일부 정보를 유지할 수 있다. 대화 관리자가 실행되는 보다 구체적인 예시는 도 4를 참조하여 설명한다.
도 4는 도 3에 따라 대화 관리자를 실행하는 프로세스를 보다 상세하게 예시한 흐름도이다. 예컨대, 도 4에 도시된 프로세스(340)는 블록(410, 420 및/또는 430)에 의해 예시된 바와 같은 하나 이상의 동작, 기능 또는 작용을 포함할 수 있다. 도 4에 예시된 개략적인 동작들은 예시로서만 제공되고, 개시된 실시예의 본질에서 벗어나지 않으면서, 동작들 중 일부가 선택적일 수 있거나, 더 적은 동작으로 조합될 수 있거나, 추가적인 동작으로 확장될 수 있다.
블록(410)에서, 컴퓨팅 장치의 대화 관리자는 하나 이상의 정보 각각에 대응하는 스테이트 노드를 결정할 수 있다. 일부 예시에서, 대화 관리자는 순차적으로 연결된 하나 이상의 스테이트 노드를 포함할 수 있다. 하나 이상의 스테이트 노드 각각은 해당 스테이트 노드가 실행되면, 컴퓨팅 장치로 하여금 미리 정해진 태스크를 수행하도록 구성될 수 있다. 대화 관리자는 입력 메시지로부터 추출된 하나 이상의 정보 각각에 대응하는 스테이트 노드를 결정할 수 있다. 예컨대, 대화 관리자는 하나 이상의 정보 각각에 대응하여 해당 정보를 요구하는 스테이트 노드를 결정할 수 있다. 프로세스(340)은 블록(410)으로부터 결정된 스테이트 노드에 대응하는 미리 정해진 태스크를 수행하는 블록(420)으로 이어질 수 있다.
블록(420)에서, 대화 관리자는 블록(410)에서 결정된 스테이트 노드를 대응하는 정보에 기초하여 해당 스테이트 노드에 대응하는 미리 정해진 태스크를 수행할 수 있다. 하나 이상의 스테이트 노드는 순차적으로 실행되도록 구성되어 있지만, 순차적인 실행 이전에, 입력 메시지로부터 추출된 정보에 기초하여 일부 스테이트 노드에 대응하는 태스크가 수행될 수 있다. 프로세스(340)는 블록(420)으로부터 블록(430)으로 이어질 수 있다.
블록(430)에서, 대화 관리자는 미리 정해진 태스크의 수행이 완료된 스테이트 노드를 스킵하면서, 하나 이상의 스테이트 노드 중 최초의 스테이트 노드로부터 하나 이상의 스테이트 노드를 순차적으로 실행할 수 있다. 대화 관리자는 이미 태스크의 수행이 완료된 스테이트 노드를 실행하지 않는 방식으로, 최초의 스테이트 노드로부터 순차적으로 실행할 수 있다. 이러한 방식으로, 대화 관리자는 최초의 스테이트 노드로부터 하나 이상의 스테이트 노드를 순차적으로 실행하므로, 현재 실행 중인 스테이트 노드를 저장할 필요가 없다. 일부 실시예에서, 대화 관리자는 하나 이상의 스테이트 노드 중 어느 하나의 실행의 결과로 응답을 생성할 수 있으며, 응답을 생성한 경우, 하나 이상의 스테이트 노드의 순차적인 실행은 종료할 수 있다.
도 3으로 돌아가서 참조하면, 프로세스(300)는 블록(340)으로부터 대화 관리자로부터 응답을 수신하는 블록(350)으로 이어질 수 있다. 컴퓨팅 장치는 대화 관리자에 의해 생성된 응답을 수신할 수 있다. 추가적으로, 컴퓨팅 장치는 수신된 응답에 기초하여, 출력 메시지를 생성할 수 있으며, 생성된 출력 메시지를 사용자에게 출력할 수 있다.
이와 같이, 컴퓨팅 장치는 사용자에게 챗봇 대화 서비스를 제공할 수 있다. 전술한 본 개시는 대화 관리자가 대화와 연관된 태스크를 수행하기 위한 스테이트 노드들을 순차적으로 연결함으로써, 스테이트 노드들의 연결을 단순화할 수 있다. 또한, 본 개시는 입력 메시지로부터 추출된 정보에 대응하는 스테이트 노드들을 먼저 실행하고, 이후 최초의 스테이트 노드로부터 순차적으로 하나 이상의 스테이트 노드를 실행함으로써 사용자와의 대화의 유연성을 제공할 수 있다.
도 5는 본 개시의 적어도 일부 실시예에 따라 사용자와의 챗봇 대화를 관리하는 데 이용될 수 있는 예시적인 컴퓨터 프로그램 제품(500)을 도시한다. 예시적인 컴퓨터 프로그램 제품의 예시적인 실시예는 신호 포함 매체(502)를 이용하여 제공된다. 일부 실시예에서, 하나 이상의 컴퓨터 프로그램 제품(500)의 신호 포함 매체(502)는 컴퓨터 판독가능 매체(506), 기록 가능 매체(508) 및/또는 통신 매체(510)를 포함할 수 있다.
신호 포함 매체(502)에 포함된 명령어(504)는 챗봇 대화 관리 장치와 같은 컴퓨팅 장치에 의해 실행될 수 있다. 명령어(504)가 실행되면, 컴퓨팅 장치로 하여금 사용자와의 챗봇 대화를 관리하도록 할 수 있다. 명령어(504)는 사용자로부터 입력 메시지를 수신하기 위한 하나 이상의 명령어; 입력 메시지로부터 하나 이상의 정보를 추출하기 위한 하나 이상의 명령어; 추출된 하나 이상의 정보와 연관된 사용자의 의도(intent)를 결정하기 위한 하나 이상의 명령어; 의도가 결정되는 것에 응답하여, 대화 관리자를 실행하기 위한 하나 이상의 명령어; 또는 대화 관리자로부터 생성된 응답을 수신하기 위한 하나 이상의 명령어 중 적어도 하나를 포함할 수 있다. 대화 관리자는 순차적으로 연결된 하나 이상의 스테이트 노드를 포함하고, 하나 이상의 스테이트 노드 각각은 해당 스테이트 노드가 실행되면, 컴퓨팅 장치로 하여금 미리 정해진 태스크를 수행하도록 구성될 수 있다. 대화 관리자는, 실행되는 경우, 입력 메시지로부터 추출된 하나 이상의 정보 각각에 대응하는 스테이트 노드를 결정하고; 하나 이상의 정보 각각에 기초하여, 결정된 스테이트 노드의 미리 정해진 태스크를 수행하며; 미리 정해진 태스크의 수행이 완료된 스테이트 노드를 스킵(skip)하면서, 순차적으로 연결된 하나 이상의 스테이트 노드 중 최초의 스테이트 노드로부터 하나 이상의 스테이트 노드를 순차적으로 수행하도록 구성될 수 있다.
도 6는 본 개시의 적어도 일부 실시예에 따라 배열되는 컴퓨팅 장치의 예시적인 실시예의 블록도이다. 일 예시적인 기본적인 구성(602)에서, 컴퓨팅 장치(600)는 하나 이상의 프로세서(604) 및 시스템 메모리(606)를 포함할 수 있다. 메모리 버스(608)는 프로세서(604) 및 시스템 메모리(606) 사이에서 통신하기 위하여 이용될 수 있다.
요구되는 구성에 따라, 프로세서(604)는 마이크로 프로세서(μP), 마이크로 컨트롤러(μC), 디지털 신호 프로세서(DSP), 또는 그들의 임의의 조합을 포함하는 임의의 유형일 수 있으나, 이에 제한되지는 않는다. 프로세서(604)는 레벨 1 캐시(610), 레벨 2 캐시(612)와 같은 하나 이상의 레벨(level)의 캐시(cache), 프로세서 코어(614), 및 레지스터(616)를 포함할 수 있다. 프로세서 코어(614)는 산술 논리 연산장치(arithmetic logic unit; ALU), 부동 소수점 장치(floating point unit; FPU), 디지털 신호 처리 코어(DSP Core), 또는 그들의 임의의 조합을 포함할 수 있다. 메모리 컨트롤러(618)는 또한 프로세서(604)와 함께 사용될 수 있거나, 또는 일부 구현예에서 메모리 컨트롤러(618)는 프로세서(604)의 내적인 일부일 수 있다.
요구되는 구성에 따라, 시스템 메모리(606)는 (RAM과 같은) 휘발성 메모리, (ROM, 플래시 메모리 등과 같은) 비휘발성 메모리, 또는 그들의 임의의 조합을 포함하는 임의의 유형일 수 있으나, 이에 제한되지는 않는다. 시스템 메모리(606)는 운영 체제(620), 하나 이상의 어플리케이션(application)(622), 및 프로그램 데이터(624)를 포함할 수 있다. 어플리케이션(622)은 도 1의 챗봇 대화 관리 장치(100) 및/또는 도 3의 프로세스에 관하여 기술된 기능 블록 및/또는 작용을 포함하여 여기에서 기술된 바와 같은 기능을 수행하도록 배열된 챗봇 대화 관리 알고리즘(626)을 포함할 수 있다. 프로그램 데이터(624)는, 챗봇 대화 관리 알고리즘(626)과 함께 이용하기 위한 데이터(628), 예컨대, 정적 네트워크 환경 등에 해당하는 데이터를 포함할 수 있다. 일부 실시예에서, 어플리케이션(622)은 최적의 전송 환경을 결정하기 위한 구현이 여기에서 설명된 바와 같이 제공될 수 있도록 운영 체제(520) 상에서 프로그램 데이터(624)로 동작하도록 배열될 수 있다. 예컨대, 챗봇 대화 관리 장치(100)는 컴퓨팅 장치(600)의 전부 또는 일부를 포함할 수 있으며 최적의 전송 환경을 결정하는 구현이 여기에서 설명된 바와 같이 제공될 수 있도록 어플리케이션(622)의 전부 또는 일부를 수행하는 것이 가능할 수 있다. 이러한 기술된 기본적인 구성은 도 5에서 파선(502) 내의 그 구성요소들에 의해 도시된다.
컴퓨팅 장치(600)는 기본적인 구성(602) 및 임의의 요구되는 장치 및 인터페이스(interface) 사이의 통신을 용이하게 하도록 추가적인 특징 또는 기능, 및 추가적인 인터페이스를 가질 수 있다. 예를 들어, 버스/인터페이스 컨트롤러(630)는 저장부 인터페이스 버스(634)를 통한 기본적인 구성(602) 및 하나 이상의 데이터 저장 장치(632) 사이의 통신을 용이하게 하도록 사용될 수 있다. 데이터 저장 장치(632)는 이동식 저장 장치(636), 고정식 저장 장치(638), 또는 그 조합일 수 있다. 이동식 저장 장치 및 고정식 저장 장치의 예를 몇 가지 들자면, 플렉서블 디스크 드라이브(flexible disk drive) 및 하드 디스크 드라이브(HDD)와 같은 자기 디스크 장치, 컴팩트 디스크(CD) 드라이브 또는 디지털 다목적 디스크(DVD) 드라이브와 같은 광 디스크 드라이브, 고체 상태 드라이브(SSD), 및 테이프 드라이브 등을 포함한다. 예시적인 컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈(program module), 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술에서 구현되는 휘발성 및 비휘발성의 이동식 및 고정식 매체를 포함할 수 있다.
시스템 메모리(606), 이동식 저장 장치(636) 및 고정식 저장 장치(638)는 모두 컴퓨터 저장 매체의 예이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, 디지털 다목적 디스크(DVD) 또는 기타 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 요구되는 정보를 저장하도록 사용될 수 있고, 컴퓨팅 장치(600)에 의해 액세스될 수 있는 임의의 기타 매체를 포함하나, 이에 제한되지는 않는다. 임의의 그러한 컴퓨터 저장 매체는 컴퓨팅 장치(600)의 일부일 수 있다.
컴퓨팅 장치(600)는 또한 버스/인터페이스 컨트롤러(642)를 통한 다양한 인터페이스 장치(예컨대, 출력 인터페이스, 주변 인터페이스, 및 통신 인터페이스)로부터 기본적인 구성(602)으로의 통신을 용이하게 하기 위한 인터페이스 버스(642)를 포함할 수 있다. 예시적인 출력 장치(642)는 그래픽 처리 유닛(648) 및 오디오 처리 유닛(650)을 포함할 수 있으며, 이는 하나 이상의 A/V 포트(652)를 통하여 디스플레이 또는 스피커와 같은 다양한 외부 장치로 통신하도록 구성될 수 있다. 예시적인 주변 인터페이스(644)는 직렬 인터페이스 컨트롤러(654) 또는 병렬 인터페이스 컨트롤러(656)를 포함할 수 있으며, 이는 하나 이상의 I/O 포트(658)를 통하여 입력 장치(예컨대, 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등) 또는 기타 주변 장치(예컨대, 프린터, 스캐너 등)와 같은 외부 장치와 통신하도록 구성될 수 있다. 예시적인 통신 장치(646)는 네트워크 컨트롤러(660)를 포함하며, 이는 하나 이상의 통신 포트(664)를 통한 네트워크 통신 상에서의 하나 이상의 다른 컴퓨팅 장치(662)와의 통신을 용이하게 하도록 배열될 수 있다.
컴퓨팅 장치(600)는 또한 랩탑 컴퓨터나 랩탑이 아닌 컴퓨터 구성 둘 다를 포함하는 개인 컴퓨터로 구현될 수 있다. 또한, 컴퓨팅 장치(600)는 무선 기지국 또는 기타 무선 시스템 또는 장치의 일부로서 구현될 수 있다.
도 7는 본 개시의 적어도 일부 실시예에 따라, 챗봇 대화가 수행되는 일 예시를 도시한다. 통상의 기술자는 도 7에 도시되는 예시가 단지 설명을 위한 예시일 뿐이며, 본 개시에 따른 특징들이 본 개시의 본질을 벗어나지 않는 범위에서 다양한 형태로 구현될 수 있음을 이해할 것이다.
도 7에 도시된 바와 같이, 챗봇 관리 장치(100)와 같은 컴퓨팅 장치는 사용자에게 영화 예매에 관한 챗봇 메시징 서비스를 제공할 수 있다. 도 7에 도시되지 않았지만, 컴퓨팅 장치의 대화 관리자는 예컨대, 순차적으로 연결되는, 영화 제목에 관한 스테이트 노드 및 영화 시간/영화관에 관한 스테이트 노드를 포함할 수 있다. 컴퓨팅 장치는 사용자로부터 "안녕"이라는 입력 메시지를 수신할 수 있으며, "안녕"이라는 입력 메시지로부터, 사용자가 대화를 시작하기 원한다는 사용자의 의도를 결정할 수 있다. 이러한 의도에 응답하여, 컴퓨팅 장치는 대화 관리자를 실행할 수 있다. 대화 관리자는 영화 제목에 관한 스테이트 노드를 실행할 수 있으며, 컴퓨팅 장치는 메시지(710)에 나타난 바와 같이, 사용자에게 영화 제목을 물어보는 메시지를 출력할 수 있다.
이후, 메시지(720)에 나타난 바와 같이, 컴퓨팅 장치는 사용자로부터 "슈퍼맨을 보고 싶어"라는 입력 메시지를 수신할 수 있다. 컴퓨팅 장치는 "슈퍼맨을 보고 싶어"라는 입력 메시지로부터 "슈퍼맨"이라는 정보를 추출할 수 있으며, 대화 관리자는 "슈퍼맨"이라는 정보에 기초하여, 영화 제목에 관한 스테이트 노드를 실행하여 해당 스테이트 노드에 "슈퍼맨"이라는 정보를 저장할 수 있다. 이후, 대화 관리자는 메시지(730)에 나타난 바와 같이, 순차적인 스테이트 노드의 실행에 있어서, 영화 제목에 관한 스테이트 노드를 스킵하고, 영화 시간/영화관에 관한 스테이트 노드를 실행할 수 있으며, 이러한 실행에 응답하여 컴퓨팅 장치는 사용자에게 영화 시간 및 영화관을 출력하는 한편, 사용자의 선택을 요구할 수 있다.
이후, 메시지(740)에 나타난 바와 같이, 사용자가 영화 시간 및 영화관을 선택하지 않고, "슈퍼맨 말고 배트맨으로 바꿀게"라는 입력 메시지를 입력하는 경우, 컴퓨팅 장치는 수신된 입력 메시지로부터 "배트맨"을 추출하고, 영화를 바꾸기 원한다는 의도를 결정할 수 있다. 대화 관리자는 추출된 "배트맨"이라는 정보에 기초하여 영화 제목에 관한 스테이트 노드를 결정하고, 해당 스테이트 노드에 "슈퍼맨" 대신 "배트맨"을 저장한다. 이후, 대화 관리자는 순차적으로 스테이트 노드들을 실행한다. 대화 관리자는 순차적인 스테이트 노드의 실행에 있어서, 영화 제목에 관한 스테이트 노드의 태스크가 "배트맨"을 저장함으로써 완료되었으므로, 영화 제목에 관한 스테이트 노드를 스킵하고, 영화 시간 및 영화 관한 스테이트 노드를 실행할 수 있다.
청구된 대상은 여기에서 기술된 특정 구현예로 범위가 제한되지 않는다. 예컨대, 일부 구현예는 장치 또는 장치의 조합 상에서 동작하도록 사용될 수 있는 것과 같은 하드웨어로 있을 수 있는 반면, 예컨대, 다른 구현예는 소프트웨어 및/또는 펌웨어로 있을 수 있다. 마찬가지로, 청구된 대상은 이러한 점에서 범위가 제한되지 않지만, 일부 구현예는 신호 베어링 매체, 저장 매체와 같은 하나 이상의 물품을 포함할 수 있다. CD-ROM, 컴퓨터 디스크, 플래시 메모리 등과 같은 이러한 저장 매체는, 예컨대, 컴퓨팅 시스템, 컴퓨팅 플랫폼 또는 기타 시스템과 같은 컴퓨팅 장치에 의하여 실행되면, 예컨대, 앞서 설명된 구현예 중 하나와 같은 청구된 대상에 따라 프로세서의 실행을 야기시킬 수 있는 명령을 저장할 수 있다. 하나의 가능성으로서, 컴퓨팅 장치는 하나 이상의 처리 유닛 또는 프로세서, 디스플레이, 키보드 및/또는 마우스와 같은 하나 이상의 입/출력 장치, 및 정적 랜덤 액세스 메모리, 동적 랜덤 액세스 메모리, 플래시 메모리 및/또는 하드 드라이브와 같은 하나 이상의 메모리를 포함할 수 있다.
시스템의 양상들의 하드웨어 및 소프트웨어 구현 사이에는 구별이 거의 없다; 하드웨어 또는 소프트웨어의 사용은 일반적으로 (그러나 어떤 맥락에서 하드웨어 및 소프트웨어 사이의 선택이 중요할 수 있다는 점에서 항상 그런 것은 아니지만) 비용 대비 효율의 트레이드오프(tradeoff)를 나타내는 설계상 선택(design choice)이다. 본 개시에서 기재된 프로세스 및/또는 시스템 및/또는 다른 기술들이 영향 받을 수 있는 다양한 수단(vehicles)(예를 들어, 하드웨어, 소프트웨어 및/또는 펌웨어)이 있으며, 선호되는 수단은 프로세스 및/또는 시스템 및/또는 다른 기술이 사용되는 맥락(context)에 따라 변경될 것이다. 예를 들어, 구현자가 속도 및 정확성이 가장 중요하다고 결정한다면, 구현자는 주로 하드웨어 및/또는 펌웨어 수단을 선택할 수 있으며, 유연성이 가장 중요하다면, 구현자는 주로 소프트웨어 구현을 선택할 수 있으며; 또는, 다른 대안으로서, 구현자는 하드웨어, 소프트웨어 및/또는 펌웨어의 어떤 결합을 선택할 수 있다.
전술한 상세한 설명은 블록도, 흐름도, 및/또는 예시를 통해 장치 및/또는 프로세스의 다양한 실시예를 설명하였다. 그러한 블록도, 흐름도, 및/또는 예시는 하나 이상의 기능 및/또는 동작을 포함하는 한, 당업자라면 그러한 블록도, 흐름도, 또는 예시 내의 각각의 기능 및/또는 동작은 하드웨어, 소프트웨어, 펌웨어, 또는 그들의 실질적으로 임의의 조합의 넓은 범위에 의해 개별적으로 및/또는 집합적으로 구현될 수 있다는 것이 이해할 것이다. 일 실시예에서, 본 개시에 기재된 대상의 몇몇 부분은 ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), DSP(Digital Signal Processor) 또는 다른 집적의 형태를 통해 구현될 수 있다. 그러나, 당업자라면, 본 개시의 실시예의 일부 양상은, 하나 이상의 컴퓨터 상에 실행되는 하나 이상의 컴퓨터 프로그램(예를 들어, 하나 이상의 컴퓨터 시스템 상에 실행되는 하나 이상의 프로그램), 하나 이상의 프로세서 상에서 실행되는 하나 이상의 프로그램(예를 들어, 하나 이상의 마이크로프로세서 상에서 실행되는 하나 이상의 프로그램), 펌웨어 또는 이들의 실질적으로 임의의 조합으로써, 전체적으로 또는 부분적으로 균등하게 집적 회로에서 구현될 수 있다는 점, 소프트웨어 및/또는 펌웨어를 위한 코드의 작성 및/또는 회로의 설계는 본 개시에 비추어 당업자의 기술 범위 내라는 점을 알 수 있을 것이다. 또한, 당업자라면, 본 개시의 대상의 매커니즘(mechanism)들이 다양한 형태의 프로그램 제품으로 분배될 수 있음을 이해할 것이며, 본 개시의 대상의 예시는, 분배를 실제로 수행하는데 사용되는 신호 베어링 매체의 특정 유형과 무관하게 적용됨을 이해할 것이다.
특정 예시적 기법이 다양한 방법 및 시스템을 이용하여 여기에서 기술되고 도시되었으나, 청구된 대상에서 벗어나지 않고, 다양한 기타의 수정이 이루어질 수 있고, 등가물이 대체될 수 있음이 당업자에 의해 이해되어야 한다. 추가적으로, 여기에 기술된 중심 개념으로부터 벗어남이 없이 특정 상황을 청구된 대상의 교시로 적응시키도록 많은 수정이 이루어질 수 있다. 따라서, 청구된 대상이 개시된 특정 예시로 제한되지 않으나, 그러한 청구된 대상은 또한 첨부된 청구범위 및 그 균등의 범위 내에 들어가는 모든 구현예를 포함할 수 있음이 의도된다.
Claims (16)
- 컴퓨팅 장치의 제어 하에서 수행되는 챗봇 대화 관리 방법으로서,
사용자로부터 입력 메시지를 수신하는 단계;
상기 입력 메시지로부터 하나 이상의 정보를 추출하는 단계;
상기 추출된 하나 이상의 정보와 연관된 상기 사용자의 의도(intent)를 결정하는 단계;
상기 의도가 결정되는 것에 응답하여, 대화 관리자를 실행하는 단계; 및
상기 대화 관리자로부터 생성된 응답을 수신하는 단계
를 포함하고,
상기 대화 관리자는 순차적으로 연결된 하나 이상의 스테이트 노드 및 상기 하나 이상의 스테이트 노드 각각과 연결되는 리시버 스테이트 노드를 포함하고, 상기 하나 이상의 스테이트 노드 각각은 해당 스테이트 노드가 실행되면, 상기 컴퓨팅 장치로 하여금 해당 스테이트 노드에 대응하는 미리 정해진 태스크를 수행하도록 구성되고,
상기 대화 관리자를 실행하는 단계는,
상기 리시버 스테이트 노드에 의해, 상기 입력 메시지로부터 추출된 하나 이상의 정보 각각에 대응하는 스테이트 노드를 결정하는 단계;
상기 하나 이상의 정보 각각에 기초하여, 상기 리시버 스테이트 노드에 의해 결정된 스테이트 노드에서, 해당 스테이트 노드에 대응하는 상기 미리 정해진 태스크를 수행하는 단계; 및
상기 리시버 스테이트 노드를 통하여 미리 정해진 태스크의 수행이 완료된 스테이트 노드를 스킵(skip)하면서, 순차적으로 연결된 상기 하나 이상의 스테이트 노드 중 최초의 스테이트 노드로부터 상기 하나 이상의 스테이트 노드를 순차적으로 실행하는 단계
를 포함하고,
상기 입력 메시지로부터 하나 이상의 정보를 추출하는 단계는 상기 입력 메시지를 파싱(parsing)하는 단계를 포함하는 것인, 챗봇 대화 관리 방법. - 삭제
- 제1항에 있어서,
상기 대화 관리자를 실행하는 단계는,
상기 결정된 사용자의 의도가 새로운 대화에 대한 요구를 포함하는 경우, 상기 하나 이상의 스테이트 노드 중 적어도 하나 내에 저장된 정보를 초기화 하는 단계를 포함하는 것인, 챗봇 대화 관리 방법. - 제1항에 있어서,
상기 대화 관리자를 실행하는 단계는,
상기 결정된 사용자의 의도가 새로운 대화에 대한 요구를 포함하지 않는 경우, 상기 하나 이상의 스테이트 노드 중 적어도 하나 내에 저장된 정보를 유지하도록 결정하는 단계를 포함하는 것인, 챗봇 대화 관리 방법. - 제1항에 있어서,
상기 미리 정해진 태스크는 각각, 이전에 실행된 스테이트 노드에 저장된 정보에 기초하여 수행되는 태스크, 적어도 하나의 서브 태스크를 포함하는 하나 이상의 서브 노드를 실행하는 태스크, 상기 사용자 또는 서버로 정보를 요청하는 태스크, 정보를 저장하는 태스크, 적어도 하나의 연산을 수행하는 태스크 또는 적어도 하나의 동작을 수행하는 태스크 중 적어도 하나를 포함하는 것인, 챗봇 대화 관리 방법. - 제1항에 있어서,
상기 수신된 응답에 기초하여 출력 메시지를 생성하는 단계; 및
상기 생성된 출력 메시지를 상기 사용자에게 출력하는 단계
를 더 포함하는 챗봇 대화 관리 방법. - 챗봇 대화 관리 장치로서,
사용자로부터 입력 메시지를 수신하도록 구성되는 챗봇 모듈;
상기 입력 메시지로부터 하나 이상의 정보를 추출하고 하나 이상의 정보와 연관된 사용자의 의도(intent)를 결정하도록 구성된 메시지 분석 모듈; 및
상기 메시지 분석 모듈 및 챗봇 모듈에 동작 가능하게 연결되고, 순차적으로 연결된 하나 이상의 스테이트 노드 및 상기 하나 이상의 스테이트 노드 각각과 연결되는 리시버 스테이트 노드를 포함하는 대화 관리자
를 포함하고,
상기 하나 이상의 스테이트 노드 각각은 해당 스테이트 노드가 실행되면, 미리 정해진 태스크를 수행하도록 구성되고,
상기 리시버 스테이트 노드는,
상기 입력 메시지로부터 추출된 하나 이상의 정보 각각에 대응하는 스테이트 노드를 결정하며; 그리고
상기 하나 이상의 정보 각각에 기초하여, 상기 리시버 스테이트 노드에 의해 결정된 스테이트 노드로 하여금 대응하는 미리 정해진 태스크를 수행하도록 구성되고,
상기 대화 관리자는,
상기 메시지 분석 모듈에 의해 결정된 의도에 기초하여, 상기 리시버 스테이트 노드를 통하여 미리 정해진 태스크의 수행이 완료된 스테이트 노드를 스킵(skip)하면서, 순차적으로 연결된 상기 하나 이상의 스테이트 노드 중 최초의 스테이트 노드로부터 상기 하나 이상의 스테이트 노드를 순차적으로 실행하도록 구성되는 것인, 챗봇 대화 관리 장치. - 제7항에 있어서,
상기 챗봇 모듈은,
상기 대화 관리자로부터 응답을 수신하고,
상기 수신된 응답에 기초하여, 출력 메시지를 생성하며,
상기 생성된 출력 메시지를 상기 사용자에게 출력하도록 더 구성되는 것인, 챗봇 대화 관리 장치. - 제7항에 있어서,
상기 메시지 분석 모듈은 상기 입력 메시지를 파싱(parsing)하도록 구성되는 메시지 파서(message parser)를 포함하는, 챗봇 대화 관리 장치 - 제7항에 있어서,
상기 메시지 분석 모듈이 상기 사용자가 새로운 대화에 대한 요구를 포함하는 의도를 결정하는 경우, 상기 대화 관리자는 상기 하나 이상의 스테이트 노드 중 적어도 하나 내에 저장된 정보를 초기화 하도록 구성되는 것인, 챗봇 대화 관리 장치. - 제7항에 있어서,
상기 메시지 분석 모듈이 상기 사용자가 새로운 대화에 대한 요구를 포함하지 않는 의도를 결정하는 경우, 상기 대화 관리자는 상기 하나 이상의 스테이트 노드 중 적어도 하나 내에 저장된 정보를 유지하도록 구성되는 것인, 챗봇 대화 관리 장치. - 제7항에 있어서,
상기 미리 정해진 태스크는 각각, 이전에 실행된 스테이트 노드에 저장된 정보에 기초하여 수행되는 태스크, 적어도 하나의 서브 태스크를 포함하는 하나 이상의 서브 노드를 실행하는 태스크, 상기 사용자 또는 서버로 정보를 요청하는 태스크, 정보를 저장하는 태스크, 적어도 하나의 연산을 수행하는 태스크 또는 적어도 하나의 동작을 수행하는 태스크 중 적어도 하나를 포함하는 것인, 챗봇 대화 관리 장치. - 컴퓨팅 장치에서 실행되며, 사용자와의 챗봇 대화를 관리하기 위한 하나 이상의 컴퓨터 실행가능 명령어가 저장된 컴퓨터 판독가능 저장 매체로서, 상기 하나 이상의 컴퓨터 실행가능 명령어가 실행되면, 상기 컴퓨터로 하여금,
상기 사용자로부터 입력 메시지를 수신하는 동작;
상기 입력 메시지로부터 하나 이상의 정보를 추출하는 동작;
상기 추출된 하나 이상의 정보와 연관된 상기 사용자의 의도(intent)를 결정하는 동작;
상기 의도가 결정되는 것에 응답하여, 대화 관리자를 실행하는 동작; 및
상기 대화 관리자로부터 생성된 응답을 수신하는 동작
을 포함하는 동작들을 수행하도록 하고,
상기 대화 관리자는 순차적으로 연결된 하나 이상의 스테이트 노드 및 상기 하나 이상의 스테이트 노드 각각과 연결되는 리시버 스테이트 노드를 포함하고, 상기 하나 이상의 스테이트 노드 각각은 해당 스테이트 노드가 실행되면, 상기 컴퓨팅 장치로 하여금 해당 스테이트 노드에 대응하는 미리 정해진 태스크를 수행하도록 구성되고,
상기 대화 관리자는, 실행되는 경우,
상기 리시버 스테이트 노드에 의해, 상기 입력 메시지로부터 추출된 하나 이상의 정보 각각에 대응하는 스테이트 노드를 결정하고;
상기 하나 이상의 정보 각각에 기초하여, 상기 리시버 스테이트 노드에 의해 결정된 스테이트 노드에서 해당 스테이트 노드에 대응하는 상기 미리 정해진 태스크를 수행하며;
상기 리시버 스테이트 노드를 통하여 미리 정해진 태스크의 수행이 완료된 스테이트 노드를 스킵(skip)하면서, 순차적으로 연결된 상기 하나 이상의 스테이트 노드 중 최초의 스테이트 노드로부터 상기 하나 이상의 스테이트 노드를 순차적으로 수행하도록 구성되는 것인, 컴퓨터 판독가능 저장 매체. - 제13항에 있어서,
상기 입력 메시지로부터 하나 이상의 정보를 추출하는 동작은 상기 입력 메시지를 파싱(parsing)하고 파싱된 메시지로부터 상기 하나 이상의 정보를 추출하는 동작을 포함하는 것인, 컴퓨터 판독가능 저장 매체. - 제13항에 있어서,
상기 미리 정해진 태스크는 각각, 이전에 실행된 스테이트 노드에 저장된 정보에 기초하여 수행되는 태스크, 적어도 하나의 서브 태스크를 포함하는 하나 이상의 서브 노드를 실행하는 태스크, 상기 사용자 또는 서버로 정보를 요청하는 태스크, 정보를 저장하는 태스크, 적어도 하나의 연산을 수행하는 태스크 또는 적어도 하나의 동작을 수행하는 태스크 중 적어도 하나를 포함하는 것인, 컴퓨터 판독가능 저장 매체. - 제13항에 있어서,
상기 동작들은,
상기 수신된 응답에 기초하여 출력 메시지를 생성하는 동작; 및
상기 생성된 출력 메시지를 상기 사용자에게 출력하는 동작을 포함하는 것인, 컴퓨터 판독가능 저장 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180003274A KR101917325B1 (ko) | 2018-01-10 | 2018-01-10 | 리시버 스테이트를 이용한 챗봇 대화 관리 장치, 방법 및 컴퓨터 판독가능 저장매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180003274A KR101917325B1 (ko) | 2018-01-10 | 2018-01-10 | 리시버 스테이트를 이용한 챗봇 대화 관리 장치, 방법 및 컴퓨터 판독가능 저장매체 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101917325B1 true KR101917325B1 (ko) | 2018-11-13 |
Family
ID=64397755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180003274A KR101917325B1 (ko) | 2018-01-10 | 2018-01-10 | 리시버 스테이트를 이용한 챗봇 대화 관리 장치, 방법 및 컴퓨터 판독가능 저장매체 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101917325B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114356178A (zh) * | 2022-01-12 | 2022-04-15 | 平安科技(深圳)有限公司 | 交互内容的配置方法、装置、终端设备及存储介质 |
CN115955481A (zh) * | 2022-12-12 | 2023-04-11 | 支付宝(杭州)信息技术有限公司 | 应急响应方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016197227A (ja) * | 2015-04-02 | 2016-11-24 | パナソニックIpマネジメント株式会社 | 対話方法、対話プログラム及び対話システム |
-
2018
- 2018-01-10 KR KR1020180003274A patent/KR101917325B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016197227A (ja) * | 2015-04-02 | 2016-11-24 | パナソニックIpマネジメント株式会社 | 対話方法、対話プログラム及び対話システム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114356178A (zh) * | 2022-01-12 | 2022-04-15 | 平安科技(深圳)有限公司 | 交互内容的配置方法、装置、终端设备及存储介质 |
CN114356178B (zh) * | 2022-01-12 | 2024-01-19 | 平安科技(深圳)有限公司 | 交互内容的配置方法、装置、终端设备及存储介质 |
CN115955481A (zh) * | 2022-12-12 | 2023-04-11 | 支付宝(杭州)信息技术有限公司 | 应急响应方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102494643B1 (ko) | 적절한 에이전트의 자동화된 어시스턴트 호출 | |
US10528674B2 (en) | Cognitive agent for capturing referential information during conversation muting | |
KR20200015616A (ko) | 컨퍼런스 기능을 갖는 자동화된 어시스턴트 | |
US10372818B2 (en) | User based text prediction | |
US10574601B2 (en) | Managing and displaying online messages along timelines | |
US20220207392A1 (en) | Generating summary and next actions in real-time for multiple users from interaction records in natural language | |
US11366818B2 (en) | Context-aware dynamic content assist | |
US20200177529A1 (en) | Contextually correlated live chat comments in a live stream with mobile notifications | |
US11854533B2 (en) | Speaker awareness using speaker dependent speech model(s) | |
WO2018039009A1 (en) | Systems and methods for artifical intelligence voice evolution | |
US20190026346A1 (en) | Mining procedure dialogs from source content | |
US20210081495A1 (en) | Document content classification and alteration | |
KR101917325B1 (ko) | 리시버 스테이트를 이용한 챗봇 대화 관리 장치, 방법 및 컴퓨터 판독가능 저장매체 | |
CN110245334B (zh) | 用于输出信息的方法和装置 | |
US11288459B2 (en) | Adapting conversation flow based on cognitive interaction | |
CN114422468A (zh) | 消息处理方法、装置、终端及存储介质 | |
US11386056B2 (en) | Duplicate multimedia entity identification and processing | |
US20190349324A1 (en) | Providing rich preview of communication in communication summary | |
US11960841B2 (en) | Incomplete problem description determination for virtual assistant user input handling | |
US20190206385A1 (en) | Vocal representation of communication messages | |
US11966562B2 (en) | Generating natural languages interface from graphic user interfaces | |
US11397857B2 (en) | Methods and systems for managing chatbots with respect to rare entities | |
US11189290B2 (en) | Interactive selection and modification | |
US20230419047A1 (en) | Dynamic meeting attendee introduction generation and presentation | |
US20200364195A1 (en) | Identifying Duplication Multimedia Entities |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |