KR101646644B1 - 연계 태스크 유추 방법 및 시스템 - Google Patents

연계 태스크 유추 방법 및 시스템 Download PDF

Info

Publication number
KR101646644B1
KR101646644B1 KR1020150011991A KR20150011991A KR101646644B1 KR 101646644 B1 KR101646644 B1 KR 101646644B1 KR 1020150011991 A KR1020150011991 A KR 1020150011991A KR 20150011991 A KR20150011991 A KR 20150011991A KR 101646644 B1 KR101646644 B1 KR 101646644B1
Authority
KR
South Korea
Prior art keywords
task
tasks
information
user
cooperative
Prior art date
Application number
KR1020150011991A
Other languages
English (en)
Other versions
KR20160092091A (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 KR1020150011991A priority Critical patent/KR101646644B1/ko
Publication of KR20160092091A publication Critical patent/KR20160092091A/ko
Application granted granted Critical
Publication of KR101646644B1 publication Critical patent/KR101646644B1/ko

Links

Images

Classifications

    • G06F17/30144
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

정보단말기 사용자가 연이어 수행하는 태스크들인 연계 태스크를 유추하고 이를 사용하여 다음에 실행할 태스크를 추천하는 방법 및 시스템이 제공된다. 본 발명의 시스템은 사용자들이 수행한 태스크들을 사용자 로그 데이터베이스에 저장하고, 상기 사용자 로그 데이터베이스를 이용하여 연속하여 수행되는 연계 태스크를 유추하는 서버와, 정보단말기에 설치되어 있으며, 수행된 태스크에 관한 정보를 서버로 전송하는 클라이언트 프로그램을 구비한다. 본 발명에 따르면, 사용자들이 수행한 태스크들을 사용자 로그 데이터베이스에 저장하고, 이 사용자 로그 데이터베이스를 이용하여 연속하여 수행되는 연계 태스크를 유추하므로, 연계된 태스크를 효과적으로 유추할 수 있다. 또한, 사용자가 하나의 태스크 수행을 요청하면, 태스크 수행 후에 이와 연계된 다른 태스크의 수행 여부를 제안할 수 있으므로, 사용이 편리하다.

Description

연계 태스크 유추 방법 및 시스템 {Method and system for infering associated tasks}
본 발명은 연계 태스크 유추 방법 및 시스템에 관한 것으로서, 더욱 상세하게는 정보단말기 사용자가 연이어 수행하는 태스크들인 연계 태스크를 유추하고 이를 사용하여 다음에 실행할 태스크를 추천하는 방법 및 시스템에 관한 것이다.
스마트폰이나 태블릿 PC, 개인컴퓨터 등의 정보단말기에는 날씨/환율/주가/일정 등의 정보 조회, 전화걸기, 이메일 작성 및 발송, 일정 기록 등 정보단말기에서 수행되는 다양한 작업(이하, '태스크'라 함)을 음성으로 대화하듯이 지시하는 프로그램이 제공되고 있다. 예를 들면, 애플사(Apple Inc.)의 '시리(siri)'에서는 말로 질문을 하거나 지시를 내리면 시리가 응답하거나 지시에 따른 태스크를 수행한다. 이와 같이 정보단말기기에 음성으로 지시를 내리고 태스크를 수행하는 것과 관련해서는 미국특허 제8,670,979호, 제8,677,377호, 제8,930,191호 등의 다양한 발명이 제안되어 있다.
그런데, 사용자는 여러 태스크를 수행함에 있어서 습관적으로 동일한 순서에 따라 태스크들을 수행하는 경우가 많다. 예를 들면, 날씨정보를 요청한 다음에 일정조회를 하거나, 호텔 예약을 한 후에 일정 등록을 하고 알람설정을 하거나 하는 등의 일련의 태스크를 동일한 순서로 반복하게 하는 경우가 많다.
그러나, 종래의 정보단말기기에서는 사용자가 각 태스크별로 태스크 수행을 일일이 지시하여야 하므로 사용이 불편하다.
본 발명은 이러한 점을 감안하여 이루어진 것으로서, 정보단말기 사용자들의 태스크 수행 패턴을 파악하여 정보단말기 사용자가 연이어 수행하는 연계 태스크를 유추하고, 사용자가 지시한 태스크를 수행하였을 때 그와 연계된 태스크를 사용자에게 제시하는 방법과 시스템을 제공하는 것을 목적으로 한다.
본 발명의 연계 태스크 유추 시스템은, 사용자들이 수행한 태스크들을 사용자 로그 데이터베이스에 저장하고, 상기 사용자 로그 데이터베이스를 이용하여 연속하여 수행되는 연계 태스크를 유추하는 서버와, 정보단말기에 설치되어 있으며, 수행된 태스크에 관한 정보를 서버로 전송하는 클라이언트 프로그램을 구비한다.
본 발명의 연계 태스크 유추 방법은, 사용자들이 수행한 태스크들을 사용자 로그 데이터베이스에 저장하는 제1단계와, 연속하여 수행되는 태스크들을 상기 사용자 로그 데이터베이스를 이용하여 유추하여 연계 태스크로서 연계 태스크 데이터베이스에 저장하는 제2단계를 구비한다.
제1단계는, 정보단말기에 설치된 클라이언트 프로그램으로부터 사용자 정보, 수행된 태스크에 관한 정보를 수신하는 단계와, 사용자 정보, 태스크 정보, 및 수신시간을 사용자 로그 데이터베이스에 저장하는 단계를 포함한다.
제2단계는, 사용자 로그 데이터베이스에 저장된 정보를 사용자별로 순서대로 정렬하는 단계와, 연속되어 수행되는 두 개의 태스크(이하, '태스크 페어'라 함)로 이루어지는 연계 태스크들을 결정하는 연계 태스크 페어 결정단계와, 연속되어 수행되는 세 개의 태스크(이하, '태스크 트리플'이라 함)로 이루어지는 연계 태스크들을 결정하는 연계 태스크 트리플 결정단계를 포함한다. 한편, 동일한 사용자에 대해서 연속된 두 태스크의 수신시간 간격이 소정 시간 이내인 태스크들에 대해서만 연속되어 수행되는 태스크로 인정하는 것이 바람직하다.
연계 태스크 페어 결정단계에서는, 사용자 로그 데이터베이스에 저장된 태스크들로부터 연속되어 수행된 두 개의 태스크로 이루어진 태스크 페어들을 추출하고, 각 태스크 페어의 출현빈도를 계산한 후에, 출현빈도가 제1 임계치 이상인 태스크 페어들을 연계 태스크로 결정한다. 연계 태스크 트리플 결정단계에서는, 사용자 로그 데이터베이스에 저장된 태스크들로부터 연속되어 수행된 세 개의 태스크로 이루어진 태스크 트리플들을 추출하고, 각 태스크 트리플의 출현빈도를 계산한 후에, 출현빈도가 제2 임계치 이상인 태스크 페어들을 연계 태스크로 결정한다.
연계 태스크로 결정된 태스크 페어에 포함되어 있는 첫번째 태스크와 두번째 태스크가 연계 태스크로 결정된 태스크 트리플에 첫번째 태스크와 두번째 태스크로서 각각 포함되어 있는 경우에는 이 태스크 페어는 연계 태스크에서 제외시키는 것이 바람직하다. 또한, 제1 임계치는 제2 임계치보다 큰 것이 바람직하다.
서버는 정보단말기에 설치된 클라이언트 프로그램으로부터 수행된 태스크에 관한 정보를 수신하면, 상기 태스크가 첫번째 태스크로 포함되어 있는 연계 태스크가 있는지를 연계 태스크 데이터베이스에서 확인한다. 그리고, 상기 태스크가 첫번째 태스크로 포함되어 있는 연계 태스크가 있는 경우에는 해당 연계 태스크에서 상기 첫번째 태스크 이후의 태스크에 관한 정보를 클라이언트 프로그램으로 전송한다. 태스크에 관한 정보를 상기 클라이언트 프로그램으로 전송할 때에 상기 태스크를 수행하기 위한 서비스들에 관한 정보도 함께 전송하는 것이 바람직하다.
상기 태스크를 수행하기 위한 서비스들에 관한 정보에는 각 서비스의 전체 사용자의 사용빈도에 따른 가중치가 포함될 수 있다. 클라이언트 프로그램은, 수신된 전체 사용자의 사용빈도에 따른 가중치에 상기 정보단말기의 사용자의 각 서비스의 사용빈도를 반영하여 보정된 가중치를 사용하여 상기 태스크를 수행하는데 사용할 서비스를 결정하고, 결정된 서비스를 사용하여 상기 태스크를 수행한다.
본 발명에 따르면, 사용자들이 수행한 태스크들을 사용자 로그 데이터베이스에 저장하고, 이 사용자 로그 데이터베이스를 이용하여 연속하여 수행되는 연계 태스크를 유추하므로, 연계된 태스크를 효과적으로 유추할 수 있다. 또한, 사용자가 하나의 태스크 수행을 요청하면, 태스크 수행 후에 이와 연계된 다른 태스크의 수행 여부를 제안할 수 있으므로, 사용이 편리하다.
도 1은 본 발명의 연계 태스크 유추 시스템의 구성을 보여주는 블록도이다.
도 2는 본 발명의 연계 태스크의 유추 및 제안 과정을 보여주는 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 연계 태스크 유추 방법을 보여주는 흐름도이다.
도 4는 한 사용자의 태스크 수행 로그로부터 태스크 페어를 추출하는 개념을 설명하기 위한 도면이다.
도 5는 한 사용자의 태스크 수행 로그로부터 태스크 트리플을 추출하는 개념을 설명하기 위한 도면이다.
도 6은 태스크 트리플에 포함되어 있는 태스크 페어를 연계 태스크에서 제외시키는 방법을 설명하기 위한 도면이다.
도 7은 하나의 태스크를 수행하고 이와 연계된 태스크를 제안하는 예을 보여주는 흐름도이다.
이하, 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 이하의 설명에서, '태스크'는 '일정 등록', '호텔 예약', '알림 설정' 등과 같이 수행해야 하는 업무를 나타내는 용어로 사용된다. 또한, '서비스'는 태스크를 수행하는 구체적인 수단을 나타내는 용어로 사용된다. 즉, '일정 등록'이라는 태스크를 수행하기 위해서는 다양한 서비스를 이용할 수 있는데, 예를 들면 스마트폰에 설치된 일정관리 앱에서 제공하는 일정 등록 서비스를 사용할 수도 있고, 웹사이트에서 제공하는 클라우드 프로그램, 예를 들면 '네이버 캘린더'에서 제공하는 일정 등록 서비스를 사용할 수도 있다. 이하의 설명에서 '서비스'는 이와 같이 태스크를 수행하는 어플리케이션의 해당 기능, 클라우드 프로그램의 해당 기능, 웹사이트의 해당 페이지 등의 구체적인 수단을 나타낸다. 또한, 이하의 설명에서 '연계 태스크'는 연속하여 수행될 확율이 높은 태스크들의 집합을 의미하며, 두 개의 태스크로 이루어질 수도 있고, 세 개 또는 그 이상의 태스크로 이루어질 수도 있다. 연계 태스크가 첫번째 태스크와 두번째 태스크의 두 개의 태스크로 이루어지는 경우에, 첫번째 태스크가 수행되면 두번째 태스크가 이어서 수행될 확율이 높음을 나타낸다.
도 1은 본 발명의 연계 태스크 유추 시스템의 구성을 보여주는 블록도이다. 본 발명의 연계 태스크 유추 시스템은, 사용자들이 수행한 태스크들을 사용자 로그 데이터베이스에 저장하고 이를 이용하여 연속하여 수행되는 연계 태스크들을 유추하고 연계 태스크 데이터베이스에 저장하는 서버(100)와, 정보단말기(200)에 설치되어 있으며, 수행된 태스크에 관한 정보를 서버(100)로 전송하는 클라이언트 프로그램(210)으로 구성된다.
대화엔진(110)은 클라이언트 프로그램(210)으로부터 사용자가 말하거나 또는 문자열을 입력하여 생성된 발화 데이터를 수신하여 그 내용을 파악한다. 발화 데이터는 음성 신호 또는 문자열의 형태로 수신될 수 있다. 대화엔진(110)은 분석된 발화내용을 토대로 수행엔진(120)에게 수행한 태스크를 요청한다.
수행엔진(120)은 요청받은 태스크를 수행하고 그 결과를 클라이언트 프로그램(210)에 제공한다. 결과의 제공은 수행엔진(120)에서 클라이언트 프로그램(210)으로 직접 제공될 수도 있고, 대화엔진(110)을 통해서 대화의 형태로 제공될 수도 있다.
연계 태스크 유추엔진(130)은 사용자들이 클라이언트 프로그램(210)을 통해 수행한 태스크들에 대한 로그로부터 연속하여 수행되는 태스크들를 유추하여 연계 태스크로서 연계 태스크 데이터베이스에 저장한다.
클라이언트 프로그램(210)은 사용자의 발화내용을 서버(100)로 전송하고, 서버(100)로부터 수신한 태스크에 관한 정보에 따라 서비스를 수행한다. 서비스는 정보단말기(200)에 설치되어 있는 앱(220)에서 수행될 수도 있고, 서비스 제공 웹사이트(300)에서 수행될 수도 있다.
도 2는 본 발명의 연계 태스크의 유추 및 제안 과정을 보여주는 흐름도이다.
서버(100)는 정보단말기(200)에 설치된 클라이언트 프로그램(210)을 통해서 입력된 발화내용에 따라 태스크가 수행되면 해당 태스크에 관한 정보를 사용자 로그 데이터베이스에 저장한다(단계 S100).
사용자 로그 데이터베이스에 저장되는 태스크에 관한 정보는 예를 들면, 사용자 ID 또는 사용자의 이메일 주소 등의 사용자 정보와, 수행된 태스크, 그리고 정보를 수신한 시간을 포함할 수 있다.
연계 태스크 유추엔진(130)은 사용자 로그 데이터베이스에 저장된 내용으로부터 연계 태스크를 유추한다(단계 S200). 유추된 연계 태스크들은 연계 태스크 데이터베이스에 저장된다.
이후, 클라이언트 프로그램(210)을 사용하여 태스크가 수행되면 수행엔진(120)은 수행된 태스크가 첫번째 태스크로 등록되어 있는 연계 태스크가 있는지를 연계 태스크 데이터베이스에서 검색하고, 연계 태스크가 있으면 수행된 태스크 이후에 수행될 태스크에 관한 정보를 클라이언트 프로그램(210)으로 전송한다(단계 S300). 태스크에 관한 정보를 상기 클라이언트 프로그램으로 전송할 때에 상기 태스크를 수행하기 위한 서비스들에 관한 정보도 함께 전송하는 것이 바람직하다.
그러면, 클라이언트 프로그램(210)은 수신한 태스크에 관한 정보를 사용하여 사용자에게 해당 태스크를 수행할 것인지를 묻고, 사용자가 수행을 원하면 수신한 태스크(들)에 관한 정보에 포함되어 있는 서비스에 관한 정보를 사용하여 서비스를 실행한다. 연계 태스크가 세 개의 태스크 또는 그 이상의 수의 태스크로 이루어져 있는 경우에는, 연계 태스크 내에 포함되어 있는 두번째 태스크를 수행할 것인지를 확인하여 수행하고, 두번째 태스크의 수행이 끝나면 세번째 태스크를 수행할 것인지를 확인하여 수행하는 동작을 마지막 태스크까지 반복한다.
다음으로, 도 3을 참조하여 연계 태스크를 유추하는 방법에 대해서 설명한다. 도 3은 본 발명의 일 실시예에 따른 연계 태스크 유추 방법을 보여주는 흐름도이다.
연계 태스크 유추엔진(130)은 사용자 로그 데이터베이스에 저장된 로그 정보를 각 사용자별로 순서대로 정렬한다(S210).
예를 들어, 사용자 로그 데이터베이스에 다음과 같은 정보가 등록되어 있다고 가정하자.
A 사용자 : 일정 등록 : 2015년 1월 22일 9시20분33초
B 사용자 : 알람 설정 : 2015년 1월 22일 9시21분01초
B 사용자 : 날씨 확인 : 2015년 1월 22일 9시22분15초
A 사용자 : 알람 설정 : 2015년 1월 22일 9시22분16초
A 사용자 : 일정 등록 : 2015년 1월 22일 10시11분15초
A 사용자 : 알람 설정 : 2015년 1월 22일 10시12분22초
B 사용자 : 일정 등록 : 2015년 1월 22일 10시12분25초
A 사용자 : 날씨 확인 : 2015년 1월 22일 10시13분05초
A 사용자 : 일정 등록 : 2015년 1월 22일 12시20분12초
그러면, 이 정보를 사용자 별로 분리하여 다음과 같이 순서대로 정렬한다.
A 사용자: 일정 등록 -> 알람 설정 -> 일정 등록 -> 알람 설정 -> 날씨 확인 -> 일정 등록
B 사용자: 알람 설정 -> 날씨 확인 -> 일정 등록
또한, 이 로그 데이터베이스를 바탕으로 다음과 같이 연속되어 수행되는 태스크들의 발생빈도를 계산할 수 있다.
A: 일정 등록 -> 알람 설정 (2회)
   알람 설정 -> 일정 등록 (1회)
   알람 설정 -> 날씨 확인 (1회)
   날씨 확인 -> 일정 등록 (1회)
   일정 등록 -> 알람 설정 -> 날씨 확인 (1회)
   알람 설정 -> 날씨 확인 -> 일정 등록 (1회)
  
B: 알람 설정 -> 날씨 확인 (1회)
   날씨 확인 -> 일정 등록  (1회)
   알람 설정 -> 날씨 확인 -> 일정 등록 (1회)
한편, 동일한 사용자에 대해서 연속된 두 태스크의 수신시간 간격이 소정 시간 이내인 태스크들에 대해서만 연속되어 수행되는 태스크로 인정할 수도 있다. 예를 들면, 수신시간이 10분 이내인 태스크들만을 연속되어 수행되는 태스크로 인정하여, 발생빈도 계산에 포함시키도록 할 수 있다.
이와 같이 사용자별로 정렬된 태스크들로부터 연속되어 수행되는 두 개의 태스크(이하, '태스크 페어'라 함)로 이루어지는 연계 태스크 페어들을 결정한다(단계 S220).
먼저, 정렬된 태스크들로부터 태스크 페어를 추출한다. 그 일예가 도 4에 도시되어 있다. 도 4에서는 한 사용자가 호텔 예약 -> 일정 등록 -> 알람 설정 -> 날씨 확인을 수행한 경우를 보여주고 있다. 이러한 일련의 태스크들(40)로부터 태스크 페어인, 호텔 예약 -> 일정 등록(41), 일정 등록 -> 알람 설정(42), 알람 설정 -> 날씨 확인(43)을 추출한다. 그리고 추출된 태스크 페어들의 발생빈도를 계산하여 발생빈도가 소정의 기준 이상인 태스크 페어들을 연계 태스크 페어로 결정한다. 여기서, 발생빈도로는 각 사용자의 발생빈도를 모든 사용자에 대해서 더한 것을 사용할 수 있다.
또한, 사용자별로 정렬된 태스크들로부터 연속되어 수행되는 세 개의 태스크(이하, '태스크 트리플'이라 함)로 이루어지는 연계 태스크 트리플들을 결정한다(단계 S230). 도 5에서는 한 사용자가 호텔 예약 -> 일정 등록 -> 알람 설정 -> 날씨 확인을 수행한 경우를 보여주고 있다. 이러한 일련의 태스크들(40)로부터 연속되어 수행되는 세 개의 태스크로 이루어지는 태스크 트리플인, 호텔 예약 -> 일정 등록 -> 알람 설정(51), 일정 등록 -> 알람 설정 -> 날씨 확인(52)을 추출한다. 그리고 추출된 태스크 트리플들의 발생빈도를 계산하여 발생빈도가 소정의 기준 이상인 태스크 트리플들을 연계 태스크 트리플로 결정한다. 여기서, 발생빈도로는 각 사용자의 발생빈도를 모든 사용자에 대해서 더한 것을 사용할 수 있다.
한편, 연계 태스크 페어를 결정하기 위한 발생빈도 기준(제1 임계치)은 연계 태스크 트리플을 결정하기 위한 발생빈도 기준(제2 임계치)보다 큰 것이 바람직하다.
다음으로, 중복된 연계 태스크 페어를 제거한다(단계 S240). 즉, 연계 태스크로 결정된 태스크 페어에 포함되어 있는 첫번째 태스크와 두번째 태스크가 연계 태스크로 결정된 태스크 트리플에 첫번째 태스크와 두번째 태스크로서 각각 포함되어 있는 경우에는 이 태스크 페어를 연계 태스크에서 제외시킨다.
이를 도 6을 참조하여 설명한다. 도 6은 호텔 예약 -> 일정 등록(41), 호텔 예약 -> 일정 등록 -> 알람 설정(51), 일정 등록 -> 알람 설정(42)이 연계 태스크로 결정된 경우를 보여주고 있다. 도 6의 예에서는 연계 태스크 페어인 호텔 예약 -> 일정 등록(41)의 첫번째 태스크(호텔 예약)와 두번째 태스크(일정 등록)가 연계 태스크 트리플인 호텔 예약 -> 일정 등록 -> 알람 설정(51)의 첫번째 태스크(호텔 예약)와 두번째 태스크(일정 등록)로서 각각 포함되어 있다. 그러므로, 도 6의 예에서는 호텔 예약 -> 일정 등록(41)을 연계 태스크에서 제외시키고, 호텔 예약 -> 일정 등록 -> 알람 설정(51)과 일정 등록 -> 알람 설정(42)만을 연계 태스크로서 연계 태스크 데이터베이스에 저장한다.
다음으로 도 7을 참조하여 하나의 태스크를 수행하고 이와 연계된 태스크를 제안하는 과정을 설명한다.
사용자가 정보단말기(200)에서 클라이언트 프로그램(210)을 실행시키고 다음주 화요일에 서울에서 부산까지 가는 교통편을 예약해달라고 말을 한다. 그러면, 클라이언트 프로그램(210)은 교통편 예약 발화내용을 서버(100)로 전송하고(단계 S70), 서버(100)의 대화엔진(110)은 발화내용을 분석하고, 분석된 내용에 따라 수행엔진(120)에 화요일에 서울에서 부산까지 가는 교통편 예약을 위한 정보를 요청한다(단계 S71). 그러면, 수행엔진(120)은 화요일에 서울에서 부산까지 가는 다양한 교통편에 관한 정보를 검색하여 대화엔진(110)을 통해, 또는 직접 클라이언트 프로그램(210)으로 검색된 정보를 전송한다(단계 S72).
그러면, 클라이언트 프로그램(210)은 수신한 정보를 화면에 표시하거나 음성으로 알려주어 사용자로 하여금 하나를 선택하도록 한다. 사용자가 교통편을 선택하면 클라이언트 프로그램(210)은 대화형태로 대화엔진(110)을 거쳐서 또는 직접 수행엔진(120)으로 교통편 선택정보를 전송한다(단계 S73). 그러면, 수행엔진(120)은 선택된 교통편에 관한 예약을 할 수 있는 서비스들에 관한 정보를 클라이언트 프로그램(210)으로 전송한다(단계 S74). 교통편에 관한 예약을 할 수 있는 서비스들에 관한 정보는 예를 들면, 기차표 예약을 위한 앱이나 웹페이지 등에 관한 정보와, 그 앱을 실행할 때 또는 그 웹페이지로 접속할 때 전달해야 하는 출발일시, 구간 등의 파라미터 정보가 포함될 수 있다. 또한, 각 서비스들의 가중치가 전체 사용자의 사용빈도에 따른 가중치가 포함될 수 있다.
그러면, 클라이언트 프로그램(210)은 수신한 서비스들에 관한 정보와 자체적으로 저장하고 있는 해당 사용자의 사용기록으로부터 최적의 서비스를 선택하여 실행한다(단계 S75). 예를 들어, 기차 예약 앱의 예약 서비스가 가중치가 제일 높고, 해당 사용자도 그 앱의 예약 서비스를 가장 많이 사용하였다면, 기차 예약 앱의 예약 서비스에 관한 정보를 이용하여 기차 예약 앱을 구동시킨다.
클라이언트 프로그램(210)은 기차 예약 서비스를 수행한 후에는 사용한 서비스에 관한 정보를 포함하는 수행 결과를 수행엔진(120)으로 전송하고, 수행엔진(120)은 이를 로그에 저장하여 해당 서비스에 대한 가중치 계산에 사용한다.
이와 같이 하나의 태스크 수행(A)이 종료되면, 이 태스크에 연계된 태스크를 제안하는 절차(B)를 수행한다. 즉, 수행엔진(120)은 연계 태스크 데이터베이스를 검색하여 이 태스크가 첫번째 태스크로 등록되어 있는 연계 태스크가 있는지를 확인하고, 연계 태스크가 있는 경우에는 해당 연계 태스크의 두번째 태스크를 클라이언트 프로그램(210)으로 전송한다(단계 S77). 도 7의 예에서는 일정 등록 태스크가 제안되는 경우를 보여주고 있다.
그러면, 클라이언트 프로그램(210)은 사용자에게 '예약된 내용을 일정에 등록할까요?'라고 묻는다. 사용자가 '등록해주세요'라고 말하면, 대화엔진(110)을 통해 이 내용이 수행엔진(120)으로 전달되고, 수행엔진(120)은 일정 등록을 위한 서비스들에 관한 정보를 클라이언트 프로그램(210)으로 전송한다. 일정 등록을 위한 서비스들에 관한 정보는 예를 들면, 일정관리 앱이나 일정관리 웹페이지 등에 관한 정보와, 서비스 접속을 위한 정보(앱 패키지 명, 또는 접속 URL 등), 그 앱을 실행할 때 또는 그 웹페이지로 접속할 때 전달해야 하는 시작 및 종료 일시, 일정 내용 등의 파라미터 정보가 포함될 수 있다. 또한, 각 서비스들의 가중치가 전체 사용자의 사용빈도에 따른 가중치가 포함될 수 있다.
한편, 단계 S77에서 일정 등록을 위한 서비스들에 관한 정보를 함께 전송하도록 구성하는 것도 가능하다.
그러면, 클라이언트 프로그램(210)은 수신한 서비스들에 관한 정보와 자체적으로 저장하고 있는 해당 사용자의 사용기록으로부터 최적의 서비스를 선택하여 실행한다(단계 S78). 예를 들어, 네이버 캘린더를 사용한 일정 등록 서비스가 가중치가 제일 높고, 해당 사용자도 그 앱의 일정 등록 서비스를 가장 많이 사용하였다면, 네이버 캘린더 앱을 사용한 일정 등록 서비스에 관한 정보를 이용하여 네이버 캘린더 앱을 구동시킨다.
클라이언트 프로그램(210)은 일정 등록 서비스를 수행한 후에는 사용한 서비스에 관한 정보를 포함하는 수행 결과를 수행엔진(120)으로 전송하고, 수행엔진(120)은 이를 로그에 저장하여 해당 서비스에 대한 가중치 계산에 사용한다(단계 S79).
서비스를 추천하기 위한 가중치는 서버(100)에서 전체 사용자들의 사용빈도 데이터로부터 산출한다(이를 '글로벌 가중치'라 함). 즉, 일정 등록 서비스와 관련하여 일정관리 앱 A가 일정관리 앱 B보다 30% 적게 사용되었다면, 일정관리 앱 A의 가중치를 일정관리 앱 B의 가중치보다 30% 낮게 책정할 수 있다. 또는, 특정 앱의 사용횟수가 전체 서비스의 사용횟수에서 차지하는 비율을 그 앱의 가중치를 산출하는데 사용할 수도 있다.
또한, 클라이언트 프로그램(210)도 해당 정보단말기(200)에서 이용된 빈도에 따른 가중치(이하, '로컬 가중치'라 함)를 산출하여 두고, 서버(100)로부터 수신한 글로벌 가중치를 로컬 가중치를 사용하여 보정한 후에, 보정된 가중치를 사용하여 태스크의 수행에 사용할 서비스를 결정할 수 있다. 예를 들어, 일정관리 앱 A의 글로벌 가중치가 0.5이고 일정관리 앱 B의 가중치가 0.7일 때, 사용자가 일정관리 서비스에 대해서 일정관리 앱 A를 80% 비율로 사용하였고 일정관리 앱 B를 20%의 비율로 사용하여 일정관리 앱 A의 로컬 가중치가 8이고 일정관리 앱 B의 가중치가 2라면, 글로벌 가중치와 로컬 가중치를 곱하여 산출된 최종 가중치는 일정관리 앱 A가 4이고 일정관리 앱 B가 1.4가 되어, 가중치가 더 높은 일정관리 앱 A를 해당 사용자의 일정 등록 서비스로서 결정한다.
이상, 본 발명을 몇가지 실시예를 사용하여 설명하였지만 이는 예시적인 것으로서, 본 발명은 특정 실시예에 한정되는 것은 아니다.
또한, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재할 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100 서버
110 대화엔진,
120 수행엔진,
130 연계 태스크 유추엔진,
200 정보단말기,
210 클라이언트 프로그램,
220 앱,
300 서비스 제공 웹사이트.

Claims (18)

  1. 삭제
  2. 삭제
  3. 사용자들이 수행한 태스크들을 사용자 로그 데이터베이스에 저장하는 제1단계와,
    연속하여 수행되는 태스크들을 상기 사용자 로그 데이터베이스를 이용하여 유추하여 연계 태스크로서 연계 태스크 데이터베이스에 저장하는 제2단계
    를 구비하며,
    제1단계는
    정보단말기에 설치된 클라이언트 프로그램으로부터 사용자 정보, 수행된 태스크에 관한 정보를 수신하는 단계와,
    사용자 정보, 태스크 정보, 및 수신시간을 사용자 로그 데이터베이스에 저장하는 단계를 포함하며,
    제2단계는
    사용자 로그 데이터베이스에 저장된 정보를 사용자별로 순서대로 정렬하는 단계와,
    연속되어 수행되는 두 개의 태스크(이하, '태스크 페어'라 함)로 이루어지는 연계 태스크들을 결정하는 연계 태스크 페어 결정단계와,
    연속되어 수행되는 세 개의 태스크(이하, '태스크 트리플'이라 함)로 이루어지는 연계 태스크들을 결정하는 연계 태스크 트리플 결정단계
    를 포함하는 연계 태스크 유추방법.
  4. 제3항에 있어서,
    상기 연계 태스크 페어 결정단계는, 사용자 로그 데이터베이스에 저장된 태스크들로부터 연속되어 수행된 두 개의 태스크로 이루어진 태스크 페어들을 추출하고, 각 태스크 페어의 출현빈도를 계산한 후에, 출현빈도가 제1 임계치 이상인 태스크 페어들을 연계 태스크로 결정하며,
    상기 연계 태스크 트리플 결정단계는, 사용자 로그 데이터베이스에 저장된 태스크들로부터 연속되어 수행된 세 개의 태스크로 이루어진 태스크 트리플들을 추출하고, 각 태스크 트리플의 출현빈도를 계산한 후에, 출현빈도가 제2 임계치 이상인 태스크 페어들을 연계 태스크로 결정하는 것임을 특징으로 하는 연계 태스크 유추방법.
  5. 제4항에 있어서,
    연계 태스크로 결정된 태스크 페어에 포함되어 있는 첫번째 태스크와 두번째 태스크가 연계 태스크로 결정된 태스크 트리플에 첫번째 태스크와 두번째 태스크로서 각각 포함되어 있는 경우에는 상기 태스크 페어는 연계 태스크에서 제외시키는 것을 특징으로 하는 연계 태스크 유추방법.
  6. 제4항 또는 제5항에 있어서,
    제1 임계치는 제2 임계치보다 큰 것을 특징으로 하는 연계 태스크 유추방법.
  7. 제3항 내지 제5항 중 어느 한 항에 있어서,
    동일한 사용자에 대해서 연속된 두 태스크의 수신시간 간격이 소정 시간 이내인 태스크들에 대해서만 연속되어 수행되는 태스크로 인정하는 것을 특징으로 하는 연계 태스크 유추방법.
  8. 제3항 내지 제5항 중 어느 한 항에 있어서,
    정보단말기에 설치된 클라이언트 프로그램으로부터 수행된 태스크에 관한 정보를 수신하면, 상기 태스크가 첫번째 태스크로 포함되어 있는 연계 태스크가 있는지를 연계 태스크 데이터베이스에서 확인하는 단계와,
    상기 태스크가 첫번째 태스크로 포함되어 있는 연계 태스크가 있는 경우에는 해당 연계 태스크에서 상기 첫번째 태스크 이후의 태스크에 관한 정보를 상기 클라이언트 프로그램으로 전송하는 단계
    를 더 포함하는 연계 태스크 유추방법.
  9. 제8항에 있어서,
    태스크에 관한 정보를 상기 클라이언트 프로그램으로 전송할 때에 상기 태스크를 수행하기 위한 서비스들에 관한 정보도 함께 전송하는 것을 특징으로 하는 연계 태스크 유추방법.
  10. 제9항에 있어서,
    상기 태스크를 수행하기 위한 서비스들에 관한 정보에는 각 서비스의 전체 사용자의 사용빈도에 따른 가중치도 포함되는 것을 특징으로 하는 연계 태스크 유추방법.
  11. 제10항에 있어서,
    상기 클라이언트 프로그램은, 수신된 전체 사용자의 사용빈도에 따른 가중치에 상기 정보단말기의 사용자의 각 서비스의 사용빈도를 반영하여 보정된 가중치를 사용하여 상기 태스크를 수행하는데 사용할 서비스를 결정하고, 결정된 서비스를 사용하여 상기 태스크를 수행하는 것을 특징으로 하는 연계 태스크 유추방법.
  12. 삭제
  13. 사용자들이 수행한 태스크들을 사용자 로그 데이터베이스에 저장하고, 상기 사용자 로그 데이터베이스를 이용하여 연속하여 수행되는 연계 태스크를 유추하는 서버와,
    정보단말기에 설치되어 있으며, 수행된 태스크에 관한 정보를 서버로 전송하는 클라이언트 프로그램
    을 구비하며,
    상기 클라이언트 프로그램은 상기 서버로 사용자 정보, 수행된 태스크에 관한 정보를 전송하고,
    상기 서버는 수신된 사용자 정보와 태스크 정보, 및 수신시간을 사용자 로그 데이터베이스에 저장하며,
    상기 서버는, 사용자 로그 데이터베이스에 저장된 정보를 이용하여, 연속되어 수행되는 두 개의 태스크(이하, '태스크 페어'라 함)로 이루어지는 연계 태스크들을 결정하고, 연속되어 수행되는 세 개의 태스크(이하, '태스크 트리플'이라 함)로 이루어지는 연계 태스크들을 결정하며,
    상기 서버는 상기 클라이언트 프로그램으로부터 수행된 태스크에 관한 정보를 수신하면, 상기 태스크가 첫번째 태스크로 포함되어 있는 연계 태스크가 있는지를 사용자 로그 데이터베이스에서 확인하여, 상기 태스크가 첫번째 태스크로 포함되어 있는 연계 태스크가 있는 경우에는 해당 연계 태스크에서 상기 첫번째 태스크 이후의 태스크에 관한 정보를 상기 클라이언트 프로그램으로 전송하는 것을 특징으로 하는 연계 태스크 유추 시스템.
  14. 제13항에 있어서,
    상기 서버는 사용자 로그 데이터베이스에 저장된 태스크들로부터 연속되어 수행된 두 개의 태스크로 이루어진 태스크 페어들을 추출하고, 각 태스크 페어의 출현빈도를 계산한 후에, 출현빈도가 제1 임계치 이상인 태스크 페어들을 연계 태스크로 결정하며,
    상기 서버는 사용자 로그 데이터베이스에 저장된 태스크들로부터 연속되어 수행된 세 개의 태스크로 이루어진 태스크 트리플들을 추출하고, 각 태스크 트리플의 출현빈도를 계산한 후에, 출현빈도가 제2 임계치 이상인 태스크 페어들을 연계 태스크로 결정하는 것을 특징으로 하는 연계 태스크 유추 시스템.
  15. 제14항에 있어서,
    상기 서버는 연계 태스크로 결정된 태스크 페어에 포함되어 있는 첫번째 태스크와 두번째 태스크가 연계 태스크로 결정된 태스크 트리플에 첫번째 태스크와 두번째 태스크로서 각각 포함되어 있는 경우에는 상기 태스크 페어는 연계 태스크에서 제외시키는 것을 특징으로 하는 연계 태스크 유추 시스템.
  16. 제15항에 있어서,
    제1 임계치는 제2 임계치보다 큰 것을 특징으로 하는 연계 태스크 유추 시스템.
  17. 제13항 내지 제16항 중 어느 한 항에 있어서,
    상기 서버는 태스크에 관한 정보를 상기 클라이언트 프로그램으로 전송할 때에 상기 태스크를 수행하기 위한 서비스들에 관한 정보도 함께 전송하는 것을 특징으로 하는 연계 태스크 유추 시스템.
  18. 제17항에 있어서,
    상기 태스크를 수행하기 위한 서비스들에 관한 정보에는 각 서비스의 전체 사용자의 사용빈도에 따른 가중치도 포함되며,
    상기 클라이언트 프로그램은, 수신된 전체 사용자의 사용빈도에 따른 가중치에 상기 정보단말기의 사용자의 각 서비스의 사용빈도를 반영하여 보정된 가중치를 사용하여 상기 태스크를 수행하는데 사용할 서비스를 결정하고, 결정된 서비스를 사용하여 상기 태스크를 수행하는 것을 특징으로 하는 연계 태스크 유추 시스템.




KR1020150011991A 2015-01-26 2015-01-26 연계 태스크 유추 방법 및 시스템 KR101646644B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150011991A KR101646644B1 (ko) 2015-01-26 2015-01-26 연계 태스크 유추 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150011991A KR101646644B1 (ko) 2015-01-26 2015-01-26 연계 태스크 유추 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20160092091A KR20160092091A (ko) 2016-08-04
KR101646644B1 true KR101646644B1 (ko) 2016-08-10

Family

ID=56709204

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150011991A KR101646644B1 (ko) 2015-01-26 2015-01-26 연계 태스크 유추 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101646644B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100894331B1 (ko) 2006-11-15 2009-04-24 한국전자통신연구원 웹 로그 상호연관분석을 이용한 웹 애플리케이션 공격의침입 탐지 시스템 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090118394A (ko) * 2008-05-13 2009-11-18 주식회사 에이전트소프트 팀 프로젝트 서비스 제공방법 및 그 시스템
KR101194392B1 (ko) * 2010-02-01 2012-10-24 주식회사 위즈디엔에스코리아 데이터베이스 로그 정보와 어플리케이션 로그 정보를 이용한 실사용자 추출 시스템 및 방법
KR101282979B1 (ko) * 2011-12-20 2013-07-22 경기대학교 산학협력단 워크플로우 기반 협력 네트워크 분석방법 및 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100894331B1 (ko) 2006-11-15 2009-04-24 한국전자통신연구원 웹 로그 상호연관분석을 이용한 웹 애플리케이션 공격의침입 탐지 시스템 및 방법

Also Published As

Publication number Publication date
KR20160092091A (ko) 2016-08-04

Similar Documents

Publication Publication Date Title
KR102028810B1 (ko) 온라인 메신저 챗봇을 이용한 보험 상품 설계 및 가입을 위한 원스톱 서비스 방법, 그리고 이를 수행하는 시스템
KR102159898B1 (ko) 예측성 타이핑을 위한 문맥 관련 온톨로지의 동적 로딩
TWI683272B (zh) 資訊獲取方法、提供方法、裝置及系統、儲存介質
AU2012277131B2 (en) Apparatus and Method for Processing Information of a Search Result
CN105302903B (zh) 搜索方法、装置、系统以及搜索结果调序依据的确定方法
CN113268498A (zh) 业务推荐方法和具有智能助手的装置
JP2009528613A (ja) キーワード別にユーザの専門家指数を算定する方法およびこの方法を実行するシステム
JP6062515B2 (ja) レコメンド装置、レコメンド方法及びレコメンドプログラム
WO2018125727A1 (en) Real-time integration of machine intelligence into client messaging platforms
US20130173388A1 (en) Methods and systems for service discovery and selection
JP5814980B2 (ja) レコメンド装置、レコメンド方法及びレコメンドプログラム
CA2851574A1 (en) System and method for candidate matching
US20200193362A1 (en) Presentation device and presentation method
JP2017076166A (ja) 情報処理装置、情報処理方法及びプログラム
CN111034157B (zh) 用于动态投递内容的系统和方法
US20220382816A1 (en) Information processing apparatus, information processing method, and program for linking accounts
JP6306254B1 (ja) 予約支援方法およびプログラム
US10929485B1 (en) Bot search and dispatch engine
JP5645294B1 (ja) 情報処理装置、情報処理方法及びプログラム
US20150358764A1 (en) Systems and methods for interest- and location-based conversation matching
JP5185807B2 (ja) 音声検索装置、音声検索方法及び音声検索プログラム
KR101646644B1 (ko) 연계 태스크 유추 방법 및 시스템
US20200403955A1 (en) Systems and methods to prioritize chat rooms using machine learning
CN109903006A (zh) 楼盘的报备方法、装置、设备及计算机可读存储介质
JP2011053846A (ja) グループ予約支援システム

Legal Events

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