KR20050037791A - Cca 구조를 이용한 다매체 정보제공 대화 에이전트시스템 및 방법 - Google Patents

Cca 구조를 이용한 다매체 정보제공 대화 에이전트시스템 및 방법 Download PDF

Info

Publication number
KR20050037791A
KR20050037791A KR1020030073059A KR20030073059A KR20050037791A KR 20050037791 A KR20050037791 A KR 20050037791A KR 1020030073059 A KR1020030073059 A KR 1020030073059A KR 20030073059 A KR20030073059 A KR 20030073059A KR 20050037791 A KR20050037791 A KR 20050037791A
Authority
KR
South Korea
Prior art keywords
agent
channel
sentence
language processing
information
Prior art date
Application number
KR1020030073059A
Other languages
English (en)
Other versions
KR100571443B1 (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 KR1020030073059A priority Critical patent/KR100571443B1/ko
Publication of KR20050037791A publication Critical patent/KR20050037791A/ko
Application granted granted Critical
Publication of KR100571443B1 publication Critical patent/KR100571443B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/50Business processes related to the communications industry

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Primary Health Care (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 CCA(Coordinated Communication Agent) 구조를 이용한 다매체 정보제공 대화 에이전트 시스템으로서, 채널 관리 서버가 단말기를 이용하는 사용자가 웹 또는 인터넷 메신저를 통해 입력한 사용자 입력 문자에 대한 정보를 요구하고 받을 수 있도록 입출력 채널과 통신 세션을 관리하고, 시스템 연결 서버가 외부의 정보 검색 시스템 또는 데이터베이스 관리 시스템에 접근하여 사용자가 원하는 정보를 얻어오고, 언어 처리 서버로부터 전송된 명령어를 실행하고 그 결과를 자연어 응답과 결합하여 사용자에게 전달하며, 언어 처리 서버가 사용자가 입력한 사용자 입력 문장을 분석하여 자연어 응답과 상기 시스템 연결 서버가 수행할 명령어를 생성한다. 본 발명에 의하면, 독립된 역할을 하는 여러 개의 에이전트 시스템을 통합함으로써, 정보 제공 매체에 상관없이 사용자가 자연어로 시스템 내/외부 정보를 쉽게 접근하고 빠르게 찾을 수 있다.

Description

CCA 구조를 이용한 다매체 정보제공 대화 에이전트 시스템 및 방법{MULTI-MEDIA INFORMATION PROVISION DIALOGUE AGENT SYSTEM AND METHOD USING COORDINATED COMMUNICATIONG AGENT STRUCTURE}
본 발명은 CCA 구조를 이용한 다매체 정보제공 대화 에이전트 시스템 및 방법에 관한 것이며, 보다 상세하게는 독립적으로 구성된 여러 개의 에이전트 시스템의 역할 분담을 통하여 정보 제공 매체에 상관없이 자연어 대화로 사용자가 원하는 정보에 쉽게 접근할 수 있도록 도와주는 다매체 정보제공 대화 에이전트 시스템 및 방법에 관한 것이다.
최근에는 웹사이트 상에서 무수한 웹문서 정보를 처리하여 사용자의 요구에 해당하는 정보만을 추출하여 사용자에게 제공하여 주는 정보 검색 시스템이 널리 이용되고 있다. 또한, 단어 형식이 아닌 일상적인 자연어로도 인터넷 검색이 가능한 인터넷 정보 검색 시스템도 널리 제공되고 있다.
그러나, 종래의 대화 에이전트 시스템들은 대용량의 데이터베이스에 예상되는 질문과 답변을 저장해 두고, 사용자 입력 문장과 매칭되는 질문을 데이터베이스에서 검색하여 그에 대한 답변을 제시하는 것이다. 현재 심심이(http://www.simsimi.pe.kr/simsimi/index.php)에서 상기와 같은 서비스를 하고 있다. 그러나, 종래의 방법에서는 언어 처리를 하지 않기 때문에 '텔레비전 주세요.'와 'V 주세요'를 다른 문자열로 인식하기 때문에, '텔레비전 주세요.' 라는 질문과 이에 대한 답변이 데이터베이스에 있어도, 사용자가 'TV 주세요'라고 하면 답변을 제시해 주지 못하는 문제점이 있다.
또한, 종래의 대화 에이전트 시스템은 문맥을 유지할 수 없는 1문 1답형 대화만을 처리하기 때문에, 물건 구입, 제품 안내, 회사 소개 등과 같은 목적 지향의 대화를 처리할 수 없는 문제점이 있다.
또한, 종래의 대화 에이전트 시스템은 데이터베이스 검색을 통한 단순 채팅, 패턴 매칭을 통한 1문 1답과 같이 1가지 방법을 이용하여 답변을 생성하였기 때문에, 대화 영역에 따라 단순 채팅이 유리한 경우가 있고 패턴 매칭이 유리한 경우가 있어, 다양한 대화를 처리할 수 없는 문제점이 있다.
더욱이, 종래의 대화 에이전트 시스템은 응답을 생성하는 소스가 미리 만들어져 있는 문자열로 한정되는 문제점이 있다.
본 발명은 상기 문제점을 해결하기 위하여 행해진 것으로, 독립된 역할을 하는 여러 개의 에이전트 시스템을 통합하여 정보 제공 매체에 상관없이 사용자가 자연어로 원하는 정보에 쉽게 접근할 수 있는 다매체 정보제공 대화 에이전트 시스템 및 방법을 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위하여, 본 발명은 CCA(Coordinated Communication Agent) 구조를 이용한 다매체 정보제공 대화 에이전트 시스템으로서, 단말기 사용자가 웹 또는 인터넷 메신저를 통해 입력한 사용자 입력 문장에 대한 정보를 요구하고 받을 수 있도록 입출력 채널과 통신 세션을 관리하는 채널 관리 서버; 외부의 정보 검색 시스템 또는 데이터베이스 관리 시스템에 접근하여 사용자가 원하는 정보를 얻어오고, 언어 처리 서버로부터 전송된 명령어를 실행하고 그 결과를 자연어 응답과 결합하여 사용자에게 전달하는 시스템 연결 서버; 및 상기 사용자 입력 문장을 분석하여 자연어 응답과 상기 시스템 연결 서버가 수행할 명령어를 생성하는 언어 처리 서버를 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 시스템에 있어서, 상기 채널 관리 서버와 상기 시스템 연결 서버는 WAS(Web Application Server) 프로그램으로 구현되는 것을 특징으로 한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 시스템에 있어서, 상기 언어 처리 서버는 독립적인 데몬 프로그램으로 구현되는 것을 특징으로 한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 시스템에 있어서, 상기 채널 관리 서버 및 상기 시스템 연결 서버와, 상기 언어 처리 서버는 TCP/IP 프로토콜을 통해 정보를 주고받는 것을 특징으로 한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 시스템에 있어서, 상기 채널 관리 서버는 상기 사용자 입력 문장이 수신될 채널을 식별하여 식별된 채널에 해당되는 에이전트를 호출하며, 세션 번호와 채널 구분자를 할당하고, 상기 할당된 세션 번호 및 채널 구분자를 저장하는 채널 관리 서버 매니저; 상기 사용자 입력 문장이 수신되는 채널이 웹 채널인 경우, 상기 웹 채널을 개방하고 관리하는 웹 채널 에이전트; 및 상기 사용자 입력 문장이 수신되는 채널이 IM 채널인 경우, 상기 IM 채널을 개방하고 관리하는 IM 채널 에이전트를 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 시스템에 있어서, 상기 채널 관리 매니저는 상기 웹 채널 에이전트 및 상기 IM 채널 에이전트와 함수 호출을 통해 정보를 주고 받는 것을 특징으로 한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 시스템에 있어서, 상기 시스템 연결 서버는 상기 언어 처리 서버를 호출하여 상기 언어 처리 서버로부터 전송된 명령어를 파싱하고, 해당 에이전트를 호출하여 연동된 외부 시스템로부터 전송된 자연어 응답을 상기 명령어와 결합하여 사용자에게 전달할 시스템 응답을 생성하는 시스템 연결 서버 매니저; 외부 IR 시스템과 연동하여 검색 요청 질의어를 상기 외부 IR 시스템으로 전송하고, 상기 외부 IR 시스템으로부터 전송된 검색 결과를 파싱하여 상기 시스템 연결 서버 매니저로 전달하는 IR 에이전트; 및 외부 DB 시스템과 연동하여 SQL 질의어를 상기 외부 DB 시스템으로 전송하고, 상기 외부 DB 시스템으로부터 전송된 DB 검색 결과를 파싱하여 상기 시스템 연결 서버 매니저로 전달하는 DB 에이전트를 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 시스템에 있어서, 상기 시스템 연결 서버 매니저는 상기 IR 에이전트 및 상기 DB 에이전트와 함수 호출을 통해 정보를 주고 받는 것을 특징으로 한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 시스템에 있어서, 상기 언어 처리 서버는 상기 언어 처리 서버내에 있는 에이전트간의 우선 순위를 결정하고, 상기 에이전트로부터 전송된 명령어 문자열을 결합하여 상기 시스템 연결 서버로 전송하는 언어 처리 서버 매니저; 특별한 목적이 없는 잡담 대화를 처리하는 Chat 에이전트; 1문 1답형 질문을 처리하는 QA 에이전트; 및 문맥 유지가 필요한 목적 지향의 대화를 처리하는 다이얼로그 에이전트를 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 시스템에 있어서, 상기 언어 처리 서버 매니저는 상기 Chat 에이전트, 상기 QA 에이전트 및 다이얼로그 에이전트와 함수 호출을 통해 정보를 주고 받는 것을 특징으로 한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 시스템에 있어서, 상기 언어 처리 서버 매니저는 라우팅 패턴, 점유 정보 및 키워드 점수를 이용하여 상기 에이전트간의 우선 순위를 결정한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 시스템에 있어서, 상기 라우팅 패턴은 사람에 의해 직접 기술된 렉시코-신텍틱 패턴을 이용한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 시스템에 있어서, 상기 키워드 점수는 코사인 유사도를 이용하여 점수화하는 것을 특징으로 한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 시스템에 있어서, 상기 Chat 에이전트는 일반화 방법을 통해 상기 사용자 입력 문장을 처리하는 채팅 모듈; 및 예외처리 방법을 통해 상기 사용자 입력 문장을 처리하는 예외처리 모듈을 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 시스템에 있어서, 상기 일반화 방법은 띄어쓰기와 문장부호의 다양성을 일반화시키고, 문장내에서 변화되지 않은 형태소를 가지고 문장을 표현하며 문장에서 체언들과 본용언을 가지고 문자를 표현하는 것을 특징으로 한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 시스템에 있어서, 상기 채팅 모듈은 특정 주제에 특화된 대화의 오토마타를 활성화시키는 부대화 채팅 모듈; 질의 응답 쌍의 종류를 규정하고 각 종류마다 다른 처리를 하는 코드 기반 채팅 모듈; 상기 코드 기반 채팅 모듈에서 동일한 코드를 가지는 발화가 반복되어 나오는 경우 반복의 정도에 따라 다른 수준의 응답을 생성하는 중복 발화 채팅 모듈; 및 코드로 정리되기 어렵거나 모호한 경우의 채팅들을 각각 질의응답 단위로 모아두고 입력 발화나 그 일반화된 형태가 미리 구축된 발화와 일치하는 경우 그것에 대응하는 응답을 전달하는 단순 채팅 모듈을 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 시스템에 있어서, 상기 예외처리 모듈은 문장에 일부로 표현될 수 있는 내용들을 정규 표현 방법을 사용하여 기술하고, 문장이 상기 내용을 포함하는 경우 일반적인 반화를 생성하는 구 기반 채팅 모듈; 의미 정보를 갖는 단어 또는 특정 형태소 태그를 갖는 단어를 기반으로 문장을 처리하는 의미 단어 기반 채팅 모듈; 자동으로 생성될 수 있는 형태소 정보를 이용하여 문장을 처리하는 형태소 기반 채팅 모듈; 및 사용자의 발화에 대해 응답이 없는 경우 임의의 문장을 발화시키는 임의 문장 유도 발화 모듈을 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 시스템에 있어서, 상기 QA 에이전트는 입력된 문장을 분석하여 명령어 문자열을 생성하는 패턴 매처; 입력된 문장으로부터 미리 정의해 놓은 의미 카테고리에 해당되는 문자열을 찾아 의미 코드를 할당하는 개체명 인식기; 및 단어의 의미 범주를 포함하는 의미 범주 사전을 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 시스템에 있어서, 상기 다이얼로그 에이전트는 렉시코-신텍틱 패턴에 근거하여 문장에 내포된 행위를 분석하는 화행 분석을 행하는 화행 분석기; 렉시코-신텍틱 패턴에 근거하여 대화 참여자가 행한 발화가 대화 영역 중에 어떤 부분에 관심이 있는지를 결정하는 초첨 분석을 행하는 초점 분석기; 입력된 문장으로부터 미리 정의해 놓은 의미 카테고리에 해당되는 문자열을 찾아 의미 코드를 할당하는 개체명 인식기; 렉시코-신텍틱 패턴에 근거하여 액션 매칭을 행하는 액션 매처; 특정 영역에서 대화를 통해 얻는 정보의 리스트를 폼 형태로 표현하는 영역 폼; 및 현재 화행과 문맥적으로 짝을 이루는지를 검사하기 위한 이전 화행을 저장하는 담화 스택을 포함한다.
더욱이, 본 발명은 CCA(Coordinated Communication Agent) 구조를 이용한 다매체 정보제공 대화 에이전트 방법으로서, 채널 관리 서버가, 컴퓨터 등의 단말기를 이용하는 사용자가 웹 또는 인터넷 메신저를 통해 입력한 사용자 입력 문자에 대한 정보를 요구하고 받을 수 있도록 입출력 채널과 통신 세션을 관리하는 단계; 시스템 연결 서버가, 외부의 정보 검색 시스템 또는 데이터베이스 관리 시스템에 접근하여 사용자가 원하는 정보를 얻어오고, 언어 처리 서버로부터 전송된 명령어를 실행하고 그 결과를 자연어 응답과 결합하여 사용자에게 전달하는 단계; 및 언어 처리 서버가, 사용자가 입력한 사용자 입력 문장을 분석하여 자연어 응답과 상기 시스템 연결 서버가 수행할 명령어를 생성하는 단계를 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 채널 관리 서버와 상기 시스템 연결 서버는 WAS 프로그램으로 구현되는 것을 특징으로 한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 언어 처리 서버는 독립적인 데몬 프로그램으로 구현되는 것을 특징으로 한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 채널 관리 서버 및 상기 시스템 연결 서버와, 상기 언어 처리 서버는 TCP/IP 프로토콜을 통해 정보를 주고받는 것을 특징으로 한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 채널 관리 서버가 입출력 채널과 통신 세션을 관리하는 단계는, 채널 관리 서버 매니저가, 상기 사용자 입력 문장이 수신될 채널을 식별하여 식별된 채널에 해당되는 에이전트를 호출하고, 세션 번호와 채널 구분자를 할당하며, 상기 할당된 세션 번호 및 채널 구분자를 저장하는 단계; 상기 사용자 입력 문장이 수신되는 채널이 웹 채널인 경우, 웹 채널 에이전트가 상기 웹 채널을 개방하고 관리하는 단계; 및 상기 사용자 입력 문장이 수신되는 채널이 IM 채널인 경우, IM 채널 에이전트가 상기 IM 채널을 개방하고 관리하는 단계를 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 에이전트를 할당하고 세션 번호 및 채널 구분자를 할당 및 저장하는 단계는, 상기 관리 서버 매니저가, 사용자 입력 문장이 수신되는 채널을 식별하고 상기 식별된 채널에 해당되는 에이전트를 호출하는 단계; 상기 채널 관리 서버 매니저가 해당 채널을 통해 상기 사용자 입력 문장을 수신하는 단계; 상기 채널 관리 서버 매니저가 세션 번호를 할당하고, 할당된 세션 번호를 저장하는 단계; 상기 채널 관리 서버 매니저가 채널 구분자를 할당하고, 할당된 채널 구분자를 저장하는 단계; 상기 채널 관리 서버 매니저가 상기 할당된 세션 번호와 함께 수신된 상기 사용자 입력 문장을 상기 시스템 연결 서버로 전달하는 단계; 상기 채널 관리 서버 매니저가 상기 시스템 연결 서버로부터 전송된 세션 번호가 포함된 시스템 출력을 수신하는 단계; 상기 채널 관리 서버 매니저가 상기 수신된 세션 번호를 이용하여 채널 구분자를 식별하는 단계; 및 상기 채널 관리 서버 매니저가 상기 식별된 채널 구분자를 이용하여 해당 채널 에이전트를 호출하고, 해당 채널을 통해 상기 시스템 출력을 사용자에게 전달하는 단계를 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 채널 관리 서버 매니저는 상기 웹 채널 에이전트 및 상기 IM 채널 에이전와 함수 호출을 통해 정보를 주고 받는 것을 특징으로 한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 시스템 출력은 상기 사용자 입력 문장에 대한 응답 또는 공지 사항인 것을 특징으로 한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 시스템 연결 서버가 외부 시스템으로 명령어를 전달하고 결과를 수신하여 적당한 시스템 출력을 생성하는 단계는, 시스템 연결 서버 매니저가, 상기 언어 처리 서버로부터 전송된 명령어 문자열을 수신하는 단계; 상기 시스템 연결 서버 매니저가 상기 수신된 명령어를 파싱하여, 연동할 에이전트에 해당되는 질의어를 생성하는 단계; 해당 에이전트가 외부 시스템과 연동하도록, 상기 시스템 연결 서버 매니저가 연동할 에이전트를 호출하는 단계; 상기 시스템 연결 서버 매니저가 각 에이전트로부터 전달된 결과와 언어 처리 서버로부터 전달된 자연어 응답을 결합하여 사용자에게 전달할 시스템 응답을 생성하는 단계; 및 상기 시스템 연결 서버 매니저가 상기 생성된 시스템 응답을 채널 관리 서버로 전달하는 단계를 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 질의어는 검색 요청 질의어 또는 SQL 질의어인 것을 특징으로 한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 시스템 연결 서버 매니저가 연동할 에이전트에 해당되는 질의어를 생성하는 단계에서, 상기 연동할 에이전트가 IR 에이전트인 경우에는, 상기 IR 에이전트가 상기 시스템 연결 서버 매니저로부터 생성된 검색 요청 질의어를 수신하는 단계; 상기 IR 에이전트가 외부 IR 시스템과 연동하는 단계; 상기 IR 에이전트가 상기 검색 요청 질의어를 상기 외부 IR 시스템으로 전송하는 단계; 상기 IR 에이전트가 상기 외부 IR 시스템으로부터 검색 결과를 수신하는 단계; 및 상기 IR 에이전트가 상기 외부 IR 시스템으로부터 수신된 검색 결과를 파싱하여 상기 시스템 연결 서버 매니저로 전달하는 단계를 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 시스템 연결 서버 매니저가 연동할 에이전트에 해당되는 질의어를 생성하는 단계에서, 상기 연동할 에이전트가 DB 에이전트인 경우에는, 상기 DB 에이전트가 상기 시스템 연결 서버 매니저로부터 생성된 SQL 질의어를 수신하는 단계; 상기 DB 에이전트가 외부 DB 시스템과 연동하는 단계; 상기 DB 에이전트가 상기 SQL 질의어를 상기 연동된 외부 DB 시스템으로 전송하는 단계; 상기 DB 에이전트가 상기 외부 DB 시스템으로부터 DB 검색 결과를 수신하는 단계; 및 상기 DB 에이전트가 상기 외부 DB 시스템으로부터 수신한 검색 결과를 파싱하여 상기 시스템 연결 서버 매니저로 전달하는 단계를 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 시스템 연결 서버 매니저는 상기 IR 에이전트 및 상기 DB 에이전트와 함수 호출을 통해 정보를 주고 받는 것을 특징으로 한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 언어 처리 서버가 사용자 입력 문장을 분석하여 자연어 응답과 상기 시스템 연결 서버가 수행할 명령어를 생성하는 단계는, 언어 처리 서버 매니저가 상기 시스템 연결 서버로부터 전송된 사용자 입력 문장을 수신하는 단계; 상기 언어 처리 서버 매니저가 상기 언어 처리 서버 내에 있는 에이전트간의 우선 순위를 결정하는 단계; 상기 언어 처리 서버 매니저가 우순 순위별 에이전트를 호출하는 단계; 상기 호출된 에이전트가 실행되는 단계; 상기 언어 처리 서버 매니저가 각 에이전트로부터 명령어 문자열을 수신하여 결합하는 단계; 및 상기 언어 처리 서버 매니저가 상기 결합된 명령어 문자열을 상기 시스템 연결 서버로 전달하는 단계를 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 언어 처리 서버 매니저가 상기 언어 처리 서버 내에 있는 에이전트간의 우선 순위를 결정하는 단계는 라우팅 패턴, 점유 정보 및 키워드 점수를 이용하여 상기 에이전트간의 우선 순위를 결정하는 것을 특징으로 한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 라우팅 패턴은 사람에 의해 직접 기술된 렉시코-신텍틱 패턴을 이용하는 것을 특징으로 한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 키워드 점수는 코사인 유사도를 이용하여 점수화하는 것을 특징으로 한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 호출된 에이전트가 실행되는 단계는, Chat 에이전트가 특별한 목적이 없는 잡담 대화를 처리하는 단계; QA 에이전트가 1문 1답형 질문을 처리하는 단계; 및 다이얼로그 에이전트가 문맥 유지가 필요한 목적 지향의 대화를 처리하는 단계를 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 언어 처리 서버 매니저는 상기 Chat 에이전트, 상기 QA 에이전트 및 상기 다이얼로그 에이전트와 함수 호출을 통해 정보를 주고 받는 것을 특징으로 한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 Chat 에이전트가 특별한 목적이 없는 잡담 대화를 처리하는 단계는, 채팅 모듈이 일반화 방법을 통해 상기 사용자 입력 문장을 처리하는 단계; 및 예외처리 모듈이 예외처리 방법을 통해 상기 사용자 입력 문장을 처리하는 단계를 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 채팅 모듈이 일반화 방법을 통해 상기 사용자 입력 문장을 처리하는 단계는, 부대화 채팅 모듈이 특정 주제에 특화된 대화의 오토마타를 활성화시키는 단계; 코드 기반 채팅 모듈이 질의 응답 쌍의 종류를 규정하고 각 종류마다 다른 처리를 하는 단계; 중복 발화 채팅 모듈이 상기 코드 기반 채팅 모듈에서 동일한 코드를 가지는 발화가 반복되어 나오는 경우 반복의 정도에 따라 다른 수준의 응답을 생성하는 단계; 및 단순 채팅 모듈이 코드로 정리되기 어렵거나 모호한 경우의 채팅들을 각각 질의응답 단위로 모아두고 입력 발화나 그 일반화된 형태가 미리 구축된 발화와 일치하는 경우 그것에 대응하는 응답을 전달하는 단계를 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 예외처리 모듈이 예외처리 방법을 통해 상기 사용자 입력 문장을 처리하는 단계는, 구 기반 채팅 모듈이 문장에 일부로 표현될 수 있는 내용들을 정규 표현 방법을 사용하여 기술하고, 문장이 상기 내용을 포함하는 경우 일반적인 반화를 생성하는 단계; 의미 단어 기반 채팅 모듈이 의미 정보를 갖는 단어 또는 특정 형태소 태그를 갖는 단어를 기반으로 문장을 처리하는 단계; 형태소 기반 채팅 모듈이 자동으로 생성될 수 있는 형태소 정보를 이용하여 문장을 처리하는 단계; 및 임의 문장 유도 발화 모듈이 사용자의 발화에 대해 응답이 없는 경우 임의의 문장을 발화시키는 단계를 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 QA 에이전트가 1문 1답형 질문을 처리하는 단계는, 패턴 매처가 입력 문장과의 매칭을 통해 상기 입력 문장을 분석하고 명령어 문자열을 생성하는 단계; 및 개체명 인식기가 입력된 문장으로부터 미리 정의해 놓은 의미 카테고리에 해당되는 문자열을 찾아 의미 코드를 할당하는 단계를 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 패턴 매처는 렉시코-신텍틱 패턴을 이용하여 상기 입력 문장을 분석하고 명령어 문자열을 생성하는 것을 특징으로 한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 다이얼로그 에이전트가 문맥 유지가 필요한 목적 지향의 대화를 처리하는 단계는, 화행 분석기가 렉시코-신텍틱 패턴에 근거하여 문장에 내포된 행위를 분석하는 화행 분석 단계; 초점 분석기가 렉시코-신텍틱 패턴에 근거하여 대화 참여자가 행한 발화가 대화 영역 중에 어떤 부분에 관심이 있는지를 결정하는 초첨 분석을 행하는 초점 분석 단계; 액션 매처가 렉시코-신텍틱 패턴에 근거하여 액션 매칭을 행하는 단계; 개체명 인식기가 입력된 문장으로부터 미리 정의해 놓은 의미 카테고리에 해당되는 문자열을 찾아 의미 코드를 할당하는 단계; 영역 폼이 특정 영역에서 대화를 통해 얻는 정보의 리스트를 폼 형태로 표현하는 단계; 및 담화 스택이 이전 화행을 현재 화행과 문맥적으로 짝을 이루는지를 검사하는 단계를 포함한다.
또한, 본 발명의 다매체 정보제공 대화 에이전트 방법에 있어서, 상기 담화 스택이 이전 화행을 현재 화행과 문맥적으로 짝을 이루는지를 검사하는 단계는, 상기 담화 스택의 탑에 있는 화행과 문장 패턴을 이용하여 현재 문장의 화행을 결정하는 단계; 상기 담화 스택의 탑에 존재하는 화행과 현재 화행이 문맥적으로 짝을 이루는지 어떤지를 검사하는 단계; 및 상기 화행들이 문맥적으로 짝을 이루면, 상기 스택을 팝하여 탑에 존재하는 화행을 제거하는 단계; 및 상기 화행들이 문맥적으로 짝을 이루지 않으면, 상기 현재 화행을 스택에 푸쉬하는 단계를 포함한다.
이하, 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 독립된 에이전트 시스템들의 역할 분담을 통하여 정보 제공 매체에 상관없이 자연어로 사용자가 원하는 정보에 쉽게 접근할 수 있도록 도와주는 다매체 정보제공 대화 에이전트를 보여주는 블록도이다.
도 1에 있어서, 다매체 정보제공 대화 에이전트 시스템은 웹 애플리케이션 서버(100)와 언어 처리 서버(200)로 이루어지고, 웹 애플리케이션 서버(100)는 채널 관리 서버(110)와 시스템 연결 서버(120)으로 이루어진다.
웹 애플리케이션 서버(100)의 채널 관리 서버(110)는 컴퓨터 등의 단말기를 이용하는 사용자가 웹(WEB) 또는 IM(Instance Messenger; MSN 메신저 또는 버디버디 메신저 등과 같은 일반적인 인터넷 메신저를 통칭함)을 통해 상기 다매체 정보제공 대화 에이전트 시스템로 정보를 요구하고 받을 수 있도록 입출력 채널과 통신 세션(communication session)을 관리하는 역할을 수행하는 것으로, 채널 관리 서버 매니저(111), 웹 채널 에이전트(112) 및 IM 채널 에이전트(113)을 포함한다. 채널 관리 서버(110)에 대해서는 도 3을 참조하여 보다 상세하게 설명한다.
웹 애플리케이션 서버(100)의 시스템 연결 서버(120)는 외부의 정보 검색 시스템(도시하지 않음) 또는 데이터베이스 관리 시스템(DBMS; 도시하지 않음)에 접근하여 사용자가 원하는 정보를 얻어오고, 언어 처리 서버(200)로부터 전송된 명령어를 수행하고 그 결과를 자연어 응답과 결합하여 사용자에게 전달하는 역할을 수행하는 것으로, 시스템 연결 서버 매니저(121), IR 에이전트(122) 및 DB 에이전트(123)를 포함한다. 시스템 연결 서버(120)에 대해서는 도 4 내지 도 6을 참조하여 보다 상세하게 설명한다.
언어 처리 서버(200)는 사용자의 질문을 분석하여 자연어 응답과 시스템 연결 서버(120)가 수행할 명령어를 생성한다. 예를 들면, '적립금 사용방법'이라는 FAQ 정보가 존재하고 정보 검색 시스템(도시하지 않음)을 통해 접근 가능하다고 했을 때, "적립금은 어떻게 사용하나요?"와 같은 질문이 입력되면 언어 처리 서버(200)는 질문의 의미를 파악한다. 그리고 "FAQ에서 다음과 같이 비슷한 문장을 찾았습니다."와 같은 자연어 응답과 함께 시스템 연결 서버(120)로 정보를 검색하라는 명령어를 전달하는 것으로, 언어 처리 서버 매니저(201), Chat 에이전트(202), QA 에이전트(203) 및 다이얼로그 에이전트(204)를 포함한다. 언어 처리 서버(200)에 대해서는 도 7 내지 도 11을 참조하여 보다 상세하게 설명한다.
도 2는 본 발명의 일실시예에 따른 다매체 정보제공 대화 에이전트 시스템을 구성하고 있는 매니저들과 에이전트들 사이에 정보를 주고 받기 위한 통신 방식을 설명하는 설명도이다. 본 실시예의 다매체 정보제공 대화 에이전트 시스템은 도 2에 나타낸 바와 같은 통신 방식에 따라 데이터를 주고 받는다.
웹 애플리케이션 서버(100)의 채널 관리 서버(110) 및 시스템 연결 서버(120)는 WAS(Web Application Server) 프로그램에 의해 JSP나 ASP 형태로 구현되며, 언어 처리 서버(200)는 별개의 독립 프로그램인 데몬(daemon) 형태로 구현된다.
채널 관리 서버(110), 즉 채널 관리 서버 매니저(111)는 웹 또는 IM 채널을 통해 사용자와 통신하고, 웹 애플리케이션 서버(100)와 언어 처리 서버(200)는 TCP/IP 프로토콜을 통해 정보를 주고 받는다. 그리고, 각 서버(100 및 200)내에 존재하는 매니저와 에이전트 사이의 통신은 함수 호출 방법을 따른다.
도 3은 본 발명의 일실시예에 따른 웹 또는 IM(Instance Messenger)을 통해 사용자가 입력한 사용자 입력 문장을 수신하여 시스템 출력을 전달할 수 있도록 관리해 주는 채널 관리 서버의 동작을 보여주는 흐름도이다.
도 3에 있어서, 채널 관리 서버 매니저(도 1을 참조; 111)는 사용자 입력 문장이 수신되는 채널(웹 채널 또는 인터넷 메시지(IM) 채널)을 식별하여(S1100), 식별된 채널에 해당되는 에이전트(웹 채널 에이전트(도 1을 참조; 112) 또는 IM 채널 에이전트(도 1을 참조; 113))를 호출한다(S1110).
단계 S1120에서 해당 에이전트가 채널을 개방(및 관리)하면, 단계 S1130에서 채널 관리 서버 매니저(111)는 해당 채널을 통해 사용자 입력 문장을 수신하게 된다.
단계 S1140에서 채널 관리 서버 매니저(111)는 세션 번호를 할당하고, 할당된 세션 번호를 저장하며, 단계 S1150에서 채널 구분자를 할당하고, 할당된 채널 구분자를 저장한다.
단계 S1160에서 채널 관리 서버 매니저(111)는 할당된 세션 번호와 함께 수신된 사용자 입력 문장을 시스템 연결 서버(도 1을 참조; 120)의 시스템 연결 서버 매니저(도 1을 참조; 121)로 전달한다.
단계 S1170에서 채널 관리 서버 매니저(111)는 시스템 연결 서버 매니저(121)로부터 세션 번호가 포함된 시스템 출력(예를 들면, 사용자 입력 문장에 대한 응답 또는 공지 사항)을 수신한다.
단계 S1180에서 채널 관리 서버 매니저(111)는 시스템 연결 서버 매니저(121)로부터 수신된 세션 번호를 이용하여 채널 구분자를 식별한다.
단계 S1190에서 채널 관리 서버 매니저(111)는 식별된 채널 구분자를 이용하여 해당 채널 에이전트를 호출하고, 단계 S1200에서 해당 채널을 통해 시스템 출력을 사용자에게 전달한다.
이와 같이 함으로써, 채널 관리 서버(110)는 사용자 입력 문장에 대한 응답이나 공지 사항을 알려줘야 할 경우가 생기면, 채널 관리 서버 매니저(111) 저장하고 있는 세션 번호를 이용하여 채널 구분자를 찾고 이 두 정보를 이용하여 목표로 하는 사용자에게 정보를 전달한다. 사용자의 질문에 대한 응답은 질문이 입력될 때 할당한 세션 번호와 채널 구분자를 이용하여 1대 1로 시스템 응답을 전달하는 방식을 따르며, 공지 사항 알림과 같은 것은 시스템 관리자가 미리 정해 놓은 사용자들의 세션 번호와 채널 구분자를 읽어 들여서 정해진 시간에 다수의 사용자에게 메시지를 전달하는 방식을 따른다. 즉, 시스템 관리자가 공지사항을 전달할 사용자들의 아이디, 전달할 메시지, 전달할 시간 등을 미리 특정 데이터베이스(도시하지 않음)에 정해진 형태로 설정해 놓으면, IM 채널 에이전트(113)가 주기적으로 상기 데이터베이스를 조회하다가 정해진 시간에 정해진 사람에게 해당 메시지를 푸쉬한다. 특정인에게 메시지를 전달하는 EMS(이메일 마케팅 시스템)이 상기에서 설명한 방식과 유사하지만, 다른 점은 이메일 채널이 아니라 IM 채널을 이용하는 것이다.
도 4는 본 발명의 일실시예에 따른 외부 시스템(IR 또는 DB)으로 명령어를 전달하고 결과를 수신하여 적당한 시스템 응답을 생성할 때 사용되는 시스템 연결 서버의 동작을 보여주는 흐름도이다.
도 4에 있어서, 시스템 연결 서버 매니저(121)는 TCP/IP 프로토콜을 통해 언어 처리 서버(도 1을 참조; 200)를 호출한 후(S2100), 채널 관리 서버 매니저(111)로부터 전송된 사용자 입력 문장을 언어 처리 서버(200)로 전달한다(S2110).
단계 S2120에서 시스템 연결 서버 매니저(121)는 언어 처리 서버(200)로부터 전송된 언어 처리 결과(즉, 명령어)을 수신한다. 이 때, 언어 처리 서버(200)가 시스템 연결 서버 매니저(121)로 전송하는 명령어의 형태는 다음과 같은 구조를 갖는다.
[#에이전트, 연동 엔진, 질의어, 부가 정보#]
상기 구조에서, '에이전트'는 IR 에이전트(도 1을 참조; 122) 또는 DB 에이전트(도 1을 참조; 123)를 의미하며, '연동 엔진'은 IR 에이전트(122) 또는 DB 에이전트(123)가 연동할 엔진의 이름을 의미한다. '질의어'는 IR 에이전트(122) 또는 DB 에이전트(123) 연동을 위한 검색 질의어를 의미하며, '부가 정보'는 검색 결과를 한정하는 임계값(threshold)이나 개수 등의 정보를 의미한다. 예를 들면, 사용자가 검색을 필요로 하는 질문 "적립금은 어떻게 사용하나요?"를 입력하면, 언어 처리 서버(200)는 다음과 같은 명령어를 시스템 연결 서버 매니저(121)로 전달한다.
[#ir, faq, 적립금은 어떻게 사용하나요?, 3#]
상기 예에서, 'ir'은 연동할 에이전트의 종류가 IR 에이전트(122)라는 것을 의미하며, 'faq'는 연동할 엔진의 이름이 faq라는 것을 의미한다. '적립금은 어떻게 사용하나요?'는 faq 엔진에 넘겨줄 검색 질의어를 의미하며, '3'은 검색 결과를 상위 3개로 한정하라는 의미이다.
단계 S2130에서 시스템 연결 서버 매니저(121)는 수신된 명령어를 파싱하고, 단계 S2140에서 시스템 연결 서버 매니저(121)는 연동할 에이전트에 해당되는 질의어를 생성한다. 예를 들면, 연동할 에이전트가 IR 에이전트(122)인 경우에는 검색 요청 질의어를 생성하고, 연동할 에이전트가 DB 에이전트(123)인 경우에는 SQL 질의어를 생성한다.
단계 S2150에서 시스템 연결 서버 매니저(121)는 연동할 에이전트를 호출하여, 해당 에이전트가 외부 시스템(도시하지 않음)과 연동하게 된다. 이 단계(S350)에 대해서는 도 5 및 도 6을 참조하여 보다 상세하게 설명한다.
단계 S2160에서 시스템 연결 서버 매니저(121)는 각 에이전트(122 및 123)로부터 전달된 결과와 언어 처리 서버(200)로부터 전달된 자연어 응답을 결합하여 사용자에게 전달할 시스템 응답을 생성한다.
단계 S2170에서 시스템 연결 서버 매니저(121)는 생성된 시스템 응답을 채널 관리 서버 매니저(111)로 전달한다.
이와 같이, 시스템 연결 서버 매니저(121)는 사용자 입력 문장을 언어 처리 서버(200)로 전달하고, 언어 처리 서버(200)로부터 전달된 명령어를 해석하여 IR 에이전트(122) 또는 DB 에이전트(123)를 호출하며, 각 에이전트로부터 전달된 결과와 언어 처리 서버(200)로부터 전달된 자연어 응답을 결합하여 사용자에게 전달할 시스템 응답을 생성하게 된다.
도 5는 본 발명의 일실시예에 따른 외부 IR 시스템과 연동하여 조건에 맞는 검색 결과를 가져오는 IR 에이전트의 동작을 보여주는 흐름도이다.
도 5에 있어서, IR 에이전트(122)는 시스템 연결 서버 매니저(121)로부터 생성된 검색 요청 질의어를 수신하면(S2200), IR 에이전트(122)는 외부 IR 시스템과 연동하게 된다(S2210).
단계 S2220에서 IR 에이전트(122)는 검색 요청 질의어를 연동된 외부 IR 시스템으로 전송하고, 단계 S2230에서 외부 IR 시스템으로부터 검색 결과를 수신한다.
단계 S2240에서 IR 에이전트(122)는 외부 IR 시스템으로부터 수신된 검색 결과를 파싱하고, 이를 시스템 연결 서버 매니저(121)로 전달한다(S2250).
이와 같이, IR 에이전트(122)는 메타 정보검색 엔진(meta information retrieval engine) 등와 같이 정의된 규칙에 따라 외부 IR 시스템(즉, 외부 검색 엔진)으로 검색 질의어를 보내고, 그 결과를 수신하여 조건에 맞게 정제하게 된다.
도 6은 본 발명의 일실시예에 따른 외부 DBMS로 SQL 질의어(SQL query)를 보내고 그 결과를 가져오는 DB 에이전트의 동작을 보여주는 흐름도이다.
도 6에 있어서, DB 에이전트(123)는 시스템 연결 서버 매니저(121)로부터 생성된 SQL 질의어를 수신하면(S2300), DB 에이전트(123)는 외부 DB 시스템과 연동하게 된다(S2310).
단계 S2320에서 DB 에이전트(123)는 SQL 질의어를 연동된 외부 DB 시스템으로 전송하고, 단계 S2330에서 외부 DB 시스템으로부터 DB 검색 결과를 수신한다.
단계 S2340에서 DB 에이전트(123)는 외부 DB 시스템으로부터 수신된 검색 결과를 파싱하고, 이를 시스템 연결 서버 매니저(121)로 전달한다(S2350).
이와 같이, DB 에이전트(123)는 시스템 연결 서버 매니저(121)의 명령어를 수신하여 외부의 DB 시스템으로 SQL 질의어를 보내고 그 결과를 가져오게 된다. SQL 질의어를 생성하기 위한 기본 정보는 언어 처리 서버(200)에서 만들어지며, DB 에이전트(123)에서는 실제 DB 연결을 위해 필요한 정보들을 추가하여 SQL 질의어를 생성하고 외부 DB 시스템을 호출한다.
도 7은 본 발명의 일실시예에 따른 사용자 입력 문장을 언어 처리하여 적당한 시스템 응답이나 시스템 연결 서버가 처리해야 할 명령어를 생성해 주는 언어 처리 서버의 동작을 보여주는 흐름도이다.
도 7에 있어서, 언어 처리 서버(200)의 언어 처리 서버 매니저(201)는 시스템 연결 서버 매니저(121)로부터 전송된 사용자 입력 문장을 수신한다(S3100).
단계 S3110에서 언어 처리 서버 매니저(201)는 언어 처리 서버(200) 내에 있는 에이전트(202, 203 및 204)간의 우선 순위를 결정하고, 단계 S3120에서 우순 순위별 에이전트를 호출한다.
단계 S3130에서 각 에이전트가 실행되며, 즉 Chat 에이전트(202)는 인사말, 욕설, 잡담과 같이 목적이 없는 신변 잡기식의 1문 1답형 대화를 처리하고, QA 에이전트(203)는 웹 사이트 바로가기 안내나, FAQ 검색과 같이 목적은 있지만 대화 문맥을 유지할 필요가 없는 1문 1답형 대화를 처리하며, 다이얼로그(Dialogue) 에이전트(204)는 문맥 유지가 필요한 목적 지향의 대화를 처리하며, 각 에이전트가 처리 결과를 언어 처리 서버 매니저(201)로 전송한다. 각 에이전트에 대해서는 도 9 내지 도 11을 참조하여 보다 상세하게 설명한다.
단계 S3140에서 언어 처리 서버 매니저(201)는 각 에이전트로부터 명령어 문자열을 수신하고, 단계 S3150에서 언어 처리 서버 매니저(201)는 상기 수신된 명령어 문자열을 결합한다.
단계 S3160에서 언어 처리 서버 매니저(201)는 결합된 명령어 문자열을 시스템 연결 서버 매니저(121)로 전송한다.
도 8은 본 발명의 일실시예에 따른 언어처리 관련 에이전트들의 우선 순위를 결정하고 관리하는 언어 처리 서버 매니저의 동작을 보여주는 흐름도이다.
도 8에 있어서, 언어 처리 서버 매니저(201)는 라우팅 패턴(Routing pattern), 점유 정보(Occupation information) 및 키워드 점수를 이용하여 사용자가 입력한 문장을 어떤 에이전트로 전달할지에 대한 우선 순위를 결정한다.
즉, 단계 S3200에서 언어 처리 서버 매니저(201)가 사용자 입력 문장을 수신하면, 단계 S3210에서 언어 처리 서버 매니저(201)는 사용자 입력 문장에 대해 라우팅 패턴 매칭을 실시한다.
여기서, 라우팅 패턴은 사람에 의해서 직접 기술된 렉시코-신텍틱(lexico-syntactic) 패턴으로, 여기에 매칭된 에이전트는 매우 높은 우선순위를 갖는다. 렉시코-신텍틱 패턴은 SIGIR'93 국제 학술대회에서 발표된 "Murax: A Robust Linguistic Approach for Question Answering Using an On-line Encyclopedia"이라는 논문에 기재된 어휘, 품사, 카테고리 정보를 이용한 패턴 기술 방법이다. 라우팅 패턴은 문장에 포함된 어휘, 품사, 의미 코드를 포함하고 있으며, 정규 표현 형태로 다음과 같은 구조를 가진다.
문장 패턴 -> 에이전트, 영역 디렉토리
상기 구조에서 '문장 패턴'은 라우팅을 할 문장과 매칭(matching)해 볼 렉시코-신텍틱 패턴이고, '에이전트'는 입력된 문장을 전달할 에이전트의 종류이다. '영역 디렉토리'는 입력된 문장을 분석하고 응답을 생성하기 위한 에이전트 규칙을 담고 있는 디렉토리이다. 예를 들면, "사용자가 적립금은 어떻게 사용하나?"라고 하는 문장을 입력했을 때 다음과 같은 라우팅 패턴이 만들어진다.
(@money).*(%how)(사용|쓰)(ep)?ef -> qa, faq
상기 예에서 "@money"는 '적립금', '사이버머니' 등을 하나의 형태로 표현하기 위한 의미 코드이며, "%how"는 '어떻게', '어캐', '어찌' 등을 하나의 형태로 표현하기 위한 의미 코드이다. "@"의 의미는 해당 의미 코드의 하위어를, "%"는 유의어를 의미한다. 즉, "@money"라는 것은 'money'의 하위어들을, "%how"는 'how'의 유의어들을 의미한다. "(ep)?ef"는 '하나', '했니', '었니' 등과 같은 어미들을 처리하기 위한 품사 정보 패턴이다. 그 외 "*", ".", "?"'은 일반적인 정규표현 기술에 쓰이는 것과 마찬가지로 '0번 이상', '아무 글자 하나', '0번 또는 1번'의 의미를 갖는다. "qa"는 매칭된 문장 '적립금은 어떻게 사용하나?'를 처리할 에이전트의 종류가 QA 에이전트라는 것을 의미하며, "faq"는 해당 QA 에이전트가 사용할 규칙이 faq 디렉토리에 있다는 것을 의미한다.
단계 S3210에서 라우팅 패턴에 매칭되는 에이전트가 있으면, 단계 S3320에서 언어 처리 서버 매니저(201)는 그 에이전트에 높은 점수를 할당하게 되어 높은 우선 순위를 갖는다(S3320).
단계 S3210에서 라우팅 패턴에 매칭되는 에이전트가 없는 경우, 단계 S3220에서 언어 처리 서버 매니저(201)는 점유 정보를 검사한다. 여기서, 점유 정보는 문맥 유지를 위하여 특정 에이전트에게 계속해서 라우팅을 해줘야 할 때 사용하는 정보이다.
단계 S3220에서 언어 처리 서버 매니저(201)는 라우팅 패턴 매칭을 수행한 다음에 매칭된 것이 없다면 점유 정보를 셋팅(setting)한 에이전트가 있는지 검사한다.
단계 S3220에서 점유 정보를 셋팅한 에이전트가 있다면 그 에이전트에게 높은 우선순위를 부여한다. 예를 들어, 사용자 입력 문장 "노트북을 사고 싶어"에 대하여 다이얼로그 에이전트(204)는 "어떤 브랜드의 제품을 원하세요?"라는 응답과 함께 점유 정보를 셋팅한다. 왜냐하면, 올바른 대화 유지를 위하여 이전 문맥을 유지해야 하고 답변을 기다려야 하기 때문이다. 이렇게 되면 언어 처리 서버 매니저(201)는 점유 정보를 검사하여 다이얼로그 에이전트(204)에게 높은 우선순위를 부여한다. 결과적으로 언어 처리 서버 매니저(201)는 라우팅 패턴에 매칭된 경우를 제외하고는 거의 모든 입력 문장을 다이얼로그 에이전트(204)에게 전달한다.
단계 S3220에서 점유 정보를 셋팅한 에이전트가 없으면, 단계 S3230에서 언어 처리 서버 매니저(201)는 사용자 입력 문장에 포함된 키워드를 이용하여 문장을 수치화하는 키워드 점수 계산을 실시한다.
여기서, 키워드 점수는 라우팅 패턴에 매칭되지 않고 점유정보도 셋팅되지 않았을 경우에 에이전트들 사이의 우선순위를 결정하기 위해 사용하는 정보이다. 키워드 점수는 에이전트가 담당하고 있는 영역별로 키워드 셋(keyword set)을 미리 구축한 후에 입력된 문장의 키워드가 어느 키워드 셋에 많이 포함되는지를 수학식(1)과 같은 코사인 유사도(cosine similarity)를 이용하여 점수화한 것이다. 코사인 유사도는 널리 알려진 유사도 측정 기법으로 Christopher D. Manning과 Hinrich Schutze가 저술한 "Foundation of Statisical NLP"이라는 책을 참조하였다.
상기 수학식(1)에서, K i i번째 에이전트의 키워드 셋이며, S는 입력된 문장의 키워드 셋이다. 예를 들면, 고객 정보를 담당하고 있는 QA 에이전트(203)가 적립금, 사이버머니, 쿠폰, 방법이라는 키워드 셋을 갖고 있고, 상품 검색을 담당하고 있는 다이얼로그 에이전트(204)가 노트북, 세탁기, 구입, 적립금이라는 키워드 셋을 가지고 있을 때, 사용자의 질문 적립금 사용방법은 고객 정보를 담당하는 QA 에이전트(203)에게 전달된다. 왜냐하면, 코사인 유사도에 따라 고객 정보를 담당하는 QA 에이전트(203)의 키워드 점수는 2/12점이고, 상품 검색을 담당하는 다이얼로그 에이전트(204)는 1/12점이기 때문이다.
단계 S3240에서 언어 처리 서버 매니저(201)는 에이전트에 부여된 점수에 따라 에이전트의 우선 순위를 결정한다.
단계 S3250에서 언어 처리 서버 매니저(201)는 상위 우선 순위를 갖고 있는 에이전트부터 호출하고, 단계 S3260에서 언어 처리 서버 매니저(201)는 에이전트로부터 명령어 문자열을 수신한다. 여기서, 명령어 문자열은 자연어 문장과 시스템 연결 서버 매니저(121)로 전달할 명령어가 혼합된 형태의 문자열이다. 즉, 명령어 문자열은 '[#ir,diver,[category:노트북, brand:삼성 센스, price:],3#]'이라는 명령어와 함께 '가격대는 어느 정도로 생각하시나요?'라는 자연어 문장이 결합된 형태이다. 이러한 명령어 문자열은 언어 처리 서버 매니저(201)에 의해 호출된 각 에이전트가 생성하고, 언어 처리 서버 매니저(201)는 각 에이전트가 생성한 모든 명령어 문자열을 정해진 순서에 따라 줄단위로 결합하여 시스템 연결 서버 매니저(121)로 전달한다. 예를 들면, QA 에이전트(203), Chat 에이전트(202) 및 다이얼로그 에이전트(204) 순으로 명령어를 결합하는 순서가 정해져 있고, 언어 처리 서버 매니저(201)가 QA 에이전트(203)와 다이얼로그 에이전트(204)만을 호출하였다면, 3줄의 명령어 문자열(QA 에이전트(203)가 생성한 명령어 문자열 + 빈 줄(왜냐하면, Chat 에이전트(202)를 호출하지 않았기 때문) + 다이얼로그 에이전트(204)가 생성한 명령어 문자열)이 생성되며, 이 문자열이 시스템 연결 서버 매니저(121)로 전달된다.
단계 S3270에서 언어 처리 서버 매니저(201)는 수신된 명령어 문자열을 검토하여, 올바른 명령어 문자열인지 어떤지를 식별한다(S3280).
단계 S3280에서 언어 처리 서버 매니저(201)가 올바른 명령어 문자열이고, 하위 에이전트를 더 이상 호출할 필요가 없다고 판단하면, 단계 S3290에서 언어 처리 서버 매니저(201)는 에이전트 호출을 중지한다.
단계 S3300에서 언어 처리 서버 매니저(201)는 에이전트 호출이 끝나면 에이전트로부터 전달된 명령어 문자열들을 합치고, 이를 시스템 연결 서버 매니저(121)로 전달한다(S3310).
도 9는 본 발명의 일실시예에 따른 특별한 목적이 없는 잡담 대화를 처리하는 Chat 에이전트의 구조도이다.
도 9에 있어서, Chat 에이전트(202)는 새롭게 들어오는 사용자의 입력 문장을 분석하여 미리 구축된 질의응답 쌍 중에서 가장 유사한 질의를 찾아 쌍을 이루는 응답을 답변으로 제시한다. 유사한 질의를 찾을 때 단순 일치 방법을 사용한다면 사용자가 표현할 수 있는 발화의 다양성 때문에 아무리 큰 용량의 채팅 질의응답 쌍을 가지고 있다고 하더라도 모두 처리하는 것은 불가능하다.
이와 같은 문제를 해결하기 위해 Chat 에이전트(202)는 두 가지 방법을 사용한다. 하나는 일반화 방법이고 다른 하나는 예외처리 방법이다.
일반화 방법은 입력 문장을 3가지 형태로 변형시켜 적용하는 것으로, 각각을 설명하면 다음과 같다. 첫 번째 형태는 띄어쓰기와 문장부호의 다양성만을 일반화시킨 경우로서, 모든 문장의 성분들이 포함되지만 띄어쓰기는 무시되고 문장부호는 같은 부호가 여러 번 반복되어 나타날 때는 하나로 축약되어 표현된다. 두 번째 형태는 문장 내에서 변화되지 않은 형태소들을 가지고 문장을 표현한 것으로, 이때 변형되지는 않지만 문장의 의미에 영향을 미치지 못하는 형태소들은 배제 단어정보를 통해서 제거한다. 마지막 형태는 키워드 위주의 일반화로서, 문장에서 체언들과 본용언만을 가지고 문장을 표현하는 방법으로 문장을 일반화한다.
일반화 방법을 통해 처리된 사용자의 입력 문장은 채팅 모듈(400)의 각 하위 모듈들을 거치게 된다.
부대화 채팅(410)은 채팅이 단순 질문 답의 형태로 되어 있어 문맥 상황을 고려하는 것이 불가능하므로 이를 보완해주기 위한 모듈이다. 이 모듈에서는 사용자 입력 문장에 대해 응답만을 활성화시키는 것이 아니라 특정 주제에 특화된 대화의 오토마타(automata)를 활성화시킨다. 즉, 부대화 채팅 모듈(410)은 어떤 주제를 결정하고 상태와 그 상태에서 인식가능한 사용자 발화를 기억시킨 오토마타를 미리 구축하여 사용자의 발화에 따라 분기함으로써 문맥에 따라 다른 반응할 수 있도록 해준다.
코드 기반 채팅(420)은 질의 응답 쌍의 종류를 규정하고 각 종류마다 다른 처리를 해주기 위한 것이다. 즉, 특정 질문에 대해 그 의미를 나타내는 코드와 대응시켜줌으로써, 다양한 표층형태를 가진 동일 의미의 문장을 처리하기 위한 모듈이다.
중복 발화 채팅(430)은 코드 기반 채팅(420)에서 같은 코드를 가지는 발화가 반복되어 나올 때 반복의 정도에 따라 다른 수준의 응답을 생성해 주는 모듈이다.
단순 채팅(440)은 코드로 정리되기 힘들거나 모호한 경우의 채팅들을 각각 질의응답 단위로 모아두고 입력 발화나 그의 일반화한 형태가 미리 구축한 발화와 일치하는 경우 그것에 대응되는 응답을 보내주는 방식의 채팅을 제공하는 모듈이다.
사람이 만들어 낼 수 있는 대화는 무한히 존재한다. 일반화 방법에 의해 다소 경우를 늘려주긴 하였지만 모든 경우를 처리하는 것은 불가능하다. 따라서 미리 준비된 질의응답에 의해 해결되지 못한 발화에 대해 처리할 수 있는 예외처리 모듈(500)이 필요하다. 예외처리 모듈(500)에서는 인식 단위를 하나의 문장이 아니라 구나 단어로 축소하여 인식할 수 있는 범위를 넓혀주고 있다.
구 기반 채팅 모듈(510)은 문장의 전체가 아닌 구나, 절과 같은 문장의 일부를 인식의 대상으로 한다. 이를 위해 문장에 일부로 표현될 수 있는 내용들을 정규 표현의 방법을 사용하여 기술하고 문장이 이와 같은 내용을 포함하고 있는 경우, 그 구문에 맞는, 다소 일반적인 발화를 생성해 주게 된다.
단어 수준의 채팅으로는 의미 단어 기반 채팅(520)과 형태소 기반 채팅(530)이 있다. 의미 단어 기반 채팅(520)은 사람이 구축한 의미 정보를 갖는 단어, 또는 특별한 형태소 태그를 갖는 단어가 문장 내에 있는 경우 그것을 기반으로 처리하는 모듈을 제공한다. 의미 정보를 이용하는 예외처리의 예는 다음과 같다.
[의미 코드] 갈비탕: @food
[응답 발화 문법] @food : 저도 [$VARI](이/가) 먹고 싶네요.
[사용자 입력] 갈비탕 먹고 왔다~
[시스템 출력] 저도 갈비탕이 먹고 싶네요.
상기 예에서는 '갈비탕'이 의미코드 '@food'로 들어있고 '@food'의 응답 발화 문법으로 "저도 [$VARI](이/가) 먹고 싶네요."가 지정된 경우, 사용자의 발화가 처리되지 않고 '갈비탕'이라는 단어를 포함하는 경우에 지정된 응답 발화 문법을 이용하여 문장을 생성해 주는 것을 보여주고 있다.
형태소 기반 채팅(530)도 의미 단어 기반 채팅과 동일한 방식으로 동작한다. 하지만 사람이 구축하는 의미정보 대신, 자동으로 생성될 수 있는 형태소 정보를 이용함으로써 보다 다양한 문장을 처리할 수 있게 된다.
채팅 모듈(400) 중에서 가장 자연스러운 대화를 제공할 수 있는 모듈은 부대화 채팅 모듈(410)이다. 하지만 사용자가 말하는 발화 중에서 우연히 부대화로 들어갈 수 있는 경우는 상당히 제한적이다. 따라서 부대화가 나올 수 있도록 사용자의 화제를 돌리는 것이 필요하다. 유도발화 모듈(540)은 이와 같은 필요에 따라 채팅과 예외 처리에서 걸리지 않아 기본적으로 정의된 문장을 발화해야 하는 경우에 일부를 부대화로 이끌어 에이전트가 잘 대답할 수 있는 상황으로 화제를 전환하는 역할을 수행한다.
임의 문장 발화 모듈(540)은 이전의 처리들과는 달리 전혀 사용자 발화를 고려하지 않는다. 이것은 채팅이 사용자의 발화에 아무것도 응답하지 못하는 경우를 막기 위해 무난한 아무 문장이나 내놓는 것으로 이모티콘(emoticon), 간투사, 또는 의미 없는 말 등을 발화하여 사용자에게 화제를 전이하도록 유도하는 역할을 한다.
도 10은 본 발명의 일실시예에 따른 1문 1답형 질문을 처리하는 QA 에이전트의 구조도이다.
도 10에 있어서, QA 에이전트(203)는 개체명 인식기(named entity recognizer; 630)와 패턴 매처(pattern matcher; 610)를 이용하여 1문 1답형 질문을 처리한다. 개체명 인식기(630)는 국제 저널인 "International Journal of Computer Processing of Oriental Language"의 14권에 발표된 "A fast and reliable question-answering system based on predictive answer indexing and lexico-syntactic pattern matching"이라는 논문에서 언급한 바와 같은 입력된 문장으로부터 미리 정의해 놓은 의미 카테고리에 해당하는 문자열을 찾아서 의미 코드를 할당한다. 예를 들면, 사용자가 '노트북 매장으로 안내해 줘'라고 입력을 했을 경우에 개체명 인식기(630)는 '노트북'이라는 문자열을 찾아서 '@goods'를 할당한다. '@goods'의 의미는 '노트북'이라는 문자열이 'goods (상품)'의 한 종류라는 뜻이다. 개체명 인식기(630)는 품사열 패턴을 이용하여 명사구에 해당하는 모든 후보 문자열을 찾은 후에 의미 범주 사전(620)을 참조하여 의미 코드를 할당한다. 여기서, 의미 범주 사전(620)은 각 단어의 의미 범주를 포함하는 사전으로서, 다른 형태로 표시되는 단어들에 하나의 의미 범주를 할당하여 패턴 기술을 용이하게 하고자 하는데 사용된다. 예를 들면, '텔레비전'이라는 의미를 갖는 단어가 입력되면, 특정 일을 수행하는 패턴을 기술하고자 할 때 '텔레비전', 'TV', '테레비' 등과 같이 모든 형태에 대해 패턴을 기술하면 문법 자체가 복잡해지고 패턴 매칭 속도도 느려지는 단점이 있다. 이를 방지하기 위해, 사전에 '텔레비전, TV, 테레비'와 같이 동일 의미의 단어들에 하나의 의미 범주를 할당하고, 이 범주를 이용하여 패턴을 기술하는 바법을 일반적으로 사용한다. 즉, '텔레비전, TV, 테레비'를 '@tv'라는 의미 범주로 할당하면, '@tv'라는 패턴만으로 이 형태의 모든 단어를 처리할 수 있다.
품사열 패턴은 '(pvef)?(ncn|eng)+'와 같이 명사구가 될 수 있는 품사열을 정규 표현 형태로 나타낸 것이다. 명사구가 추출되면 표 1과 같이 기술되어 있는 의미 범주 사전(620)을 참조하여 의미 코드를 할당한다.
사전 표제어 의미 코드
노트북 @goods
센스 @brand
세탁기 @goods
삼성 @mfr
개체명 인식기(630)와 더불어 패턴 매처(610)는 입력된 문장을 분석하여 자연어 응답과 함께 시스템 연결 서버 매니저(121)으로 전달할 명령어 문자열을 생성한다. 패턴 매처(610)는 다음과 같은 구조를 가진 렉시코-신텍틱 패턴을 이용하여 입력 문장을 분석하고 명령어 문자열을 생성한다.
문장 패턴 -> 액션
상기 구조에서 '문장 패턴'은 입력된 문장과 매칭해 볼 렉시코-신텍틱 패턴이고, '액션'은 매칭 결과 생성할 문자열을 정의하는 패턴으로 자연어와 예약어가 혼합되어 있다. QA 에이전트(203)는 '액션'을 파싱하여 시스템 연결 서버(120)로 전달할 명령어 문자열을 생성한다. 예를 들면, 사용자가 "노트북 매장으로 안내해 줘"와 같이 입력을 하면 다음과 같은 패턴에 매칭이 된다. 하기 예에 포함된 예약어는 일반적인 상황을 구성하기 위해 만들어 진 것이다.
(@goods)매장.*(안내) -> 다음과 같은 관련 매장을 찾았습니다.[#ir, dlink, <@output:av@>, 3#]
상기 예에서 '액션' 부분은 '다음과 같은 관련 매장을 찾았습니다.'라는 자연어 문장과 '[#ir, dlink, <@output:av@>, 3#]'과 같은 명령어를 시스템 연결 서버 매니저(121)로 전달하라는 의미이다. QA 에이전트(203)는 시스템 연결 서버 매니저(121)로 명령어 문자열을 전달하기 전에 개체명 인식기(630)를 이용하여 '<@output:av@>'라는 예약어를 '노트북'으로 대체한다. 결과적으로, '다음과 같은 관련 매장을 찾았습니다.'라는 자연어 문장과 '[#ir, dlink, 노트북, 3#]'이라는 명령어를 시스템 연결 서버 매니저(121)로 전달한다.
도 11은 본 발명의 일실시예에 따른 문맥 유지가 필요한 목적 지향의 대화를 처리하는 다이얼로그 에이전트의 구조도이다.
도 11에 있어서, 다이얼로그 에이전트(204)는 화행 분석기(710)에 의한 화행분석(문장에 내포되어 있는 행위를 분석하는 작업; James Allen이 저술한 "Natural language understanding" 참조), 초점 분석기(720)에 의한 초점분석(대화 참여자가 행한 발화가 대화 영역 중에 어떤 부분에 관심이 있는지를 결정하는 작업), 및 액션 매처(730)에 의한 액션 매칭 단계를 거치면서 영역 폼(특정 영역에서 대화를 통해서 얻을 수 있는 정보의 리스트를 폼 형태로 표현한 것)(domain form; 750)에 정보를 채워나가는 형식으로 명령어 문자열을 생성한다. 즉, 다이얼로그 에이전트(204)는 미리 정의된 영역 폼에 정보를 채우기 위해서 사용자에게 질문을 던지고, 사용자의 답변으로부터 정보를 얻어 폼의 슬롯(slot)을 채우면서 대화를 진행한다. 사용자의 답변에서 슬롯 정보를 추출하기 위해서는 QA 에이전트(203)와 같이 개체명 인식기(770)를 이용한다. 예를 들면, 상품 구매를 위한 영역 폼이 '[category, brand, price]'이라는 3개의 슬롯으로 구성되어 있다고 가정하면, 다이얼로그 에이전트(204)는 각각의 슬롯을 채우기 위하여 다음과 같은 질문을 사용자에게 한다. 그리고 사용자의 답변을 분석하여 빈 슬롯을 채운다.
시스템: 어떤 제품을 찾으시나요?
사용자: 노트북이요.
시스템: 어떤 브랜드를 선호하나요?
사용자: 삼성이요.
시스템: 가격대는 어느 정도로 생각하시나요?
사용자: 200만원 정도요.
상기 예를 모두 수행하면 '[category:노트북, brand:삼성, price: 200만원]'과 같이 영역 폼의 모든 슬롯이 채워지고 이 정보는 적당한 자연어 문장과 함께 시스템 연결 서버 매니저(121)로 전달된다.
화행은 문장에 내포된 행위를 말하며 일반적으로 다음 표 2와 같은 것들을 포함한다.
화행 설명 예제
greeting 인사말 안녕하세요.
request 정보 요구 노트북을 보여주세요.
inform 정보 알림 날씨가 좋다.
ask_ref 정보 참조에 관한 질문 어떤 노트북이 좋아요?
ask_if 정보 존재에 관한 yes/no 질문 삼성 센스 있어요?
response 정보 참조/존재에 대한 대답 예, 있습니다.
ask_confirm 정보 확인에 관한 질문 삼성 센스요?
confirm 정보 확인에 대한 대답 예, 삼성 센스요.
화행 분석은 사용자의 입력 문장을 분석하여 상기 표 2에 표시된 바와 같은 내포된 행위를 찾아내는 과정으로, 다이얼로그 에이전트(204)는 다음과 같은 구조의 렉시코-신텍틱 패턴을 이용한다.
이전 화행, 문장 패턴 -> 현재 화행
상기 구조에서 '이전 화행'은 담화 스택(discourse stack; 760)의 탑(top)에 존재하는 화행을 의미하며, '문장 패턴'은 입력된 문장과 매칭할 렉시코-신텍틱 패턴을 의미한다. '현재 화행'은 '이전 화행'과 '문장 패턴'을 이용하여 결정되는 현재 문장의 화행을 의미한다.
다이얼로그 에이전트(204)는 다음과 같은 방법으로 담화 스택(discourse stack)을 운용한다. 담화 스택의 탑에 있는 화행과 문장 패턴을 이용하여 현재 문장의 화행이 결정되면 담화 스택의 탑에 존재하는 화행과 현재 화행이 문맥적으로 짝을 이루는지 검사한다. 만약 짝을 이룬다면 스택을 팝(pop)하여 탑에 존재하는 화행을 제거한다. 그렇지 않으면 현재 화행을 스택에 푸쉬(push)한다. 문맥적으로 짝을 이루는 화행은 'ask-ref, ask-if'와 'response', 'ask-confirm'과 'confirm'과 같은 것들이 있다.
초점 분석은 사용자의 입력 문장이 영역 폼의 어떤 슬롯에 관한 것인지 찾아내는 과정으로, 다이얼로그 에이전트(204)는 다음과 같은 구조의 렉시코-신텍틱 패턴을 이용한다.
문장 패턴 -> 초점
상기 구조에서 '문장 패턴'은 입력된 문장과 매칭할 렉시코-신텍틱 패턴이고, '초점'은 패턴 매칭 결과 얻어지는 영역 폼의 초점이다. 예를 들면, 사용자의 질문 "어떤 브랜드가 있나요?"는 다음과 같은 '문장 패턴'과 매칭된다.
%which(%brand) -> brand
이것을 바탕으로 다이얼로그 에이전트(204)는 사용자가 'brand'라는 이름의 슬롯에 관심이 있다는 것을 알아 낸다.
화행분석과 초점 분석이 끝나면 이것을 바탕으로 다이얼로그 에이전트(204)는 다음과 같은 2가지 형식의 규칙에 따라 액션 매칭을 수행한다.
user, 화행, 초점 -> 액션
system, 초점, 레벨 -> 액션
상기 형식에서 첫 번째 것은 사용자의 입력을 분석하기 위한 문장 분석 규칙이며, 두 번째 것은 시스템이 응답을 생성하기 위한 문장 생성 규칙이다. 문장 분석 규칙에서 '화행'은 사용자가 입력한 문장의 화행이며, '초점'은 사용자가 관심을 가지고 있는 영역 폼의 초점이다. 문장 생성 규칙에서 '초점'은 시스템이 채우고자 하는 영역 폼의 초점(빈 슬롯)이며, '레벨'은 시스템이 생성할 질문의 레벨을 의미한다. '레벨'은 빈 슬롯을 채우기 위해 시스템이 생성하는 질문의 반복 수준을 나타내는 것으로 1인 경우에는 처음의 질문을, 2인 경우에는 한 번 반복되는 질문을, 3인 경우에는 두 번 반복되는 질문을 의미한다. 즉, '레벨'은 특정 슬롯을 채우기 위해서 시스템이 생성하는 질문이 반복 되었을 경우에 질문에 다양성을 주기 위해서 사용하는 것이다. 상기 두 형식에서 '액션'은 시스템이 수행해야 할 명령어 문자열을 의미한다. '액션'은 자연어 문장과 예약어가 혼합되어 있는 문자열로 구성되며, 다이얼로그 에이전트(204)는 이러한 문자열을 파싱하여 시스템 연결 서버(120)로 전달할 명령어 문자열을 생성한다. 예를 들어, '삼성 센스요'라는 사용자의 입력 문장은 다음과 같은 액션 규칙에 매칭된다. 하기 예에 포함된 예약어들은 일반적인 상황을 구성하기 위해 만들어 진 것이다.
user, response, brand -> <@fill:av@><@next@>
system, price, 1 -> [ir,diver,<@output:av@>,3]가격대는 어느 정도로 생각하시나요?
상기 예의 문장 분석 규칙에서 '<@fill:av@>'는 사용자의 발화를 분석하여 영역 폼을 채우라는 명령어이고, '<@next@>'는 비어있는 다음 슬롯을 찾아서 '초점'으로 할당하고 문장 생성 규칙을 수행하라는 명령어이다. '<@next@>' 명령어에 따라 다이얼로그 에이전트(204)는 비어 있는 슬롯인 'price'를 초점으로 할당하고, 레벨 '1'에 해당하는 문장 생성 규칙을 수행한다. 문장 생성 규칙에서 '<@output:av@>'는 현재 폼의 슬롯 정보를 문자열로 바꾸라는 명령어이다. 이 명령어를 수행 한 후에 다이얼로그 에이전트(204)는 '[#ir,diver,[category:노트북, brand:삼성 센스, price:],3#]'이라는 명령어와 함께 '가격대는 어느 정도로 생각하시나요?'라는 문자열을 시스템 연결 서버 매니저(121)로 전달한다.
상기에서 설명한 바와 같이 본 발명에 의하면, 독립된 역할을 하는 여러 개의 에이전트 시스템을 통합함으로써, 정보 제공 매체에 상관없이 사용자가 자연어로 시스템 내/외부 정보를 쉽게 접근하고 빠르게 찾을 수 있다.
이상에서는 본 발명을 특정의 바람직한 실시예에 대하여 나타내고 설명하였다. 그러나, 본 발명은 상술한 실시예에만 한정되는 것은 아니며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 이하의 특허청구범위에 기재된 본 발명의 기술적 사상의 요지를 벗어남이 없이 다양하게 변경 실시할 수 있을 것이다.
도 1은 본 발명의 일실시예에 따른 독립된 에이전트 시스템들의 역할 분담을 통하여 정보 제공 매체에 상관없이 자연어로 사용자가 원하는 정보에 쉽게 접근할 수 있도록 도와주는 다매체 정보제공 대화 에이전트의 구조도.
도 2는 본 발명의 일실시예에 따른 다매체 정보제공 대화 에이전트 시스템을 구성하고 있는 매니저들과 에이전트들 사이에 정보를 주고 받기 위한 통신 방식을 설명하는 설명도.
도 3은 본 발명의 일실시예에 따른 웹 또는 IM(Instance Messenger)을 통해 사용자 입력 문장을 수신하여 시스템 출력을 전달할 수 있도록 관리해 주는 채널 관리 서버의 동작을 보여주는 흐름도.
도 4는 본 발명의 일실시예에 따른 외부 시스템(IR 또는 DB)으로 명령어를 전달하고 결과를 수신하여 적당한 시스템 응답을 생성할 때 사용되는 시스템 연결 서버의 동작을 보여주는 흐름도.
도 5는 본 발명의 일실시예에 따른 외부 IR 시스템과 연동하여 조건에 맞는 검색 결과를 가져오는 IR 에이전트의 동작을 보여주는 흐름도.
도 6은 본 발명의 일실시예에 따른 외부 DBMS로 SQL query를 보내고 그 결과를 가져오는 DB 에이전트의 동작을 보여주는 흐름도.
도 7은 본 발명의 일실시예에 따른 사용자 입력 문장을 언어 처리하여 적당한 시스템 응답이나 시스템 연결 서버가 처리해야 할 명령어를 생성해 주는 언어 처리 서버의 동작을 보여주는 흐름도.
도 8은 본 발명의 일실시예에 따른 언어처리 관련 에이전트들의 우선 순위를 결정하고 관리하는 언어 처리 서버 매니저의 동작을 보여주는 흐름도.
도 9는 본 발명의 일실시예에 따른 특별한 목적이 없는 잡담 대화를 처리하는 Chat 에이전트의 구조도.
도 10은 본 발명의 일실시예에 따른 1문 1답형 질문을 처리하는 QA 에이전트의 구조도.
도 11은 본 발명의 일실시예에 따른 문맥 유지가 필요한 목적 지향의 대화를 처리하는 다이얼로그 에이전트의 구조도.

Claims (45)

  1. CCA(Coordinated Communication Agent) 구조를 이용한 다매체 정보제공 대화 에이전트 시스템으로서,
    단말기 사용자가 웹 또는 인터넷 메신저를 통해 입력한 사용자 입력 문장에 대한 정보를 요구하고 받을 수 있도록 입출력 채널과 통신 세션을 관리하는 채널 관리 서버;
    외부의 정보 검색 시스템 또는 데이터베이스 관리 시스템에 접근하여 사용자가 원하는 정보를 얻어오고, 언어 처리 서버로부터 전송된 명령어를 실행하고 그 결과를 자연어 응답과 결합하여 사용자에게 전달하는 시스템 연결 서버; 및
    상기 사용자 입력 문장을 분석하여 자연어 응답과 상기 시스템 연결 서버가 수행할 명령어를 생성하는 언어 처리 서버를 포함하는 다매체 정보제공 대화 에이전트 시스템.
  2. 제 1항에 있어서, 상기 채널 관리 서버와 상기 시스템 연결 서버는 WAS(Web Application Server) 프로그램으로 구현되는 것을 특징으로 다매체 정보제공 대화 에이전트 시스템.
  3. 제 1항에 있어서, 상기 언어 처리 서버는 독립적인 데몬 프로그램으로 구현되는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 시스템.
  4. 제 1 내지 3항중 어느 한 항에 있어서, 상기 채널 관리 서버 및 상기 시스템 연결 서버와, 상기 언어 처리 서버는 TCP/IP 프로토콜을 통해 정보를 주고받는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 시스템.
  5. 제 1항에 있어서, 상기 채널 관리 서버는,
    상기 사용자 입력 문장이 수신될 채널을 식별하여 식별된 채널에 해당되는 에이전트를 호출하며, 세션 번호와 채널 구분자를 할당하고, 상기 할당된 세션 번호 및 채널 구분자를 저장하는 채널 관리 서버 매니저;
    상기 사용자 입력 문장이 수신되는 채널이 웹 채널인 경우, 상기 웹 채널을 개방하고 관리하는 웹 채널 에이전트; 및
    상기 사용자 입력 문장이 수신되는 채널이 IM 채널인 경우, 상기 IM 채널을 개방하고 관리하는 IM 채널 에이전트를 포함하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 시스템.
  6. 제 5항에 있어서, 상기 채널 관리 매니저는 상기 웹 채널 에이전트 및 상기 IM 채널 에이전트와 함수 호출을 통해 정보를 주고 받는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 시스템.
  7. 제 1항에 있어서, 상기 시스템 연결 서버는,
    상기 언어 처리 서버를 호출하여 상기 언어 처리 서버로부터 전송된 명령어를 파싱하고, 해당 에이전트를 호출하여 연동된 외부 시스템로부터 전송된 자연어 응답을 상기 명령어와 결합하여 사용자에게 전달할 시스템 응답을 생성하는 시스템 연결 서버 매니저;
    외부 IR 시스템과 연동하여 검색 요청 질의어를 상기 외부 IR 시스템으로 전송하고, 상기 외부 IR 시스템으로부터 전송된 검색 결과를 파싱하여 상기 시스템 연결 서버 매니저로 전달하는 IR 에이전트; 및
    외부 DB 시스템과 연동하여 SQL 질의어를 상기 외부 DB 시스템으로 전송하고, 상기 외부 DB 시스템으로부터 전송된 DB 검색 결과를 파싱하여 상기 시스템 연결 서버 매니저로 전달하는 DB 에이전트를 포함하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 시스템.
  8. 제 7항에 있어서, 상기 시스템 연결 서버 매니저는 상기 IR 에이전트 및 상기 DB 에이전트와 함수 호출을 통해 정보를 주고 받는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 시스템.
  9. 제 1항에 있어서, 상기 언어 처리 서버는,
    상기 언어 처리 서버내에 있는 에이전트간의 우선 순위를 결정하고, 상기 에이전트로부터 전송된 명령어 문자열을 결합하여 상기 시스템 연결 서버로 전송하는 언어 처리 서버 매니저;
    특별한 목적이 없는 잡담 대화를 처리하는 Chat 에이전트;
    1문 1답형 질문을 처리하는 QA 에이전트; 및
    문맥 유지가 필요한 목적 지향의 대화를 처리하는 다이얼로그 에이전트를 포함하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 시스템.
  10. 제 9항에 있어서, 상기 언어 처리 서버 매니저는 상기 Chat 에이전트, 상기 QA 에이전트 및 다이얼로그 에이전트와 함수 호출을 통해 정보를 주고 받는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 시스템.
  11. 제 9항에 있어서, 상기 언어 처리 서버 매니저는 라우팅 패턴, 점유 정보 및 키워드 점수를 이용하여 상기 에이전트간의 우선 순위를 결정하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 시스템.
  12. 제 11항에 있어서, 상기 라우팅 패턴은 사람에 의해 직접 기술된 렉시코-신텍틱 패턴을 이용하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 시스템.
  13. 제 11항에 있어서, 상기 키워드 점수는 코사인 유사도를 이용하여 점수화하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 시스템.
  14. 제 9항에 있어서, 상기 Chat 에이전트는,
    일반화 방법을 통해 상기 사용자 입력 문장을 처리하는 채팅 모듈; 및
    예외처리 방법을 통해 상기 사용자 입력 문장을 처리하는 예외처리 모듈을 포함하는 것을 특징으로 다매체 정보제공 대화 에이전트 시스템.
  15. 제 14항에 있어서, 상기 일반화 방법은 띄어쓰기와 문장부호의 다양성을 일반화시키고, 문장내에서 변화되지 않은 형태소를 가지고 문장을 표현하며 문장에서 체언들과 본용언을 가지고 문자를 표현하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 시스템.
  16. 제 14항에 있어서, 상기 채팅 모듈은,
    특정 주제에 특화된 대화의 오토마타를 활성화시키는 부대화 채팅 모듈;
    질의 응답 쌍의 종류를 규정하고 각 종류마다 다른 처리를 하는 코드 기반 채팅 모듈;
    상기 코드 기반 채팅 모듈에서 동일한 코드를 가지는 발화가 반복되어 나오는 경우 반복의 정도에 따라 다른 수준의 응답을 생성하는 중복 발화 채팅 모듈; 및
    코드로 정리되기 어렵거나 모호한 경우의 채팅들을 각각 질의응답 단위로 모아두고 입력 발화나 그 일반화된 형태가 미리 구축된 발화와 일치하는 경우 그것에 대응하는 응답을 전달하는 단순 채팅 모듈을 포함하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 시스템.
  17. 제 14항에 있어서, 상기 예외처리 모듈은,
    문장에 일부로 표현될 수 있는 내용들을 정규 표현 방법을 사용하여 기술하고, 문장이 상기 내용을 포함하는 경우 일반적인 반화를 생성하는 구 기반 채팅 모듈;
    의미 정보를 갖는 단어 또는 특정 형태소 태그를 갖는 단어를 기반으로 문장을 처리하는 의미 단어 기반 채팅 모듈;
    자동으로 생성될 수 있는 형태소 정보를 이용하여 문장을 처리하는 형태소 기반 채팅 모듈; 및
    사용자의 발화에 대해 응답이 없는 경우 임의의 문장을 발화시키는 임의 문장 유도 발화 모듈을 포함하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 시스템.
  18. 제 9항에 있어서, 상기 QA 에이전트는,
    입력된 문장을 분석하여 명령어 문자열을 생성하는 패턴 매처;
    입력된 문장으로부터 미리 정의해 놓은 의미 카테고리에 해당되는 문자열을 찾아 의미 코드를 할당하는 개체명 인식기; 및
    단어의 의미 범주를 포함하는 의미 범주 사전을 포함하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 시스템.
  19. 제 9항에 있어서, 상기 다이얼로그 에이전트는,
    렉시코-신텍틱 패턴에 근거하여 문장에 내포된 행위를 분석하는 화행 분석을 행하는 화행 분석기;
    렉시코-신텍틱 패턴에 근거하여 대화 참여자가 행한 발화가 대화 영역 중에 어떤 부분에 관심이 있는지를 결정하는 초첨 분석을 행하는 초점 분석기;
    입력된 문장으로부터 미리 정의해 놓은 의미 카테고리에 해당되는 문자열을 찾아 의미 코드를 할당하는 개체명 인식기;
    렉시코-신텍틱 패턴에 근거하여 액션 매칭을 행하는 액션 매처;
    특정 영역에서 대화를 통해 얻는 정보의 리스트를 폼 형태로 표현하는 영역 폼; 및
    현재 화행과 문맥적으로 짝을 이루는지를 검사하기 위한 이전 화행을 저장하는 담화 스택을 포함하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 시스템.
  20. CCA(Coordinated Communication Agent) 구조를 이용한 다매체 정보제공 대화 에이전트 방법으로서,
    채널 관리 서버가, 컴퓨터 등의 단말기를 이용하는 사용자가 웹 또는 인터넷 메신저를 통해 입력한 사용자 입력 문자에 대한 정보를 요구하고 받을 수 있도록 입출력 채널과 통신 세션을 관리하는 단계;
    시스템 연결 서버가, 외부의 정보 검색 시스템 또는 데이터베이스 관리 시스템에 접근하여 사용자가 원하는 정보를 얻어오고, 언어 처리 서버로부터 전송된 명령어를 실행하고 그 결과를 자연어 응답과 결합하여 사용자에게 전달하는 단계; 및
    언어 처리 서버가, 사용자가 입력한 사용자 입력 문장을 분석하여 자연어 응답과 상기 시스템 연결 서버가 수행할 명령어를 생성하는 단계를 포함하는 다매체 정보제공 대화 에이전트 방법.
  21. 제 20항에 있어서, 상기 채널 관리 서버와 상기 시스템 연결 서버는 WAS 프로그램으로 구현되는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  22. 제 20항에 있어서, 상기 언어 처리 서버는 독립적인 데몬 프로그램으로 구현되는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  23. 제 20 내지 22항중 어느 한 항에 있어서, 상기 채널 관리 서버 및 상기 시스템 연결 서버와, 상기 언어 처리 서버는 TCP/IP 프로토콜을 통해 정보를 주고받는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  24. 제 20항에 있어서, 상기 채널 관리 서버가 입출력 채널과 통신 세션을 관리하는 단계는,
    채널 관리 서버 매니저가, 상기 사용자 입력 문장이 수신될 채널을 식별하여 식별된 채널에 해당되는 에이전트를 호출하고, 세션 번호와 채널 구분자를 할당하며, 상기 할당된 세션 번호 및 채널 구분자를 저장하는 단계;
    상기 사용자 입력 문장이 수신되는 채널이 웹 채널인 경우, 웹 채널 에이전트가 상기 웹 채널을 개방하고 관리하는 단계; 및
    상기 사용자 입력 문장이 수신되는 채널이 IM 채널인 경우, IM 채널 에이전트가 상기 IM 채널을 개방하고 관리하는 단계를 포함하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  25. 제 24항에 있어서, 상기 에이전트를 할당하고, 세션 번호 및 채널 구분자를 할당 및 저장하는 단계는,
    상기 관리 서버 매니저가, 사용자 입력 문장이 수신되는 채널을 식별하고 상기 식별된 채널에 해당되는 에이전트를 호출하는 단계;
    상기 채널 관리 서버 매니저가 해당 채널을 통해 상기 사용자 입력 문장을 수신하는 단계;
    상기 채널 관리 서버 매니저가 세션 번호를 할당하고, 할당된 세션 번호를 저장하는 단계;
    상기 채널 관리 서버 매니저가 채널 구분자를 할당하고, 할당된 채널 구분자를 저장하는 단계;
    상기 채널 관리 서버 매니저가 상기 할당된 세션 번호와 함께 수신된 상기 사용자 입력 문장을 상기 시스템 연결 서버로 전달하는 단계;
    상기 채널 관리 서버 매니저가 상기 시스템 연결 서버로부터 전송된 세션 번호가 포함된 시스템 출력을 수신하는 단계;
    상기 채널 관리 서버 매니저가 상기 수신된 세션 번호를 이용하여 채널 구분자를 식별하는 단계; 및
    상기 채널 관리 서버 매니저가 상기 식별된 채널 구분자를 이용하여 해당 채널 에이전트를 호출하고, 해당 채널을 통해 상기 시스템 출력을 사용자에게 전달하는 단계를 포함하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  26. 제 24항에 있어서, 상기 채널 관리 서버 매니저는 상기 웹 채널 에이전트 및 상기 IM 채널 에이전와 함수 호출을 통해 정보를 주고 받는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  27. 제 25항에 있어서, 상기 시스템 출력은 상기 사용자 입력 문장에 대한 응답 또는 공지 사항인 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  28. 제 20항에 있어서, 상기 시스템 연결 서버가 외부 시스템으로 명령어를 전달하고 결과를 수신하여 적당한 시스템 출력을 생성하는 단계는,
    시스템 연결 서버 매니저가, 상기 언어 처리 서버로부터 전송된 명령어 문자열을 수신하는 단계;
    상기 시스템 연결 서버 매니저가 상기 수신된 명령어를 파싱하여, 연동할 에이전트에 해당되는 질의어를 생성하는 단계;
    해당 에이전트가 외부 시스템과 연동하도록, 상기 시스템 연결 서버 매니저가 연동할 에이전트를 호출하는 단계;
    상기 시스템 연결 서버 매니저가 각 에이전트로부터 전달된 결과와 언어 처리 서버로부터 전달된 자연어 응답을 결합하여 사용자에게 전달할 시스템 응답을 생성하는 단계; 및
    상기 시스템 연결 서버 매니저가 상기 생성된 시스템 응답을 채널 관리 서버로 전달하는 단계를 포함하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  29. 제 28항에 있어서, 상기 질의어는 검색 요청 질의어 또는 SQL 질의어인 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  30. 제 28항에 있어서, 상기 시스템 연결 서버 매니저가 연동할 에이전트에 해당되는 질의어를 생성하는 단계에서, 상기 연동할 에이전트가 IR 에이전트인 경우에는,
    상기 IR 에이전트가 상기 시스템 연결 서버 매니저로부터 생성된 검색 요청 질의어를 수신하는 단계;
    상기 IR 에이전트가 외부 IR 시스템과 연동하는 단계;
    상기 IR 에이전트가 상기 검색 요청 질의어를 상기 외부 IR 시스템으로 전송하는 단계;
    상기 IR 에이전트가 상기 외부 IR 시스템으로부터 검색 결과를 수신하는 단계; 및
    상기 IR 에이전트가 상기 외부 IR 시스템으로부터 수신된 검색 결과를 파싱하여 상기 시스템 연결 서버 매니저로 전달하는 단계를 포함하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  31. 제 28항에 있어서, 상기 시스템 연결 서버 매니저가 연동할 에이전트에 해당되는 질의어를 생성하는 단계에서, 상기 연동할 에이전트가 DB 에이전트인 경우에는,
    상기 DB 에이전트가 상기 시스템 연결 서버 매니저로부터 생성된 SQL 질의어를 수신하는 단계;
    상기 DB 에이전트가 외부 DB 시스템과 연동하는 단계;
    상기 DB 에이전트가 상기 SQL 질의어를 상기 연동된 외부 DB 시스템으로 전송하는 단계;
    상기 DB 에이전트가 상기 외부 DB 시스템으로부터 DB 검색 결과를 수신하는 단계; 및
    상기 DB 에이전트가 상기 외부 DB 시스템으로부터 수신한 검색 결과를 파싱하여 상기 시스템 연결 서버 매니저로 전달하는 단계를 포함하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  32. 제 28항에 있어서, 상기 시스템 연결 서버 매니저는 상기 IR 에이전트 및 상기 DB 에이전트와 함수 호출을 통해 정보를 주고 받는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  33. 제 20항에 있어서, 상기 언어 처리 서버가 사용자 입력 문장을 분석하여 자연어 응답과 상기 시스템 연결 서버가 수행할 명령어를 생성하는 단계는,
    언어 처리 서버 매니저가 상기 시스템 연결 서버로부터 전송된 사용자 입력 문장을 수신하는 단계;
    상기 언어 처리 서버 매니저가 상기 언어 처리 서버 내에 있는 에이전트간의 우선 순위를 결정하는 단계;
    상기 언어 처리 서버 매니저가 우순 순위별 에이전트를 호출하는 단계;
    상기 호출된 에이전트가 실행되는 단계;
    상기 언어 처리 서버 매니저가 각 에이전트로부터 명령어 문자열을 수신하여 결합하는 단계; 및
    상기 언어 처리 서버 매니저가 상기 결합된 명령어 문자열을 상기 시스템 연결 서버로 전달하는 단계를 포함하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  34. 제 33항에 있어서, 상기 언어 처리 서버 매니저가 상기 언어 처리 서버 내에 있는 에이전트간의 우선 순위를 결정하는 단계는 라우팅 패턴, 점유 정보 및 키워드 점수를 이용하여 상기 에이전트간의 우선 순위를 결정하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  35. 제 34항에 있어서, 상기 라우팅 패턴은 사람에 의해 직접 기술된 렉시코-신텍틱 패턴을 이용하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  36. 제 34항에 있어서, 상기 키워드 점수는 코사인 유사도를 이용하여 점수화하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  37. 제 33항에 있어서, 상기 호출된 에이전트가 실행되는 단계는,
    Chat 에이전트가 특별한 목적이 없는 잡담 대화를 처리하는 단계;
    QA 에이전트가 1문 1답형 질문을 처리하는 단계; 및
    다이얼로그 에이전트가 문맥 유지가 필요한 목적 지향의 대화를 처리하는 단계를 포함하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  38. 제 33항에 있어서, 상기 언어 처리 서버 매니저는 상기 Chat 에이전트, 상기 QA 에이전트 및 상기 다이얼로그 에이전트와 함수 호출을 통해 정보를 주고 받는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  39. 제 37항에 있어서, 상기 Chat 에이전트가 특별한 목적이 없는 잡담 대화를 처리하는 단계는,
    채팅 모듈이 일반화 방법을 통해 상기 사용자 입력 문장을 처리하는 단계; 및
    예외처리 모듈이 예외처리 방법을 통해 상기 사용자 입력 문장을 처리하는 단계를 포함하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  40. 제 39항에 있어서, 상기 채팅 모듈이 일반화 방법을 통해 상기 사용자 입력 문장을 처리하는 단계는,
    부대화 채팅 모듈이 특정 주제에 특화된 대화의 오토마타를 활성화시키는 단계;
    코드 기반 채팅 모듈이 질의 응답 쌍의 종류를 규정하고 각 종류마다 다른 처리를 하는 단계;
    중복 발화 채팅 모듈이 상기 코드 기반 채팅 모듈에서 동일한 코드를 가지는 발화가 반복되어 나오는 경우 반복의 정도에 따라 다른 수준의 응답을 생성하는 단계; 및
    단순 채팅 모듈이 코드로 정리되기 어렵거나 모호한 경우의 채팅들을 각각 질의응답 단위로 모아두고 입력 발화나 그 일반화된 형태가 미리 구축된 발화와 일치하는 경우 그것에 대응하는 응답을 전달하는 단계를 포함하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  41. 제 39항에 있어서, 상기 예외처리 모듈이 예외처리 방법을 통해 상기 사용자 입력 문장을 처리하는 단계는,
    구 기반 채팅 모듈이 문장에 일부로 표현될 수 있는 내용들을 정규 표현 방법을 사용하여 기술하고, 문장이 상기 내용을 포함하는 경우 일반적인 반화를 생성하는 단계;
    의미 단어 기반 채팅 모듈이 의미 정보를 갖는 단어 또는 특정 형태소 태그를 갖는 단어를 기반으로 문장을 처리하는 단계;
    형태소 기반 채팅 모듈이 자동으로 생성될 수 있는 형태소 정보를 이용하여 문장을 처리하는 단계; 및
    임의 문장 유도 발화 모듈이 사용자의 발화에 대해 응답이 없는 경우 임의의 문장을 발화시키는 단계를 포함하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  42. 제 37항에 있어서, 상기 QA 에이전트가 1문 1답형 질문을 처리하는 단계는,
    패턴 매처가 입력 문장과의 매칭을 통해 상기 입력 문장을 분석하고 명령어 문자열을 생성하는 단계; 및
    개체명 인식기가 입력된 문장으로부터 미리 정의해 놓은 의미 카테고리에 해당되는 문자열을 찾아 의미 코드를 할당하는 단계를 포함하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  43. 제 42항에 있어서, 상기 패턴 매처는 렉시코-신텍틱 패턴을 이용하여 상기 입력 문장을 분석하고 명령어 문자열을 생성하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  44. 제 37항에 있어서, 상기 다이얼로그 에이전트가 문맥 유지가 필요한 목적 지향의 대화를 처리하는 단계는,
    화행 분석기가 렉시코-신텍틱 패턴에 근거하여 문장에 내포된 행위를 분석하는 화행 분석 단계;
    초점 분석기가 렉시코-신텍틱 패턴에 근거하여 대화 참여자가 행한 발화가 대화 영역 중에 어떤 부분에 관심이 있는지를 결정하는 초첨 분석을 행하는 초점 분석 단계;
    액션 매처가 렉시코-신텍틱 패턴에 근거하여 액션 매칭을 행하는 단계;
    개체명 인식기가 입력된 문장으로부터 미리 정의해 놓은 의미 카테고리에 해당되는 문자열을 찾아 의미 코드를 할당하는 단계;
    영역 폼이 특정 영역에서 대화를 통해 얻는 정보의 리스트를 폼 형태로 표현하는 단계; 및
    담화 스택이 이전 화행을 현재 화행과 문맥적으로 짝을 이루는지를 검사하는 단계를 포함하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
  45. 제 44항에 있어서, 상기 담화 스택이 이전 화행을 현재 화행과 문맥적으로 짝을 이루는지를 검사하는 단계는,
    상기 담화 스택의 탑에 있는 화행과 문장 패턴을 이용하여 현재 문장의 화행을 결정하는 단계;
    상기 담화 스택의 탑에 존재하는 화행과 현재 화행이 문맥적으로 짝을 이루는지 어떤지를 검사하는 단계; 및
    상기 화행들이 문맥적으로 짝을 이루면, 상기 스택을 팝하여 탑에 존재하는 화행을 제거하는 단계; 및
    상기 화행들이 문맥적으로 짝을 이루지 않으면, 상기 현재 화행을 스택에 푸쉬하는 단계를 포함하는 것을 특징으로 하는 다매체 정보제공 대화 에이전트 방법.
KR1020030073059A 2003-10-20 2003-10-20 Cca 구조를 이용한 다매체 정보제공 대화 에이전트시스템 및 방법 KR100571443B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030073059A KR100571443B1 (ko) 2003-10-20 2003-10-20 Cca 구조를 이용한 다매체 정보제공 대화 에이전트시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030073059A KR100571443B1 (ko) 2003-10-20 2003-10-20 Cca 구조를 이용한 다매체 정보제공 대화 에이전트시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20050037791A true KR20050037791A (ko) 2005-04-25
KR100571443B1 KR100571443B1 (ko) 2006-04-14

Family

ID=37240397

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030073059A KR100571443B1 (ko) 2003-10-20 2003-10-20 Cca 구조를 이용한 다매체 정보제공 대화 에이전트시스템 및 방법

Country Status (1)

Country Link
KR (1) KR100571443B1 (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100684160B1 (ko) * 2005-12-08 2007-02-20 한국전자통신연구원 개체명 인식을 이용한 대화 분석 장치 및 방법
KR100693754B1 (ko) * 2005-07-15 2007-03-12 에스케이 텔레콤주식회사 사이버 에이전트를 이용한 메시지 요약 전송 서비스 시스템 및 방법
WO2015194684A1 (ko) * 2014-06-16 2015-12-23 주식회사 다이퀘스트 사용자 다이알로그에 따른 서비스 제공 방법 및 다이알로그 에이전트 시스템
WO2018030672A1 (ko) * 2016-08-09 2018-02-15 주식회사 피노텍 머신러닝을 활용한 정해진 시나리오로 고객과 상담하는 로봇 자동 상담 방법 및 시스템
KR20180108400A (ko) * 2017-03-23 2018-10-04 삼성전자주식회사 전자 장치, 그의 제어 방법 및 비일시적 컴퓨터 판독가능 기록매체
KR20190036604A (ko) * 2017-09-28 2019-04-05 주식회사 신의직장 사전 정의된 대화 플로우를 이용한 하이브리드 채팅 제공 방법 및 하이브리드 채팅 서비스 서버
US10490184B2 (en) 2016-11-10 2019-11-26 Samsung Electronics Co., Ltd. Voice recognition apparatus and method
US11720759B2 (en) 2017-03-23 2023-08-08 Samsung Electronics Co., Ltd. Electronic apparatus, controlling method of thereof and non-transitory computer readable recording medium

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016195324A1 (ko) * 2015-06-01 2016-12-08 라인 가부시키가이샤 메신저 기반 서비스 제공 장치 및 이를 이용한 방법
KR101990895B1 (ko) * 2018-01-23 2019-06-19 주식회사 두유비 온라인 게시물 및 댓글 자동 응답용 인공지능 대화형 댓글 제공 시스템
KR20220126521A (ko) 2021-03-09 2022-09-16 주식회사 케이티 대화 서비스를 제공하는 대화 추론 서버, 방법 및 컴퓨터 프로그램

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100693754B1 (ko) * 2005-07-15 2007-03-12 에스케이 텔레콤주식회사 사이버 에이전트를 이용한 메시지 요약 전송 서비스 시스템 및 방법
KR100684160B1 (ko) * 2005-12-08 2007-02-20 한국전자통신연구원 개체명 인식을 이용한 대화 분석 장치 및 방법
WO2015194684A1 (ko) * 2014-06-16 2015-12-23 주식회사 다이퀘스트 사용자 다이알로그에 따른 서비스 제공 방법 및 다이알로그 에이전트 시스템
WO2018030672A1 (ko) * 2016-08-09 2018-02-15 주식회사 피노텍 머신러닝을 활용한 정해진 시나리오로 고객과 상담하는 로봇 자동 상담 방법 및 시스템
KR20180017342A (ko) * 2016-08-09 2018-02-21 주식회사 피노텍 머신러닝을 활용한 정해진 시나리오로 고객과 상담하는 로봇 자동 상담 방법 및 시스템
US10490184B2 (en) 2016-11-10 2019-11-26 Samsung Electronics Co., Ltd. Voice recognition apparatus and method
KR20180108400A (ko) * 2017-03-23 2018-10-04 삼성전자주식회사 전자 장치, 그의 제어 방법 및 비일시적 컴퓨터 판독가능 기록매체
US11720759B2 (en) 2017-03-23 2023-08-08 Samsung Electronics Co., Ltd. Electronic apparatus, controlling method of thereof and non-transitory computer readable recording medium
KR20190036604A (ko) * 2017-09-28 2019-04-05 주식회사 신의직장 사전 정의된 대화 플로우를 이용한 하이브리드 채팅 제공 방법 및 하이브리드 채팅 서비스 서버

Also Published As

Publication number Publication date
KR100571443B1 (ko) 2006-04-14

Similar Documents

Publication Publication Date Title
KR101883185B1 (ko) 머신러닝을 활용한 정해진 시나리오로 고객과 상담하는 로봇 자동 상담 방법 및 시스템
CN101112078B (zh) 信息通信终端、信息通信系统、信息通信方法、信息通信程序及存储该程序的记录媒体
US9514227B1 (en) In-conversation search
Vilares et al. On the usefulness of lexical and syntactic processing in polarity classification of T witter messages
Paolillo “Conversational” codeswitching on usenet and internet relay chat
US7302383B2 (en) Apparatus and methods for developing conversational applications
KR102030078B1 (ko) 대화형 상호작용 시스템에서 서치 입력에서의 사용자 의도를 추론하는 방법 및 이를 위한 시스템
JP6998680B2 (ja) 対話型業務支援システムおよび対話型業務支援プログラム
Guy The characteristics of voice search: Comparing spoken with typed-in mobile web search queries
US20020173946A1 (en) Translation and communication of a digital message using a pivot language
US20070294229A1 (en) Chat conversation methods traversing a provisional scaffold of meanings
US20150006143A1 (en) Semantic translation model training
US10847140B1 (en) Using semantically related search terms for speech and text analytics
Sardinha 25 years later
US20140195449A1 (en) System and method for automatic building of business contacts temporal social network using corporate emails and internet
WO2008128423A1 (fr) Système de dialogue intelligent et son procédé de réalisation
KR100571443B1 (ko) Cca 구조를 이용한 다매체 정보제공 대화 에이전트시스템 및 방법
Condon et al. Discourse management in three modalities
Dent et al. Through the twitter glass: Detecting questions in micro-text
US20140067401A1 (en) Provide services using unified communication content
Kongthon et al. Implementing an online help desk system based on conversational agent
EP2261818A1 (en) A method for inter-lingual electronic communication
Ahed et al. An enhanced twitter corpus for the classification of Arabic speech acts
US20060047502A1 (en) Method and apparatus for building semantic structures using self-describing fragments
Oloruntobi A Stylistic Analysis of Some Linguistic Devices in Newspaper Headlines: Nigerian Newspapers as a Case Study

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130410

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140410

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160411

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170410

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180410

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20190410

Year of fee payment: 14