KR102458663B1 - System and method for providing to-do-list of user - Google Patents

System and method for providing to-do-list of user Download PDF

Info

Publication number
KR102458663B1
KR102458663B1 KR1020170139545A KR20170139545A KR102458663B1 KR 102458663 B1 KR102458663 B1 KR 102458663B1 KR 1020170139545 A KR1020170139545 A KR 1020170139545A KR 20170139545 A KR20170139545 A KR 20170139545A KR 102458663 B1 KR102458663 B1 KR 102458663B1
Authority
KR
South Korea
Prior art keywords
task
list
keyword
data
user
Prior art date
Application number
KR1020170139545A
Other languages
Korean (ko)
Other versions
KR20180074567A (en
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 PCT/KR2017/015234 priority Critical patent/WO2018117685A1/en
Priority to EP17883846.2A priority patent/EP3552163A4/en
Priority to CN201711408904.8A priority patent/CN108241520B/en
Priority to US15/852,361 priority patent/US11295275B2/en
Publication of KR20180074567A publication Critical patent/KR20180074567A/en
Application granted granted Critical
Publication of KR102458663B1 publication Critical patent/KR102458663B1/en

Links

Images

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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • G06Q10/1093Calendar-based scheduling for persons or groups
    • G06Q10/1097Task assignment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • G06Q10/1093Calendar-based scheduling for persons or groups

Abstract

사용자의 할일 목록을 제공하는 시스템 및 방법이 제공된다. 사용자의 할일 목록을 제공하는 디바이스에 있어서, 외부 디바이스와 통신하는 통신부, 디스플레이 및 상기 디스플레이에서 실행된 어플리케이션에 의해 획득된 데이터에 기초하여, 상기 할일 목록 내의 상기 사용자가 수행할 적어도 하나의 태스크를 결정하는데 이용되는 적어도 하나의 키워드를 결정하고, 상기 결정된 적어도 하나의 키워드에 대한 키워드 목록을 생성하고, 상기 디스플레이를 제어함으로써 상기 키워드 목록 내의 상기 적어도 하나의 키워드 중 적어도 하나를 선택하기 위한 GUI를 표시하는 프로세서를 포함한다.
이 경우, 디바이스는 규칙 기반 또는 인공 지능 알고리즘을 이용하여 사용자가 수행할 적어도 하나의 태스크를 결정할 수 있다. 인공 지능 알고리즘을 이용하여 적어도 하나의 태스크를 결정하는 경우, 디바이스는 기계 학습, 신경망 또는 딥러닝 알고리즘을 이용할 수 있다.
A system and method are provided for providing a user's to-do list. A device for providing a user's to-do list, wherein at least one task to be performed by the user in the to-do list is determined based on data obtained by a communication unit communicating with an external device, a display, and an application executed on the display Determining at least one keyword used for the purpose of displaying a GUI for selecting at least one of the at least one keyword in the keyword list by determining at least one keyword, generating a keyword list for the determined at least one keyword, and controlling the display includes a processor.
In this case, the device may determine at least one task to be performed by the user using a rule-based or artificial intelligence algorithm. When determining at least one task using an artificial intelligence algorithm, the device may use a machine learning, neural network, or deep learning algorithm.

Description

사용자의 할일 목록을 제공하는 시스템 및 방법{SYSTEM AND METHOD FOR PROVIDING TO-DO-LIST OF USER}SYSTEM AND METHOD FOR PROVIDING TO-DO-LIST OF USER

본 발명은 사용자의 할일 목록을 제공하는 시스템 및 방법에 관한 것이다.The present invention relates to a system and method for providing a user's to-do list.

또한 본 개시는 딥러닝 등의 기계 학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 인공 지능(Artificial Intelligence, AI) 시스템 및 그 응용 기술에 관련된 것이다.In addition, the present disclosure relates to an artificial intelligence (AI) system for simulating functions such as cognition and judgment of the human brain by using a machine learning algorithm such as deep learning and an application technology thereof.

멀티미디어 기술 및 네트워크 기술이 발전함에 따라, 사용자는 다양한 디바이스 및 서비스 제공 서버를 통하여 자신이 원하는 서비스를 이용할 수 있게 되었다. 또한, 사용자는 자신의 디바이스를 이용하여 다른 사용자의 디바이스와 서로 커뮤니케이션 할 수 있게 되었다. 사용자가 다양한 디바이스 및 서비스 제공 서버를 이용할 수 있게 됨으로써, 사용자는 자신이 해야 할 일을 효과적으로 확인하기 힘들게 되었다. 이에 따라, 사용자의 디바이스와 관련된 동작을 분석하여 사용자의 할일 목록을 생성하여 제공해 주는 기술이 요구되고 있다.As multimedia technology and network technology develop, a user can use a desired service through various devices and service providing servers. In addition, users can communicate with other users' devices using their own devices. As users are able to use various devices and service providing servers, it is difficult for users to effectively check what they need to do. Accordingly, there is a demand for a technique for generating and providing a user's to-do list by analyzing the user's device-related operation.

또한, 최근 영상 처리 분야에도 인공지능 시스템이 도입되고 있다. In addition, artificial intelligence systems have recently been introduced into the image processing field.

인공지능 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템이며, 기존 Rule 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 Rule 기반 스마트 시스템은 점차 딥러닝 기반 인공지능 시스템으로 대체되고 있다.An artificial intelligence system is a computer system that implements human-level intelligence, and unlike the existing rule-based smart system, the machine learns, judges, and becomes smarter by itself. The more the AI system is used, the better the recognition rate and the more accurate understanding of user preferences, and the existing rule-based smart systems are gradually being replaced by deep learning-based AI systems.

인공 지능 기술은 기계학습(딥러닝) 및 기계학습을 활용한 요소 기술들로 구성된다.Artificial intelligence technology consists of machine learning (deep learning) and element technologies using machine learning.

기계학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소기술은 딥러닝 등의 기계학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성된다.Machine learning is an algorithm technology that categorizes/learns the characteristics of input data by itself, and element technology uses machine learning algorithms such as deep learning to simulate functions such as cognition and judgment of the human brain. It consists of technical fields such as understanding, reasoning/prediction, knowledge expression, and motion control.

인공지능 기술이 응용되는 다양한 분야는 다음과 같다. 언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리, 기계 번역, 대화시스템, 질의 응답, 음성 인식/합성 등을 포함한다. 시각적 이해는 사물을 인간의 시각처럼 인식하며 처리하는 기술로서, 객체 인식, 객체 추적, 영상 검색, 사람 인식, 장면 이해, 공간 이해, 영상 개선 등을 포함한다. 추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다. 지식 표현은 인간의 경험정보를 지식데이터로 자동화 처리하는 기술로서, 지식 구축(데이터 생성/분류), 지식 관리(데이터 활용) 등을 포함한다. 동작 제어는 차량의 자율 주행, 로봇의 움직임을 제어하는 기술로서, 움직임 제어(항법, 충돌, 주행), 조작 제어(행동 제어) 등을 포함한다.The various fields where artificial intelligence technology is applied are as follows. Linguistic understanding is a technology for recognizing and applying/processing human language/text, and includes natural language processing, machine translation, dialogue system, question and answer, and speech recognition/synthesis. Visual understanding is a technology that recognizes and processes objects as if they were human eyes, and includes object recognition, object tracking, image search, human recognition, scene understanding, spatial understanding, image improvement, and the like. Inferential prediction is a technology for logically reasoning and predicting by judging information, and includes knowledge/probability-based reasoning, optimization prediction, preference-based planning, and recommendation. Knowledge expression is a technology that automatically processes human experience information into knowledge data, and includes knowledge construction (data generation/classification) and knowledge management (data utilization). Motion control is a technology for controlling autonomous driving of a vehicle and movement of a robot, and includes motion control (navigation, collision, driving), manipulation control (action control), and the like.

1. 공개특허공보 제10-2016-0063913호(2016. 06. 07.)1. Unexamined Patent Publication No. 10-2016-0063913 (2016. 06. 07.) 2. 공개특허공보 제10-2014-0136820호(2014. 12. 01.)2. Laid-open Patent Publication No. 10-2014-0136820 (2014. 12. 01.)

사용자의 디바이스 및 사용자가 가입된 서비스 제공 서버의 동작에 기초하여, 사용자의 할일 목록 내의 태스크를 결정하는, 사용자의 할일 목록을 제공하는 시스템 및 방법을 제공할 수 있다.A system and method for providing a user's to-do list for determining a task in the user's to-do list based on the user's device and the operation of a service providing server to which the user is subscribed may be provided.

또한, 할일 목록 내의 태스크를 결정하는 데에 이용되는 키워드를 편집하고, 후보 태스크 목록 및 태스크 목록을 편집하기 위한 GUI를 표시하는, 사용자의 할일 목록을 제공하는 디바이스 및 방법을 제공할 수 있다.Also, it is possible to provide a device and method for providing a user's to-do list by editing a keyword used to determine a task in the to-do list, and displaying a candidate task list and a GUI for editing the task list.

또한, 할일 목록 내의 태스크를 대체하기 위한 태스크를 제공하는, 사용자의 할일 목록을 제공하는 시스템 및 방법을 제공할 수 있다.In addition, a system and method for providing a user's to-do list, providing a task for replacing a task in the to-do list, may be provided.

또한, 할일 목록 내의 태스크가 수행되었는지를 판단하기 위한 조건 정보에 기초하여, 할일 목록 내의 태스크가 수행되었는지를 판단할 수 있는, 사용자의 할일 목록을 제공하는 시스템 및 방법을 제공할 수 있다.Also, it is possible to provide a system and method for providing a user's to-do list capable of determining whether a task in the to-do list has been performed based on condition information for determining whether a task in the to-do list has been performed.

일측에 따르면, 사용자의 할일 목록(To Do List)을 제공하는 디바이스에 있어서, 외부 디바이스와 통신하는 통신부; 디스플레이; 및 상기 디스플레이에서 실행된 어플리케이션에 의해 획득된 데이터에 기초하여, 상기 할일 목록 내의 상기 사용자가 수행할 적어도 하나의 태스크를 결정하는데 이용되는 적어도 하나의 키워드를 결정하고, 상기 결정된 적어도 하나의 키워드에 대한 키워드 목록(keyword list)을 생성하고, 상기 디스플레이를 제어함으로써 상기 키워드 목록 내의 상기 적어도 하나의 키워드 중 적어도 하나를 선택하기 위한 GUI를 표시하는 프로세서를 포함할 수 있다.According to one side, in a device for providing a user's to-do list (To Do List), the communication unit for communicating with an external device; display; and determining at least one keyword used to determine at least one task to be performed by the user in the to-do list, based on data obtained by the application executed on the display, for the determined at least one keyword and a processor for generating a keyword list and displaying a GUI for selecting at least one of the at least one keyword in the keyword list by controlling the display.

다른 일측에 따르면, 디바이스가 사용자의 할일 목록을 제공하는 방법에 있어서, 상기 디바이스의 디스플레이에서 실행된 어플리케이션으로부터 상기 할일 목록을 생성하는데 이용되는 데이터를 획득하는 단계; 상기 획득된 데이터에 기초하여, 상기 할일 목록 내의 상기 사용자가 수행할 적어도 하나의 태스크를 결정하는데 이용되는 적어도 하나의 키워드를 결정하는 단계; 상기 결정된 적어도 하나의 키워드에 대한 키워드 목록을 생성하는 단계; 및 상기 디스플레이를 제어함으로써 상기 키워드 목록 내의 상기 적어도 하나의 키워드 중 적어도 하나를 선택하기 위한 GUI를 표시하는 단계를 포함할 수 있다.According to another aspect, there is provided a method for providing a user's to-do list by a device, comprising: acquiring data used to generate the to-do list from an application executed on a display of the device; determining, based on the obtained data, at least one keyword used to determine at least one task to be performed by the user in the to-do list; generating a keyword list for the determined at least one keyword; and displaying a GUI for selecting at least one of the at least one keyword in the keyword list by controlling the display.

또 다른 일측에 따르면, 사용자의 할일 목록을 제공하는 서버에 있어서,According to another side, in the server that provides the user's to-do list,

상기 사용자의 디바이스로부터 상기 디바이스에서 실행된 어플리케이션에 의해 획득된 데이터를 수신하는 통신부; 상기 수신된 데이터 및 상기 사용자가 가입된 서비스와 관련된 데이터를 저장하는 메모리; 및 상기 수신된 데이터에 기초하여 상기 할일 목록 내의 상기 사용자가 수행할 적어도 하나의 태스크를 결정하는데 이용되는 적어도 하나의 키워드를 결정하고, 상기 수신된 데이터 및 상기 사용자가 가입된 서비스와 관련된 데이터에 기초하여 상기 적어도 하나의 키워드와 관련된 적어도 하나의 후보 태스크를 결정하는 프로세서를 포함하고, 상기 통신부는, 상기 결정된 적어도 하나의 후보 태스크를 상기 사용자의 디바이스로 전송할 수 있다.a communication unit for receiving data obtained by an application executed on the device from the user's device; a memory for storing the received data and data related to the service subscribed by the user; and determining at least one keyword used to determine at least one task to be performed by the user in the to-do list based on the received data, and based on the received data and data related to a service to which the user has subscribed. to determine at least one candidate task related to the at least one keyword, wherein the communication unit may transmit the determined at least one candidate task to the user's device.

일측에 따르면, 서버가 사용자의 할일 목록을 제공하는 방법에 있어서, 상기 사용자의 디바이스로부터 상기 디바이스에서 실행된 어플리케이션에 의해 획득된 데이터를 수신하는 단계; 상기 수신된 데이터에 기초하여 상기 할일 목록 내의 상기 사용자가 수행할 적어도 하나의 태스크를 결정하는데 이용되는 적어도 하나의 키워드를 결정하는 단계; 상기 수신된 데이터 및 상기 서버에 저장된 상기 사용자가 가입된 서비스와 관련된 데이터에 기초하여, 상기 적어도 하나의 키워드와 관련된 적어도 하나의 후보 태스크를 결정하는 단계; 및 상기 결정된 적어도 하나의 후보 태스크를 상기 사용자의 디바이스로 전송하는 단계를 포함할 수 있다.According to one side, a method for a server to provide a user's to-do list, the method comprising: receiving data obtained by an application executed on the device from the user's device; determining at least one keyword used to determine at least one task to be performed by the user in the to-do list based on the received data; determining at least one candidate task related to the at least one keyword based on the received data and data related to the service subscribed by the user stored in the server; and transmitting the determined at least one candidate task to the user's device.

다른 일측에 따르면, 상기 디바이스가 사용자의 할일 목록을 제공하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.According to another aspect, it is possible to provide a computer-readable recording medium in which the device records a program for executing a method of providing a user's to-do list in a computer.

본 발명은, 다음의 자세한 설명과 그에 수반되는 도면들의 결합으로 쉽게 이해될 수 있으며, 참조 번호(reference numerals)들은 구조적 구성요소(structural elements)를 의미한다.
도 1은 일실시예에 따른 디바이스가 사용자가 수행할 태스크에 대한 할일 목록을 제공하는 예시를 나타내는 도면이다.
도 2는 일실시예에 따른 디바이스가 사용자의 할일 목록을 관리하는 방법의 흐름도이다.
도 3은 일실시예에 따른 디바이스가 사용자가 수행할 태스크를 결정하는 데에 이용되는 키워드 목록의 생성 및 키워드를 선택하는 방법의 흐름도이다.
도 4는 일실시예에 따라, 디바이스가 메시지 어플리케이션의 실행 화면에서 키워드 목록을 표시하는 예시를 나타내는 도면이다.
도 5는 일실시예에 따라, 디바이스가 통화 어플리케이션의 실행 화면에서 키워드 목록을 표시하는 예시를 나타내는 도면이다.
도 6은 일실시예에 따라, 디바이스가 GUI에 대한 사용자의 입력에 따른 키워드 목록을 편집하는 예시를 나타내는 도면이다.
도 7은 일실시예에 따라, 디바이스가 복수의 어플리케이션으로부터 획득된 데이터에 기초하여, 디스플레이에서 실행 중인 어플리케이션의 실행 화면 상에 키워드 목록을 표시하는 예시를 나타내는 도면이다.
도 8은 일실시예에 따른 디바이스가 후보 태스크 목록을 생성하는 방법의 흐름도이다.
도 9는 일실시예에 따라, 디바이스가 후보 태스크 목록을 표시하는 예시를 나타내는 도면이다.
도 10은 다른 일실시예에 따라, 디바이스가 후보 태스크 목록을 표시하는 예시를 나타내는 도면이다.
도 11은 일실시예에 따른 다비이스가 할일 목록을 생성하는 방법의 흐름도이다.
도 12는 일실시예에 따라, 디바이스가 할일 목록을 표시하는 예시를 나타내는 도면이다.
도 13은 다른 일실시예에 따라, 디바이스가 할일 목록을 표시하는 예시를 나타내는 도면이다.
도 14는 일실시예에 따라, 디바이스가 할일 목록 내의 태스크와 관련된 부가 정보를 제공하는 예시를 나타내는 도면이다.
도 15는 일실시예에 따른 디바이스가 기존에 결정된 태스크를 대체할 태스크를 제공하는 방법의 흐름도이다.
도 16은 일실시예에 따라, 디바이스가 사용자의 의도를 파악하여 서브 태스크에 대한 후보 태스크를 제공하고, 결정된 태스크에 대한 추가적인 태스크를 제공하는 예시를 나타내는 도면이다.
도 17은 일실시예에 따라, 다비이스가 서브 태스크를 대체할 대체 태스크를 제공하는 예시를 나타내는 도면이다.
도 18은 일실시예에 따른 디바이스가 할일 목록 내의 태스크가 수행되었는지를 모니터링하는 방법의 흐름도이다.
도 19는 일실시예에 따라, 디바이스가 할일 목록 내의 태스크를 수행하였는지를 모니터링하는 과정을 설명하기 위한 도면이다.
도 20은 다른 일실시예에 따라, 디바이스가 할일 목록 내의 태스크를 수행하였는지를 모니터링하는 과정을 설명하기 위한 도면이다.
도 21은 또 다른 일실시예에 따라, 디바이스가 할일 목록 내의 태스크를 수행하였는지를 모니터링하는 과정을 설명하기 위한 도면이다.
도 22는 일실시예에 따라, 서버가 후보 태스크를 결정하고, 디바이스가 할일 목록을 생성하고, 할일 목록 내의 태스크가 수행되었는지를 모니터링 하는 방법의 흐름도이다.
도 23은 다른 일실시예에 따라, 디바이스가 할일 목록을 생성하고, 서버가 할일 목록 내의 태스크를 결정하기 위한 후보 태스크를 결정하고, 할일 목록 내의 태스크가 수행되었는지를 모니터링 하는 방법의 흐름도이다.
도 24 및 도 25는 일실시예에 따른 다비이스의 블록도이다.
도 26은 일실시예에 따른 서버의 블록도이다.
도 27은 일실시예에 따른 프로세서의 블록도이다.
도 28은 일실시예에 따른 데이터 학습부의 블록도이다.
도 29는 일실시예에 따른 데이터 인식부의 블록도이다.
도 30은 일실시예에 따른 디바이스 및 서버가 서로 연동함으로써 데이터를 학습하고 인식하는 예시를 나타내는 도면이다.
도 31은 일 실시예에 따른 제 1 프로세서 및 제 2 프로세서가 사용자의 할 일 목록을 관리하는 방법의 흐름도이다.
도 32는 일 실시예에 따른 제 1 프로세서, 제 2 프로세서 및 제 3 프로세서가 사용자의 할 일 목록을 관리하는 방법의 흐름도이다.
도 33은 일 실시예에 따른 디바이스가 복수 개의 서버들을 이용하여 할 일 목록을 관리하는 상황을 설명하기 위한 흐름도이다.
도 34는 일 실시예에 따른 디바이스가 제 1 프로세서, 제 2 프로세서 및 서버를 이용하여 할 일 목록을 관리하는 상황을 설명하기 위한 흐름도이다.
BRIEF DESCRIPTION OF THE DRAWINGS The present invention can be easily understood by the following detailed description and combination of the accompanying drawings, in which reference numerals mean structural elements.
1 is a diagram illustrating an example in which a device provides a to-do list for a task to be performed by a user, according to an embodiment.
2 is a flowchart of a method for a device to manage a user's to-do list according to an exemplary embodiment.
3 is a flowchart of a method for generating, by a device, a keyword list used to determine a task to be performed by a user and selecting a keyword, according to an exemplary embodiment.
4 is a diagram illustrating an example in which a device displays a keyword list on an execution screen of a message application, according to an embodiment.
5 is a diagram illustrating an example in which a device displays a keyword list on an execution screen of a call application, according to an embodiment.
6 is a diagram illustrating an example in which a device edits a keyword list according to a user input to a GUI, according to an embodiment.
7 is a diagram illustrating an example in which a device displays a keyword list on an execution screen of an application being executed on a display based on data obtained from a plurality of applications, according to an embodiment.
8 is a flowchart of a method for a device to generate a candidate task list according to an embodiment.
9 is a diagram illustrating an example in which a device displays a list of candidate tasks, according to an embodiment.
10 is a diagram illustrating an example in which a device displays a list of candidate tasks, according to another embodiment.
11 is a flowchart of a method for a device to generate a to-do list according to an exemplary embodiment.
12 is a diagram illustrating an example in which a device displays a to-do list, according to an embodiment.
13 is a diagram illustrating an example in which a device displays a to-do list, according to another embodiment.
14 is a diagram illustrating an example in which a device provides additional information related to a task in a to-do list, according to an embodiment.
15 is a flowchart of a method for a device to provide a task to replace a previously determined task according to an exemplary embodiment.
16 is a diagram illustrating an example in which a device provides a candidate task for a sub-task by identifying a user's intention and provides an additional task for the determined task, according to an embodiment.
17 is a diagram illustrating an example in which a device provides an alternative task to replace a sub task, according to an embodiment.
18 is a flowchart of a method of monitoring, by a device, whether a task in a to-do list is performed, according to an exemplary embodiment.
19 is a diagram for describing a process of monitoring whether a device has performed a task in a to-do list, according to an embodiment.
20 is a diagram for describing a process of monitoring whether a device has performed a task in a to-do list, according to another exemplary embodiment.
21 is a diagram for describing a process of monitoring whether a device has performed a task in a to-do list, according to another exemplary embodiment.
22 is a flowchart of a method in which a server determines a candidate task, a device generates a to-do list, and monitors whether a task in the to-do list is performed, according to an embodiment.
23 is a flowchart of a method for a device to generate a to-do list, a server to determine a candidate task for determining a task in the to-do list, and to monitor whether a task in the to-do list is performed, according to another exemplary embodiment.
24 and 25 are block diagrams of a device according to an exemplary embodiment.
26 is a block diagram of a server according to an embodiment.
27 is a block diagram of a processor according to an embodiment.
28 is a block diagram of a data learning unit according to an exemplary embodiment.
29 is a block diagram of a data recognition unit according to an exemplary embodiment.
30 is a diagram illustrating an example of learning and recognizing data by interworking between a device and a server according to an embodiment.
31 is a flowchart of a method for managing a user's to-do list by a first processor and a second processor according to an exemplary embodiment.
32 is a flowchart of a method for managing a user's to-do list by a first processor, a second processor, and a third processor according to an exemplary embodiment.
33 is a flowchart illustrating a situation in which a device manages a to-do list using a plurality of servers according to an embodiment.
34 is a flowchart illustrating a situation in which a device manages a to-do list using a first processor, a second processor, and a server according to an embodiment.

본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.The terms used in the present invention have been selected as currently widely used general terms as possible while considering the functions in the present invention, but these may vary depending on the intention or precedent of a person skilled in the art, the emergence of new technology, and the like. In addition, in a specific case, there is a term arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the corresponding invention. Therefore, the term used in the present invention should be defined based on the meaning of the term and the overall content of the present invention, rather than the name of a simple term.

명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에서 사용되는 "부"라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부"들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부"들로 결합되거나 추가적인 구성요소들과 "부"들로 더 분리될 수 있다.In the entire specification, when a part "includes" a certain component, it means that other components may be further included, rather than excluding other components, unless otherwise stated. Also, as used herein, the term “unit” refers to a hardware component such as software, FPGA, or ASIC, and “unit” performs certain roles. However, 'part' is not limited to software or hardware. The 'unit' may be configured to reside on an addressable storage medium or it may be configured to refresh one or more processors. Thus, by way of example, “part” refers to components such as software components, object-oriented software components, class components, and task components, processes, functions, properties, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables. The functionality provided within components and “parts” may be combined into a smaller number of components and “parts” or further divided into additional components and “parts”.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component. and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.

도 1은 일실시예에 따른 디바이스(1000)가 사용자가 수행할 태스크에 대한 할일 목록을 제공하는 예시를 나타내는 도면이다.1 is a diagram illustrating an example in which a device 1000 provides a to-do list for a task to be performed by a user, according to an exemplary embodiment.

도 1을 참조하면, 디바이스(1000)는 디바이스(1000) 내에 설치된 복수의 어플리케이션으로부터 사용자의 할일 목록을 생성하는 데에 이용되는 데이터를 획득할 수 있다. 여기서, 복수의 어플리케이션은 사용자의 디바이스(1000)와 다른 사용자의 디바이스 간에 음성 신호를 송수신하는 통화 어플리케이션(101), 사용자의 디바이스(1000)와 다른 사용자의 디바이스 간에 커뮤니케이션을 위한 메시지 어플리케이션(102), 사용자의 이메일 어플리케이션(103), 사용자의 메모를 기록하는 메모장 어플리케이션(104) 또는 사용자의 일정을 관리하는 일정 관리 어플리케이션(미도시)을 포함할 수 있으나, 이에 제한되지 않는다.Referring to FIG. 1 , a device 1000 may obtain data used to generate a user's to-do list from a plurality of applications installed in the device 1000 . Here, the plurality of applications includes a call application 101 for transmitting and receiving voice signals between the user's device 1000 and another user's device, a message application 102 for communication between the user's device 1000 and another user's device, It may include, but is not limited to, a user's e-mail application 103, a memo pad application 104 for recording a user's memo, or a schedule management application (not shown) for managing a user's schedule.

디바이스(1000)는 디바이스(1000)에서 실행 및/또는 설치된 어플리케이션으로부터 획득된 데이터를 분석하여, 사용자가 수행할 적어도 하나의 태스크를 결정하고, 적어도 하나의 태스크에 대한 할일 목록을 생성할 수 있다. 디바이스(1000)는 생성된 할일 목록을 사용자에게 알릴 수 있다. 디바이스(1000)는 디바이스(1000)의 디스플레이로 할일 목록을 표시할 수 있다. The device 1000 may analyze data obtained from an application executed and/or installed in the device 1000 , determine at least one task to be performed by the user, and generate a to-do list for the at least one task. The device 1000 may notify the user of the created to-do list. The device 1000 may display a to-do list on the display of the device 1000 .

또한, 디바이스(1000)는 할일 목록 내의 적어도 하나의 태스크가 수행되었는지를 모니터링할 수 있다. 디바이스(1000)는 모니터링 결과에 기초하여, 할일 목록 내의 태스크를 업데이트 할 수 있다.Also, the device 1000 may monitor whether at least one task in the to-do list is performed. The device 1000 may update the task in the to-do list based on the monitoring result.

디바이스(1000)는 스마트폰, 태블릿 PC, PC, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다. 또한, 디바이스(1000)는 통신 기능 및 데이터 프로세싱 기능을 구비한 시계, 안경, 헤어 밴드 및 반지 등의 웨어러블 디바이스일 수 있다.The device 1000 includes a smart phone, a tablet PC, a PC, a smart TV, a mobile phone, a personal digital assistant (PDA), a laptop, a media player, a micro server, a global positioning system (GPS) device, an e-book terminal, a digital broadcasting terminal, and a navigation device. , kiosks, MP3 players, digital cameras, and other mobile or non-mobile computing devices. Also, the device 1000 may be a wearable device such as a watch, glasses, a hair band, and a ring having a communication function and a data processing function.

도 2는 일실시예에 따른 디바이스(1000)가 사용자의 할일 목록을 관리하는 방법의 흐름도이다.2 is a flowchart of a method for the device 1000 to manage a user's to-do list according to an exemplary embodiment.

단계 S210에서, 디바이스(1000)는 사용자의 할일 목록을 생성할 수 있다. 디바이스(1000)는 디바이스(1000)에서 실행 및/또는 설치된 어플리케이션으로부터 획득된 데이터를 분석하여, 사용자가 수행할 적어도 하나의 태스크를 결정하고, 적어도 하나의 태스크에 대한 할일 목록을 생성할 수 있다.In operation S210 , the device 1000 may generate a to-do list of the user. The device 1000 may analyze data obtained from an application executed and/or installed in the device 1000 , determine at least one task to be performed by the user, and generate a to-do list for the at least one task.

또한, 디바이스(1000)는 디바이스(1000) 내의 어플리케이션에 의해 획득된 데이터와 관련된 데이터를 서버(2000)로부터 수신할 수 있다. 여기서, 서버(2000)는 사용자가 가입된 서비스 제공 서버일 수 있고, 이에 제한되지 않는다. 디바이스(1000)는 서버(2000)로부터 획득된 데이터 및 디바이스(1000) 내의 어플리케이션에 의해 획득된 데이터의 전부 또는 일부를 조합하여, 사용자가 수행할 적어도 하나의 태스크에 대한 후보 태스크들을 결정할 수 있다. 디바이스(1000)는 후보 태스크들로부터 선택된 적어도 하나를 사용자가 수행할 태스크로 결정하고, 할일 목록을 생성할 수 있다.Also, the device 1000 may receive data related to data acquired by an application in the device 1000 from the server 2000 . Here, the server 2000 may be a service providing server to which a user is subscribed, but is not limited thereto. The device 1000 may determine candidate tasks for at least one task to be performed by the user by combining all or part of the data obtained from the server 2000 and the data obtained by an application in the device 1000 . The device 1000 may determine at least one selected from the candidate tasks as a task to be performed by the user, and may generate a to-do list.

단계 S220에서, 디바이스(1000)는 할일 목록 내의 적어도 하나의 태스크가 수행되었는지를 모니터링할 수 있다. 디바이스(1000)는 할일 목록 내의 적어도 하나의 태스크가 수행되었는지를 판단하는데 이용되는 조건 정보를 획득하고, 조건 정보에 기초하여, 할일 목록 내의 적어도 하나의 태스크가 수행되었는지를 모니터링할 수 있다. 여기서, 조건 정보는, 소정의 태스크가 수행되는데 이용되는 어플리케이션, 어플리케이션과 관련된 사용자의 동작 정보, 사용자의 동작 정보에 따른 어플리케이션의 세부적인 동작 정보 등을 포함할 수 있고, 이에 한정되지 않는다.In operation S220 , the device 1000 may monitor whether at least one task in the to-do list is performed. The device 1000 may obtain condition information used to determine whether at least one task in the to-do list has been performed, and monitor whether at least one task in the to-do list is performed based on the condition information. Here, the condition information may include, but is not limited to, an application used to perform a predetermined task, user operation information related to the application, detailed operation information of the application according to the user's operation information, and the like.

단계 S230에서, 디바이스(1000)는 모니터링 결과에 기초하여, 할일 목록을 업데이트 할 수 있다. 예를 들어, 할일 목록 내의 제1 태스크가 수행된 것으로 결정되면, 디바이스(1000)는 할일 목록 내에서 제1 태스크를 삭제할 수 있다. 또한, 할일 목록 내의 제1 태스크가 정해진 시간까지 미수행된 것으로 결정되면, 디바이스(1000)는 제1 태스크가 미수행되었음을 알리는 정보를 출력할 수 있다.In step S230 , the device 1000 may update the to-do list based on the monitoring result. For example, if it is determined that the first task in the to-do list has been performed, the device 1000 may delete the first task from the to-do list. Also, when it is determined that the first task in the to-do list has not been performed by a predetermined time, the device 1000 may output information indicating that the first task has not been performed.

도 3은 일실시예에 따른 디바이스(1000)가 사용자가 수행할 태스크를 결정하는 데에 이용되는 키워드 목록의 생성 및 키워드를 선택하는 방법의 흐름도이다.3 is a flowchart of a method for generating a keyword list and selecting keywords used by the device 1000 to determine a task to be performed by a user, according to an exemplary embodiment.

단계 S310에서, 디바이스(1000)는 디바이스(1000)의 디스플레이에서 실행된 어플리케이션으로부터 사용자의 할일 목록을 생성하는 데에 이용되는 데이터를 획득할 수 있다. 예를 들면, 디바이스(1000)는 디스플레이에서 실행된 채팅 어플리케이션에 의해 송수신된 메시지에 대한 데이터를 획득할 수 있다.In operation S310 , the device 1000 may obtain data used to generate the user's to-do list from an application executed on the display of the device 1000 . For example, the device 1000 may acquire data about a message transmitted and received by a chatting application executed on the display.

또한, 디바이스(1000)는 디바이스(1000) 내에 설치된 복수의 어플리케이션으로부터 사용자의 할일 목록을 생성하는 데에 이용되는 데이터를 획득할 수 있다. 획득된 데이터는 디바이스(1000)를 통한 통화 내용, 디바이스(1000)를 통해 송수신된 메시지(예를 들어, SMS(short message service), MMS(multi-media message service), 채팅 메시지, E-Mail 등)의 내용, 디바이스(1000)에 녹음된 음성 내용 및 디바이스(1000)에 저장된 텍스트 파일, 사진, 동영상, 사용자 일정 내용, 메모 등에 관한 데이터일 수 있고, 이에 한정되지 않는다.Also, the device 1000 may obtain data used to generate the user's to-do list from a plurality of applications installed in the device 1000 . The acquired data includes call contents through the device 1000 , messages transmitted and received through the device 1000 (eg, short message service (SMS), multi-media message service (MMS), chat messages, E-Mail, etc.) ), voice contents recorded in the device 1000 and text files stored in the device 1000, photos, videos, user schedule contents, memos, etc. may be data, but is not limited thereto.

단계 S320에서, 디바이스(1000)는 획득된 데이터에 기초하여, 사용자가 수행할 태스크를 결정하는데 이용되는 키워드를 결정할 수 있다. 예를 들면, 디스플레이에서 실행된 어플리케이션이 사용자의 디바이스(1000)와 다른 사용자의 외부 디바이스 간의 커뮤니케이션을 위한 채팅 어플리케이션인 경우, 디바이스(1000)는 디바이스(1000)와 외부 디바이스 간에 송수신되는 텍스트로부터 상기 적어도 하나의 키워드를 추출할 수 있다. 구체적으로, 디바이스(1000)는 디바이스(1000)와 외부 디바이스 간에 송수신되는 텍스트를 분석하고, 분석 결과에 기초하여 사용자가 수행할 태스크를 결정하는데 이용되는 키워드를 결정할 수 있다.In operation S320 , the device 1000 may determine a keyword used to determine a task to be performed by the user based on the obtained data. For example, when the application executed on the display is a chatting application for communication between the user's device 1000 and another user's external device, the device 1000 receives the at least One keyword can be extracted. Specifically, the device 1000 may analyze text transmitted/received between the device 1000 and an external device, and may determine a keyword used to determine a task to be performed by the user based on the analysis result.

텍스트를 분석하는 방법 및 키워드를 결정하는 방법과 관련하여, 디바이스(1000)는 다양한 데이터 마이닝(data mining) 기술을 이용하여 분석할 수 있다. 또한, 디바이스(1000)는 다양한 자연어 해석 기술을 이용하여 디바이스(1000)와 외부 디바이스 간에 송수신되는 텍스트의 내용을 분석할 수 있다. 이 경우, 디바이스(1000)는 형태소 분석, 구문 분석 등의 자연어 처리 방식을 통하여 텍스트의 내용의 의미를 해석할 수 있다. 디바이스(1000)는 해석된 텍스트의 내용의 의미에 기초하여, "누가", "언제", "어디서", "무엇을", "어떻게", "왜"와 같은 의문사에 대응되는 키워드를 결정할 수 있다.In relation to the method of analyzing the text and the method of determining the keyword, the device 1000 may perform the analysis using various data mining techniques. Also, the device 1000 may analyze contents of text transmitted/received between the device 1000 and an external device by using various natural language interpretation techniques. In this case, the device 1000 may interpret the meaning of the text content through a natural language processing method such as morpheme analysis and syntax analysis. The device 1000 may determine keywords corresponding to interrogative words such as “who”, “when”, “where”, “what”, “how”, and “why” based on the meaning of the content of the interpreted text. have.

다른 예를 들면, 디스플레이에서 실행된 어플리케이션이 디바이스(1000)를 통한 통화 어플리케이션인 경우, 디바이스(1000)는 실시간으로 STT(Speech To Text) 변환 기술을 이용하여 통화 음성을 텍스트로 변환하고, 텍스트를 분석하여 태스크를 결정하는데 이용되는 키워드를 결정할 수 있다. 또한, 디바이스(1000)는 통화 어플리케이션이 실행되고 디바이스(1000)와 외부 디바이스 간에 통화가 연결되면, 통화 음성을 녹음할 수 있다. 디바이스(1000)는 녹음된 통화 음성을 텍스트로 변환할 수 있고, 변환된 텍스트를 분석하여 키워드를 결정할 수 있다. 또한, 디바이스(1000)는 녹음된 통화 음성을 서버(2000)로 전송하고, 통화 음성으로부터 변환된 텍스트를 서버(2000)로부터 수신할 수도 있다.For another example, if the application executed on the display is a call application through the device 1000 , the device 1000 converts a call voice into text using STT (Speech To Text) conversion technology in real time, and converts the text The analysis can determine the keywords used to determine the task. Also, when a call application is executed and a call is connected between the device 1000 and an external device, the device 1000 may record a call voice. The device 1000 may convert the recorded voice call into text, and may determine a keyword by analyzing the converted text. Also, the device 1000 may transmit a recorded voice call to the server 2000 and receive text converted from the voice call from the server 2000 .

또 다른 예를 들면, 디스플레이에서 실행된 어플리케이션이 사진 또는 동영상을 관리하는 갤러리 어플리케이션인 경우, 디바이스(1000)는 디바이스(1000)에 저장된 사진 또는 동영상을 영상 처리하여, 사진 또는 동영상으로부터 태스크를 결정하는 데에 이용되는 키워드를 결정할 수 있다.As another example, when the application executed on the display is a gallery application for managing photos or videos, the device 1000 processes the photos or videos stored in the device 1000 to determine a task from the photos or videos. You can decide which keywords to use.

또한, 디바이스(1000)는 디스플레이에서 실행된 어플리케이션에 의해 획득된 데이터 및 디바이스(1000)에 설치된 적어도 하나의 어플리케이션에 의해 획득된 데이터에 기초하여, 사용자가 수행할 태스크를 결정하는데 이용되는 키워드를 결정할 수 있다.In addition, the device 1000 determines a keyword used to determine a task to be performed by the user based on data acquired by an application executed on the display and data acquired by at least one application installed in the device 1000 . can

단계 S330에서, 디바이스(1000)는 키워드에 대한 키워드 목록을 생성할 수 있다. 디바이스(1000)는 디스플레이에서 실행된 어플리케이션에 의해 획득된 데이터로부터 생성된 키워드 전부를 포함하는 키워드 목록을 생성할 수 있다. 또한, 디바이스(1000)는 생성된 키워드의 전부 또는 일부를 조합하여 할일 목록 내의 사용자가 수행할 적어도 하나의 태스크를 결정하는데 이용되는 키워드 목록을 생성할 수 있다.In operation S330 , the device 1000 may generate a keyword list for keywords. The device 1000 may generate a keyword list including all keywords generated from data acquired by an application executed on the display. Also, the device 1000 may combine all or some of the generated keywords to generate a keyword list used to determine at least one task to be performed by the user in the to-do list.

또한, 디바이스(1000)는 디스플레이에서 실행된 어플리케이션에 의해 획득된 데이터로부터 생성된 키워드 및 디바이스(1000)에 설치된 어플리케이션에 의해 획득된 데이터로부터 생성된 키워드의 전부 또는 일부를 조합하여, 키워드 목록을 생성할 수 있다. 여기서, 디바이스(1000)가 디스플레이에서 실행되는 어플리케이션에 의해 획득된 데이터로부터 생성된 키워드뿐만 아니라, 디바이스(1000)에 설치된 다른 어플리케이션에 의해 획득된 데이터로부터 생성된 키워드도 이용하여 키워드 목록을 생성하면, 사용자의 의도에 더 부합된 키워드 목록을 생성할 수 있다.In addition, the device 1000 generates a keyword list by combining all or part of a keyword generated from data acquired by an application executed on the display and a keyword generated from data acquired by an application installed on the device 1000 . can do. Here, when the device 1000 generates a keyword list using not only keywords generated from data acquired by an application running on the display, but also keywords generated from data acquired by other applications installed on the device 1000, It is possible to create a list of keywords that more closely match the user's intention.

단계 S340에서, 디바이스(1000)는 키워드 목록 내의 키워드 중 적어도 하나를 선택하기 위한 GUI(Graphic User Interface)를 표시할 수 있다. 여기서, GUI는 사용자로부터 소정 명령 또는 데이터를 입력 받을 수 있다. 디바이스(1000)의 프로세서는 GUI를 생성하고, 디스플레이를 제어함으로써 디스플레이 화면 상에 GUI를 출력할 수 있다.In operation S340 , the device 1000 may display a graphic user interface (GUI) for selecting at least one of keywords in the keyword list. Here, the GUI may receive a predetermined command or data input from the user. The processor of the device 1000 may generate the GUI and output the GUI on the display screen by controlling the display.

또한, 디바이스(1000)는 디스플레이를 제어함으로써 키워드 목록 내의 키워드 중 적어도 하나를 선택하기 위한 GUI를 실행된 어플리케이션의 실행 화면 상에 중첩하여 표시할 수 있다. 이 경우, 디바이스(1000)는 실행된 어플리케이션의 실행 화면 상의 미리 지정된 위치에서 GUI를 표시할 수 있다. 또한, 디바이스(1000)는 실행된 어플리케이션의 실행 화면 상에서 정보가 표시되지 않은 영역의 위치에 기초하여 GUI를 표시할 수 있다. 또한, 디바이스(1000)는 어플리케이션의 실행 화면 상에 GUI를 반투명하게 표시할 수 있다.Also, the device 1000 may display a GUI for selecting at least one of the keywords in the keyword list by controlling the display to be superimposed on the execution screen of the executed application. In this case, the device 1000 may display the GUI at a predetermined location on the execution screen of the executed application. Also, the device 1000 may display the GUI based on the location of the area where information is not displayed on the execution screen of the executed application. Also, the device 1000 may display the GUI semi-transparently on the execution screen of the application.

또한, 디바이스(1000)는 어플리케이션의 기존에 실행되고 있는 어플리케이션의 실행 화면이 아닌 새로운 실행 화면 상에 GUI를 표시할 수 있다. 예를 들면, 새로운 실행 화면은 키워드 목록 내의 키워드 중 적어도 하나를 선택하기 위한 GUI 만을 표시한 실행 화면일 수 있다.Also, the device 1000 may display the GUI on a new execution screen of the application, not on the execution screen of the previously executed application. For example, the new execution screen may be an execution screen displaying only a GUI for selecting at least one of keywords in the keyword list.

도 4는 일실시예에 따라, 디바이스(1000)가 메시지 어플리케이션의 실행 화면(801)에서 키워드 목록(810)을 표시하는 예시를 나타내는 도면이다.4 is a diagram illustrating an example in which the device 1000 displays a keyword list 810 on an execution screen 801 of a message application, according to an embodiment.

사용자는 디바이스(1000) 내에 설치된 메시지 어플리케이션을 통해 다른 사용자와 메시지를 송수신할 수 있다. 디바이스(1000)는 메시지 어플리케이션으로부터 사용자들 간에 주고 받은 텍스트에 대한 데이터를 획득할 수 있다. 디바이스(1000)는 획득된 데이터에 기초하여 디바이스(1000)의 사용자와 외부 디바이스의 사용자 간의 대화 내용을 분석할 수 있다. 디바이스(1000)는 분석된 대와 내용에 기초하여 사용자가 수행할 태스크를 결정하는데 이용되는 적어도 하나의 키워드(820)를 결정할 수 있다. 디바이스(1000)는 결정된 키워드(820)에 대한 키워드 목록(810)을 생성하여 메시지 어플리케이션의 실행 화면(801)에 중첩하여 표시할 수 있다.A user may transmit/receive a message to/from another user through a message application installed in the device 1000 . The device 1000 may obtain data on text exchanged between users from the message application. The device 1000 may analyze the content of a conversation between the user of the device 1000 and the user of the external device based on the acquired data. The device 1000 may determine at least one keyword 820 used to determine a task to be performed by the user based on the analyzed subject and contents. The device 1000 may generate a keyword list 810 for the determined keyword 820 and display it overlaid on the execution screen 801 of the message application.

도 4를 참고하면, 디바이스(1000)는 디바이스(1000)의 사용자(나)와 외부 디바이스의 사용자(수잔)가 메시지 어플리케이션을 통해 송수신한 메시지를 메시지 어플리케이션의 실행 화면(801)에 표시할 수 있다. 예를 들면, 디바이스(1000)는 메시지 어플리케이션을 통해 디바이스(1000)의 사용자(나)와 외부 디바이스의 사용자(수잔) 간에 송수신한 "너 방학 때 일본 가지 내 선물 사는 거 잊지마", "응, 선물 사 올께", "비행기 표는 예매했어?" 및 "아니, 아직.." 메시지를 획득하고, 획득된 메시지에 기초하여, 사용자가 방학 때 일본으로 가는 비행기 표를 예매하고, 수잔의 선물을 사와야 함을 해석할 수 있다. 이에 따라, 디바이스(1000)는 상기 해석에 기초하여, "일본", "선물", "방학", "비행기", "예매"를 키워드(820)로 결정할 수 있다. 디바이스(1000)는 결정된 키워드(820)인 "일본", "선물", "방학", "비행기", "예매"를 키워드 목록(810)으로 생성하고, 메시지 어플리케이션의 실행 화면(801)에 표시할 수 있다. 이 경우, 디바이스(1000)는 키워드 목록(810) 내의 적어도 하나의 키워드(820) 중 적어도 하나를 선택하기 위한 GUI를 표시할 수 있다. 상기 GUI를 통해 키워드 목록(810) 내의 적어도 하나의 키워드(820)를 선택, 편집하는 동작은 도 6에서 설명한다.Referring to FIG. 4 , the device 1000 may display a message transmitted and received by the user (B) of the device 1000 and the user (Susan) of the external device through the message application on the execution screen 801 of the message application. . For example, the device 1000 transmits/receives between the user (me) of the device 1000 and the user (Susan) of the external device through the message application, "Don't forget to buy a souvenir in Japan during your vacation", "Yes, a gift" I'll buy it", "Have you booked your plane ticket?" and "No, not yet.." is obtained, and based on the obtained message, it can be interpreted that the user should reserve a plane ticket to Japan during vacation and buy a present for Susan. Accordingly, the device 1000 may determine “Japan”, “gift”, “vacation”, “airplane”, and “reservation” as the keywords 820 based on the analysis. The device 1000 generates the determined keywords 820, “Japan,” “gift,” “vacation,” “airplane,” and “reservation,” as the keyword list 810, and displays it on the execution screen 801 of the message application. can do. In this case, the device 1000 may display a GUI for selecting at least one of the at least one keyword 820 in the keyword list 810 . An operation of selecting and editing at least one keyword 820 in the keyword list 810 through the GUI will be described with reference to FIG. 6 .

도 5는 일실시예에 따라, 디바이스(1000)가 통화 어플리케이션의 실행 화면(802)에서 키워드 목록(810)을 표시하는 예시를 나타내는 도면이다.5 is a diagram illustrating an example in which the device 1000 displays a keyword list 810 on the execution screen 802 of a call application, according to an embodiment.

도 5를 참고하면, 예를 들면, 디바이스(1000)는 통화 어플리케이션을 통해 디바이스(1000)의 사용자(나)와 외부 디바이스의 사용자(수잔) 간에 통화한 "너 방학 때 일본 가지? 내 선물 사는 거 잊지마", "응, 선물 사 올께", "비행기 표는 예매했어?" 및 "아니, 아직.." 통화 음성을 녹음할 수 있다. 디바이스(1000)는 상기 녹음된 통화 음성을 텍스트로 변환할 수 있고, 변화된 텍스트에 기초하여 사용자가 방학 때 일본으로 가는 비행기 표를 예매하고, 수잔의 선물을 사와야 함을 해석할 수 있다. 이에 따라, 디바이스(1000)는 상기 해석에 기초하여, "일본", "선물", "방학", "비행기", "예매"를 키워드(820)로 결정할 수 있다. 디바이스(1000)는 상기 키워드(820)를 키워드 목록(810)으로 생성하고, 통화 어플리케이션의 실행 화면(802)에 표시할 수 있다.Referring to FIG. 5 , for example, the device 1000 performs a call between the user (me) of the device 1000 and the user (Susan) of the external device through a call application saying, "You go to Japan during vacation? Buying my gift? Don't forget", "Yes, I'll buy you a present", "Did you book your plane ticket?" and "No, not yet..." call voices can be recorded. The device 1000 may convert the recorded voice call into text, and based on the changed text, the device 1000 may interpret that the user should reserve a plane ticket to Japan during vacation and buy a present for Susan. Accordingly, the device 1000 may determine “Japan”, “gift”, “vacation”, “airplane”, and “reservation” as the keywords 820 based on the analysis. The device 1000 may generate the keyword 820 as a keyword list 810 and display it on the execution screen 802 of the call application.

도 6은 일실시예에 따라, 디바이스(1000)가 GUI에 대한 사용자의 입력에 따른 키워드 목록을 편집하는 예시를 나타내는 도면이다.6 is a diagram illustrating an example in which the device 1000 edits a keyword list according to a user input to a GUI, according to an embodiment.

도 6을 참고하면, 디바이스(1000)는 "일본", "선물", "방학", "비행기", "예매"가 키워드로 구성된 키워드 목록 중 적어도 하나를 선택하기 위한 GUI를 메시지 어플리케이션의 실행 화면(801)에 중첩하여 표시할 수 있다. 예를 들면, 디바이스(1000)는 키워드 목록 상단에 "+", "-"(831)를 표시할 수 있다.Referring to FIG. 6 , the device 1000 displays a GUI for selecting at least one of the keyword lists including “Japan”, “gift”, “vacation”, “airplane”, and “reservation” as keywords on the execution screen of the message application. (801) can be displayed superimposed. For example, the device 1000 may display “+” and “-” 831 at the top of the keyword list.

디바이스(1000)는 GUI를 통해 "-"를 선택하는 입력 및 키워드 목록 내에서 "방학"(821)을 삭제하는 입력을 수신할 수 있다. 여기서, "-"를 선택하는 입력은 터치 신호일 수 있고, "방학"(821)을 삭제하는 입력은 드래그 앤 드롭 신호일 수 있고, 이에 한정되지 않는다. 드래그는 터치 포인트를 한 위치에서 다른 위치로 이동하는 터치 제스쳐를 의미하며, 플릭(flick), 스윕(sweep), 스와이프(swipe), 핀치(pinch), 로테이트(rotate)등 드래그 방식을 활용한 다양한 제스쳐들을 포함할 수 있다. 디바이스(1000)는 디스플레이를 제어함으로써 키워드 목록 중 "방학"을 키워드 목록에서 삭제하고, "일본", "선물", "비행기" 및 "예매"가 키워드로 구성된 키워드 목록을 디스플레이의 실행 화면에 표시할 수 있다.The device 1000 may receive an input of selecting “-” and an input of deleting “vacation” 821 from the keyword list through the GUI. Here, an input for selecting “-” may be a touch signal, and an input for deleting “vacation” 821 may be a drag-and-drop signal, but is not limited thereto. Drag means a touch gesture that moves a touch point from one location to another. It may include various gestures. The device 1000 deletes “vacation” from the keyword list from the keyword list by controlling the display, and displays a keyword list composed of keywords “Japan”, “gift”, “airplane”, and “reservation” on the execution screen of the display can do.

또한, 디바이스(1000)는 GUI를 통해 "+"를 선택하는 입력을 수신할 수 있다. 이 경우, 디바이스(1000)는 키워드를 입력하거나 수정할 수 있도록 키보드 자판 인터페이스를 디스플레이의 실행 화면 상에 표시할 수 있다. 사용자는 키보드 자판 인터페이스를 통해 "숙소", "여권 사진"(822)을 추가로 키워드 목록에 삽입할 수 있다. 디바이스(1000)는 "일본", "선물", "비행기", "예매", "숙소" 및 "여권 사진"이 키워드로 구성된 키워드 목록을 디스플레이의 실행 화면에 표시할 수 있다.Also, the device 1000 may receive an input for selecting “+” through the GUI. In this case, the device 1000 may display a keyboard interface on the execution screen of the display to input or modify a keyword. The user may additionally insert "accommodation" and "passport photo" 822 into the keyword list through the keyboard interface. The device 1000 may display a keyword list including keywords “Japan”, “gift”, “airplane”, “reservation”, “accommodation”, and “passport photo” on the execution screen of the display.

도 7은 일실시예에 따라, 디바이스(1000)가 복수의 어플리케이션으로부터 획득된 데이터에 기초하여, 디스플레이에서 실행 중인 어플리케이션의 실행 화면 상에 키워드 목록을 표시하는 예시를 나타내는 도면이다.7 is a diagram illustrating an example in which the device 1000 displays a keyword list on an execution screen of an application being executed on a display based on data obtained from a plurality of applications, according to an embodiment.

도 4에서 설명한 바와 같이, 디바이스(1000)는 메시지 어플리케이션을 실행함으로써, 사용자(나)와 다른 사용자(수잔)이 송수신한 메시지를 메시지 어플리케이션의 실행 화면(801)에 표시할 수 있다. 디바이스(1000)는 메시지 어플리케이션에 의해 획득된 메시지에 기초하여, 메시지를 "사용자가 방학 때 일본으로 가는 비행기 표를 예매하고, 수잔의 선물을 사와야 함"으로 해석할 수 있다. 이에 따라, 디바이스(1000)는 상기 해석에 기초하여, "일본", "선물", "방학", "비행기", "예매"를 키워드로 결정할 수 있다. As described in FIG. 4 , the device 1000 may display a message transmitted/received between the user (B) and the other user (Susan) on the execution screen 801 of the message application by executing the message application. Based on the message obtained by the message application, the device 1000 may interpret the message as “the user should reserve a plane ticket to Japan during vacation and buy a present for Susan”. Accordingly, the device 1000 may determine “Japan”, “gift”, “vacation”, “airplane”, and “reservation” as keywords based on the above analysis.

여기서, 디바이스(1000)는 상기 결정된 키워드로 키워드 목록을 생성하기 전에, 디바이스(1000)에 설치된 다른 어플리케이션으로부터 상기 키워드 목록 내의 제1 아이템과 관련된 데이터를 획득할 수 있다. 여기서, 아이템은 키워드 목록 내의 적어도 하나의 키워드들 간에 공통으로 적용될 수 있는 소재를 의미할 수 있다. 디바이스(1000)는 다른 어플리케이션으로부터 획득된 데이터에 기초하여, 제1 아이템과 관련된 키워드를 추가로 생성할 수 있다. 예를 들면, 디바이스(1000)는 "일본", "선물", "방학", "비행기", "예매"의 키워드에 대한 아이템을 "여행"으로 결정하고, "여행"과 관련된 데이터가 디바이스(1000) 내에 저장되어 있는지를 확인할 수 있다. 디바이스(1000)는 디바이스(1000) 내에 저장된 "여행"과 관련된 데이터에 기초하여, "여행"과 관련된 키워드를 추가로 생성할 수 있다. 디바이스(1000)는 메모 어플리케이션(803)으로부터 "휴가 가기 한달 전에 휴가 계획서를 제출할 것"이라는 텍스트를 획득하고, "휴가 계획서"(823)를 추가 키워드로 생성할 수 있다. 디바이스(1000)는 "일본", "선물", "방학", "비행기", "예매" 및 "휴가 계획서"(823)를 키워드 목록으로 생성하고, 디스플레이의 실행 화면에 표시할 수 있다.Here, before generating the keyword list using the determined keyword, the device 1000 may acquire data related to the first item in the keyword list from another application installed in the device 1000 . Here, the item may mean a material that can be commonly applied among at least one keyword in the keyword list. The device 1000 may additionally generate a keyword related to the first item based on data obtained from another application. For example, the device 1000 determines an item for the keywords of “Japan”, “gift”, “vacation”, “airplane”, and “reservation” as “travel”, and data related to “travel” is stored in the device ( 1000) can be checked. The device 1000 may additionally generate a keyword related to “travel” based on data related to “travel” stored in the device 1000 . The device 1000 may obtain the text “I will submit a vacation plan one month before going on vacation” from the memo application 803 , and generate “vacation plan” 823 as an additional keyword. The device 1000 may generate “Japan”, “gift”, “vacation”, “airplane”, “reservation”, and “vacation plan” 823 as a keyword list and display it on the execution screen of the display.

도 8은 일실시예에 따른 디바이스(1000)가 후보 태스크 목록을 생성하는 방법의 흐름도이다.8 is a flowchart of a method for generating a candidate task list by the device 1000 according to an exemplary embodiment.

단계 S410에서, 디바이스(1000)는 GUI를 통해 키워드 목록에서 제1 아이템과 관련된 제1 키워드를 선택하는 입력을 수신할 수 있다. 여기서, 아이템은 키워드 목록 내의 적어도 하나의 키워드들 간에 공통으로 적용될 수 있는 소재를 의미할 수 있다. 예를 들면, 키워드 목록 내에는 "비행기", "숙소", "렌터카", "예약", "항공사 사이트" 등을 포함될 수 있다. 디바이스(1000)는 "비행기", "예약", "항공사 사이트"의 키워드 아이템을 "비행기 예약"으로 결정할 수 있다. 디바이스(1000)는 디스플레이의 화면 상에서 사용자가 제1 아이템과 관련된 제1 키워드를 선택하는 터치 신호를 수신할 수 있다.In operation S410 , the device 1000 may receive an input for selecting a first keyword related to the first item from the keyword list through the GUI. Here, the item may mean a material that can be commonly applied among at least one keyword in the keyword list. For example, "airplane", "accommodation", "rental car", "reservation", "airline site", etc. may be included in the keyword list. The device 1000 may determine a keyword item of "airplane", "reservation", and "airline site" as "airplane reservation". The device 1000 may receive a touch signal through which the user selects a first keyword related to the first item on the screen of the display.

또한, 디바이스(1000)는 GUI를 통해 키워드 목록 내의 키워드를 수정, 추가 또는 삭제하는 입력을 수신할 수 있다. 예를 들면, 디바이스(1000)는 키워드 목록 내에서 제1 아이템과 관련이 없는 제2 키워드를 삭제하기 위한 입력 신호를 수신할 수 있다. 여기서, 입력 신호는 터치 신호 또는 드래그 앤 드롭 신호일 수 있다. 다른 예를 들면, 디바이스(1000)는 키워드 목록 내의 키워드를 사용자가 직접 입력하거나 수정할 수 있도록 아이콘을 디스플레이의 실행 화면 상에 표시할 수 있다. 사용자가 아이콘을 터치하면, 디바이스(1000)는 사용자가 직접 제1 아이템과 관련된 키워드를 입력하거나 수정할 수 있도록 키보드 자판 인터페이스를 디스플레이의 실행 화면 상에 표시할 수 있다. 디바이스(1000)는 키보드 자판 인터페이스를 통해 태스크를 결정하는데 이용되는 키워드를 입력 받을 수 있다.Also, the device 1000 may receive an input for correcting, adding, or deleting a keyword in the keyword list through the GUI. For example, the device 1000 may receive an input signal for deleting a second keyword that is not related to the first item in the keyword list. Here, the input signal may be a touch signal or a drag-and-drop signal. As another example, the device 1000 may display an icon on the execution screen of the display so that the user can directly input or modify a keyword in the keyword list. When the user touches the icon, the device 1000 may display the keyboard interface on the execution screen of the display so that the user can directly input or modify a keyword related to the first item. The device 1000 may receive a keyword used to determine a task through the keyboard interface.

단계 S420에서, 디바이스(1000)는 선택된 제1 키워드에 기초하여 제1 아이템에 대한 적어도 하나의 후보 태스크를 결정할 수 있다. 디바이스(1000)는 선택된 제1 키워드, 디바이스(1000)에 설치된 적어도 하나의 어플리케이션에 의해 획득된 제1 키워드와 관련된 데이터 및 서버(2000)로부터 획득된 제1 키워드와 관련된 데이터의 전부 또는 일부를 조합하여, 적어도 하나의 후보 태스크를 결정할 수 있다. 여기서, 서버(2000)는 사용자가 가입된 서비스 제공 서버일 수 있고, 이에 제한되지 않는다. 여기서, 적어도 하나의 후보 태스크는 제1 키워드와 관련된 데이터의 전부 또는 일부를 조합하여 생성된 문장 형태로 제공될 수 있다.In operation S420 , the device 1000 may determine at least one candidate task for the first item based on the selected first keyword. The device 1000 combines all or part of the selected first keyword, data related to the first keyword acquired by at least one application installed in the device 1000 , and data related to the first keyword acquired from the server 2000 . Thus, at least one candidate task may be determined. Here, the server 2000 may be a service providing server to which a user is subscribed, but is not limited thereto. Here, the at least one candidate task may be provided in the form of a sentence generated by combining all or a part of data related to the first keyword.

또한, 선택된 키워드가 복수인 경우, 디바이스(1000)는 복수의 키워드들을 아이템에 대한 카테고리 별로 구분하고, 동일한 카테고리 내의 키워드의 전부 또는 일부를 조합하여 적어도 하나의 후보 태스크를 결정할 수 있다.Also, when there are a plurality of selected keywords, the device 1000 may determine at least one candidate task by classifying the plurality of keywords for each category and combining all or some of the keywords within the same category.

단계 S430에서, 디바이스(1000)는 결정된 적어도 하나의 후보 태스크에 대한 후보 태스크 목록을 표시할 수 있다. 디바이스(1000)는 결정된 복수의 후보 태스크들을 아이템에 대한 카테고리 별로 구분하고, 동일한 카테고리에 속한 후보 태스크들에 대해 그룹핑하여 각 그룹에 대한 후보 태스크 목록을 생성할 수 있다.In operation S430 , the device 1000 may display a list of candidate tasks for the determined at least one candidate task. The device 1000 may classify the plurality of determined candidate tasks by category for each item, and group candidate tasks belonging to the same category to generate a candidate task list for each group.

또한, 디바이스(1000)는 결정된 복수의 후보 태스크들을 사용자의 일정에 따라 구분하고, 동일한 일정에 속한 후보 태스크들에 대해 그룹핑하여 각 그룹에 대한 후보 태스크 목록을 생성할 수 있다. 디바이스(1000)는 생성된 후보 태스크 목록을 표시할 수 있다.Also, the device 1000 may classify a plurality of determined candidate tasks according to a user's schedule, group candidate tasks belonging to the same schedule, and generate a candidate task list for each group. The device 1000 may display the generated candidate task list.

도 9는 일실시예에 따라, 디바이스(1000)가 후보 태스크 목록(910)을 표시하는 예시를 나타내는 도면이다.9 is a diagram illustrating an example in which the device 1000 displays a candidate task list 910, according to an embodiment.

디바이스(1000)는 사용자에 의해 선택된 제1 키워드, 디바이스(1000) 내에 설치된 복수의 어플리케이션에 의해 획득된 제1 키워드와 관련된 데이터 및 서버(2000)로부터 획득된 제1 키워드와 관련된 데이터의 전부 또는 일부를 조합하여, 제1 아이템에 대한 후보 태스크(920)를 결정할 수 있다. 여기서, 서버(2000)는 사용자가 가입된 서비스 제공 서버일 수 있고, 이에 제한되지 않는다.The device 1000 includes all or part of the first keyword selected by the user, data related to the first keyword acquired by a plurality of applications installed in the device 1000 , and data related to the first keyword acquired from the server 2000 . can be combined to determine the candidate task 920 for the first item. Here, the server 2000 may be a service providing server to which a user is subscribed, but is not limited thereto.

도 7에서 설명한 바와 같이, 디바이스(1000)는 사용자에 의해 선택된 키워드인 "일본", "선물", "방학", "비행기", "예매" 및 "휴가 계획서", 디바이스(1000) 내에 설치된 복수의 어플리케이션으로부터 상기 선택된 키워드와 관련된 데이터 및 서버(2000)로부터 상기 키워드와 관련된 데이터를 이용하여, 아이템을 "일본 여행"으로 결정하고, "일본 여행"과 관련된 "일본 여행", "비행기 표 예매하기", "A 숙소 예약하기", "B 숙소 예약하기", "여권 사진 찍기", "휴가 계획서 제출하기" 및 "수잔 선물 사기"를 후보 태스크(920)로 결정할 수 있다.As described in FIG. 7 , the device 1000 includes keywords “Japan”, “gift”, “vacation”, “airplane”, “reservation” and “vacation plan” selected by the user, a plurality of installed in the device 1000 . By using data related to the selected keyword from the application of , and data related to the keyword from the server 2000, an item is determined as “Japan travel”, “Japan travel” related to “Japan travel”, and “booking an airplane ticket” ", "Book accommodation A", "book accommodation B", "take passport photo", "submit vacation plan" and "buy Susan gift" may be determined as candidate tasks 920 .

디바이스(1000)는 후보 태스크(920)에 대한 후보 태스크 목록(910)을 표시할 수 있다. 이 경우, 디바이스(1000)는 후보 태스크 목록(910)을 표시하는 화면을 어플리케이션의 실행 화면에 중첩하여 표시할 수 있고, 별도의 실행 화면으로 표시할 수 있다. 또한, 디바이스(1000)는 후보 태스크 목록(910)을 편집하기 위한 GUI(911)를 표시할 수 있다. 예를 들면, 디바이스(1000)는 후보 태스크(920)를 재추천, 확인, 편집하기 위한 GUI(911)를 표시할 수 있다.The device 1000 may display the candidate task list 910 for the candidate task 920 . In this case, the device 1000 may overlap and display the screen displaying the candidate task list 910 on the execution screen of the application, or may display it as a separate execution screen. Also, the device 1000 may display a GUI 911 for editing the candidate task list 910 . For example, the device 1000 may display a GUI 911 for re-recommending, confirming, and editing the candidate task 920 .

도 10은 다른 일실시예에 따라, 디바이스(1000)가 후보 태스크 목록(910)을 표시하는 예시를 나타내는 도면이다.10 is a diagram illustrating an example in which the device 1000 displays a candidate task list 910 according to another embodiment.

디바이스(1000)는 사용자에 의해 선택된 키워드 뿐만 아니라, 사용자가 가입된 서비스 제공 서버(2000)로부터 추가 키워드를 획득할 수 있다. 여기서, 추가 키워드는 선택된 키워드에 대한 아이템과 관련된 키워드이다. 도 9에서 설명한 바와 같이, 키워드가 "일본", "선물", "방학", "비행기", "예매" 및 "휴가 계획서"인 경우, 디바이스(1000)는 상기 키워드에 대한 아이템을 "일본 여행"으로 결정하고, "일본 여행"과 관련된 "일본 명소" 및 "일본 맛집"을 추가 키워드로 결정할 수 있다.The device 1000 may acquire additional keywords from the service providing server 2000 to which the user is subscribed as well as the keyword selected by the user. Here, the additional keyword is a keyword related to the item for the selected keyword. As described in FIG. 9 , when the keyword is “Japan”, “gift”, “vacation”, “airplane”, “reservation”, and “vacation plan”, the device 1000 selects an item for the keyword “travel in Japan” ", and "Japanese attractions" and "Japanese restaurants" related to "travel in Japan" may be determined as additional keywords.

디바이스(1000)는 추가 키워드에 기초하여 아이템과 관련된 후보 태스크를 결정할 수 있다. 디바이스(1000)는 "일본 명소" 및 "일본 맛집"에 기초하여, "일본 명소"와 관련하여 XX 축제 가기 및 OO 음식점 가기를 후보 태스크로 결정할 수 있다.The device 1000 may determine a candidate task related to the item based on the additional keyword. The device 1000 may determine, as candidate tasks, to go to an XX festival and to a go to an OO restaurant in relation to the “Japanese attraction” based on “Japanese spots” and “Japanese restaurants”.

디바이스(1000)는 서비스 제공 서버(2000)로부터 획득된 추가 키워드를 기초로 결정된 후보 태스크를 사용자에 의해 선택된 키워드를 기초로 결정된 후보 태스크와 구별하여 디스플레이의 실행 화면 상에 표시할 수 있다. 예를 들면, 도 10에 도시된 바와 같이, 디바이스(1000)는 사용자에 의해 선택된 키워드를 기초로 결정된 후보 태스크를 실행 화면의 상단에 표시(920)하고, 서비스 제공 서버(2000)로부터 획득된 추가 키워드를 기초로 결정된 후보 태스크를 실행 화면의 하단에 표시(930)할 수 있다.The device 1000 may distinguish the candidate task determined based on the additional keyword obtained from the service providing server 2000 from the candidate task determined based on the keyword selected by the user and display it on the execution screen of the display. For example, as shown in FIG. 10 , the device 1000 displays ( 920 ) a candidate task determined based on a keyword selected by the user at the top of the execution screen, and the addition obtained from the service providing server 2000 . Candidate tasks determined based on the keyword may be displayed 930 at the bottom of the execution screen.

또한, 디바이스(1000)가 디스플레이의 실행 화면을 통해 후보 태스크 목록(910) 내의 후보 태스크를 선택하는 입력(예를 들면, 터치 신호)을 수신하면, 디바이스(1000)는 선택된 후보 태스크와 관련된 정보를 제공할 수 있다. 예를 들면, 디바이스(1000)가 "XX 축제 가기"를 선택하는 입력을 수신하면, 디바이스(1000)는 "XX 축제에 가는 방법", "XX 축제가 열리는 기간", "XX 축제 예매 방법" 및 "XX 축제와 관련된 링크 정보" 등을 제공할 수 있다. 이 경우, 디바이스(1000)는 사용자가 가입된 서비스 제공 서버(2000)로부터 "XX 축제 가기"와 관련된 정보를 수신할 수 있다.Also, when the device 1000 receives an input (eg, a touch signal) for selecting a candidate task in the candidate task list 910 through the execution screen of the display, the device 1000 displays information related to the selected candidate task. can provide For example, when the device 1000 receives an input selecting “go to the XX festival”, the device 1000 may display “how to go to the XX festival”, “the period during which the XX festival is held”, “how to reserve the XX festival” and You can provide "link information related to the XX festival", etc. In this case, the device 1000 may receive information related to “going to the XX festival” from the service providing server 2000 to which the user is subscribed.

도 11은 일실시예에 따른 다비이스가 할일 목록을 생성하는 방법의 흐름도이다.11 is a flowchart of a method for a device to generate a to-do list according to an exemplary embodiment.

단계 S510에서, 디바이스(1000)는 후보 태스크 목록 및 후보 태스크 목록을 편집하기 위한 GUI를 표시할 수 있다.In operation S510 , the device 1000 may display a candidate task list and a GUI for editing the candidate task list.

단계 S520에서, 디바이스(1000)는 후보 태스크 목록을 편집하기 위한 GUI를 통해 사용자 입력을 수신하고, 사용자 입력에 기초하여 할일 목록을 생성할 수 있다. 디바이스(1000)는 후보 태스크 목록 및 사용자 입력에 기초하여, 적어도 하나의 메인 태스크 및 메인 태스크에 종속된 적어도 하나의 서브 태스크를 포함하는 할일 목록을 생성할 수 있다. 또한, 디바이스(1000)는 후보 태스크 목록 및 사용자 입력에 기초하여, 후보 태스크 목록 내에서 사용자가 수행할 태스크들을 결정할 수 있다. 디바이스(1000)는 결정된 태스크들 중에서 상위요소에 대한 태스크를 메인 태스크로 결정하고, 상위 요소에 대응되는 하위요소에 대한 태스크를 서브 태스크로 결정할 수 있다.In operation S520 , the device 1000 may receive a user input through a GUI for editing the candidate task list, and generate a to-do list based on the user input. The device 1000 may generate a to-do list including at least one main task and at least one sub-task dependent on the main task, based on the candidate task list and the user input. Also, the device 1000 may determine tasks to be performed by the user in the candidate task list based on the candidate task list and the user input. The device 1000 may determine a task for an upper element from among the determined tasks as a main task, and may determine a task for a lower element corresponding to the upper element as a sub task.

예를 들면, 후보 태스크 목록에 대한 아이템이 "일본 여행"과 관련된 것이라면, 후보 태스크 목록은 "비행기 표 예매하기", "숙소 예매하기", "여행지 검색하기", "A 항공사 비행기표 예매하기", "B 항공사 비행기표 예매하기", "여행 일자 정하기", "렌터카 대여", "숙박 비교 사이트 연결하기", "C 명소 방문하기", "E 지역 맛집 탐방하기" 등으로 구성될 수 있다. 이 경우, 디바이스(1000)는 "비행기 표 예매하기"를 제1 메인 태스크로 결정하고, "A 항공사 비행기표 예매하기", "B 항공사 비행기표 예매하기", "여행 일자 정하기"를 제1 메인 태스크에 대한 서브 태스크로 결정할 수 있다. 또한, 디바이스(1000)는 "숙소 예매하기"를 제2 메인 태스크로 결정하고, "숙박 비교 사이트 연결하기"를 제2 메인 태스크에 대한 서브 태스크로 결정할 수 있다. 또한, 디바이스(1000)는 "여행지 검색하기"를 제3 메인 태스크로 결정하고, "C 명소 방문하기", "E 지역 맛집 탐방하기"를 제3 메인 태스크에 대한 서브 태스크로 결정할 수 있다. 또한, 디바이스(1000)는 "렌터카 대여"를 하나의 메인 태스크로 결정할 수 있고, 제1 내지 제3 메인 태스크에 대한 서브 태스크로 결정할 수도 있다.For example, if the item for the candidate task list is related to "travel in Japan", the candidate task list is "book a flight ticket", "book a hotel", "search a destination", "book a flight ticket for airline A" , "booking airline tickets for airline B", "setting travel dates", "rental car rental", "connecting to accommodation comparison sites", "visiting attractions C", "visiting local restaurants in E", etc. In this case, the device 1000 determines “reserving a plane ticket” as the first main task, and performs “booking a plane ticket for airline A”, “booking a plane ticket for airline B”, and “setting a travel date” as the first main task. It can be determined as a sub-task for a task. Also, the device 1000 may determine “booking accommodation” as the second main task, and determine “connecting to an accommodation comparison site” as a sub-task for the second main task. In addition, the device 1000 may determine "Searching for a travel destination" as the third main task, and determine "Visit C spot C" and "Explore a restaurant in area E" as sub-tasks for the third main task. Also, the device 1000 may determine “rental car rental” as one main task, and may determine it as a sub-task for the first to third main tasks.

단계 S530에서, 디바이스(1000)는 생성된 할일 목록을 표시할 수 있다. 또한, 디바이스(1000)는 할일 목록 내의 제1 태스크가 수행되어야 할 시점에 제1 태스크 수행에 관한 알림 정보를 출력할 수 있다. 디바이스(1000)는 알림 정보를 디스플레이의 실행 화면 상에 중첩하여 표시하거나, 음성 신호로 출력할 수도 있다.In operation S530, the device 1000 may display the created to-do list. Also, the device 1000 may output notification information regarding the performance of the first task when the first task in the to-do list is to be performed. The device 1000 may superimpose the notification information on the execution screen of the display or output the notification information as a voice signal.

도 12는 일실시예에 따라, 디바이스(1000)가 할일 목록을 표시하는 예시를 나타내는 도면이다.12 is a diagram illustrating an example in which the device 1000 displays a to-do list, according to an embodiment.

도 10에 도시된 바와 같이, 사용자는 후보 태스크 목록 중에서 "일본 여행", "비행기 표 예약하기", "B숙소 예약하기", "여권 사진 찍기", "휴가 계획서 제출하기", "수잔 선물 사기" 및 "XX 축제 가기"를 태스크로 선택할 수 있다. 이 경우, 디바이스(1000)는 디스플레이의 실행 화면 상의 GUI를 통해 후보 태스크 목록 중 태스크를 선택하는 터치 신호를 수신할 수 있다.As shown in FIG. 10 , the user selects "Travel to Japan", "Reserve a plane ticket", "Reserve accommodation B", "Take a passport photo", "Submit a vacation plan", and "Buy Susan gift" from the list of candidate tasks. " and "Go to XX Festival" can be selected as tasks. In this case, the device 1000 may receive a touch signal for selecting a task from the candidate task list through the GUI on the execution screen of the display.

도 12를 참고하면, 디바이스(1000)는 사용자의 선택한 태스크를 할일 목록으로 구성하고, 할일 목록을 디스플레이의 실행 화면 상에 표시(960)할 수 있다. 예를 들면, 디바이스(1000)는 "일본 여행"(950)과 관련된 할일 목록을 디스플레이의 실행 화면 상에 표시(960)할 수 있다. 또한, 디바이스(1000)는 할일 목록 내의 태스크를 편집할 수 있는 기능을 제공하는 GUI를 디스플레이의 실행 화면 상에 표시할 수 있다.Referring to FIG. 12 , the device 1000 may configure the task selected by the user as a to-do list, and display the to-do list on the execution screen of the display ( 960 ). For example, the device 1000 may display 960 a to-do list related to “Travel to Japan” 950 on the execution screen of the display. Also, the device 1000 may display a GUI providing a function for editing tasks in the to-do list on the execution screen of the display.

도 13는 다른 일실시예에 따라, 디바이스(1000)가 할일 목록을 표시하는 예시를 나타내는 도면이다.13 is a diagram illustrating an example in which the device 1000 displays a to-do list, according to another embodiment.

도 13을 참고하면, 사용자의 할일 목록 내의 태스크가 "일본 여행", "비행기 표 예약하기", "B숙소 예약하기", "여권 사진 찍기", "휴가 계획서 제출하기", "수잔 선물 사기" 및 "XX 축제 가기"로 결정된 경우, 디바이스(1000)는 할일 목록 내의 태스크를 여행 출발 전 할일(961)과 여행 도착 후 할일(962)을 분류할 수 있다. 디바이스(1000)는 여행 출발 전 할일(961)을 제1 메인 태스크로 결정하고, "비행기 표 예약하기", "B숙소 예약하기", "여권 사진 찍기" 및 "휴가 계획서 제출하기"를 제1 메인 태스크에 대한 서브 태스크로 결정할 수 있다. 또한, 디바이스(1000)는 여행 도착 후 할일(962)을 제2 메인 태스크로 결정하고, "수잔 선물 사기" 및 "XX 축제 가기"를 제2 메인 태스크에 대한 서브 태스크로 결정할 수 있다. 도 13에 도시된 바와 같이, 디바이스(1000)는 "여행 출발 전 할일"에 대한 서브 태스크인 "비행기 표 예약하기", "B숙소 예약하기", "여권 사진 찍기" 및 "휴가 계획서 제출하기"를 "여행 도착 후 할일"에 대한 서브 태스크인 "수잔 선물 사기" 및 "XX 축제 가기"와 구별하여 표시할 수 있다.Referring to FIG. 13 , tasks in the user's to-do list include "Travel to Japan", "Reserve a plane ticket", "Reserve accommodation B", "Take a passport photo", "Submit a vacation plan", "Buy Susan gift" And when it is determined to “go to the XX festival”, the device 1000 may classify tasks in the to-do list into to-do tasks 961 before departure and 962 tasks after arrival. The device 1000 determines a to-do 961 before departure for a trip as a first main task, and performs “reserving a plane ticket”, “reserving a lodging B”, “taking a passport photo” and “submitting a vacation plan” as the first It can be determined as a sub-task for the main task. Also, the device 1000 may determine the to-do 962 after arrival of the trip as the second main task, and determine “buy Susan gift” and “go to the XX festival” as sub-tasks for the second main task. As shown in FIG. 13 , the device 1000 is configured to “reserve a plane ticket”, “reserve a hotel B”, “take a passport photo” and “submit a vacation plan” which are sub-tasks for “to-dos before departure”. can be displayed separately from the subtasks "Buy Susan's Gift" and "Go to XX Festival" for "To Do After Travel Arrival".

또한, 디바이스(1000)는 할일 목록 내의 서브 태스크와 관련된 부가 정보를 제공하기 위한 링크(971)도 서브 태스크와 함께 표시될 수 있다.Also, the device 1000 may display a link 971 for providing additional information related to the sub-task in the to-do list together with the sub-task.

도 14은 일실시예에 따라, 디바이스(1000)가 할일 목록 내의 태스크와 관련된 부가 정보를 제공하는 예시를 나타내는 도면이다.14 is a diagram illustrating an example in which the device 1000 provides additional information related to a task in a to-do list, according to an embodiment.

도 13을 참고하면, 사용자는 비행기 표 예매를 하기 위해 비행기 예매 비교 사이트를 접속하여 항공사별로 가격 비교를 할 수 있다. 디바이스(1000)는 "비행기 표 예매하기" 하단에 "비행기 예매 비교 사이트" 정보를 함께 표시할 수 있다. 사용자가 "비행기 예매 비교 사이트"를 선택하면, 도 14에 도시된 바와 같이, 디바이스(1000)는 비행기 예매 비교 사이트를 접속할 수 있다. 사용자는 비행기 예매 비교 사이트에서 여행 정보를 입력하여 항공사 별로 비행기 표 가격을 비교할 수 있다.Referring to FIG. 13 , a user may access an airplane reservation comparison site to make a reservation for an airplane ticket and compare prices for each airline. The device 1000 may also display information on "airplane reservation comparison site" at the bottom of "booking an airplane ticket". When the user selects "airplane reservation comparison site", as shown in FIG. 14 , the device 1000 may access the flight reservation comparison site. The user can compare flight ticket prices by airline by entering travel information on the flight reservation comparison site.

도 15는 일실시예에 따른 디바이스(1000)가 기존에 결정된 태스크를 대체할 태스크를 제공하는 방법의 흐름도이다.15 is a flowchart of a method of providing, by the device 1000, a task to replace a previously determined task, according to an exemplary embodiment.

단계 S610에서, 디바이스(1000)는 디바이스(1000) 내에 설치된 복수의 어플리케이션 및 서버(2000)로부터 사용자의 할일 목록과 관련된 데이터를 획득할 수 있다.In operation S610 , the device 1000 may obtain data related to the user's to-do list from a plurality of applications installed in the device 1000 and the server 2000 .

구체적으로, 디바이스(1000)는 디바이스(1000) 내의 통화 어플리케이션으로부터 사용자와 다른 사용자 간의 통화 음성에 대한 데이터를 획득할 수 있다. 디바이스(1000)는 통화 어플리케이션이 실행되고, 사용자와 다른 사용자 간에 통화가 연결되면, 통화 음성을 녹음할 수 있다. 디바이스(1000)는 녹음된 통화 음성을 텍스트로 변환하여 변환된 텍스트를 획득할 수 있다. 또한, 디바이스(1000)는 녹음된 통화 음성을 서버(2000)로 전송하고, 통화 음성으로부터 변화된 텍스트를 서버(2000)로부터 수신할 수 있다.In detail, the device 1000 may obtain data about a call voice between a user and another user from a call application in the device 1000 . When a call application is executed and a call is connected between the user and another user, the device 1000 may record a call voice. The device 1000 may obtain the converted text by converting the recorded voice call into text. In addition, the device 1000 may transmit the recorded call voice to the server 2000 , and receive text changed from the call voice from the server 2000 .

또한, 디바이스(1000)는 메시지 어플리케이션으로부터 사용자와 다른 사용자 간의 송수신된 메시지를 획득할 수 있다. 디바이스(1000)는 디바이스(1000)가 디바이스(1000) 내의 메시지 어플리케이션을 실행하고 다른 사용자와 메시지를 송수신함에 따라 송수신된 메시지를 획득할 수 있다. 메시지 어플리케이션은 채팅 어플리케이션, SMS/MMS 송수신 어플리케이션, 메신저 어플리케이션 및 SNS 어플리케이션을 포함할 수 있고, 이에 한정되지 않는다. 또한, 디바이스(1000)는 디바이스(1000)에서 송수신된 이메일의 텍스트를 획득할 수 있다. 이 경우, 디바이스(1000)는 디바이스(1000)의 실행된 웹 브라우저 또는 이메일 송수신 어플리케이션으로부터 이메일의 텍스트를 획득할 수 있다.Also, the device 1000 may obtain a message transmitted/received between the user and another user from the message application. The device 1000 may acquire a transmitted/received message as the device 1000 executes a message application in the device 1000 and transmits/receives a message to/from another user. The message application may include a chatting application, an SMS/MMS transmission/reception application, a messenger application, and an SNS application, but is not limited thereto. Also, the device 1000 may obtain the text of the email transmitted and received by the device 1000 . In this case, the device 1000 may obtain the text of the email from the executed web browser or the email transmission/reception application of the device 1000 .

또한, 디바이스(1000)는 디바이스(1000) 내에 설치된 사용자의 일정 관리 어플리케이션을 통하여 사용자의 일정에 대한 데이터를 획득할 수 있다. 또한, 사용자는 서비스 제공 서버의 서비스를 이용하여 서비스 제공 서버에 사용자의 일정 정보를 기록할 수 있으며, 디바이스(1000)는 서비스 제공 서버에 저장된 사용자의 일정 정보를 서비스 제공 서버로부터 수신할 수도 있다. 이 경우, 디바이스(1000)는 서비스 제공 서버의 사용자 ID를 이용하여 서비스 제공 서버로부터 사용자의 일정 정보를 수신할 수 있다. 또한, 사용자는 사용자의 다른 디바이스(1000)에 사용자의 일정 정보를 입력할 수 있고, 디바이스(1000)는 사용자의 다른 디바이스(1000)로부터 사용자의 메모 정보를 획득할 수 있다.Also, the device 1000 may acquire data about the user's schedule through the user's schedule management application installed in the device 1000 . In addition, the user may record the user's schedule information in the service providing server by using the service of the service providing server, and the device 1000 may receive the user's schedule information stored in the service providing server from the service providing server. In this case, the device 1000 may receive the user's schedule information from the service providing server by using the user ID of the service providing server. Also, the user may input the user's schedule information into the user's other device 1000 , and the device 1000 may obtain the user's memo information from the user's other device 1000 .

또한, 디바이스(1000)는 디바이스(1000)에서 실행된 어플리케이션의 로그 정보를 수집할 수 있다. 로그 정보는, 디바이스(1000)에서 실행된 어플리케이션이 사용자 입력에 기초하여 어떠한 동작을 수행했는지를 나타낼 수 있다. 디바이스(1000)는 실행된 어플리케이션의 세부 동작에 관한 로그 정보들을 수집하여, 사용자의 태스크 수행여부를 판단하는데 이용되는 데이터를 획득할 수 있다.Also, the device 1000 may collect log information of an application executed in the device 1000 . The log information may indicate what operation the application executed on the device 1000 performed based on a user input. The device 1000 may acquire data used to determine whether a user performs a task by collecting log information regarding detailed operations of the executed application.

단계 S620에서, 디바이스(1000)는 기존에 결정된 태스크를 변경하기 위한 대체 태스크를 결정할 수 있다. 디바이스(1000)는 할일 목록 내의 제1 태스크와 관련된 데이터를 획득하고, 제1 태스크를 변경하기 위한 대체 태스크를 결정할 수 있다. 예를 들면, 제1 태스크가 "금일, 집 근처 A 마트 가서 장보기"라고 가정한다. 디바이스(1000)는 디바이스(1000) 내에 설치된 어플리케이션 또는 사용자가 가입한 서비스 제공 서버로부터 "금일 A마트 휴무"라는 정보를 획득할 수 있다. 이 경우, 디바이스(1000)는 디바이스(1000) 내에 설치된 어플리케이션 또는 사용자가 가입한 서비스 제공 서버로부터 사용자의 집 근처에서 갈 수 있는 B 마트의 정보를 획득하고, "금일 집 근처 B 마트 가서 장보기"로 대체 태스크를 결정할 수 있다.In operation S620 , the device 1000 may determine an alternative task for changing the previously determined task. The device 1000 may obtain data related to the first task in the to-do list and determine an alternative task for changing the first task. For example, it is assumed that the first task is "Today, go to a mart A near the house to shop". The device 1000 may acquire the information “A mart is closed today” from an application installed in the device 1000 or a service providing server subscribed by the user. In this case, the device 1000 obtains information of a B mart that can be visited near the user's house from an application installed in the device 1000 or a service providing server that the user has subscribed to, and goes to "Go to a B mart near the house today to go shopping". Alternate tasks can be determined.

또한, 디바이스(1000)는 제1 태스크를 다른 대체 태스크로 변경함으로써, 사용자가 할일 목록 내의 다른 태스크를 수행하지 못하는 문제가 발생할 수 있을지를 판단할 수 있다. 사용자가 다른 태스크를 수행하지 못하는 문제가 발생할 것으로 판단되면, 디바이스(1000)는 문제가 발생할 수 있는 태스크에 대한 대체 태스크도 결정할 수 있다.Also, the device 1000 may determine whether a problem in which the user cannot perform other tasks in the to-do list may occur by changing the first task to another alternative task. If it is determined that a problem that prevents the user from performing another task will occur, the device 1000 may also determine an alternative task for the task in which the problem may occur.

단계 S630에서, 디바이스(1000)는 결정된 대체 태스크를 표시할 수 있다. 또한, 디바이스(1000)는 기존에 결정된 태스크를 대체 태스크로 변경하여 할일 목록을 업데이트 할 수 있다. 디바이스(1000)는 기존에 결정된 태스크가 수행되어야 할 시점 이전에 대체 태스크에 관한 알림 정보를 출력할 수 있다. 디바이스(1000)는 알림 정보를 디스플레이의 실행 화면 상에 중첩하여 표시하거나, 음성 신호로 출력할 수 있다.In operation S630 , the device 1000 may display the determined replacement task. Also, the device 1000 may update the to-do list by changing the previously determined task to a replacement task. The device 1000 may output notification information regarding the replacement task before the point in time when the previously determined task is to be performed. The device 1000 may overlap the notification information on the execution screen of the display or output the notification information as a voice signal.

도 16은 일실시예에 따라, 디바이스(1000)가 사용자의 의도를 파악하여 서브 태스크에 대한 후보 태스크를 제공하고, 결정된 태스크에 대한 추가적인 태스크를 제공하는 예시를 나타내는 도면이다.16 is a diagram illustrating an example in which the device 1000 provides a candidate task for a sub-task by identifying a user's intention, and provides an additional task for the determined task, according to an embodiment.

도 16을 참고하면, 디바이스(1000)는 디바이스(1000)의 사용자(나)와 외부 디바이스의 사용자(마이크)가 메시지 어플리케이션을 통해 송수신한 메시지를 메시지 어플리케이션의 실행 화면에 표시할 수 있다. 디바이스(1000)는 메시지 어플리케이션을 통해 "우리 8월에 강릉갈까?", "응, 그러나. 8월 12일 어때?", "좋아, 몇 일이나 갈까?", "3박 4일로 가자" 및 "숙소는 깔끔한 곳으로 가고, 렌터카는 저렴한 것으로 빌리자" 메시지를 획득하고, 획득된 메시지에 기초하여, 사용자(나)와 외부 디바이스의 사용자(마이크)는 8월 12일에 강릉으로 3박4일 여행을 가고, 숙소는 깔끔한 곳을 선호하고, 렌터카는 저렴한 차를 선호함을 해석할 수 있다. 이에 따라, 디바이스(1000)는 상기 해석에 기초하여, "8월12일", "강릉", "렌트카", "3박4일" 및 "숙소"를 키워드로 결정할 수 있다. 디바이스(1000)는 결정된 키워드인 "8월12일", "강릉", "렌트카", "3박4일" 및 "숙소"를 키워드 목록으로 생성하고, 메시지 어플리케이션의 실행 화면에 표시할 수 있다. 이 경우, 디바이스(1000)는 키워드 목록 내의 적어도 하나의 키워드를 편집할 수 있는 GUI를 디스플레이의 실행 화면 상에 표시할 수 있다.Referring to FIG. 16 , the device 1000 may display a message transmitted and received by the user (B) of the device 1000 and the user (microphone) of the external device through the message application on the execution screen of the message application. The device 1000 may send messages such as "Shall we go to Gangneung in August?", "Yes, but. How about August 12?", "Okay, how many days will we go?", "Let's go to 3 nights and 4 days" and Obtained the message "Let's go to a clean place, rent a car rental cheap" message, and based on the obtained message, the user (me) and the user of the external device (microphone) went to Gangneung on August 12 for 3 nights and 4 days This can be interpreted as preferring to go on a trip, to have a clean accommodation, and to rent a car for a cheap car. Accordingly, the device 1000 may determine “August 12”, “Gangneung”, “rental car”, “3 nights 4 days” and “lodging” as keywords based on the above analysis. The device 1000 may generate the determined keywords “August 12”, “Gangneung”, “rental car”, “3 nights 4 days” and “lodging” as a keyword list, and display it on the execution screen of the message application. . In this case, the device 1000 may display a GUI for editing at least one keyword in the keyword list on the execution screen of the display.

또한, 디바이스(1000)는 상기 해석에서 사용자의 의도를 분석할 수 있다. 디바이스(1000)는 제1 키워드에 사용자의 의도 분석 결과를 적용하여, 제1 키워드에 대한 후보 태스크를 결정할 수 있다. 디바이스(1000)는 사용자 의도를 반영할 수 있는 요소들에 가중치를 두어 후보 태스크를 결정하고, 후보 태스크 목록을 생성할 수 있다.Also, the device 1000 may analyze the user's intention in the analysis. The device 1000 may determine a candidate task for the first keyword by applying the user's intention analysis result to the first keyword. The device 1000 may determine a candidate task by weighting factors capable of reflecting user intention, and may generate a list of candidate tasks.

도 16을 참고하면, 디바이스(1000)는 "8월12일", "강릉", "렌트카", "3박4일" 및 "숙소"를 포함하는 키워드 목록에 기초하여, "숙소 예약하기" 및 "렌터카 예약하기"를 후보 태스크로 결정할 수 있다. "숙소 예약하기"와 관련하여, 디바이스(1000)는 사용자(나)와 외부 디바이스의 사용자(마이크)가 깔끔한 숙소를 원하는 의도를 반영하여, 가격 대비 평점이 높은 순서대로 숙소 정보를 나열한 숙소 리스트를 제공할 수 있다. 이 경우, 디바이스(1000)는 가격 및 평점에 가중치를 두어 숙소 리스트를 생성할 수 있다. 디바이스(1000)는 숙소 리스트를 디바이스(1000) 내에 저장된 데이터로부터 획득하거나 사용자가 가입된 서비스 제공 서버로부터 획득할 수 있다.Referring to FIG. 16 , the device 1000 performs “reservation of accommodation” based on the keyword list including “August 12”, “Gangneung”, “rental car”, “3 nights 4 days” and “accommodation”. and “Reserving a rental car” may be determined as a candidate task. In relation to "reserving accommodation", the device 1000 reflects the intention of the user (me) and the user (microphone) of the external device for a neat accommodation, and provides a list of accommodations listing accommodation information in the order of the highest rating to price. can provide In this case, the device 1000 may generate the lodging list by giving weight to the price and the rating. The device 1000 may acquire the lodging list from data stored in the device 1000 or from a service providing server to which the user has subscribed.

또한, "렌터카 예약하기"와 관련하여, 디바이스(1000)는 사용자(나)와 외부 디바이스의 사용자(마이크)가 저렴한 차를 선호하는 의도를 반영하여, 렌터카 회사별로 가격 대비 차 성능이 좋은 차모델을 나열한 렌터카 리스트를 제공할 수 있다. 디바이스(1000)는 가격 및 차 성능에 가중치를 두어 렌터카 리스트를 생성할 수 있다. 디바이스(1000)는 렌터카 리스트를 디바이스(1000) 내에 저장된 데이터로부터 획득하거나 사용자가 가입된 서비스 제공 서버로부터 획득할 수 있다.In addition, with respect to "reserving a rental car", the device 1000 reflects the intention of the user (me) and the user (microphone) of the external device to prefer a cheap car, and a car model with good car performance for each car rental company. We can provide a list of car rentals that list . The device 1000 may generate a rental car list by weighting the price and car performance. The device 1000 may obtain the rental car list from data stored in the device 1000 or from a service providing server to which the user has subscribed.

또한, 디바이스(1000)는 사용자가 할일 목록 내의 태스크를 수행하는 과정에서 발생될 복수의 상황을 고려하여 추가적인 태스크를 제공할 수 있다. 예를 들면, 도 16에 도시된 바와 같이, 사용자(나)와 외부 디바이스의 사용자(마이크)가 강릉 여행을 하는 동안, 폭염 날씨 또는 우천 날씨가 발생될 상황을 고려하여, 디바이스(1000)는 폭염 날씨일 때 수행될 수 있는 태스크 목록(예를 들면, A 해수욕장 가기, B 해수욕장 가기 등)을 제공할 수 있고, 우천 날씨일 때 수행될 수 있는 태스크 목록(예를 들면, E 음식점 방문하기, W 명소 가기 등)을 제공할 수 있다.Also, the device 1000 may provide an additional task in consideration of a plurality of situations that may occur while the user performs a task in the to-do list. For example, as shown in FIG. 16 , while the user (B) and the user (microphone) of the external device travel to Gangneung, in consideration of a situation in which heat or rain weather will occur, the device 1000 is It is possible to provide a list of tasks that can be performed in case of weather (eg, A go to the beach, B to the beach, etc.), and a list of tasks that can be performed in rainy weather (eg, visit E restaurant, W places to visit, etc.).

도 17은 일실시예에 따라, 다비이스가 서브 태스크를 대체할 대체 태스크를 제공하는 예시를 나타내는 도면이다.17 is a diagram illustrating an example in which a device provides an alternative task to replace a sub task, according to an embodiment.

디바이스(1000)는 디바이스(1000) 내에 설치된 복수의 어플리케이션에 의해 획득된 데이터 및 사용자가 가입된 서비스 제공 서버(2000)로부터 획득된 데이터에 기초하여, 할일 목록 내의 적어도 하나의 태스크를 변경하기 위한 적어도 하나의 대체 태스크를 결정하고, 결정된 대체 태스크를 반영하여 할일 목록 내의 태스크를 업데이트 할 수 있다.The device 1000 is configured to change at least one task in the to-do list based on data obtained by a plurality of applications installed in the device 1000 and data obtained from the service providing server 2000 to which the user is subscribed. One replacement task may be determined, and the task in the to-do list may be updated by reflecting the determined replacement task.

도 17을 참고하면, 사용자가 제주도 여행을 하는 동안, 디바이스(1000)는 사용자의 일정 정보를 제공할 수 있다. 사용자의 여행 2일차 일정은 중문 관광 단지, 서귀포 관광 단지, 표선 민속촌, 섭지코지 및 성산 일출봉의 순서로 구성될 수 있다. 디바이스(1000)는 사용자의 일정을 체크하면서, 디바이스(1000) 내에 설치된 날씨 어플리케이션 또는 사용자가 가입된 서비스 서버(2000)로부터 오전에 중문 관광 단지 지역에 태풍이 올 예정이라는 데이터를 획득할 수 있다.Referring to FIG. 17 , while the user travels to Jeju Island, the device 1000 may provide schedule information of the user. The user's travel schedule for the second day may consist of Jungmun Tourist Complex, Seogwipo Tourist Complex, Pyoseon Folk Village, Seopjikoji, and Seongsan Ilchulbong in the order. While checking the user's schedule, the device 1000 may acquire data indicating that a typhoon is scheduled to arrive in the Jungmun Tourist Complex area in the morning from a weather application installed in the device 1000 or a service server 2000 to which the user is subscribed.

디바이스(1000)는 디바이스(1000) 내에 설치된 어플리케이션 또는 사용자가 가입된 서비스 서버(2000)로부터 중문 관광 단지를 대체할 후보 장소에 대한 데이터를 획득할 수 있다. 디바이스(1000)는 획득된 데이터에 기초하여, 한림 공원, 강정 유원지, 천지연 폭포 및 정방 폭포를 대체 후보 장소로 결정할 수 있다. 그리고, 디바이스(1000)는 각 대체 후보 장소에 대한 데이터에 기초하여 사용자에게 최적의 대체 장소를 제공할 수 있다. 예를 들면, 디바이스(1000)는 각 대체 후보 장소에 대하여, 숙소로부터 거리, 개장 시간, 군중 밀집 정도, 날씨 등에 대한 데이터를 수집하고, 수집된 데이터에 기초하여 최적의 대체 장소를 제공할 수 있다. 디바이스(1000)는 숙소로부터 거리, 개장 시간, 군중 밀집 정도, 날씨 각각에 가중치를 부여하고, 평점을 계산할 수 있다. 디바이스(1000)는 평점이 기준값보다 가장 큰 "한림 공원"을 대체 장소로 제공할 수 있다.The device 1000 may acquire data on a candidate place to replace the Jungmun Tourist Complex from an application installed in the device 1000 or a service server 2000 to which the user is subscribed. The device 1000 may determine Hallim Park, Gangjeong Amusement Park, Cheonjiyeon Falls, and Jeongbang Falls as replacement candidate locations based on the obtained data. In addition, the device 1000 may provide an optimal replacement location to the user based on data on each replacement candidate location. For example, the device 1000 may collect data on the distance from the accommodation, opening time, crowd concentration, weather, etc. for each replacement candidate location, and provide an optimal replacement location based on the collected data. . The device 1000 may assign a weight to each of the distance from the accommodation, the opening time, the degree of crowd concentration, and the weather, and calculate a rating. The device 1000 may provide “Hallym Park” having the highest rating than the reference value as an alternative place.

디바이스(1000)는 제주도 일정과 관련하여, "중문 관광 단지 방문하기" 태스크를 "한림 공원 방문하기" 태스크로 변경하고, 할일 목록 내의 태스크를 업데이트 할 수 있다. 디바이스(1000)는 업데이트 된 할일 목록을 표시할 수 있다.The device 1000 may change the “visit Jungmun Tourism Complex” task to a “visit Hallim Park” task in relation to the Jeju Island schedule, and update the task in the to-do list. The device 1000 may display an updated to-do list.

도 18은 일실시예에 따른 디바이스(1000)가 할일 목록 내의 태스크가 수행되었는지를 모니터링하는 방법의 흐름도이다.18 is a flowchart of a method of monitoring whether a task in a to-do list is performed by the device 1000 according to an exemplary embodiment.

단계 S710에서, 디바이스(1000)는 할일 목록 내의 태스크가 수행되었는지를 판단하는 데 이용되는 조건 정보를 획득할 수 있다.In operation S710 , the device 1000 may obtain condition information used to determine whether a task in the to-do list has been performed.

디바이스(1000)는 디바이스(1000) 내에 설치된 복수의 어플리케이션 및 서버(2000)로부터 획득된 데이터로부터 할일 목록 내의 태스크가 수행되었는지를 판단하는데 이용되는 조건 정보를 획득할 수 있다. 이 경우, 조건 정보는 소정의 태스크가 수행되었는지를 판단하는데 이용되는 정보로써, 미리 설정될 수 있다. 조건 정보는 소정의 태스크가 수행되는데 이용되는 어플리케이션, 어플리케이션과 관련된 사용자의 동작 정보, 사용자의 동작 정보에 따른 어플리케이션의 세부적인 동작 정보 등을 포함할 수 있고, 이에 한정되지 않는다.The device 1000 may obtain condition information used to determine whether a task in the to-do list is performed from a plurality of applications installed in the device 1000 and data obtained from the server 2000 . In this case, the condition information is information used to determine whether a predetermined task has been performed, and may be preset. The condition information may include, but is not limited to, an application used to perform a predetermined task, user operation information related to the application, detailed operation information of the application according to the user's operation information, and the like.

즉, 디바이스(1000)는 할일 목록 내의 제1 태스크를 수행하기 위한 디바이스(1000)의 세부 동작들 및 세부 동작들 간의 관계를 결정할 수 있다. That is, the device 1000 may determine detailed operations of the device 1000 for performing the first task in the to-do list and a relationship between the detailed operations.

단계 S720에서, 디바이스(1000)는 조건 정보 및 디바이스(1000)로부터 획득된 정보에 기초하여, 할일 목록 내의 태스크가 수행되었는지를 모니터링 할 수 있다. 디바이스(1000)는 디바이스(1000)의 세부 동작들 간의 관계를 나타내는 조건 정보에 기초하여, 할일 목록 내의 태스크가 수행되었는지를 결정할 수 있다. 디바이스(1000)는 제1 태스크가 수행되었는지 판단하는데 이용되는 제1 조건 정보를 저장할 수 있다. 디바이스(1000)는 디바이스(1000)로부터 획득된 정보 및 저장된 제1 조건 정보에 기초하여, 제1 태스크가 수행되었는지를 모니터링 할 수 있다.In operation S720 , the device 1000 may monitor whether a task in the to-do list is performed based on condition information and information obtained from the device 1000 . The device 1000 may determine whether a task in the to-do list is performed based on condition information indicating a relationship between detailed operations of the device 1000 . The device 1000 may store first condition information used to determine whether the first task is performed. The device 1000 may monitor whether the first task is performed based on the information obtained from the device 1000 and the stored first condition information.

예를 들면, 제1 태스크가 "마트에서 물 사기"인 경우, 디바이스(1000)는 "마트에서 물 사기"가 수행되었는지를 판단하기 위해, 사용자의 위치 정보 및/또는 사용자의 결제 정보에 기초하여 결정할 수 있다. 여기서, 조건 정보는 GPS 어플리케이션으로부터 마트에 도착한 사용자의 위치 정보 및/또는 디바이스(1000)로 전송된 사용자의 문자 메시지에 대한 결제 정보일 수 있다.For example, if the first task is “buy water at the mart”, the device 1000 determines whether “buy water at the mart” is performed, based on the user's location information and/or the user's payment information can decide Here, the condition information may be location information of the user who arrived at the mart from the GPS application and/or payment information for the user's text message transmitted to the device 1000 .

구체적으로, GPS 어플리케이션으로부터 획득된 위치 정보가 마트 위치를 나타내는 정보이고, 메시지 어플리케이션으로부터 획득된 문자 메시지 정보가 "물 결제 내역"을 포함한 경우, 디바이스(1000)는 제1 태스크가 수행되었다고 결정할 수 있다.Specifically, when the location information obtained from the GPS application is information indicating the location of the mart, and the text message information obtained from the message application includes "water payment details", the device 1000 may determine that the first task has been performed. .

단계 S730에서, 디바이스(1000)는 모니터링 결과에 기초하여, 할일 목록을 업데이트 할 수 있다. 디바이스(1000)의 모니터링 결과, 할일 목록 내의 태스크가 수행된 것으로 결정되면, 디바이스(1000)는 할일 목록 내에서 수행된 태스크를 삭제할 수 있다. 또한, 디바이스(1000)의 모니터링 결과, 할일 목록 내의 태스크가 수행되지 않은 것으로 결정되면, 디바이스(1000)는 태스크가 수행되지 않았음을 알리는 알림 정보를 출력할 수 있다.In operation S730, the device 1000 may update the to-do list based on the monitoring result. As a result of monitoring of the device 1000 , if it is determined that a task in the to-do list has been performed, the device 1000 may delete the task performed in the to-do list. Also, as a result of monitoring of the device 1000 , if it is determined that the task in the to-do list has not been performed, the device 1000 may output notification information indicating that the task has not been performed.

도 19는 일실시예에 따라, 디바이스(1000)가 할일 목록 내의 태스크를 수행하였는지를 모니터링하는 과정을 설명하기 위한 도면이다.19 is a diagram for describing a process of monitoring whether the device 1000 performs a task in a to-do list, according to an exemplary embodiment.

도 19를 참고하면, 디바이스(1000)는 디바이스(1000) 내의 메시지 어플리케이션을 통해 디바이스(1000)의 사용자와 외부 디바이스의 사용자 간에 송수신한 메시지를 획득할 수 있다. 디바이스(1000)는 획득된 메시지에 대한 내용을 "직장 김상사가 사용자에게 오늘 진행했던 회의에서 찍은 사진들을 전송해 달라고 요청한 것"으로 해석할 수 있다. 디바이스(1000)는 사용자의 할일 목록에 "김상사에게 사진 전송하기" 태스크를 추가할 수 있다.Referring to FIG. 19 , the device 1000 may obtain a message transmitted/received between the user of the device 1000 and the user of the external device through a message application in the device 1000 . The device 1000 may interpret the content of the obtained message as "a request from the user, Mr. Kim at work, to transmit the photos taken at the meeting held today". The device 1000 may add a task "Send a photo to Mr. Kim" to the user's to-do list.

디바이스(1000)는 "김상사에게 사진 전송하기" 태스크가 수행되었는지를 판단하는데 이용되는 조건 정보를 결정할 수 있다. 예를 들면, 디바이스(1000)는 디바이스(1000) 내의 메시지 어플리케이션의 실행되고, 사용자가 메시지를 송수신한 대상이 김상사이고, 디바이스(1000) 내의 사진 앨범에서 사진이 선택된 디바이스(1000)의 동작이 있었던 경우를 조건 정보로 결정할 수 있다.The device 1000 may determine condition information used to determine whether the task of “sending a picture to Mr. Kim” is performed. For example, in the device 1000, the message application in the device 1000 is executed, the target to which the user transmits and receives a message is Sangsa Kim, and the device 1000 has an operation in which a photo is selected from the photo album in the device 1000. The case can be determined with condition information.

디바이스(1000)는 사용자의 행위와 관련된 어플리케이션의 동작을 모니터링 할 수 있다. 디바이스(1000)는 디바이스(1000) 내의 메시지 어플리케이션이 실행되는지를 모니터링 할 수 있다. 디바이스(1000)가 메시지 어플리케이션이 실행되고 있음을 감지한 경우, 디바이스(1000)는 메시지 어플리케이션을 통해 획득된 데이터에 기초하여, 사용자가 메시지를 송수신한 대상이 김상사 인지를 결정할 수 있다. 사용자가 메시지를 송수신한 대상이 김상사 인 것으로 결정되면, 디바이스(1000)는 디바이스(1000) 내의 사진 앨범에서 사진이 선택된 디바이스(1000)의 동작이 있었는지를 결정할 수 있다. 사진 앨범에서 사진이 선택된 디바이스(1000)의 동작이 있었던 것으로 결정되면, 디바이스(1000)는 "김상사에게 사진 전송하기" 태스크가 수행된 것으로 결정할 수 있다. 이 경우, 디바이스(1000)는 사용자의 할일 목록에서 "김상사에게 사진 전송하기" 태스크를 삭제할 수 있다. 반면에, 복수의 조건 정보 중 하나의 조건 정보라도 만족하지 않는다면, 디바이스(1000)는 "김상사에게 사진 전송하기" 태스크가 수행되지 않은 것으로 결정할 수 있다. 이 경우, 디바이스(1000)는 디스플레이의 실행 화면을 통해 "김상사에게 사진 전송하기" 알림창을 표시할 수 있다.The device 1000 may monitor the operation of the application related to the user's behavior. The device 1000 may monitor whether a message application in the device 1000 is executed. When the device 1000 detects that the message application is being executed, the device 1000 may determine whether a target to which the user transmits and receives a message is Sangsa Kim, based on data obtained through the message application. When it is determined that the subject to which the user has transmitted and received the message is Sangsa Kim, the device 1000 may determine whether there was an operation of the device 1000 in which a photo was selected from a photo album in the device 1000 . When it is determined that there was an operation of the device 1000 in which a photo is selected from the photo album, the device 1000 may determine that the task of “sending a photo to Sangsa Kim” has been performed. In this case, the device 1000 may delete the task "Send a picture to Mr. Kim" from the user's to-do list. On the other hand, if even one condition information among the plurality of condition information is not satisfied, the device 1000 may determine that the task of “sending a picture to Mr. Kim” is not performed. In this case, the device 1000 may display a notification window of “Send a photo to Mr. Kim” through the execution screen of the display.

도 20은 다른 일실시예에 따라, 디바이스(1000)가 할일 목록 내의 태스크를 수행하였는지를 모니터링하는 과정을 설명하기 위한 도면이다.20 is a diagram for explaining a process of monitoring whether the device 1000 performs a task in a to-do list, according to another exemplary embodiment.

도 20을 참고하면, 디바이스(1000)는 할일 목록에 "우유 사기" 태스크를 추가할 수 있다. 디바이스(1000)는 "우유 사기" 태스크가 수행되었는지를 판단하는데 이용되는 조건 정보를 결정할 수 있다. 예를 들면, 디바이스(1000)는 GPS 어플리케이션으로부터 사용자의 위치 정보를 나타내는 데이터를 획득하고, 위치 정보를 나타내는 데이터가 마트가 있는 위치를 나타내는 경우를 조건 정보로 결정할 수 있다.Referring to FIG. 20 , the device 1000 may add a “buy milk” task to the to-do list. The device 1000 may determine condition information used to determine whether the “buy milk” task is performed. For example, the device 1000 may obtain data representing the user's location information from the GPS application, and determine a case where the data representing the location information represents a location where a mart is located as condition information.

디바이스(1000)는 사용자의 행위와 관련된 어플리케이션의 동작을 모니터링 할 수 있다. 디바이스(1000)는 디바이스(1000) 내의 GPS 어플리케이션으로부터 사용자의 위치 정보를 나타내는 데이터를 실시간으로 모니터링 할 수 있다. 디바이스(1000)가 위치 정보를 나타내는 정보가 마트가 있는 위치를 나타낸 것으로 판단하면, 디바이스(1000)는 "우유 사기" 태스크에 대한 알림 정보를 출력할 수 있다. 디바이스(1000)는 알림 정보를 디스플레이의 실행 화면 창에 표시할 수 있고, 음성으로 출력할 수 있다. 또한, 디바이스(1000)가 위치 정보를 나타내는 정보가 마트를 벗어난 위치를 나타낸 것으로 판단하면, 디바이스(1000)는 "우유 사기" 태스크를 수행하였는지에 대한 알림 정보를 출력할 수 있다.The device 1000 may monitor the operation of the application related to the user's behavior. The device 1000 may monitor data indicating the user's location information from a GPS application in the device 1000 in real time. When the device 1000 determines that the information indicating the location information indicates the location of the mart, the device 1000 may output notification information for the “buy milk” task. The device 1000 may display the notification information on the execution screen window of the display, and may output the notification information by voice. Also, when the device 1000 determines that the information indicating the location information indicates a location outside the mart, the device 1000 may output notification information on whether the “buy milk” task has been performed.

디바이스(1000)가 GPS 어플리케이션으로부터 마트의 위치를 나타내는 데이터 및 마트의 위치를 벗어나는 위치를 나타내는 데이터를 순차적으로 획득한 경우, 디바이스(1000)는 "우유 사기" 태스크가 수행된 것으로 결정하고, 사용자의 할일 목록에서 "우유 사기" 태스크를 삭제할 수 있다.When the device 1000 sequentially acquires the data indicating the location of the mart and the data indicating the location outside the location of the mart from the GPS application, the device 1000 determines that the “buy milk” task has been performed, and the user's You can delete the "Buy Milk" task from your to-do list.

또한, 디바이스(1000)가 마트의 위치를 벗어나는 위치를 나타내는 데이터를 획득한 시점에, 디바이스(1000)는 "우유 사기" 태스크를 수행하였는지에 알림 정보를 출력하고, 사용자로부터 "우유 사기" 태스크 수행 여부에 대한 정보를 수신할 수 있다. 디바이스(1000)는 상기 정보에 따라 "우유 사기" 태스크가 수행되었는지를 결정할 수 있다. 디바이스(1000)는 "우유 사기" 태스크가 수행되지 않은 것으로 결정되면, 디스플레이의 실행 화면을 통해 "우유 사기" 알림창을 표시할 수 있다.Also, when the device 1000 acquires data indicating a location out of the mart, the device 1000 outputs notification information on whether the “buy milk” task has been performed, and whether the “buy milk” task is performed from the user information can be received. The device 1000 may determine whether the “buy milk” task has been performed according to the information. When it is determined that the “buy milk” task has not been performed, the device 1000 may display a “buy milk” notification window through the execution screen of the display.

도 21은 또 다른 일실시예에 따라, 디바이스(1000)가 할일 목록 내의 태스크를 수행하였는지를 모니터링하는 과정을 설명하기 위한 도면이다.21 is a diagram for describing a process of monitoring whether the device 1000 performs a task in a to-do list, according to another exemplary embodiment.

도 21을 참고하면, 디바이스(1000)는 할일 목록에 "우유 사기" 태스크를 추가할 수 있다. 디바이스(1000)는 "우유 사기" 태스크가 수행되었는지를 판단하는데 이용되는 조건 정보를 결정할 수 있다. 예를 들면, 디바이스(1000)는 메시지 어플리케이션으로부터 획득된 문자 메시지 정보가 "우유 결제 내역"을 포함하는 경우를 조건 정보로 결정할 수 있다.Referring to FIG. 21 , the device 1000 may add a “buy milk” task to the to-do list. The device 1000 may determine condition information used to determine whether the “buy milk” task is performed. For example, the device 1000 may determine a case in which text message information obtained from the message application includes “milk payment history” as condition information.

디바이스(1000)는 사용자의 행위와 관련된 어플리케이션의 동작을 모니터링 할 수 있다. 디바이스(1000)는 메시지 어플리케이션으로부터 획득된 문자 메시지 정보에 대해서 사용자의 결제 내역을 실시간으로 모니터링 할 수 있다. 디바이스(1000)가 사용자의 결제 내역이 "우유 결제" 내역을 포함한 것으로 판단하면, 디바이스(1000)는 "우유 사기" 태스크가 수행된 것으로 결정할 수 있다.The device 1000 may monitor the operation of the application related to the user's behavior. The device 1000 may monitor the user's payment details for text message information obtained from the message application in real time. When the device 1000 determines that the user's payment details include “milk payment” details, the device 1000 may determine that the “milk purchase” task has been performed.

또한, 디바이스(1000)는 "우유 사기" 태스크를 수행하였는지에 대한 알림 정보를 출력할 수 있다. 디바이스(1000)는 사용자로부터 "우유 사기" 태스크 수행 여부에 대한 정보를 수신할 수 있다. 디바이스(1000)는 상기 정보에 따라 "우유 사기" 태스크가 수행되었는지를 결정할 수 있다. 디바이스(1000)는 "우유 사기" 태스크가 수행되지 않은 것으로 결정되면, 디스플레이의 실행 화면을 통해 "우유 사기" 알림창을 표시할 수 있다.Also, the device 1000 may output notification information on whether the “buy milk” task has been performed. The device 1000 may receive information on whether to perform the “buy milk” task from the user. The device 1000 may determine whether the “buy milk” task has been performed according to the information. When it is determined that the “buy milk” task has not been performed, the device 1000 may display a “buy milk” notification window through the execution screen of the display.

도 22는 일실시예에 따라, 서버(2000)가 후보 태스크를 결정하고, 디바이스(1000)가 할일 목록을 생성하고, 할일 목록 내의 태스크가 수행되었는지를 모니터링 하는 방법의 흐름도이다.22 is a flowchart of a method in which the server 2000 determines a candidate task, the device 1000 generates a to-do list, and monitors whether a task in the to-do list is performed, according to an exemplary embodiment.

단계 S2200에서, 디바이스(1000)는 디스플레이에서 실행된 어플리케이션으로부터 데이터를 획득할 수 있다. 여기서, 데이터는 디바이스(1000)를 통한 통화 내용, 디바이스(1000)를 통해 송수신된 메시지의 내용, 디바이스(1000)를 통해 송수신된 이메일 내용, 디바이스(1000)에 기록된 메모 내용, 디바이스(1000)에 녹음된 음성 내용 및 디바이스(1000)에 저장된 사용자 일정의 내용 등에 대한 데이터 일 수 있고 이에 한정되지 않는다.In operation S2200, the device 1000 may obtain data from an application executed on the display. Here, the data includes the contents of a call through the device 1000 , the contents of messages transmitted and received through the device 1000 , the contents of emails transmitted and received through the device 1000 , the contents of a memo recorded in the device 1000 , and the device 1000 . It may be data about the voice content recorded in the , the content of the user schedule stored in the device 1000, and the like, but is not limited thereto.

단계 S2205에서, 디바이스(1000)는 서버(2000)로 상기 획득된 데이터를 전송할 수 있다. 서버(2000)는 사용자가 가입된 서비스 제공 서버(2000)일 수 있다. 서비스 제공 서버(2000)는 SNS 서비스, 메시지 송수신 서비스, 통신 서비스, 일정 관리 서비스, 콘텐트 제공 서비스, 및 검색 서비스 등을 제공할 수 있으나, 이에 제한되지 않는다.In operation S2205 , the device 1000 may transmit the obtained data to the server 2000 . The server 2000 may be a service providing server 2000 to which a user is subscribed. The service providing server 2000 may provide an SNS service, a message sending/receiving service, a communication service, a schedule management service, a content providing service, and a search service, but is not limited thereto.

단계 S2210에서, 서버(2000)는 상기 획득된 데이터에 기초하여 사용자가 수행할 적어도 하나의 태스크를 결정하는데 이용되는 적어도 하나의 키워드를 결정할 수 있다. 예를 들면, 서버(2000)는 송수신된 메시지의 내용에 관한 데이터를 수신하고, 메시지의 내용을 분석할 수 있다. 서버(2000)는 분석 결과에 기초하여 태스크를 결정하는데 이용되는 키워드를 결정할 수 있다. 또한, 서버(2000)는 상기 획득된 데이터 및 서버(2000)에 저장된 데이터에 기초하여, 사용자가 수행할 적어도 하나의 태스크를 결정하는데 이용되는 적어도 하나의 키워드를 결정할 수 있다.In operation S2210, the server 2000 may determine at least one keyword used to determine at least one task to be performed by the user based on the obtained data. For example, the server 2000 may receive data regarding the content of the transmitted/received message and analyze the content of the message. The server 2000 may determine a keyword used to determine a task based on the analysis result. Also, the server 2000 may determine at least one keyword used to determine at least one task to be performed by the user based on the obtained data and data stored in the server 2000 .

단계 S2215에서, 서버(2000)는 디바이스(1000)로 결정된 적어도 하나의 키워드를 전송할 수 있다.In operation S2215 , the server 2000 may transmit the determined at least one keyword to the device 1000 .

단계 S2220에서, 디바이스(1000)는 적어도 하나의 키워드에 대한 키워드 목록을 생성할 수 있다. 디바이스(1000)는 키워드 목록 내의 적어도 하나의 키워드 중 적어도 하나를 선택하기 위한 GUI를 표시할 수 있다. 디바이스(1000)는 GUI를 통해 키워드 목록을 수정하는 입력을 수신하고, 입력에 따른 키워드 목록을 생성할 수 있다.In operation S2220, the device 1000 may generate a keyword list for at least one keyword. The device 1000 may display a GUI for selecting at least one of at least one keyword in the keyword list. The device 1000 may receive an input for modifying the keyword list through the GUI, and may generate a keyword list according to the input.

단계 S2225에서, 디바이스(1000)는 키워드 목록을 서버(2000)로 전송할 수 있다.In operation S2225 , the device 1000 may transmit the keyword list to the server 2000 .

단계 S2230에서, 서버(2000)는 키워드 목록에 기초하여 적어도 하나의 후보 태스크를 결정할 수 있다. 서버(2000)는 키워드 목록 내의 제1 키워드에 기초하여 적어도 하나의 후보 태스크를 결정할 수 있다.In operation S2230, the server 2000 may determine at least one candidate task based on the keyword list. The server 2000 may determine at least one candidate task based on the first keyword in the keyword list.

단계 S2235에서, 서버(2000)는 결정된 적어도 하나의 후보 태스크를 디바이스(1000)로 전송할 수 있다.In operation S2235 , the server 2000 may transmit the determined at least one candidate task to the device 1000 .

단계 S2240에서, 디바이스(1000)는 적어도 하나의 후보 태스크에 기초하여, 사용자가 수행할 할일 목록을 생성할 수 있다. 디바이스(1000)는 적어도 하나의 후보 태스크에 대한 후보 태스크 목록을 생성하고, 후보 태스크 목록에 기초하여 적어도 하나의 메인 태스크 및 메인 태스크에 종속된 적어도 하나의 서브 태스크를 포함하는 할일 목록을 생성할 수 있다. In operation S2240 , the device 1000 may generate a to-do list to be performed by the user based on at least one candidate task. The device 1000 may generate a candidate task list for at least one candidate task, and generate a to-do list including at least one main task and at least one sub-task dependent on the main task based on the candidate task list. have.

단계 S2250에서, 디바이스(1000)는 할일 목록에 내의 적어도 하나의 태스크의 수행 여부를 모니터링 할 수 있다. 디바이스(1000)는 할일 목록 내의 적어도 하나의 태스크가 수행되었는지를 판단하는데 이용되는 조건 정보를 획득하고, 조건 정보에 기초하여 할일 목록 내의 적어도 하나의 태스크가 수행되었는지를 모니터링 할 수 있다.In operation S2250, the device 1000 may monitor whether at least one task in the to-do list is performed. The device 1000 may obtain condition information used to determine whether at least one task in the to-do list has been performed, and monitor whether at least one task in the to-do list is performed based on the condition information.

단계 S2255에서, 디바이스(1000)는 모니터링 결과에 따라 할일 목록 내의 태스크를 업데이트 할 수 있다. 예를 들면, 디바이스(1000)는 수행된 태스크를 할일 목록 내에서 삭제할 수 있다. 또한, 디바이스(1000)는 미수행된 태스크에 대한 알림 정보를 제공할 수 있다.In operation S2255, the device 1000 may update the task in the to-do list according to the monitoring result. For example, the device 1000 may delete the performed task from the to-do list. Also, the device 1000 may provide notification information about an unperformed task.

도 23은 다른 일실시예에 따라, 디바이스(1000)가 할일 목록을 생성하고, 서버(2000)가 할일 목록 내의 태스크를 결정하기 위한 후보 태스크를 결정하고, 할일 목록 내의 태스크가 수행되었는지를 모니터링 하는 방법의 흐름도이다.23 shows, according to another embodiment, the device 1000 generates a to-do list, the server 2000 determines a candidate task for determining a task in the to-do list, and monitors whether a task in the to-do list is performed. It is a flow chart of the method.

도 23에 도시된 단계 S2200, 단계 SS2205, 단계 S2210, 단계 S2215, 단계 S2220, 단계 S2225, 단계 S2230, 단계 S2235 및 단계 S2240에 따른 디바이스(1000)와 서버(2000)의 동작은 도 22에 도시된 디바이스(1000)와 서버(2000)의 동작과 동일하다.The operations of the device 1000 and the server 2000 according to steps S2200, SS2205, S2210, S2215, S2220, S2225, S2230, S2235 and S2240 shown in FIG. 23 are shown in FIG. The operation of the device 1000 and the server 2000 is the same.

단계 S2245에서, 디바이스(1000)는 서버(2000)로 디바이스(1000)에서 실행된 어플리케이션의 기능에 관한 정보를 전송할 수 있다.In operation S2245 , the device 1000 may transmit information about the function of the application executed in the device 1000 to the server 2000 .

단계 S2250에서, 서버(2000)는 할일 목록에 내의 적어도 하나의 태스크의 수행 여부를 모니터링 할 수 있다. 디바이스(1000)는 할일 목록 내의 적어도 하나의 태스크가 수행되었는지를 판단하는데 이용되는 조건 정보를 획득하고, 조건 정보에 기초하여 할일 목록 내의 적어도 하나의 태스크가 수행되었는지를 모니터링 할 수 있다.In operation S2250, the server 2000 may monitor whether at least one task in the to-do list is performed. The device 1000 may obtain condition information used to determine whether at least one task in the to-do list has been performed, and monitor whether at least one task in the to-do list is performed based on the condition information.

단계 S2255에서, 서버(2000)는 모니터링 결과에 따라 할일 목록 내의 태스크를 업데이트 할 수 있다. 예를 들면, 서버(2000)는 수행된 태스크를 할일 목록 내에서 삭제할 수 있다.In step S2255, the server 2000 may update the task in the to-do list according to the monitoring result. For example, the server 2000 may delete the performed task from the to-do list.

단계 S2260에서, 서버(2000)는 디바이스(1000)로 업데이트된 할일 목록을 제공할 수 있다.In operation S2260 , the server 2000 may provide the updated to-do list to the device 1000 .

도 24 및 도 25은 일부 실시예에 따른 디바이스(1000)의 블록도이다.24 and 25 are block diagrams of a device 1000 in accordance with some embodiments.

도 24에 도시된 바와 같이, 일부 실시예에 따른 디바이스(1000)는, 사용자 입력부(1100), 출력부(1200), 프로세서(1300), 및 통신부(1500)를 포함할 수 있다. 그러나, 도 24에 도시된 구성 요소 모두가 디바이스(1000)의 필수 구성 요소인 것은 아니다. 도 24에 도시된 구성 요소보다 많은 구성 요소에 의해 디바이스(1000)가 구현될 수도 있고, 도 24에 도시된 구성 요소보다 적은 구성 요소에 의해 디바이스(1000)가 구현될 수도 있다.24 , the device 1000 according to some embodiments may include a user input unit 1100 , an output unit 1200 , a processor 1300 , and a communication unit 1500 . However, not all of the components shown in FIG. 24 are essential components of the device 1000 . The device 1000 may be implemented by more components than those illustrated in FIG. 24 , or the device 1000 may be implemented by fewer components than those illustrated in FIG. 24 .

예를 들어, 도 25에 도시된 바와 같이, 일부 실시예에 따른 디바이스(1000)는, 사용자 입력부(1100), 출력부(1200), 프로세서(1300), 및 통신부(1500) 이외에 센싱부(1400), A/V 입력부(1600), 및 메모리(1700)를 더 포함할 수도 있다. For example, as shown in FIG. 25 , the device 1000 according to some embodiments includes a sensing unit 1400 in addition to the user input unit 1100 , the output unit 1200 , the processor 1300 , and the communication unit 1500 . ), an A/V input unit 1600 , and a memory 1700 may be further included.

사용자 입력부(1100)는, 사용자가 디바이스(1000)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 사용자 입력부(1100)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다.The user input unit 1100 means a means for a user to input data for controlling the device 1000 . For example, the user input unit 1100 includes a key pad, a dome switch, and a touch pad (contact capacitive method, pressure resistance film method, infrared sensing method, surface ultrasonic conduction method, integral type). There may be a tension measurement method, a piezo effect method, etc.), a jog wheel, a jog switch, and the like, but is not limited thereto.

사용자 입력부(1100)는, 사용자의 음성 입력에 대한 답변 메시지를 요청하고 답변 메시지에 관련된 동작을 실행하기 위한 사용자 입력을 수신할 수 있다.The user input unit 1100 may receive a user input for requesting a response message to the user's voice input and executing an operation related to the response message.

출력부(1200)는, 오디오 신호 또는 비디오 신호 또는 진동 신호를 출력할 수 있으며, 출력부(1200)는 디스플레이부(1210), 음향 출력부(1220), 및 진동 모터(1230)를 포함할 수 있다.The output unit 1200 may output an audio signal, a video signal, or a vibration signal, and the output unit 1200 may include a display unit 1210 , a sound output unit 1220 , and a vibration motor 1230 . have.

디스플레이부(1210)는 디바이스(1000)에서 처리되는 정보를 표시 출력한다. 예를 들어, 디스플레이부(1210)는, 사용자의 음성 입력에 대한 답변 메시지를 요청하고 답변 메시지에 관련된 동작을 실행하기 위한 사용자 인터페이스를 디스플레이할 수 있다.The display unit 1210 displays and outputs information processed by the device 1000 . For example, the display unit 1210 may display a user interface for requesting a response message to the user's voice input and executing an operation related to the response message.

음향 출력부(1220)는 통신부(1500)로부터 수신되거나 메모리(1700)에 저장된 오디오 데이터를 출력한다. 또한, 음향 출력부(1220)는 디바이스(1000)에서 수행되는 기능(예를 들어, 호신호 수신음, 메시지 수신음, 알림음)과 관련된 음향 신호를 출력한다.The sound output unit 1220 outputs audio data received from the communication unit 1500 or stored in the memory 1700 . Also, the sound output unit 1220 outputs a sound signal related to a function (eg, a call signal reception sound, a message reception sound, and a notification sound) performed by the device 1000 .

프로세서(1300)는, 통상적으로 디바이스(1000)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(1300)는, 메모리(1700)에 저장된 프로그램들을 실행함으로써, 사용자 입력부(1100), 출력부(1200), 센싱부(1400), 통신부(1500), A/V 입력부(1600) 등을 전반적으로 제어할 수 있다. 또한, 프로세서(1300)는 메모리(1700)에 저장된 프로그램들을 실행함으로써, 도 1 내지 도 24에 기재된 디바이스(1000)의 기능을 수행할 수 있다.The processor 1300 typically controls the overall operation of the device 1000 . For example, the processor 1300 executes programs stored in the memory 1700 , and thus the user input unit 1100 , the output unit 1200 , the sensing unit 1400 , the communication unit 1500 , and the A/V input unit 1600 . ) can be controlled in general. In addition, the processor 1300 may execute the programs stored in the memory 1700 to perform the functions of the device 1000 described in FIGS. 1 to 24 .

구체적으로, 프로세서(1300)는 디스플레이부(1210)에서 실행된 어플리케이션에 의해 획득된 데이터에 기초하여, 할일 목록 내의 사용자가 수행할 적어도 하나의 태스크를 결정하는데 이용되는 적어도 하나의 키워드를 결정할 수 있다. 프로세서(1300)는 결정된 적어도 하나의 키워드에 대한 키워드 목록을 생성할 수 있다.Specifically, the processor 1300 may determine at least one keyword used to determine at least one task to be performed by the user in the to-do list, based on data obtained by the application executed on the display unit 1210 . . The processor 1300 may generate a keyword list for the determined at least one keyword.

프로세서(1300)는 디스플레이부(1210)를 제어함으로써 키워드 목록 내의 적어도 하나의 키워드 중 적어도 하나를 선택하기 위한 GUI를 표시할 수 있다. 프로세서(1300)는 디스플레이를 제어함으로써, 키워드 목록 내의 적어도 하나의 키워드 중 적어도 하나를 선택하기 위한 GUI를 실행된 어플리케이션의 실행 화면 상에 중첩하여 표시할 수 있다. 예를 들면, 어플리케이션은 외부 디바이스와의 커뮤니케이션을 위한 채팅 어플리케이션이며, 적어도 하나의 키워드는 디바이스와 외부 디바이스 간에 송수신되는 텍스트로부터 추출될 수 있다.The processor 1300 may display a GUI for selecting at least one of at least one keyword in the keyword list by controlling the display unit 1210 . The processor 1300 may display a GUI for selecting at least one of at least one keyword in the keyword list by controlling the display to be superimposed on the execution screen of the executed application. For example, the application is a chatting application for communication with an external device, and at least one keyword may be extracted from text transmitted/received between the device and the external device.

프로세서(1300)는 GUI를 통해 키워드 목록에서 제1 아이템과 관련된 제1 키워드를 선택하는 입력을 수신할 수 있다. 프로세서(1300)는 선택된 제1 키워드에 기초하여 제1 아이템에 대한 적어도 하나의 후보 태스크를 결정할 수 있다. 프로세서(1300)는 디스플레이를 제어함으로써 결정된 적어도 하나의 후보 태스크에 대한 후보 태스크 목록을 표시할 수 있다.The processor 1300 may receive an input for selecting a first keyword related to the first item from the keyword list through the GUI. The processor 1300 may determine at least one candidate task for the first item based on the selected first keyword. The processor 1300 may display a list of candidate tasks for at least one candidate task determined by controlling the display.

프로세서(1300)는 선택된 제1 키워드, 디바이스에 설치된 적어도 하나의 어플리케이션에 의해 획득된 제1 키워드와 관련된 데이터 및 사용자가 가입된 서비스 제공 서버로부터 획득된 제1 키워드와 관련된 데이터의 전부 또는 일부를 조합하여, 제1 아이템에 대한 적어도 하나의 후보 태스크를 결정할 수 있다.The processor 1300 combines all or part of the selected first keyword, data related to the first keyword acquired by at least one application installed in the device, and data related to the first keyword acquired from the service providing server to which the user is subscribed Thus, at least one candidate task for the first item may be determined.

프로세서(1300)는 디스플레이를 제어함으로써, 후보 태스크 목록을 편집하기 위한 GUI를 표시할 수 있다. 프로세서(1300)는 후보 태스크 목록에 기초하여 적어도 하나의 메인 태스크 및 메인 태스크에 종속된 적어도 하나의 서브 태스크를 포함하는 할일 목록을 생성할 수 있다. 프로세서(1300)는 GUI를 통해 선택된 적어도 하나의 키워드에 기초하여 할일 목록 내의 적어도 하나의 태스크를 결정할 수 있다.The processor 1300 may display a GUI for editing the candidate task list by controlling the display. The processor 1300 may generate a to-do list including at least one main task and at least one sub-task dependent on the main task based on the candidate task list. The processor 1300 may determine at least one task in the to-do list based on at least one keyword selected through the GUI.

프로세서(1300)는 디스플레이에서 실행된 어플리케이션과 상이한 적어도 하나의 어플리케이션에 의해 획득된 데이터 및 사용자가 가입된 서비스 제공 서버로부터 획득된 데이터에 기초하여, 할일 목록 내의 적어도 하나의 태스크를 변경하기 위한 적어도 하나의 대체 태스크를 결정할 수 있다. 프로세서(1300)는 디스플레이부(1210)를 제어함으로써 적어도 하나의 대체 태스크를 표시할 수 있다.The processor 1300 is configured to change at least one task in the to-do list based on data obtained by at least one application different from the application executed on the display and data obtained from a service providing server to which the user is subscribed. can decide on a replacement task for The processor 1300 may display at least one alternative task by controlling the display unit 1210 .

프로세서(1300)는 할일 목록 내의 적어도 하나의 태스크가 수행되었는지를 판단하는데 이용되는 조건 정보를 획득하고, 조건 정보에 기초하여 할일 목록 내의 적어도 하나의 태스크가 수행되었는지를 모니터링할 수 있다. 프로세서(1300)는 모니터링 결과에 기초하여, 할일 목록 내의 태스크를 업데이트 할 수 있다.The processor 1300 may obtain condition information used to determine whether at least one task in the to-do list has been performed, and monitor whether at least one task in the to-do list is performed based on the condition information. The processor 1300 may update the task in the to-do list based on the monitoring result.

또한, 프로세서(1300)는 메모리(1700) 또는 서버(2000)에 저장된 데이터 인식 모델을 이용하여, 사용자의 의도를 판단하고, 연관 정보를 제공하고, 대체 동작을 추천할 수 있으며, 이에 관하여는 도 27 내지 도 30에서 보다 상세히 설명하기로 한다.In addition, the processor 1300 may determine the user's intention, provide related information, and recommend an alternative operation by using the data recognition model stored in the memory 1700 or the server 2000. 27 to 30 will be described in more detail.

센싱부(1400)는, 디바이스(1000)의 상태 또는 디바이스(1000) 주변의 상태를 감지하고, 감지된 정보를 프로세서(1300)로 전달할 수 있다.The sensing unit 1400 may detect a state of the device 1000 or a state around the device 1000 , and transmit the sensed information to the processor 1300 .

센싱부(1400)는, 지자기 센서(Magnetic sensor)(1410), 가속도 센서(Acceleration sensor)(1420), 온/습도 센서(1430), 적외선 센서(1440), 자이로스코프 센서(1450), 위치 센서(예컨대, GPS)(1460), 기압 센서(1470), 근접 센서(1480), 및 RGB 센서(illuminance sensor)(1490) 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 각 센서들의 기능은 그 명칭으로부터 당업자가 직관적으로 추론할 수 있으므로, 구체적인 설명은 생략하기로 한다.The sensing unit 1400 includes a magnetic sensor 1410 , an acceleration sensor 1420 , a temperature/humidity sensor 1430 , an infrared sensor 1440 , a gyroscope sensor 1450 , and a position sensor. (eg, GPS) 1460 , a barometric pressure sensor 1470 , a proximity sensor 1480 , and at least one of an illuminance sensor 1490 , but is not limited thereto. Since a function of each sensor can be intuitively inferred from a person skilled in the art from the name, a detailed description thereof will be omitted.

통신부(1500)는, 디바이스(1000)가 다른 장치(미도시) 및 서버(2000)와 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 다른 장치(미도시)는 디바이스(1000)와 같은 컴퓨팅 장치이거나, 센싱 장치일 수 있으나, 이에 제한되지 않는다. 예를 들어, 통신부(1500)는, 근거리 통신부(1510), 이동 통신부(1520), 방송 수신부(1530)를 포함할 수 있다. The communication unit 1500 may include one or more components that allow the device 1000 to communicate with another apparatus (not shown) and the server 2000 . The other device (not shown) may be a computing device such as the device 1000 or a sensing device, but is not limited thereto. For example, the communication unit 1500 may include a short-range communication unit 1510 , a mobile communication unit 1520 , and a broadcast receiving unit 1530 .

근거리 통신부(short-range wireless communication unit)(151)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. Short-range wireless communication unit 151, Bluetooth communication unit, BLE (Bluetooth Low Energy) communication unit, short-range wireless communication unit (Near Field Communication unit), WLAN (Wi-Fi) communication unit, Zigbee (Zigbee) communication unit, infrared ( It may include an IrDA, infrared Data Association) communication unit, a Wi-Fi Direct (WFD) communication unit, an ultra wideband (UWB) communication unit, an Ant+ communication unit, and the like, but is not limited thereto.

이동 통신부(1520)는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.The mobile communication unit 1520 transmits/receives a radio signal to and from at least one of a base station, an external terminal, and a server on a mobile communication network. Here, the wireless signal may include various types of data according to transmission/reception of a voice call signal, a video call signal, or a text/multimedia message.

방송 수신부(1530)는, 방송 채널을 통하여 외부로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다. 방송 채널은 위성 채널, 지상파 채널을 포함할 수 있다. 구현 예에 따라서 디바이스(1000)가 방송 수신부(1530)를 포함하지 않을 수도 있다.The broadcast receiver 1530 receives a broadcast signal and/or broadcast-related information from the outside through a broadcast channel. The broadcast channel may include a satellite channel and a terrestrial channel. According to an implementation example, the device 1000 may not include the broadcast receiver 1530 .

또한, 통신부(1500)는, 사용자의 음성 입력에 대한 답변 메시지를 요청하고 답변 메시지에 관련된 동작을 실행하기 위한 필요한 정보를, 다른 장치(미도시) 및 서버(2000)와 송수신할 수 있다.Also, the communication unit 1500 may transmit/receive information necessary for requesting a response message to the user's voice input and executing an operation related to the response message, with another device (not shown) and the server 2000 .

A/V(Audio/Video) 입력부(1600)는 오디오 신호 또는 비디오 신호 입력을 위한 것으로, 이에는 카메라(1610)와 마이크로폰(1620) 등이 포함될 수 있다. 카메라(1610)은 화상 통화모드 또는 촬영 모드에서 이미지 센서를 통해 정지영상 또는 동영상 등의 화상 프레임을 얻을 수 있다. 이미지 센서를 통해 캡쳐된 이미지는 프로세서(1300) 또는 별도의 이미지 처리부(미도시)를 통해 처리될 수 있다. 카메라(1610)에 의해 촬영된 이미지는 사용자의 컨텍스트 정보로 활용될 수 있다.The A/V (Audio/Video) input unit 1600 is for inputting an audio signal or a video signal, and may include a camera 1610 , a microphone 1620 , and the like. The camera 1610 may obtain an image frame such as a still image or a moving picture through an image sensor in a video call mode or a shooting mode. The image captured through the image sensor may be processed through the processor 1300 or a separate image processing unit (not shown). The image captured by the camera 1610 may be used as context information of the user.

마이크로폰(1620)은, 외부의 음향 신호를 입력 받아 전기적인 음성 데이터로 처리한다. 예를 들어, 마이크로폰(1620)은 외부 디바이스 또는 사용자로부터 음향 신호를 수신할 수 있다. 마이크로폰(1620)은 사용자의 음성 입력을 수신할 수 있다. 마이크로폰(1620)는 외부의 음향 신호를 입력 받는 과정에서 발생 되는 잡음(noise)를 제거하기 위한 다양한 잡음 제거 알고리즘을 이용할 수 있다. The microphone 1620 receives an external sound signal and processes it as electrical voice data. For example, the microphone 1620 may receive an acoustic signal from an external device or a user. The microphone 1620 may receive a user's voice input. The microphone 1620 may use various noise removal algorithms for removing noise generated in the process of receiving an external sound signal.

메모리(1700)는, 프로세서(1300)의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 디바이스(1000)로 입력되거나 디바이스(1000)로부터 출력되는 데이터를 저장할 수도 있다. The memory 1700 may store a program for processing and control of the processor 1300 , and may store data input to or output from the device 1000 .

메모리(1700)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. The memory 1700 may include a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (eg, SD or XD memory), and a RAM. (RAM, Random Access Memory) SRAM (Static Random Access Memory), ROM (Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory), magnetic memory, magnetic disk , may include at least one type of storage medium among optical disks.

메모리(1700)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, UI 모듈(1710), 터치 스크린 모듈(1720), 알림 모듈(1730) 등으로 분류될 수 있다. Programs stored in the memory 1700 may be classified into a plurality of modules according to their functions, for example, may be classified into a UI module 1710 , a touch screen module 1720 , a notification module 1730 , and the like. .

UI 모듈(1710)은, 애플리케이션 별로 디바이스(1000)와 연동되는 특화된 UI, GUI 등을 제공할 수 있다. 터치 스크린 모듈(1720)은 사용자의 터치 스크린 상의 터치 제스처를 감지하고, 터치 제스처에 관한 정보를 프로세서(1300)로 전달할 수 있다. 일부 실시예에 따른 터치 스크린 모듈(1720)은 터치 코드를 인식하고 분석할 수 있다. 터치 스크린 모듈(1720)은 컨트롤러를 포함하는 별도의 하드웨어로 구성될 수도 있다.The UI module 1710 may provide a specialized UI, GUI, and the like that interwork with the device 1000 for each application. The touch screen module 1720 may detect a touch gesture on the user's touch screen and transmit information about the touch gesture to the processor 1300 . The touch screen module 1720 according to some embodiments may recognize and analyze a touch code. The touch screen module 1720 may be configured as separate hardware including a controller.

알림 모듈(1730)은 디바이스(1000)의 이벤트 발생을 알리기 위한 신호를 발생할 수 있다. 디바이스(1000)에서 발생되는 이벤트의 예로는 호 신호 수신, 메시지 수신, 키 신호 입력, 일정 알림 등이 있다. 알림 모듈(1730)은 디스플레이부(1210)를 통해 비디오 신호 형태로 알림 신호를 출력할 수도 있고, 음향 출력부(1220)를 통해 오디오 신호 형태로 알림 신호를 출력할 수도 있고, 진동 모터(1230)를 통해 진동 신호 형태로 알림 신호를 출력할 수도 있다.The notification module 1730 may generate a signal for notifying the occurrence of an event in the device 1000 . Examples of the event generated in the device 1000 include call signal reception, message reception, key signal input, schedule notification, and the like. The notification module 1730 may output a notification signal in the form of a video signal through the display unit 1210 , may output a notification signal in the form of an audio signal through the sound output unit 1220 , and the vibration motor 1230 . It is also possible to output a notification signal in the form of a vibration signal through

도 26은 일부 실시예에 따른 서버(2000)의 블록도이다.26 is a block diagram of a server 2000 in accordance with some embodiments.

도 26을 참조하면, 일부 실시예에 따른 서버(2000)는 메모리(2500), 통신부(270) 및 프로세서(2300)를 포함할 수 있다.Referring to FIG. 26 , the server 2000 according to some embodiments may include a memory 2500 , a communication unit 270 , and a processor 2300 .

메모리(2500)는 사용자의 디바이스로부터 디바이스에 실행 또는 설치된 어플리케이션에 의해 획득된 데이터를 저장할 수 있다. 또한, 메모리(2500)는 디바이스의 사용자가 가입된 서비스와 관련된 데이터를 저장할 수 있다.The memory 2500 may store data obtained by an application executed or installed in the device from the user's device. Also, the memory 2500 may store data related to a service subscribed to by the user of the device.

통신부(2700)는 사용자의 디바이스로부터 디바이스에 실행 또는 설치된 어플리케이션에 의해 획득된 데이터를 수신할 수 있다.The communication unit 2700 may receive data obtained by an application executed or installed on the device from the user's device.

프로세서(2300)는 디바이스로부터 획득된 데이터에 기초하여 할일 목록 내의 사용자가 수행할 적어도 하나의 태스크를 결정하는데 이용되는 적어도 하나의 키워드를 결정할 수 있다. 프로세서(2300)는 디바이스로부터 획득된 데이터 및 서버에 저장된 데이터의 전부 또는 일부를 조합하여, 적어도 하나의 키워드를 결정할 수 있다. 또한, 프로세서(2300)는 디바이스로부터 획득된 데이터 및 사용자가 가입된 서비스와 관련된 데이터에 기초하여 적어도 하나의 키워드와 관련된 적어도 하나의 후보 태스크를 결정할 수 있다.The processor 2300 may determine at least one keyword used to determine at least one task to be performed by the user in the to-do list based on data obtained from the device. The processor 2300 may determine at least one keyword by combining all or part of data obtained from the device and data stored in the server. Also, the processor 2300 may determine at least one candidate task related to at least one keyword based on data obtained from the device and data related to a service to which the user has subscribed.

또한, 프로세서(2300)는 할일 목록 내의 태스크가 수행되었는지를 판단하는 조건 정보에 기초하여, 할일 목록 내의 적어도 하나의 태스크가 수행되었는지를 모니터링 할 수 있다. 프로세서(2300)는 모티터링 결과에 기초하여 사용자의 할일 목록을 업데이트 할 수 있다.Also, the processor 2300 may monitor whether at least one task in the to-do list has been performed based on condition information for determining whether a task in the to-do list has been performed. The processor 2300 may update the user's to-do list based on the monitoring result.

또한 통신부(2700)는 사용자의 할일 목록 내의 태스크를 결정하는 데에 이용되는 적어도 하나의 키워드, 적어도 하나의 키워드에 대한 키워드 목록, 적어도 하나의 키워드와 관련된 적어도 하나의 후보 태스크, 후보 태스크에 대한 목록, 업데이트 된 할일 목록을 디바이스로 전송할 수 있다.In addition, the communication unit 2700 includes at least one keyword used to determine a task in the user's to-do list, a keyword list for at least one keyword, at least one candidate task related to at least one keyword, and a list of candidate tasks , the updated to-do list can be transmitted to the device.

프로세서(2300)는 통상적으로 서버(2000)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(2300)는, 서버(2000)의 메모리(2500)에 저장된 프로그램들을 실행함으로써, 메모리(2500) 및 통신부(2700) 등을 전반적으로 제어할 수 있다. 프로세서(2300)는 메모리(2500)에 저장된 프로그램들을 실행함으로써, 도 1 내지 도 24에서의 디바이스(1000)의 동작의 일부를 수행할 수 있다.The processor 2300 typically controls the overall operation of the server 2000 . For example, the processor 2300 may control the memory 2500 and the communication unit 2700 as a whole by executing programs stored in the memory 2500 of the server 2000 . The processor 2300 may perform some of the operations of the device 1000 in FIGS. 1 to 24 by executing programs stored in the memory 2500 .

도 27은 일실시예에 따른 프로세서(1300)의 블록도이다.27 is a block diagram of a processor 1300 according to an embodiment.

도 27을 참조하면, 일부 실시예에 따른 프로세서(1300)는 데이터 학습부(1310) 및 데이터 인식부(1320)를 포함할 수 있다.Referring to FIG. 27 , the processor 1300 according to some embodiments may include a data learning unit 1310 and a data recognition unit 1320 .

데이터 학습부(1310)는 디바이스(1000) 내에 설치된 복수의 어플리케이션 및 서버(2000)로부터 사용자의 할일 목록 내의 태스크를 결정하는 데에 이용되는 데이터를 수집할 수 있다. 데이터 학습부(1310)는 사용자의 디바이스와 다른 사용자의 디바이스 간에 음성 신호를 송수신하는 통화 어플리케이션, 사용자의 디바이스와 다른 사용자의 디바이스 간에 커뮤니케이션을 위한 메시지 어플리케이션, 사용자의 이메일 어플리케이션, 사용자의 메모를 기록하는 메모 어플리케이션 또는 사용자의 일정을 관리하는 일정 관리 어플리케이션으로부터 사용자의 할일 목록 내의 태스크를 결정하는 학습에 이용될 데이터를 획득할 수 있다. 데이터 학습부(1310)는 데이터 인식 모델이 수집된 데이터를 분석하고, 사용자의 할일 목록 내의 태스크를 결정하는데 이용되는 키워드를 결정하는 기준을 갖도록 학습할 수 있다.The data learner 1310 may collect data used to determine a task in the user's to-do list from a plurality of applications installed in the device 1000 and the server 2000 . The data learning unit 1310 is a call application that transmits and receives a voice signal between the user's device and another user's device, a message application for communication between the user's device and another user's device, a user's email application, and a user's memo. Data to be used for learning to determine a task in the user's to-do list may be obtained from a memo application or a schedule management application for managing the user's schedule. The data learning unit 1310 may learn the data recognition model to analyze the collected data and have a criterion for determining a keyword used to determine a task in the user's to-do list.

또한, 데이터 학습부(1310)는 데이터 인식 모델이 수집된 데이터를 분석하여 사용자의 의도를 판단하고, 사용자의 의도에 부합되는 태스크를 제공하는 기준을 갖도록 학습할 수 있다. 또한, 데이터 학습부(1310)는 데이터 인식 모델이 기존에 결정된 태스크에 대하여 대체 가능한 대체 태스크를 결정하는 기준을 갖도록 학습할 수 있다.In addition, the data learning unit 1310 may learn the data recognition model to analyze the collected data to determine the user's intention, and to have a standard for providing a task conforming to the user's intention. In addition, the data learning unit 1310 may learn the data recognition model to have a criterion for determining a substitutable task for the previously determined task.

또한, 데이터 학습부(1310)는 데이터 인식 모델이 할일 목록 내의 적어도 하나의 태스크가 수행되었는지를 판단하는 기준을 갖도록 학습할 수 있다. 데이터 학습부(1310)는 소정의 태스크가 수행되는데 이용되는 어플리케이션, 어플리케이션과 관련된 사용자의 동작 정보, 사용자의 동작 정보에 따른 어플리케이션의 세부적인 동작 정보들 간의 관계를 결정하고, 결정된 관계에 기초하여 데이터 인식 모델이 할일 목록 내의 적어도 하나의 태스크가 수행되었는지를 판단하는 기준을 갖도록 학습할 수 있다.Also, the data learning unit 1310 may learn the data recognition model to have a criterion for determining whether at least one task in the to-do list has been performed. The data learning unit 1310 determines a relationship between an application used to perform a predetermined task, user operation information related to the application, and detailed operation information of the application according to the user's operation information, and based on the determined relationship, data The recognition model may be trained to have a criterion for determining whether at least one task in the to-do list has been performed.

데이터 학습부(1310)는 데이터 인식 모델이 획득된 데이터를 이용하여 사용자의 할일 목록 내의 태스크를 결정하기 위하여 어떤 데이터를 이용할 지, 데이터를 이용하여 상황을 어떻게 판단할 지에 관한 기준을 갖도록 학습할 수 있다. 데이터 학습부(1310)는 학습에 이용될 데이터를 획득하고, 획득된 데이터를 후술할 데이터 인식 모델에 적용함으로써, 데이터 인식 모델이 상황 판단을 위한 기준을 갖도록 학습할 수 있다.The data learning unit 1310 can learn the data recognition model to have a standard about which data to use to determine a task in the user's to-do list using the acquired data, and how to judge the situation using the data. have. The data learning unit 1310 may acquire data to be used for learning, and apply the acquired data to a data recognition model to be described later, so that the data recognition model may learn to have a criterion for situation determination.

데이터 인식부(1320)는 데이터에 기초한 상황을 판단할 수 있다. 데이터 인식부(1320)는 학습된 데이터 인식 모델을 이용하여, 소정의 데이터로부터 상황을 인식할 수 있다. 데이터 인식부(1320)는 학습에 의한 기 설정된 기준에 따라 소정의 데이터를 획득하고, 획득된 데이터를 입력 값으로 하여 데이터 인식 모델을 이용함으로써, 소정의 데이터에 기초한 소정의 상황을 판단할 수 있다. 또한, 획득된 데이터를 입력 값으로 하여 데이터 인식 모델에 의해 출력된 결과 값은, 데이터 인식 모델을 갱신하는데 이용될 수 있다.The data recognition unit 1320 may determine a situation based on data. The data recognition unit 1320 may recognize a situation from predetermined data by using the learned data recognition model. The data recognition unit 1320 may determine a predetermined situation based on the predetermined data by acquiring predetermined data according to a preset criterion by learning, and using the data recognition model using the acquired data as an input value. . In addition, a result value output by the data recognition model using the obtained data as an input value may be used to update the data recognition model.

데이터 학습부(1310) 및 데이터 인식부(1320) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 학습부(1310) 및 데이터 인식부(1320) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.At least one of the data learning unit 1310 and the data recognition unit 1320 may be manufactured in the form of at least one hardware chip and mounted in an electronic device. For example, at least one of the data learning unit 1310 and the data recognition unit 1320 may be manufactured in the form of a dedicated hardware chip for artificial intelligence (AI), or a conventional general-purpose processor (eg, CPU). Alternatively, it may be manufactured as a part of an application processor) or a graphics-only processor (eg, GPU) and mounted on the various electronic devices described above.

이 경우, 데이터 학습부(1310) 및 데이터 인식부(1320)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 학습부(1310) 및 데이터 인식부(1320) 중 하나는 전자 장치에 포함되고, 나머지 하나는 서버에 포함될 수 있다. 또한, 데이터 학습부(1310) 및 데이터 인식부(1320)는 유선 또는 무선으로 통하여, 데이터 학습부(1310)가 구축한 모델 정보를 데이터 인식부(1320)로 제공할 수도 있고, 데이터 인식부(1320)로 입력된 데이터가 추가 학습 데이터로서 데이터 학습부(1310)로 제공될 수도 있다.In this case, the data learning unit 1310 and the data recognition unit 1320 may be mounted on one electronic device or may be mounted on separate electronic devices, respectively. For example, one of the data learning unit 1310 and the data recognition unit 1320 may be included in the electronic device, and the other may be included in the server. In addition, the data learning unit 1310 and the data recognition unit 1320 may provide the model information built by the data learning unit 1310 to the data recognition unit 1320 through wired or wireless communication, and the data recognition unit ( Data input to 1320 may be provided to the data learning unit 1310 as additional learning data.

한편, 데이터 학습부(1310) 및 데이터 인식부(1320) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 학습부(1310) 및 데이터 인식부(1320) 중 적어도 하나가 소프트웨어 모듈(또는, 인스터력션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다. Meanwhile, at least one of the data learning unit 1310 and the data recognition unit 1320 may be implemented as a software module. When at least one of the data learning unit 1310 and the data recognition unit 1320 is implemented as a software module (or a program module including an instruction), the software module is a computer-readable, non-transitory, non-transitory It may be stored in a readable recording medium (non-transitory computer readable media). Also, in this case, the at least one software module may be provided by an operating system (OS) or may be provided by a predetermined application. Alternatively, a part of the at least one software module may be provided by an operating system (OS), and the other part may be provided by a predetermined application.

도 28은 일 실시예에 따른 데이터 학습부(1310)의 블록도이다.28 is a block diagram of the data learning unit 1310 according to an exemplary embodiment.

도 28을 참조하면, 일부 실시예에 따른 데이터 학습부(1310)는 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5)를 포함할 수 있다.Referring to FIG. 28 , the data learning unit 1310 according to some exemplary embodiments includes a data acquiring unit 1310-1, a preprocessing unit 1310-2, a training data selection unit 1310-3, and a model learning unit 1310. -4) and a model evaluation unit 1310-5.

다만, 이는 일 실시예 일 뿐, 데이터 학습부(1310)는 전술한 구성 요소들 중 일부를 포함하거나, 전술한 구성 요소들 이외에 다른 구성 요소를 더 포함할 수도 있다.However, this is only an exemplary embodiment, and the data learning unit 1310 may include some of the above-described components, or may further include other components in addition to the above-described components.

데이터 획득부(1310-1)는 상황 판단에 필요한 데이터를 획득할 수 있다. 데이터 획득부(1310-1)는 상황 판단을 위한 학습을 위하여 필요한 데이터를 획득할 수 있다.The data acquisition unit 1310-1 may acquire data necessary for situation determination. The data acquisition unit 1310-1 may acquire data necessary for learning for situation determination.

데이터 획득부(1310-1)는 디바이스(1000) 내의 통화 어플리케이션으로부터 사용자와 다른 사용자 간의 통화 음성에 대한 데이터를 획득할 수 있다. 데이터 획득부(1310-1)는 통화 어플리케이션이 실행되고, 사용자와 다른 사용자 간에 통화가 연결되면, 통화 음성을 녹음할 수 있다. 데이터 획득부(1310-1)는 녹음된 통화 음성을 텍스트로 변환하여 변환된 텍스트를 획득할 수 있다. 또한, 데이터 획득부(1310-1)는 녹음된 통화 음성을 서버(2000)로 전송하고, 통화 음성으로부터 변화된 텍스트를 서버(2000)로부터 수신할 수 있다.The data acquisition unit 1310-1 may acquire data on a call voice between the user and another user from a call application in the device 1000 . The data acquisition unit 1310-1 may record a call voice when a call application is executed and a call is connected between the user and another user. The data obtaining unit 1310-1 converts the recorded voice call into text to obtain the converted text. In addition, the data acquisition unit 1310-1 may transmit the recorded voice call to the server 2000 and receive text changed from the call voice from the server 2000 .

또한, 데이터 획득부(1310-1)는 메시지 어플리케이션으로부터 사용자와 다른 사용자 간의 송수신된 메시지를 획득할 수 있다. 데이터 획득부(1310-1)는 디바이스(1000)가 디바이스(1000) 내의 메시지 어플리케이션을 실행하고 다른 사용자와 메시지를 송수신함에 따라 송수신된 메시지를 획득할 수 있다. 메시지 어플리케이션은 채팅 어플리케이션, SMS/MMS 송수신 어플리케이션, 메신저 어플리케이션 및 SNS 어플리케이션을 포함할 수 있고, 이에 한정되지 않는다. 또한, 데이터 획득부(1310-1)는 디바이스(1000)에서 송수신된 이메일의 텍스트를 획득할 수 있다. 이 경우, 데이터 획득부(1310-1)는 디바이스(1000)의 실행된 웹 브라우저 또는 이메일 송수신 어플리케이션으로부터 이메일의 텍스트를 획득할 수 있다.Also, the data acquisition unit 1310-1 may acquire a message transmitted/received between the user and another user from the message application. The data acquisition unit 1310-1 may acquire a transmitted/received message as the device 1000 executes a message application in the device 1000 and transmits/receives a message to/from another user. The message application may include a chatting application, an SMS/MMS transmission/reception application, a messenger application, and an SNS application, but is not limited thereto. Also, the data acquisition unit 1310-1 may acquire the text of the email transmitted and received by the device 1000 . In this case, the data acquisition unit 1310-1 may acquire the text of the email from the executed web browser or email transmission/reception application of the device 1000 .

또한, 데이터 획득부(1310-1)는 디바이스(1000) 내에 설치된 사용자의 일정 관리 어플리케이션을 통하여 사용자의 일정에 대한 데이터를 획득할 수 있다. 또한, 사용자는 서비스 제공 서버의 서비스를 이용하여 서비스 제공 서버에 사용자의 일정 정보를 기록할 수 있으며, 데이터 획득부(1310-1)는 서비스 제공 서버에 저장된 사용자의 일정 정보를 서비스 제공 서버로부터 수신할 수도 있다. 이 경우, 데이터 획득부(1310-1)는 서비스 제공 서버의 사용자 ID를 이용하여 서비스 제공 서버로부터 사용자의 일정 정보를 수신할 수 있다. 또한, 사용자는 사용자의 다른 디바이스(1000)에 사용자의 일정 정보를 입력할 수 있고, 데이터 획득부(1310-1)는 사용자의 다른 디바이스(1000)로부터 사용자의 메모 정보를 획득할 수 있다.Also, the data acquisition unit 1310-1 may acquire data about the user's schedule through the user's schedule management application installed in the device 1000 . In addition, the user may record the user's schedule information in the service providing server by using the service of the service providing server, and the data acquisition unit 1310-1 receives the user's schedule information stored in the service providing server from the service providing server. You may. In this case, the data obtaining unit 1310-1 may receive the user's schedule information from the service providing server by using the user ID of the service providing server. In addition, the user may input the user's schedule information into the user's other device 1000 , and the data acquisition unit 1310-1 may acquire the user's memo information from the user's other device 1000 .

또한, 데이터 획득부(1310-1)는 디바이스(1000)에서 실행된 어플리케이션의 로그 정보를 수집할 수 있다. 로그 정보는, 디바이스(1000)에서 실행된 어플리케이션이 사용자 입력에 기초하여 어떠한 동작을 수행했는지를 나타낼 수 있다. 데이터 획득부(1310-1)는 실행된 어플리케이션의 세부 동작에 관한 로그 정보들을 수집하여, 사용자의 태스크 수행여부를 판단하는데 이용되는 데이터를 획득할 수 있다.Also, the data acquisition unit 1310-1 may collect log information of an application executed in the device 1000 . The log information may indicate what operation the application executed on the device 1000 performed based on a user input. The data acquisition unit 1310-1 may acquire data used to determine whether a user performs a task by collecting log information on detailed operations of the executed application.

데이터 획득부(1310-1)는 동영상을 입력 받을 수 있다. 동영상은 복수의 이미지(또는, 프레임(frame))들로 구성될 수 있다. 일 예로, 데이터 획득부(1310-1)는 데이터 학습부(1310)를 포함하는 전자 장치의 카메라, 또는 데이터 학습부(1310)를 포함하는 전자 장치와 통신 가능한 외부의 카메라(예로, CCTV 또는 블랙박스 등)를 통하여 동영상을 입력 받을 수 있다. 여기서, 카메라는 하나 이상의 이미지 센서(예: 전면 센서 또는 후면 센서), 렌즈, 이미지 시그널 프로세서(ISP), 또는 플래시(예: LED 또는 xenon lamp 등)를 포함할 수 있다.The data acquisition unit 1310-1 may receive a moving image. A moving picture may be composed of a plurality of images (or frames). For example, the data acquisition unit 1310-1 may be configured to communicate with a camera of an electronic device including the data learning unit 1310 or an external camera (eg, CCTV or black) capable of communicating with the electronic device including the data learning unit 1310 . box, etc.) to receive video input. Here, the camera may include one or more image sensors (eg, a front sensor or a rear sensor), a lens, an image signal processor (ISP), or a flash (eg, an LED or a xenon lamp, etc.).

예컨대, 데이터 획득부(1310-1)는 음성 데이터, 영상 데이터, 텍스트 데이터 또는 생체신호 데이터 등을 획득할 수 있다. 일 예로, 데이터 획득부(1310-1)는 전자 장치의 입력 기기(예: 마이크로폰, 카메라 또는 센서 등)를 통해 데이터를 입력 받을 수 있다. 또는, 데이터 획득부(1310-1)는 전자 장치와 통신하는 외부 장치를 통해 데이터를 획득할 수 있다.For example, the data acquisition unit 1310-1 may acquire voice data, image data, text data, or biosignal data. For example, the data acquisition unit 1310-1 may receive data through an input device (eg, a microphone, a camera, or a sensor) of the electronic device. Alternatively, the data acquisition unit 1310-1 may acquire data through an external device communicating with the electronic device.

전처리부(1310-2)는 사용자의 할일 목록 내의 태스크를 결정하는데 이용되는 키워드를 결정하는 기준, 사용자의 의도에 부합되는 태스크를 제공하는 기준, 기존에 결정된 태스크에 대하여 대체 가능한 대체 태스크를 결정하는 기준, 및 할일 목록 내의 적어도 하나의 태스크가 수행되었는지를 판단하는 기준을 위한 학습에 획득된 데이터가 이용될 수 있도록, 획득된 데이터를 전처리할 수 있다. 전처리부(1310-2)는 후술할 모델 학습부(1310-4)가 할일 목록 내의 태스크를 결정을 위한 학습을 위하여 획득된 데이터를 이용할 수 있도록, 획득된 데이터를 기 설정된 포맷으로 가공할 수 있다. The preprocessor 1310-2 is configured to determine a keyword used to determine a task in the user's to-do list, a criterion for providing a task that meets the user's intention, and a substitutable alternative task for the previously determined task. The acquired data may be pre-processed so that the acquired data can be used for learning for a criterion and a criterion for determining whether at least one task in the to-do list has been performed. The preprocessor 1310-2 may process the acquired data into a preset format so that the model learning unit 1310-4, which will be described later, uses the acquired data for learning to determine a task in the to-do list. .

학습 데이터 선택부(1310-3)는 전처리된 데이터 중에서 학습에 필요한 데이터를 선택할 수 있다. 선택된 데이터는 모델 학습부(1310-4)에 제공될 수 있다. 학습 데이터 선택부(1310-3)는 사용자의 할일 목록 내의 태스크를 결정하는 데에 이용되는 키워드의 결정, 사용자의 의도 판단, 기존 태스크의 대체 태스크 추천 및, 태스크의 수행여부 모니터링을 위한 기 설정된 기준에 따라, 전처리된 데이터 중에서 학습에 필요한 데이터를 선택할 수 있다. 또한, 학습 데이터 선택부(1310-3)는 후술할 모델 학습부(1310-4)에 의한 학습에 의해 기 설정된 기준에 따라 데이터를 선택할 수도 있다.The learning data selection unit 1310 - 3 may select data required for learning from among the preprocessed data. The selected data may be provided to the model learning unit 1310 - 4 . The learning data selection unit 1310-3 determines a keyword used to determine a task in the user's to-do list, determines the user's intention, recommends a replacement task for an existing task, and a preset criterion for monitoring whether the task is performed Accordingly, data necessary for learning can be selected from the preprocessed data. In addition, the training data selection unit 1310 - 3 may select data according to a preset criterion by learning by the model learning unit 1310 - 4 to be described later.

모델 학습부(1310-4)는 데이터 인식 모델이 학습 데이터에 기초하여 수집된 데이터로부터 사용자의 의도를 어떻게 판단하고 후보 태스크들을 어떻게 결정하고, 기존 태스크의 대체 태스크를 어떻게 결정하고, 태스크의 수행여부를 판단하기 위한 모니터링을 어떻게 수행할 것인지에 대한 판단 기준을 갖도록 학습할 수 있다. 또한, 모델 학습부(1310-4)는 데이터 인식 모델이 사용자의 의도 결정, 후보 태스크 결정, 대체 태스크 결정, 태스크의 모니터링 판단을 위하여 어떤 학습 데이터를 이용해야 하는 지에 대한 선별 기준을 갖도록 학습할 수도 있다.The model learning unit 1310-4 determines how the data recognition model determines the user's intention from the data collected based on the training data, how to determine candidate tasks, how to determine the replacement task for the existing task, and whether to perform the task. It is possible to learn to have a criterion for determining how to perform monitoring to determine . In addition, the model learning unit 1310-4 may learn the data recognition model to have a selection criterion for which learning data to use for determining the user's intention, determining the candidate task, determining the replacement task, and determining the monitoring of the task. have.

또한, 모델 학습부(1310-4)는 상황 판단에 이용되는 데이터 인식 모델을 학습 데이터를 이용하여 학습시킬 수 있다. 이 경우, 데이터 인식 모델은 미리 구축된 모델일 수 있다. 예를 들어, 데이터 인식 모델은 기본 학습 데이터(예를 들어, 샘플 이미지 등)을 입력 받아 미리 구축된 모델일 수 있다.Also, the model learning unit 1310 - 4 may learn a data recognition model used for situation determination by using the training data. In this case, the data recognition model may be a pre-built model. For example, the data recognition model may be a model built in advance by receiving basic training data (eg, a sample image, etc.).

일 실시예에 따르면, 모델 학습부(1310-4)는 데이터 획득부(1310-1)가 획득한 메시지 데이터, 음성 대화 데이터, 로그 데이터 등과 연락처 어플리케이션에 포함된 적어도 하나 이상의 상대방과 관련된 정보를 학습 데이터로 하여 데이터 인식 모델이 획득한 데이터와 상대방과의 관련성을 추정할 수 있도록 학습 시킬 수 있다. 이 경우, 데이터 인식 모델은, 예를 들면, relationship model을 사용할 수도 있다.According to an embodiment, the model learning unit 1310-4 learns information related to at least one counterpart included in the contact application, such as message data, voice conversation data, log data, and the like, acquired by the data acquisition unit 1310 - 1 . Using data, the data recognition model can be trained to estimate the relationship between the acquired data and the counterpart. In this case, the data recognition model may use, for example, a relationship model.

예를 들어, 모델 학습부(1310-4)는 대화 내용과 연락처 어플리케이션에 포함된 상대방 정보를 학습 데이터로 하여 대화 내용에 등장한 직급과 상대방 정보에 포함된 직급의 관련성에 대하여 학습할 수 있다.For example, the model learning unit 1310-4 may learn about the relationship between a position appearing in the conversation content and a position included in the counterpart information by using the conversation content and the counterpart information included in the contact application as learning data.

일 실시예에 따르면, 모델 학습부(1310-4)는 적어도 하나의 문장, 의문사(예를 들면, 누가, 언제, 어디서, 무엇을, 어떻게, 왜) 및 상기 문장에서 상기 의문사에 대응하는 단어를 학습 데이터로 이용하여 데이터 인식 모델이 데이터로부터 키워드를 추정할 수 있도록 학습 시킬 수 있다. 이 경우, 데이터 인식 모델은 자연어 생성 학습 모델(NLG: natural language generation)을 포함할 수 있다.According to an embodiment, the model learning unit 1310 - 4 selects at least one sentence, an interrogative word (eg, who, when, where, what, how, why), and a word corresponding to the interrogative word in the sentence. By using it as training data, the data recognition model can be trained to estimate keywords from the data. In this case, the data recognition model may include a natural language generation learning model (NLG).

일 실시예에 따르면, 모델 학습부(1310-4)는 아이템(업무, 일상(예를 들면, 장보기, 육아, 식사), 여행 등)에 대응되는 탬플릿(예를 들면, 문장) 또는 문서, 단어 및 단어가 적용된 탬플릿 또는 문서를 학습 데이터로 이용하여 데이터 인식 모델이 키워드로부터 태스크(또는, 후보 태스크)를 추정할 수 있도록 학습 시킬 수 있다. 이 경우, 데이터 인식 모델은 자연어 처리 학습 모델(NLP: natural language processing)을 포함할 수 있다.According to an embodiment, the model learning unit 1310-4 may include a template (eg, sentence) or document, word corresponding to an item (work, daily life (eg, shopping, childcare, meal), travel, etc.) And by using a template or document to which the word is applied as training data, the data recognition model may be trained to estimate the task (or candidate task) from the keyword. In this case, the data recognition model may include a natural language processing learning model (NLP).

일 실시예에 따르면, 모델 학습부(1310-4)는 디바이스(1000)의 로그 데이터와 태스크를 학습 데이터로 이용하여 데이터 인식 모델일 태스크의 수행 여부를 추정할 수 있도록 학습 시킬 수 있다.According to an embodiment, the model learning unit 1310 - 4 may use log data and the task of the device 1000 as training data to learn to estimate whether or not a task to be a data recognition model is performed.

한편, 다양한 실시예에 따르면, 상기의 데이터 인식 모델들은 하나의 데이터 인식 모델로 구현될 수 있고, 각각 개별적인 데이터 인식 모델로 구현될 수도 있다. Meanwhile, according to various embodiments, the data recognition models may be implemented as one data recognition model, or may be implemented as individual data recognition models, respectively.

데이터 인식 모델은, 인식 모델의 적용 분야, 학습의 목적 또는 장치의 컴퓨터 성능 등을 고려하여 구축될 수 있다. 데이터 인식 모델은, 예를 들어, 신경망(Neural Network)을 기반으로 하는 모델일 수 있다. 예컨대, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network)과 같은 모델이 데이터 인식 모델로서 사용될 수 있으나, 이에 한정되지 않는다.The data recognition model may be constructed in consideration of the field of application of the recognition model, the purpose of learning, or the computer performance of the device. The data recognition model may be, for example, a model based on a neural network. For example, a model such as a deep neural network (DNN), a recurrent neural network (RNN), or a bidirectional recurrent deep neural network (BRDNN) may be used as the data recognition model, but is not limited thereto.

다양한 실시예에 따르면, 모델 학습부(1310-4)는 미리 구축된 데이터 인식 모델이 복수 개가 존재하는 경우, 입력된 학습 데이터와 기본 학습 데이터의 관련성이 큰 데이터 인식 모델을 학습할 데이터 인식 모델로 결정할 수 있다. 이 경우, 기본 학습 데이터는 데이터의 타입 별로 기 분류되어 있을 수 있으며, 데이터 인식 모델은 데이터의 타입 별로 미리 구축되어 있을 수 있다. 예를 들어, 기본 학습 데이터는 학습 데이터가 생성된 지역, 학습 데이터가 생성된 시간, 학습 데이터의 크기, 학습 데이터의 장르, 학습 데이터의 생성자, 학습 데이터 내의 오브젝트의 종류 등과 같은 다양한 기준으로 기 분류되어 있을 수 있다. According to various embodiments, the model learning unit 1310 - 4 uses a data recognition model to learn a data recognition model having a high correlation between the input training data and the basic training data when there are a plurality of pre-built data recognition models. can decide In this case, the basic learning data may be pre-classified for each type of data, and the data recognition model may be previously built for each type of data. For example, the basic training data is pre-classified by various criteria such as the region where the training data is generated, the time when the training data is generated, the size of the training data, the genre of the training data, the creator of the training data, the type of object in the training data, etc. may have been

또한, 모델 학습부(1310-4)는, 예를 들어, 오류 역전파법(error back-propagation) 또는 경사 하강법(gradient descent)을 포함하는 학습 알고리즘 등을 이용하여 데이터 인식 모델을 학습시킬 수 있다.Also, the model learning unit 1310 - 4 may train the data recognition model using, for example, a learning algorithm including error back-propagation or gradient descent. .

또한, 모델 학습부(1310-4)는, 예를 들어, 학습 데이터를 입력 값으로 하는 지도 학습(supervised learning) 을 통하여, 데이터 인식 모델을 학습시킬 수 있다. 또한, 모델 학습부(1310-4)는, 예를 들어, 별다른 지도없이 상황 판단을 위해 필요한 데이터의 종류를 스스로 학습함으로써, 사용자의 의도 결정, 후보 태스크 결정, 대체 태스크 결정 및 태스크의 모니터링 판단을 위한 기준을 발견하는 비지도 학습(unsupervised learning)을 통하여, 데이터 인식 모델을 학습시킬 수 있다. 또한, 모델 학습부(1310-4)는, 예를 들어, 학습에 따른 사용자의 의도 결정, 후보 태스크 결정, 대체 태스크 결정 및 태스크의 모니터링 판단의 결과가 올바른 지에 대한 피드백을 이용하는 강화 학습(reinforcement learning)을 통하여, 데이터 인식 모델을 학습시킬 수 있다.Also, the model learning unit 1310 - 4 may train the data recognition model through, for example, supervised learning using learning data as an input value. In addition, the model learning unit 1310-4, for example, by self-learning the type of data required for situation determination without any guidance, determines the user's intention, determines the candidate task, determines the replacement task, and determines the monitoring of the task. A data recognition model can be trained through unsupervised learning to discover criteria for In addition, the model learning unit 1310 - 4 is, for example, reinforcement learning (reinforcement learning) using feedback on whether the results of determining the user's intention according to the learning, determining the candidate task, determining the replacement task, and determining the monitoring of the task are correct. ), it is possible to train a data recognition model.

또한, 데이터 인식 모델이 학습되면, 모델 학습부(1310-4)는 학습된 데이터 인식 모델을 저장할 수 있다. 이 경우, 모델 학습부(1310-4)는 학습된 데이터 인식 모델을 데이터 인식부(1320)를 포함하는 전자 장치의 메모리에 저장할 수 있다. 또는, 모델 학습부(1310-4)는 학습된 데이터 인식 모델을 후술할 데이터 인식부(1320)를 포함하는 전자 장치의 메모리에 저장할 수 있다. 또는, 모델 학습부(1310-4)는 학습된 데이터 인식 모델을 전자 장치와 유선 또는 무선 네트워크로 연결되는 서버의 메모리에 저장할 수도 있다.Also, when the data recognition model is learned, the model learning unit 1310 - 4 may store the learned data recognition model. In this case, the model learning unit 1310 - 4 may store the learned data recognition model in the memory of the electronic device including the data recognition unit 1320 . Alternatively, the model learning unit 1310 - 4 may store the learned data recognition model in the memory of the electronic device including the data recognition unit 1320 to be described later. Alternatively, the model learning unit 1310 - 4 may store the learned data recognition model in a memory of a server connected to the electronic device through a wired or wireless network.

이 경우, 학습된 데이터 인식 모델이 저장되는 메모리는, 예를 들면, 전자 장치의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 함께 저장할 수도 있다. 또한, 메모리는 소프트웨어 및/또는 프로그램을 저장할 수도 있다. 프로그램은, 예를 들면, 커널, 미들웨어, 어플리케이션 프로그래밍 인터페이스(API) 및/또는 어플리케이션 프로그램(또는 "어플리케이션") 등을 포함할 수 있다.In this case, the memory in which the learned data recognition model is stored may also store, for example, commands or data related to at least one other component of the electronic device. The memory may also store software and/or programs. A program may include, for example, a kernel, middleware, an application programming interface (API) and/or an application program (or "application"), and the like.

모델 평가부(1310-5)는 데이터 인식 모델에 평가 데이터를 입력하고, 평가 데이터로부터 출력되는 인식 결과가 소정 기준을 만족하지 못하는 경우, 모델 학습부(1310-4)로 하여금 다시 학습하도록 할 수 있다. 이 경우, 평가 데이터는 데이터 인식 모델을 평가하기 위한 기 설정된 데이터일 수 있다. The model evaluator 1310-5 may input evaluation data into the data recognition model, and when the recognition result output from the evaluation data does not satisfy a predetermined criterion, may cause the model learning unit 1310-4 to learn again. have. In this case, the evaluation data may be preset data for evaluating the data recognition model.

예를 들어, 모델 평가부(1310-5)는 평가 데이터에 대한 학습된 데이터 인식 모델의 인식 결과 중에서, 인식 결과가 정확하지 않은 평가 데이터의 개수 또는 비율이 미리 설정된 임계치를 초과하는 경우 소정 기준을 만족하지 못한 것으로 평가할 수 있다. 예컨대, 소정 기준이 비율 2%로 정의되는 경우, 학습된 데이터 인식 모델이 총 1000개의 평가 데이터 중의 20개를 초과하는 평가 데이터에 대하여 잘못된 인식 결과를 출력하는 경우, 모델 평가부(1310-5)는 학습된 데이터 인식 모델이 적합하지 않은 것으로 평가할 수 있다.For example, the model evaluator 1310-5 sets a predetermined criterion when the number or ratio of the evaluation data for which the recognition result is not accurate among the recognition results of the learned data recognition model for the evaluation data exceeds a preset threshold. It can be evaluated as unsatisfactory. For example, when the predetermined criterion is defined as a ratio of 2%, when the learned data recognition model outputs an erroneous recognition result for more than 20 evaluation data out of a total of 1000 evaluation data, the model evaluation unit 1310-5 can be evaluated that the trained data recognition model is not suitable.

한편, 학습된 데이터 인식 모델이 복수 개가 존재하는 경우, 모델 평가부(1310-5)는 각각의 학습된 동영상 인식 모델에 대하여 소정 기준을 만족하는지를 평가하고, 소정 기준을 만족하는 모델을 최종 데이터 인식 모델로서 결정할 수 있다. 이 경우, 소정 기준을 만족하는 모델이 복수 개인 경우, 모델 평가부(1310-5)는 평가 점수가 높은 순으로 미리 설정된 어느 하나 또는 소정 개수의 모델을 최종 데이터 인식 모델로서 결정할 수 있다.On the other hand, when there are a plurality of learned data recognition models, the model evaluation unit 1310 - 5 evaluates whether each learned video recognition model satisfies a predetermined criterion, and recognizes a model that satisfies the predetermined criterion as final data can be determined as a model. In this case, when there are a plurality of models satisfying the predetermined criteria, the model evaluator 1310 - 5 may determine any one or a predetermined number of models preset in the order of the highest evaluation score as the final data recognition model.

한편, 데이터 학습부(1310) 내의 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.On the other hand, in the data learning unit 1310, the data acquisition unit 1310-1, the preprocessor 1310-2, the training data selection unit 1310-3, the model learning unit 1310-4, and the model evaluation unit 1310 At least one of -5) may be manufactured in the form of at least one hardware chip and mounted in an electronic device. For example, at least one of the data acquisition unit 1310-1, the preprocessor 1310-2, the training data selection unit 1310-3, the model learning unit 1310-4, and the model evaluation unit 1310-5 One may be manufactured in the form of a dedicated hardware chip for artificial intelligence (AI), or it may be manufactured as part of an existing general-purpose processor (eg, CPU or application processor) or graphics-only processor (eg, GPU) as described above. It may be mounted on various electronic devices.

또한, 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5) 중 일부는 전자 장치에 포함되고, 나머지 일부는 서버에 포함될 수 있다.In addition, the data acquisition unit 1310-1, the preprocessor 1310-2, the training data selection unit 1310-3, the model learning unit 1310-4, and the model evaluation unit 1310-5 are one electronic unit. It may be mounted on the device, or it may be mounted on separate electronic devices, respectively. For example, some of the data acquisition unit 1310-1, the preprocessor 1310-2, the training data selection unit 1310-3, the model learning unit 1310-4, and the model evaluation unit 1310-5 may be included in the electronic device, and the remaining part may be included in the server.

또한, 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5) 중 적어도 하나가 소프트웨어 모듈(또는, 인스터력션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.In addition, at least one of the data acquisition unit 1310-1, the preprocessor 1310-2, the training data selection unit 1310-3, the model learning unit 1310-4, and the model evaluation unit 1310-5 is It can be implemented as a software module. At least one of the data acquisition unit 1310-1, the preprocessor 1310-2, the training data selection unit 1310-3, the model learning unit 1310-4, and the model evaluation unit 1310-5 is a software module When implemented as (or, a program module including instructions), the software module may be stored in a computer-readable non-transitory computer readable medium. Also, in this case, the at least one software module may be provided by an operating system (OS) or may be provided by a predetermined application. Alternatively, a part of the at least one software module may be provided by an operating system (OS), and the other part may be provided by a predetermined application.

도 29는 일 실시예에 따른 데이터 인식부(1320)의 블록도이다.29 is a block diagram of the data recognition unit 1320 according to an exemplary embodiment.

도 29를 참조하면, 일부 실시예에 따른 데이터 인식부(1320)는 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5)를 포함할 수 있다.Referring to FIG. 29 , the data recognition unit 1320 according to some embodiments includes a data acquisition unit 1320-1, a pre-processing unit 1320-2, a recognition data selection unit 1320-3, and a recognition result providing unit ( 1320-4) and a model update unit 1320-5.

다만, 이는 일 실시예 일 뿐, 데이터 인식부(1320)는 전술한 구성 요소들 중 일부를 포함하거나, 전술한 구성 요소들 이외에 다른 구성 요소를 더 포함할 수 있다.However, this is only an embodiment, and the data recognition unit 1320 may include some of the above-described components, or may further include other components in addition to the above-described components.

데이터 획득부(1320-1)는 사용자의 의도 결정, 후보 태스크 결정, 대체 태스크 결정 및, 태스크의 모니터링 판단에 필요한 인식 데이터를 획득할 수 있으며, 전처리부(1320-2)는 사용자의 의도 결정, 후보 태스크 결정, 대체 태스크 결정 및 태스크의 모니터링 판단을 위해 획득된 인식 데이터가 이용될 수 있도록, 획득된 데이터를 전처리할 수 있다. The data acquisition unit 1320-1 may acquire recognition data necessary for determining the user's intention, determining the candidate task, determining the alternative task, and determining the monitoring of the task, and the preprocessor 1320-2 may determine the user's intention, The acquired data may be pre-processed so that the acquired recognition data may be used for candidate task determination, replacement task determination, and task monitoring determination.

일 실시예에 따르면, 데이터 획득부(1320-1)는 도 28에서 상술한 데이터 학습부(1310)의 데이터 획득부(1310-1)와 동일 유사하게 데이터를 획득할 수 있다.According to an embodiment, the data acquisition unit 1320-1 may acquire data in the same manner as the data acquisition unit 1310-1 of the data learning unit 1310 described above with reference to FIG. 28 .

예를 들어, 데이터 획득부(1320-1)는 통화 어플리케이션으로부터 사용자와 다른 사용자 간의 대화 내용을 획득할 수 있다. 또한, 데이터 획득부(1320-1)는 메시지 어플리케이션으로부터 사용자와 다른 사용자 간의 송수신된 메시지 내용을 획득할 수 있다. 또한, 데이터 획득부(1320-1)는 사용자의 일정 관리 어플리케이션을 통하여 사용자의 일정에 대한 데이터를 획득할 수 있다.For example, the data acquisition unit 1320-1 may acquire the content of a conversation between the user and another user from the call application. Also, the data acquisition unit 1320-1 may acquire contents of messages transmitted and received between the user and other users from the message application. Also, the data acquisition unit 1320-1 may acquire data about the user's schedule through the user's schedule management application.

전처리부(1320-2)는 후술할 인식 결과 제공부(1320-4)가 사용자의 의도 결정, 후보 태스크 결정, 대체 태스크 결정 및 태스크의 모니터링 판단을 위하여 획득된 인식 데이터를 이용할 수 있도록, 획득된 인식 데이터를 기 설정된 포맷으로 가공할 수 있다. The preprocessing unit 1320-2 is configured so that the recognition result providing unit 1320-4, which will be described later, uses the acquired recognition data to determine a user's intention, determine a candidate task, determine an alternative task, and determine monitoring of a task. The recognition data may be processed into a preset format.

인식 데이터 선택부(1320-3)는 전처리된 데이터 중에서 사용자의 의도 결정, 후보 태스크 결정, 대체 태스크 결정 및 태스크의 모니터링 판단에 필요한 인식 데이터를 선택할 수 있다. 선택된 인식 데이터는 인식 결과 제공부(1320-4)에게 제공될 수 있다. 인식 데이터 선택부(1320-3)는 사용자의 의도 결정, 후보 태스크 결정, 대체 태스크 결정 및 태스크의 모니터링 판단을 위한 기 설정된 기준에 따라, 전처리된 인식 데이터 중에서 일부 또는 전부를 선택할 수 있다. 또한, 인식 데이터 선택부(1320-3)는 후술할 모델 학습부(1310-4)에 의한 학습에 의해 기 설정된 기준에 따라 인식 데이터를 선택할 수도 있다.The recognition data selection unit 1320 - 3 may select recognition data necessary for determining the user's intention, determining the candidate task, determining the replacement task, and determining the monitoring of the task from among the pre-processed data. The selected recognition data may be provided to the recognition result providing unit 1320 - 4 . The recognition data selection unit 1320 - 3 may select some or all of the preprocessed recognition data according to preset criteria for determining the user's intention, determining the candidate task, determining the replacement task, and determining the monitoring of the task. Also, the recognition data selection unit 1320-3 may select recognition data according to a preset criterion by learning by the model learning unit 1310-4, which will be described later.

인식 결과 제공부(1320-4)는 선택된 인식 데이터를 데이터 인식 모델에 적용하여 사용자의 의도 결정, 후보 태스크 결정, 대체 태스크 결정 및 태스크의 모니터링을 판단할 수 있다. 인식 결과 제공부(1320-4)는 인식 데이터의 인식 목적에 따른 인식 결과를 제공할 수 있다. 인식 결과 제공부(1320-4)는 인식 데이터 선택부(1320-3)에 의해 선택된 인식 데이터를 입력 값으로 이용함으로써, 선택된 인식 데이터를 데이터 인식 모델에 적용할 수 있다. 또한, 인식 결과는 데이터 인식 모델에 의해 결정될 수 있다.The recognition result providing unit 1320 - 4 may apply the selected recognition data to the data recognition model to determine the user's intention, the candidate task, the replacement task, and the monitoring of the task. The recognition result providing unit 1320 - 4 may provide a recognition result according to the recognition purpose of the recognition data. The recognition result providing unit 1320-4 may apply the selected recognition data to the data recognition model by using the recognition data selected by the recognition data selection unit 1320-3 as an input value. Also, the recognition result may be determined by a data recognition model.

일 실시예에 따르면, 인식 결과 제공부(1320-4)는 문자 메시지 내용을 인식 데이터로 하여 데이터 인식 모델에 적용할 수 있다. 데이터 인식 모델은 문자 메시지에서 의문사에 대응되는 단어들을 키워드로 추정할 수 있다. 또한, 인식 결과 제공부(1320-4)는 대화 내용을 인식 데이터로 하여 데이터 인식 모델에 적용할 수 있다. 데이터 인식 모델은 대화 내용에서 의문사에 대응되는 단어들을 키워드로 추정할 수 있다. According to an embodiment, the recognition result providing unit 1320 - 4 may use the text message content as recognition data and apply it to the data recognition model. The data recognition model may estimate words corresponding to interrogative words in text messages as keywords. Also, the recognition result providing unit 1320-4 may use the conversation content as recognition data and apply it to the data recognition model. The data recognition model may estimate words corresponding to interrogative words in conversation contents as keywords.

일 실시예에 따르면, 인식 결과 제공부(1320-4)는 추정된 키워드를 인식 데이터로 하여 데이터 인식 모델에 적용할 수 있다. 데이터 인식 모델은 키워드를 적어도 하나의 아이템에 매칭된 탬플릿에 적용하여 문장 형태의 태스크(또는, 후보 태스크)를 추정할 수 있다.According to an embodiment, the recognition result providing unit 1320-4 may use the estimated keyword as recognition data and apply it to the data recognition model. The data recognition model may estimate a task (or candidate task) in the form of a sentence by applying a keyword to a template matched with at least one item.

일 실시예에 따르면, 인식 결과 제공부(1320-4)는 디바이스(1000)의 로그 데이터를 인식 데이터로 하여 데이터 인식 모델에 적용할 수 있다. 데이터 인식 모델은 로그 데이터를 이용하여 태스크의 수행 여부를 확인할 수 있다.According to an embodiment, the recognition result providing unit 1320 - 4 may use log data of the device 1000 as recognition data and apply it to the data recognition model. The data recognition model can check whether a task is performed using log data.

모델 갱신부(1320-5)는 인식 결과 제공부(1320-4)에 의해 제공되는 인식 결과에 대한 평가에 기초하여, 데이터 인식 모델이 갱신되도록할 수 있다. 예를 들어, 모델 갱신부(1320-5)는 인식 결과 제공부(1320-4)에 의해 제공되는 인식 결과를 모델 학습부(1310-4)에게 제공함으로써, 모델 학습부(1310-4)가 데이터 인식 모델을 갱신하도록 할 수 있다.The model updating unit 1320 - 5 may update the data recognition model based on the evaluation of the recognition result provided by the recognition result providing unit 1320 - 4 . For example, the model updating unit 1320-5 provides the recognition result provided by the recognition result providing unit 1320-4 to the model learning unit 1310-4, so that the model learning unit 1310-4 is You can update the data recognition model.

한편, 데이터 인식부(1320) 내의 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.On the other hand, in the data recognition unit 1320, the data acquisition unit 1320-1, the preprocessor 1320-2, the recognition data selection unit 1320-3, the recognition result providing unit 1320-4, and the model update unit ( 1320-5) may be manufactured in the form of at least one hardware chip and mounted in an electronic device. For example, among the data acquisition unit 1320-1, the preprocessor 1320-2, the recognition data selection unit 1320-3, the recognition result providing unit 1320-4, and the model update unit 1320-5 At least one may be manufactured in the form of a dedicated hardware chip for artificial intelligence (AI), or may be manufactured as part of an existing general-purpose processor (eg, CPU or application processor) or graphics-only processor (eg, GPU). It may be mounted on one various electronic devices.

또한, 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5) 중 일부는 전자 장치에 포함되고, 나머지 일부는 서버에 포함될 수 있다.In addition, the data acquisition unit 1320-1, the preprocessor 1320-2, the recognition data selection unit 1320-3, the recognition result providing unit 1320-4, and the model update unit 1320-5 are one It may be mounted on an electronic device, or may be respectively mounted on separate electronic devices. For example, among the data acquisition unit 1320-1, the preprocessor 1320-2, the recognition data selection unit 1320-3, the recognition result providing unit 1320-4, and the model update unit 1320-5 Some may be included in the electronic device, and some may be included in the server.

또한, 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5) 중 적어도 하나가 소프트웨어 모듈(또는, 인스터력션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.In addition, at least one of the data acquisition unit 1320-1, the preprocessor 1320-2, the recognition data selection unit 1320-3, the recognition result providing unit 1320-4, and the model update unit 1320-5 may be implemented as a software module. At least one of the data acquisition unit 1320-1, the preprocessor 1320-2, the recognition data selection unit 1320-3, the recognition result providing unit 1320-4, and the model update unit 1320-5 is software. When implemented as a module (or a program module including instructions), the software module may be stored in a computer-readable non-transitory computer readable medium. Also, in this case, the at least one software module may be provided by an operating system (OS) or may be provided by a predetermined application. Alternatively, a part of the at least one software module may be provided by an operating system (OS), and the other part may be provided by a predetermined application.

도 30은 일 실시예에 따른 디바이스(1000) 및 서버(2000)가 서로 연동함으로써 데이터를 학습하고 인식하는 예시를 나타내는 도면이다.30 is a diagram illustrating an example of learning and recognizing data by interworking with the device 1000 and the server 2000 according to an embodiment.

도 30을 참조하면, 서버(2000)는 데이터 인식 모델이 사용자의 의도 결정, 후보 태스크 결정, 대체 태스크 결정 및 태스크의 모니터링 판단을 위한 기준을 갖도록 학습할 수 있으며, 디바이스(1000)는 서버(2000)에 의한 학습 결과에 기초하여 상황을 판단할 수 있다.Referring to FIG. 30 , the server 2000 may learn the data recognition model to have criteria for determining the user's intention, determining the candidate task, determining the replacement task, and determining the monitoring of the task. ) can judge the situation based on the learning results.

이 경우, 서버(2000)의 모델 학습부(2340)는 도 28에 도시된 데이터 학습부(1310)의 기능을 수행할 수 있다. 서버(2000)의 모델 학습부(2340)는 데이터 인식 모델이 사용자의 의도 결정, 후보 태스크 결정, 대체 태스크 결정 및 태스크의 모니터링을 판단하기 위하여 어떤 데이터를 이용할 지, 데이터를 이용하여 상황을 어떻게 판단할 지에 관한 판단 기준을 갖도록 학습할 수 있다. 모델 학습부(2340)는 학습에 이용될 데이터를 획득하고, 획득된 데이터를 후술할 데이터 인식 모델에 적용함으로써, 상황 판단을 위한 선별 기준을 학습할 수 있다.In this case, the model learning unit 2340 of the server 2000 may perform the function of the data learning unit 1310 illustrated in FIG. 28 . The model learning unit 2340 of the server 2000 determines what data the data recognition model uses to determine the user's intention, the candidate task, the alternative task, and the monitoring of the task, and how the data is used to determine the situation. You can learn to have a criterion for judging whether or not to do it. The model learning unit 2340 acquires data to be used for learning, and applies the acquired data to a data recognition model to be described later, thereby learning a selection criterion for determining a situation.

예를 들면, 모델 학습부(2340)는 데이터 인식 모델이 수집된 데이터를 분석하고, 사용자의 할일 목록 내의 태스크를 결정하는데 이용되는 키워드를 결정하는 기준을 갖도록 학습할 수 있다. 또한, 모델 학습부(2340)는 데이터 인식 모델이 수집된 데이터를 분석하여 사용자의 의도를 판단하고, 사용자의 의도에 부합되는 태스크를 제공하는 기준을 갖도록 학습할 수 있다. 또한, 모델 학습부(2340)는 데이터 인식 모델이 기존에 결정된 태스크에 대하여 대체 가능한 대체 태스크를 결정하는 기준을 갖도록 학습할 수 있다. 또한, 모델 학습부(2340)는 데이터 인식 모델이 할일 목록 내의 적어도 하나의 태스크가 수행되었는지를 판단하는 기준을 갖도록 학습할 수 있다. 모델 학습부(2340)는 데이터 인식 모델이 소정의 태스크가 수행되는데 이용되는 어플리케이션, 어플리케이션과 관련된 사용자의 동작 정보, 사용자의 동작 정보에 따른 어플리케이션의 세부적인 동작 정보들 간의 관계를 결정하고, 결정된 관계에 기초하여 할일 목록 내의 적어도 하나의 태스크가 수행되었는지를 판단하는 기준을 갖도록 학습할 수 있다.For example, the model learning unit 2340 may learn the data recognition model to analyze the collected data and have a criterion for determining a keyword used to determine a task in the user's to-do list. In addition, the model learning unit 2340 may learn the data recognition model to analyze the collected data to determine the user's intention, and to learn to have a standard for providing a task conforming to the user's intention. In addition, the model learning unit 2340 may learn the data recognition model to have a criterion for determining a substitutable task with respect to the previously determined task. Also, the model learning unit 2340 may learn the data recognition model to have a criterion for determining whether at least one task in the to-do list has been performed. The model learning unit 2340 determines the relationship between the application using the data recognition model to perform a predetermined task, the user's motion information related to the application, and the detailed motion information of the application according to the user's motion information, and the determined relationship It is possible to learn to have a criterion for determining whether at least one task in the to-do list has been performed based on the .

또한, 디바이스(1000)의 인식 결과 제공부(1320-4)는 인식 데이터 선택부(1320-3)에 의해 선택된 데이터를 서버(2000)에 의해 생성된 데이터 인식 모델에 적용하여 사용자의 의도 결정, 후보 태스크 결정, 대체 태스크 결정 및, 태스크의 모니터링 할 수 있다. 예를 들어, 인식 결과 제공부(1320-4)는 인식 데이터 선택부(1320-3)에 의해 선택된 데이터를 서버(2000)에게 전송하고, 서버(2000)가 인식 데이터 선택부(1320-3)에 의해 선택된 데이터를 인식 모델에 적용하여 사용자의 의도 결정, 후보 태스크 결정, 대체 태스크 결정, 태스크의 모니터링 할 것을 요청할 수 있다. 또한, 인식 결과 제공부(1320-4)는 서버(2000)에 의해 결정된 사용자의 의도, 후보 태스크, 대체 태스크 및 태스크의 모니터링 결과에 관한 정보를 서버(2000)로부터 수신할 수 있다.In addition, the recognition result providing unit 1320-4 of the device 1000 applies the data selected by the recognition data selection unit 1320-3 to the data recognition model generated by the server 2000 to determine the user's intention, Candidate task determination, replacement task determination, and task monitoring may be performed. For example, the recognition result providing unit 1320-4 transmits the data selected by the recognition data selection unit 1320-3 to the server 2000, and the server 2000 performs the recognition data selection unit 1320-3 By applying the selected data to the recognition model, it is possible to request user intention determination, candidate task determination, replacement task determination, and task monitoring. Also, the recognition result providing unit 1320 - 4 may receive information about the user's intention determined by the server 2000, the candidate task, the replacement task, and the monitoring result of the task from the server 2000 .

또는, 디바이스(1000)의 인식 결과 제공부(1320-4)는 서버(2000)에 의해 생성된 인식 모델을 서버(2000)로부터 수신하고, 수신된 인식 모델을 이용하여 사용자의 의도 결정, 후보 태스크 결정, 대체 태스크 결정 및 태스크의 모니터링 할 수 있다. 이 경우, 디바이스(1000)의 인식 결과 제공부(1320-4)는 인식 데이터 선택부(1320-3)에의해 선택된 데이터를 서버(2000)로부터 수신된 데이터 인식 모델에 적용하여 사용자의 의도 결정, 후보 태스크 결정, 대체 태스크 결정 및 태스크의 모니터링할 수 있다.Alternatively, the recognition result providing unit 1320 - 4 of the device 1000 receives the recognition model generated by the server 2000 from the server 2000, and uses the received recognition model to determine the user's intention and to perform a candidate task. Decision, replacement task determination and task monitoring are possible. In this case, the recognition result providing unit 1320-4 of the device 1000 applies the data selected by the recognition data selection unit 1320-3 to the data recognition model received from the server 2000 to determine the user's intention, Candidate task determination, replacement task determination and task monitoring are possible.

또한, 디바이스(1000) 및 서버(2000)는 데이터 인식 모델의 학습 및 데이터 인식을 위한 작업을 효과적으로 분배하여 수행할 수 있으며, 이를 통하여, 사용자의 의도에 부합하는 서비스를 제공하기 위하여 데이터 처리를 효율적으로 수행하고, 사용자의 프라이버시를 효과적으로 보호할 수 있다.In addition, the device 1000 and the server 2000 can effectively distribute and perform tasks for learning and data recognition of the data recognition model, and through this, data processing can be efficiently performed to provide a service that meets the user's intention. and can effectively protect the user's privacy.

도 31은 일 실시예에 따른 제 1 프로세서(1300a) 및 제 2 프로세서(1300b)가 사용자의 할 일 목록을 관리하는 방법의 흐름도이다.31 is a flowchart of a method of managing a user's to-do list by the first processor 1300a and the second processor 1300b according to an exemplary embodiment.

일 실시예에 따르면, 디바이스(1000)는 제 1 프로세서(1300a) 및 제 2 프로세서(1300b)를 포함할 수 있다.According to an embodiment, the device 1000 may include a first processor 1300a and a second processor 1300b.

제 1 프로세서(1300a)는 디바이스(1000)에 설치된 적어도 하나의 어플리케이션의 실행을 제어하고, 디바이스(1000)에 획득되는 이미지에 대한 그래픽 처리를 수행하거나, 어플리케이션에 저장되는 데이터(예를 들면, 문자 메시지, 음성 대화 등)를 획득할 수 있다. 제 1 프로세서(1300a)는 CPU(central processing unit), GPU(graphic processing unit), 통신칩 및 센서 등의 기능이 통합된 SoC(system on chip) 형태로 구현될 수 있다.The first processor 1300a controls execution of at least one application installed in the device 1000 , performs graphic processing on an image acquired in the device 1000 , or data stored in the application (eg, text messages, voice chats, etc.). The first processor 1300a may be implemented in the form of a system on chip (SoC) in which functions such as a central processing unit (CPU), a graphic processing unit (GPU), a communication chip, and a sensor are integrated.

제 2 프로세서(1300b)는 데이터 인식 모델을 이용하여 어플리케이션으로부터 획득한 데이터로부터 키워드를 추정할 수 있고, 추정된 키워드를 이용하여 사용자의 할일 목록 내의 태스크(또는, 후보 태스크)를 추정할 수 있다.The second processor 1300b may estimate a keyword from data obtained from an application using a data recognition model, and may estimate a task (or a candidate task) in the user's to-do list using the estimated keyword.

한편, 제 2 프로세서(1300b)는 데이터 인식 모델을 이용한 사용자 할일 추정 기능을 수행하는 인공 지능(AI: artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수 있다. 또한, 디바이스(1000)는 제 2 프로세서(1300b)와 동일한 기능을 수행하는 제 3 프로세서, 제 4 프로세서 등을 더 포함할 수도 있다.Meanwhile, the second processor 1300b may be manufactured in the form of a dedicated hardware chip for artificial intelligence (AI) that performs a user to-do estimation function using a data recognition model. Also, the device 1000 may further include a third processor, a fourth processor, and the like that perform the same function as the second processor 1300b.

한편, 본 개시의 다양한 실시예에 따르면, 제 1 프로세서(1300a)가 수행하는 기능은 디바이스(1000)의 메모리에 저장되어 다양한 기능을 수행하는 어플리케이션들이 대응하여 수행할 수 있고, 제 2 프로세서(1300b)가 수행하는 기능은 디바이스(1000)의 운영체제(OS: operating system)가 대응하여 수행할 수 있다.Meanwhile, according to various embodiments of the present disclosure, the function performed by the first processor 1300a is stored in the memory of the device 1000 and applications performing various functions may correspondingly perform the function, and the second processor 1300b ) may be performed correspondingly by an operating system (OS) of the device 1000 .

예를 들어, 음성 인식 어플리케이션은 디바이스(1000)에 저장된 대화 내용을 인식하여 문자 형태로 변환할 수 있다. 음성 인식 어플리케이션은 운영체제 또는 외부의 서버에 대하여 변환된 문자 또는 문자와 관련되는 정보를 전송할 수 있다. For example, the voice recognition application may recognize conversation content stored in the device 1000 and convert it into a text form. The voice recognition application may transmit the converted text or information related to the text to the operating system or an external server.

운영체제 또는 외부의 서버는 각각 포함된 데이터 인식 모델을 이용하여 문자로부터 키워드를 추정할 수 있다.An operating system or an external server may estimate a keyword from a character using an included data recognition model, respectively.

단계 s3110에서, 제 1 프로세서(1300a)는 디바이스(1000)에 실행된 어플리케이션 또는 디바이스(1000)의 외부에 위치하는 서버로부터 데이터를 획득할 수 있다. In operation s3110 , the first processor 1300a may acquire data from an application executed on the device 1000 or from a server located outside the device 1000 .

예를 들면, 제 1 프로세서(1300a)는 디바이스(1000)에 설치된 복수의 어플리케이션으로부터 사용자의 할일 목록을 생성하는 데에 이용되는 데이터를 획득할 수 있다. 획득된 데이터는, 예를 들면, 디바이스(1000)를 통한 통화 내용, 디바이스(1000)를 통해 송수신된 메시지(예를 들면, SMS, MMS, 채팅 메시지, E-mail 등)의 내용, 디바이스(1000)에 녹음된 음성 메모 및 디바이스(1000)에 저장된 텍스트 파일, 사진, 동영상, 사용자 일정 내용, 메모 등에 관한 데이터일 수 있다. 그러나, 데이터의 종류는 이에 한정되지는 않는다.For example, the first processor 1300a may obtain data used to generate the user's to-do list from a plurality of applications installed in the device 1000 . The acquired data may include, for example, the contents of a call through the device 1000 , the contents of messages transmitted/received through the device 1000 (eg, SMS, MMS, chatting message, E-mail, etc.), and the device 1000 . ) may be a voice memo recorded in ) and data related to a text file stored in the device 1000 , a photo, a video, user schedule content, memo, and the like. However, the type of data is not limited thereto.

단계 s3115에서, 제 1 프로세서(1300a)는 획득한 데이터를 제 2 프로세서(1300b)로 전송할 수 있다. In operation s3115, the first processor 1300a may transmit the acquired data to the second processor 1300b.

단계 s3120에서, 제 2 프로세서(1300b)는 획득한 데이터를 데이터 인식 모델에 적용하여 연락처 어플리케이션에 포함된 적어도 하나 이상의 상대방과의 관련성을 추정할 수 있다.In operation s3120, the second processor 1300b may apply the acquired data to the data recognition model to estimate relevance to at least one counterpart included in the contact application.

예를 들어, 데이터 인식 모델은 통화 내용에서 획득한 데이터를 연락처 어플리케이션에 있는 상대방과 관련성이 있는 것으로 추정할 수 있다. 또한, 데이터 인식 모델을 채팅 메시지 내용에 포함된 직급을 가진 사람을 연락처 어플리케이션에 있는 상대방과 관련성이 있는 것으로 추정할 수 있다.For example, the data recognition model may estimate that data obtained from the call content is relevant to the counterpart in the contact application. In addition, the data recognition model may estimate that a person having a position included in the chatting message is related to a counterpart in the contact application.

단계 s3125에서, 제 2 프로세서(1300b)는 획득된 데이터를 데이터 인식 모델에 적용하여 사용자가 수행할 후보 태스크(또는, 태스크)를 추정하는데 이용되는 키워드를 추정할 수 있다. 예를 들어, 제 2 프로세서(1300b)는 획득된 데이터를 키워드를 추정하도록 설정된 데이터 인식 모델에 적용할 수 있다.In operation s3125, the second processor 1300b may estimate a keyword used to estimate a candidate task (or task) to be performed by the user by applying the obtained data to the data recognition model. For example, the second processor 1300b may apply the obtained data to a data recognition model set to estimate a keyword.

단계 s3130에서, 제 2 프로세서(1300b)는 적어도 하나 이상의 키워드를 추정하여 키워드 목록을 생성할 수 있다.In operation s3130, the second processor 1300b may generate a keyword list by estimating at least one or more keywords.

단계 s3135에서, 제 2 프로세서(1300b)는 키워드 목록을 데이터 인식 모델에 적용하여 사용자가 수행할 후보 태스크(또는, 태스크)를 추정할 수 있다. 예를 들어, 제 2 프로세서(1300b)는 키워드 목록을 후보 태스크를 추정하도록 설정된 데이터 인식 모델에 적용할 수 있다. 일 실시예에 따르면, 제 2 프로세서(1300b)는 할 일을 나타내는 문장의 형태가 되도록 후보 태스크를 추정할 수 있다. In operation s3135 , the second processor 1300b may estimate a candidate task (or task) to be performed by the user by applying the keyword list to the data recognition model. For example, the second processor 1300b may apply the keyword list to a data recognition model set to estimate a candidate task. According to an embodiment, the second processor 1300b may estimate the candidate task to be in the form of a sentence indicating a task.

단계 s3140에서, 제 2 프로세서(1300b)는 추정된 후보 태스크를 제 1 프로세서(1300a)로 전송할 수 있다.In operation s3140 , the second processor 1300b may transmit the estimated candidate task to the first processor 1300a.

단계 s3145에서, 제 1 프로세서(1300a)는 수신된 후보 태스크 중 적어도 하나 이상을 포함하는 사용자의 할 일 목록을 생성하고, 디스플레이 등에 표시되도록 제어할 수 있다.In operation s3145, the first processor 1300a may generate a user's to-do list including at least one or more of the received candidate tasks, and control it to be displayed on a display or the like.

단계 s3150에서. 제 2 프로세서(1300b)는 디바이스(1000)의 로그 데이터를 이용하여 할 일 목록에 포함된 태스크의 수행 여부를 추정 할 수 있다. 예를 들어, 태스크가 "마트에서 물 사기" 인 경우, 제 2 프로세서(1300b)는 디바이스(1000) 에 포함된 GPS 어플리케이션을 이용하여 사용자의 위치가 마트의 위치와 동일한지 확인할 수 있고, 디바이스(1000)에 포함된 문자 어플리케이션에 결제 문자가 수신되었는지 확인할 수 있다.in step s3150. The second processor 1300b may estimate whether a task included in the to-do list is performed by using the log data of the device 1000 . For example, if the task is "buy water at the mart", the second processor 1300b may check whether the user's location is the same as the location of the mart using the GPS application included in the device 1000, and the device ( 1000), it is possible to check whether a payment text has been received in the text application included in the text application.

단계 s3155에서, 제 2 프로세서(1300b)는 태스크 완료 여부에 대한 정보를 제 1 프로세서(1300a)로 전송할 수 있다.In operation s3155, the second processor 1300b may transmit information on whether the task is completed to the first processor 1300a.

단계 s3160에서, 제 1 프로세서(1300a)는 태스크 완료 여부에 대한 정보에 따라 할 일 목록을 업데이트 하여 표시할 수 있다. 예를 들어, 제 1 프로세서(1300a)는 할 일이 수행된 것으로 결정되면, 태스크를 삭제할 수 있다. 또한, 제 1 프로세서(1300a)는 할 일이 수행되지 않은 것으로 결정되면, 사용자에게 태스크가 수행되지 않았음을 알리는 알림 정보를 출력할 수 있다.In operation s3160, the first processor 1300a may update and display the to-do list according to the information on whether the task has been completed. For example, when it is determined that the to-do has been performed, the first processor 1300a may delete the task. Also, when it is determined that the to-do is not performed, the first processor 1300a may output notification information informing the user that the task has not been performed.

도 32는 일 실시예에 따른 제 1 프로세서(1300a), 제 2 프로세서(1300b) 및 제 3 프로세서(1300c)가 사용자의 할 일 목록을 관리하는 방법의 흐름도이다.32 is a flowchart of a method of managing a user's to-do list by the first processor 1300a, the second processor 1300b, and the third processor 1300c according to an embodiment.

일 실시예에 따르면, 디바이스(1000)는 제 1 프로세서(1300a), 제 2 프로세서(1300b) 및 제 3 프로세서(1300c)를 포함할 수 있다.According to an embodiment, the device 1000 may include a first processor 1300a , a second processor 1300b , and a third processor 1300c .

단계 s3210에서, 제 1 프로세서(1300a)는 디바이스(1000)에 실행된 어플리케이션 또는 디바이스(1000)의 외부에 위치하는 서버로부터 데이터를 획득할 수 있다.In operation s3210 , the first processor 1300a may acquire data from an application executed on the device 1000 or from a server located outside the device 1000 .

단계 s3215에서, 제 1 프로세서(1300a)는 획득한 데이터를 제 2 프로세서(1300b)로 전송할 수 있다. In operation s3215, the first processor 1300a may transmit the acquired data to the second processor 1300b.

단계 s3220에서, 제 2 프로세서(1300b)는 획득한 데이터를 데이터 인식 모델에 적용하여 연락처 어플리케이션에 포함된 적어도 하나 이상의 상대방과의 관련성을 추정할 수 있다.In operation s3220, the second processor 1300b may apply the acquired data to the data recognition model to estimate relevance with at least one counterpart included in the contact application.

단계 s3225에서, 제 2 프로세서(1300b)는 획득한 데이터를 데이터 인식 모델에 적용하여 사용자가 수행할 후보 태스크(또는, 태스크)를 추정하는데 이용되는 키워드를 추정할 수 있다. 데이터 인식 모델은, 예를 들면, 키워드를 추정하도록 설정된 데이터 인식 모델일 수 있다.In operation s3225, the second processor 1300b may estimate a keyword used to estimate a candidate task (or task) to be performed by the user by applying the obtained data to the data recognition model. The data recognition model may be, for example, a data recognition model configured to estimate keywords.

단계 s3230에서, 제 2 프로세서(1300b)는 적어도 하나 이상의 키워드를 추정하여 키워드 목록을 생성할 수 있다.In operation s3230, the second processor 1300b may generate a keyword list by estimating at least one or more keywords.

단계 s3235에서, 제 2 프로세서(1300b)는 키워드 목록을 데이터 인식 모델에 적용하여 사용자가 수행할 후보 태스크(또는, 태스크)를 추정할 수 있다. 데이터 인식 모델은, 예를 들면, 후보 태스크를 추정하도록 설정된 데이터 인식 모델일 수 있다.In operation s3235 , the second processor 1300b may estimate a candidate task (or task) to be performed by the user by applying the keyword list to the data recognition model. The data recognition model may be, for example, a data recognition model configured to estimate a candidate task.

단계 s3240에서, 제 2 프로세서(1300b)는 생성된 후보 태스크를 제 1 프로세서(1300a)로 전송할 수 있다. In operation s3240, the second processor 1300b may transmit the generated candidate task to the first processor 1300a.

단계 s3245에서, 제 2 프로세서(1300b)는 생성된 후보 태스크를 제 3 프로세서(1300c)로 전송할 수 있다.In operation s3245 , the second processor 1300b may transmit the generated candidate task to the third processor 1300c.

단계 s3250에서, 제 1 프로세서(1300a)는 수신된 후보 태스크 중 적어도 하나 이상을 포함하는 사용자의 할 일 목록을 생성하고, 디스플레이 등에 표시되도록 제어할 수 있다.In operation s3250, the first processor 1300a may generate a user's to-do list including at least one or more of the received candidate tasks, and control it to be displayed on a display or the like.

단계 s3255에서. 제 3 프로세서(1300c)는 디바이스(1000)의 로그 데이터를 이용하여 할 일 목록에 포함된 태스크의 수행 여부를 추정 할 수 있다. 예를 들어, 태스크가 "마트에서 물 사기" 인 경우, 제 3 프로세서(1300c)는 디바이스(1000) 에 포함된 GPS 어플리케이션을 이용하여 사용자의 위치가 마트의 위치와 동일한지 확인할 수 있고, 디바이스(1000)에 포함된 문자 어플리케이션에 결제 문자가 수신되었는지 확인할 수 있다.in step s3255. The third processor 1300c may estimate whether a task included in the to-do list is performed by using the log data of the device 1000 . For example, if the task is "buy water at the mart", the third processor 1300c may check whether the user's location is the same as the location of the mart using the GPS application included in the device 1000, and the device ( 1000), it is possible to check whether a payment text has been received in the text application included in the text application.

단계 s3260에서, 제 3 프로세서(1300c)는 태스크 완료 여부에 대한 정보를 제 1 프로세서(1300a)로 전송할 수 있다.In operation s3260, the third processor 1300c may transmit information on whether the task is completed to the first processor 1300a.

단계 s3265에서, 제 1 프로세서(1300a)는 태스크 수행 여부에 대한 정보를 이용하여 업데이트 된 할일 목록이 표시되도록 디바이스(1000)를 제어할 수 있다. 예를 들어, 제 1 프로세서(1300a)는 할 일이 수행된 것으로 결정되면, 태스크를 삭제할 수 있다. 또한, 제 1 프로세서(1300a)는 할 일이 수행되지 않은 것으로 결정되면, 사용자에게 태스크가 수행되지 않았음을 알리는 알림 정보를 출력할 수 있다.In operation s3265 , the first processor 1300a may control the device 1000 to display an updated to-do list using information on whether a task is performed. For example, when it is determined that the to-do has been performed, the first processor 1300a may delete the task. Also, when it is determined that the to-do is not performed, the first processor 1300a may output notification information informing the user that the task has not been performed.

도 33은 일 실시예에 따른 디바이스가 복수 개의 서버들(2000a, 2000b)을 이용하여 할 일 목록을 관리하는 상황을 설명하기 위한 흐름도이다.33 is a flowchart illustrating a situation in which a device manages a to-do list using a plurality of servers 2000a and 2000b according to an exemplary embodiment.

일 실시예에 따르면, 디바이스(1000)는 제 1 서버(2000a), 제 2 서버(2000b)를 이용하여 할 일 목록을 관리할 수 있다.According to an embodiment, the device 1000 may manage the to-do list using the first server 2000a and the second server 2000b.

일 실시예에 따르면, 서버(2000)는 디바이스()에게 서비스를 제공하는 컴퓨팅 장치일 수 있으며, 예를 들면, PC, 랩탑, 휴대폰, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 가전기기 및 모바일 컴퓨팅 장치일 수 있다. 그러나, 이에 한정되지는 않으면, 서버(2000)는 통신 기능 및 데이터 프로세싱 기능을 구비한 모든 종류의 기기를 포함할 수 있다.According to one embodiment, the server 2000 may be a computing device that provides a service to the device ( ), for example, a PC, a laptop, a mobile phone, a micro server, a global positioning system (GPS) device, an e-book terminal, home appliances and mobile computing devices. However, if not limited thereto, the server 2000 may include any type of device having a communication function and a data processing function.

또한, 디바이스(1000)는 서버(2000)와 네트워크를 통해서 연결될 수 있다. 이 경우, 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 포함할 수 있으며, 디바이스(1000) 및 서버(2000)가 서로 원활하게 통신을 할 수 있도록 하는 포괄적인 의미의 데이터 통신망이며, 유선 인터넷, 무선 인터넷 및 모바일 무선 통신망을 포함할 수 있다.Also, the device 1000 may be connected to the server 2000 through a network. In this case, the network includes a local area network (LAN), a wide area network (WAN), a value added network (VAN), a mobile radio communication network, a satellite communication network, and their mutual It may include a combination, and is a data communication network in a comprehensive sense that enables the device 1000 and the server 2000 to communicate smoothly with each other, and may include a wired Internet, a wireless Internet, and a mobile wireless communication network.

단계 s3310에서, 디바이스(1000)는 디바이스(1000)에 실행된 어플리케이션으로부터 데이터를 획득할 수 있다.In operation s3310 , the device 1000 may acquire data from an application executed on the device 1000 .

단계 s3315에서, 디바이스(1000)는 획득한 데이터를 제 1 서버(2000a)로 전송할 수 있다. In operation s3315 , the device 1000 may transmit the acquired data to the first server 2000a.

단계 s3320에서, 제 1 서버(2000a)는 획득한 데이터를 데이터 인식 모델에 적용하여 연락처 어플리케이션에 포함된 적어도 하나 이상의 상대방과의 관련성을 추정할 수 있다.In operation s3320, the first server 2000a may apply the acquired data to the data recognition model to estimate relevance with at least one counterpart included in the contact application.

단계 s3325에서, 제 1 서버(2000a)는 획득한 데이터를 데이터 인식 모델에 적용하여 사용자가 수행할 후보 태스크(또는, 태스크)를 추정하는데 이용되는 키워드를 결정할 수 있다. 데이터 인식 모델은, 예를 들면, 키워드를 추정하도록 설정된 데이터 인식 모델일 수 있다.In operation s3325, the first server 2000a may determine a keyword used to estimate a candidate task (or task) to be performed by the user by applying the acquired data to the data recognition model. The data recognition model may be, for example, a data recognition model configured to estimate keywords.

단계 s3330에서, 제 1 서버(2000a)는 적어도 하나 이상의 키워드를 추정하여 키워드 목록을 생성할 수 있다.In operation s3330, the first server 2000a may generate a keyword list by estimating at least one or more keywords.

단계 s3335에서, 제 1 서버(2000a)는 키워드 목록을 데이터 인식 모델에 적용하여 사용자가 수행할 후보 태스크(또는, 태스크)를 생성(또는 추정)할 수 있다. 데이터 인식 모델은, 예를 들면, 후보 태스크를 추정하여 생성하도록 설정된 데이터 인식 모델일 수 있다.In operation s3335, the first server 2000a may generate (or estimate) a candidate task (or task) to be performed by the user by applying the keyword list to the data recognition model. The data recognition model may be, for example, a data recognition model configured to estimate and generate a candidate task.

단계 s3340에서, 제 1 서버(2000a)는 생성된 후보 태스크를 디바이스(1000)로 전송할 수 있다. In operation S3340 , the first server 2000a may transmit the generated candidate task to the device 1000 .

단계 s3345에서, 제 1 서버 ()는 생성된 후보 태스크를 제 2 서버(2000b)로 전송할 수 있다.In step s3345, the first server ( ) may transmit the generated candidate task to the second server (2000b).

단계 s3350에서, 디바이스(1000)는 수신된 후보 태스크 중 적어도 하나 이상을 포함하는 사용자의 할 일 목록을 생성하고, 디스플레이 등에 표시되도록 제어할 수 있다.In operation s3350, the device 1000 may generate a user's to-do list including at least one or more of the received candidate tasks, and control it to be displayed on a display or the like.

단계 s3355에서. 제 2 서버(2000b)는 디바이스(1000)의 로그 데이터를 이용하여 할 일 목록에 포함된 태스크의 수행 여부를 추정 할 수 있다. 예를 들어, 태스크가 "마트에서 물 사기" 인 경우, 제 2 서버(2000b)는 디바이스(1000)의 GPS 정보를 수신하여 사용자의 위치가 마트의 위치와 동일한지 확인할 수 있고, 디바이스(1000)의 문자 어플리케이션과 관련된 데이터를 수신하여 디바이스(1000)에 결제 문자가 수신되었는지 확인할 수 있다.in step s3355. The second server 2000b may estimate whether a task included in the to-do list is performed by using the log data of the device 1000 . For example, if the task is "buy water at the mart", the second server 2000b may receive the GPS information of the device 1000 and check whether the user's location is the same as the location of the mart, and the device 1000 By receiving data related to the text application of

단계 s3360에서, 제 2 서버(2000b)는 태스크 완료 여부에 대한 정보를 디바이스(1000)로 전송할 수 있다.In operation s3360 , the second server 2000b may transmit information on whether the task is completed to the device 1000 .

단계 s3365에서, 디바이스(1000)는 태스크 수행 여부에 대한 정보를 이용하여 업데이트 된 할일 목록을 표시할 수 있다. 예를 들어, 디바이스(1000)는 할 일이 수행된 것으로 결정되면, 태스크를 삭제할 수 있다. 또한, 디바이스(1000)는 할 일이 수행되지 않은 것으로 결정되면, 사용자에게 태스크가 수행되지 않았음을 알리는 알림 정보를 출력할 수 있다.In operation s3365, the device 1000 may display an updated to-do list using information on whether the task is performed. For example, when it is determined that the to-do has been performed, the device 1000 may delete the task. Also, when it is determined that the to-do is not performed, the device 1000 may output notification information informing the user that the task is not performed.

도 34는 일 실시예에 따른 디바이스가 제 1 프로세서(1300a), 제 2 프로세서(1300b) 및 서버(2000)를 이용하여 할 일 목록을 관리하는 상황을 설명하기 위한 흐름도이다.34 is a flowchart illustrating a situation in which a device manages a to-do list using the first processor 1300a, the second processor 1300b, and the server 2000 according to an embodiment.

단계 s3410에서, 제 1 프로세서(1300a)는 디바이스(1000)에 실행된 어플리케이션으로부터 데이터를 획득할 수 있다.In operation s3410 , the first processor 1300a may acquire data from an application executed in the device 1000 .

단계 s3415에서, 제 1 프로세서(1300a)는 획득한 데이터를 제 2 프로세서(1300b)로 전송할 수 있다. In operation s3415, the first processor 1300a may transmit the acquired data to the second processor 1300b.

단계 s3420에서, 제 2 프로세서(1300b)는 획득한 데이터를 데이터 인식 모델에 적용하여 연락처 어플리케이션에 포함된 적어도 하나 이상의 상대방과의 관련성을 추정할 수 있다.In operation s3420, the second processor 1300b may apply the acquired data to the data recognition model to estimate relevance with at least one counterpart included in the contact application.

단계 s3425에서, 제 2 프로세서(1300b)는 획득한 데이터를 데이터 인식 모델에 적용하여 사용자가 수행할 후보 태스크(또는, 태스크)를 추정하는데 이용되는 키워드를 추정할 수 있다. 데이터 인식 모델은, 예를 들면, 키워드를 추정하도록 설정된 데이터 인식 모델일 수 있다.In operation s3425, the second processor 1300b may estimate a keyword used to estimate a candidate task (or task) to be performed by the user by applying the obtained data to the data recognition model. The data recognition model may be, for example, a data recognition model configured to estimate keywords.

단계 s3430에서, 제 2 프로세서(1300b)는 적어도 하나 이상의 키워드를 추정하여 키워드 목록을 생성할 수 있다.In operation s3430, the second processor 1300b may generate a keyword list by estimating at least one or more keywords.

단계 s3435에서, 제 2 프로세서(1300b)는 키워드 목록을 데이터 인식 모델에 적용하여 사용자가 수행할 후보 태스크(또는, 태스크)를 추정할 수 있다. 데이터 인식 모델은, 예를 들면, 후보 태스크를 추정하도록 설정된 데이터 인식 모델일 수 있다.In operation s3435 , the second processor 1300b may estimate a candidate task (or task) to be performed by the user by applying the keyword list to the data recognition model. The data recognition model may be, for example, a data recognition model configured to estimate a candidate task.

단계 s3440에서, 제 2 프로세서(1300b)는 생성된 후보 태스크를 제 1 프로세서(1300a)로 전송할 수 있다. In operation s3440 , the second processor 1300b may transmit the generated candidate task to the first processor 1300a.

단계 s3445에서, 제 2 프로세서(1300b)는 생성된 후보 태스크를 서버(2000)로 전송할 수 있다.In operation s3445 , the second processor 1300b may transmit the generated candidate task to the server 2000 .

단계 s3450에서, 제 1 프로세서(1300a)는 수신된 후보 태스크 중 적어도 하나 이상을 포함하는 사용자의 할 일 목록을 생성하고, 디스플레이 등에 표시되도록 제어할 수 있다.In operation S3450, the first processor 1300a may generate a user's to-do list including at least one or more of the received candidate tasks, and may control the to-do list to be displayed on a display or the like.

단계 s3455에서. 제 2 프로세서(1300b)는 할 일 목록에 포함된 태스크의 수행 여부를 모니터링 할 수 있다. 예를 들어, 태스크가 "마트에서 물 사기" 인 경우, 제 3 프로세서(1300c)는 디바이스(1000)에 포함된 GPS 어플리케이션을 이용하여 사용자의 위치가 마트의 위치와 동일한지 확인할 수 있고, 디바이스(1000)에 포함된 문자 어플리케이션에 결제 문자가 수신되었는지 확인할 수 있다.in step s3455. The second processor 1300b may monitor whether a task included in the to-do list is performed. For example, if the task is "buy water at the mart", the third processor 1300c may check whether the user's location is the same as the location of the mart using the GPS application included in the device 1000, and the device ( 1000), it is possible to check whether a payment text has been received in the text application included in the text application.

단계 s3460에서, 제 2 프로세서(1300b)는 태스크 완료 여부에 대한 정보를 제 1 프로세서(1300a)로 전송할 수 있다.In operation s3460, the second processor 1300b may transmit information on whether the task is completed to the first processor 1300a.

단계 s3465에서, 제 1 프로세서(1300a)는 모니터링 결과에 따라 할 일 목록을 업데이트 할 수 있다. 예를 들어, 제 1 프로세서(1300a)는 할 일이 수행된 것으로 결정되면, 태스크를 삭제할 수 있다. 또한, 제 1 프로세서(1300a)는 할 일이 수행되지 않은 것으로 결정되면, 사용자에게 태스크가 수행되지 않았음을 알리는 알림 정보를 출력할 수 있다.In step s3465, the first processor 1300a may update the to-do list according to the monitoring result. For example, when it is determined that the to-do has been performed, the first processor 1300a may delete the task. Also, when it is determined that the to-do is not performed, the first processor 1300a may output notification information informing the user that the task has not been performed.

단계 s3470에서, 서버(2000)는 디바이스(1000)의 환경 정보에 기반하여 대체 태스크를 선정할 수 있다. 예를 들면, "백화점에서 선물사기" 일정이 태스크 인 경우, 서버(2000)는 별도의 서비스 서버(예를 들면, 백화점 서버)에서 태스크 실행일자에 백화점이 휴무인 정보를 획득할 수 있다. In operation s3470 , the server 2000 may select an alternative task based on the environment information of the device 1000 . For example, when the schedule of “buy a gift at a department store” is a task, the server 2000 may obtain information that a department store is closed on a task execution date from a separate service server (eg, a department store server).

이 경우, 서버(2000)는 서버(2000)에 수집된 다양한 태스크들을 클러스터링한 데이터를 이용하여 "백화점에서 선물사기"와 동일한 클러스터에 속한 태스크 중에서 "백화점 어플리케이션을 이용하여 쇼핑하기"와 같은 대체 태스크를 선정할 수 있다. In this case, the server 2000 uses data obtained by clustering various tasks collected in the server 2000 to perform an alternative task such as “shopping using a department store application” among tasks belonging to the same cluster as “buying a gift at a department store”. can be selected.

단계 s3475에서, 서버(2000)는 선정된 대체 태스크를 제 1 프로세서(1300a)로 전송할 수 있다.In operation s3475, the server 2000 may transmit the selected replacement task to the first processor 1300a.

단계 s3480에서. 제 1 프로세서(1300a)는 대체 태스크를 반영하여 할일 목록을 변경하고, 변경된 할일 목록이 디스플레이에 표시되도록 제어할 수 있다.in step s3480. The first processor 1300a may change the to-do list by reflecting the replacement task, and control the changed to-do list to be displayed on the display.

일부 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다. Some embodiments may also be implemented in the form of a recording medium containing instructions executable by a computer, such as program modules executed by a computer. Computer-readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. In addition, computer-readable media may include both computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Communication media typically includes computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, or other transport mechanism, and includes any information delivery media.

또한, 개시된 실시예들은 컴퓨터로 읽을 수 있는 저장 매체(computer-readable storage media)에 저장된 명령어를 포함하는 S/W 프로그램으로 구현될 수 있다. In addition, the disclosed embodiments may be implemented as a S/W program including instructions stored in a computer-readable storage medium.

컴퓨터는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 개시된 실시예에 따른 동작이 가능한 장치로서, 개시된 실시예들에 따른 디바이스를 포함할 수 있다.A computer may include a device according to the disclosed embodiments as an apparatus capable of calling a stored instruction from a storage medium and operating according to the called instruction according to the disclosed embodiment.

컴퓨터로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장 매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다. The computer-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' means that the storage medium does not include a signal and is tangible, and does not distinguish that data is semi-permanently or temporarily stored in the storage medium.

또한, 개시된 실시예들에 따른 제어 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.In addition, the control method according to the disclosed embodiments may be provided included in a computer program product (computer program product). Computer program products may be traded between sellers and buyers as commodities.

컴퓨터 프로그램 제품은 S/W 프로그램, S/W 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 디바이스의 제조사 또는 전자 마켓(예, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 S/W 프로그램 형태의 상품(예, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, S/W 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 SW 프로그램을 임시적으로 저장하는 중계 서버의 저장 매체가 될 수 있다.The computer program product may include a S/W program and a computer-readable storage medium in which the S/W program is stored. For example, the computer program product may include a product (eg, a downloadable app) in the form of a S/W program distributed electronically through a device manufacturer or an electronic market (eg, Google Play Store, App Store). . For electronic distribution, at least a portion of the S/W program may be stored in a storage medium or may be temporarily generated. In this case, the storage medium may be a server of a manufacturer, a server of an electronic market, or a storage medium of a relay server temporarily storing a SW program.

컴퓨터 프로그램 제품은, 서버 및 디바이스로 구성되는 시스템에서, 서버의 저장 매체 또는 디바이스의 저장 매체를 포함할 수 있다. 또는, 서버 또는 디바이스와 통신 연결되는 제 3 장치(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제 3 장치의 저장 매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 디바이스 또는 제 3 장치로 전송되거나, 제 3 장치로부터 디바이스로 전송되는 S/W 프로그램 자체를 포함할 수 있다.The computer program product, in a system consisting of a server and a device, may include a storage medium of a server or a storage medium of a device. Alternatively, if there is a third device (eg, a smart phone) that is communicatively connected to the server or device, the computer program product may include a storage medium of the third device. Alternatively, the computer program product may include the S/W program itself transmitted from the server to the device or the third apparatus, or transmitted from the third apparatus to the device.

이 경우, 서버, 디바이스 및 제 3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 디바이스 및 제 3 장치 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.In this case, one of the server, the device and the third apparatus may execute the computer program product to perform the method according to the disclosed embodiments. Alternatively, two or more of a server, a device, and a third apparatus may execute a computer program product to distribute the method according to the disclosed embodiments.

예를 들면, 서버(예로, 클라우드 서버 또는 인공 지능 서버 등)가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 디바이스가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다. For example, a server (eg, a cloud server or an artificial intelligence server, etc.) may execute a computer program product stored in the server to control a device communicatively connected with the server to perform the method according to the disclosed embodiments.

또 다른 예로, 제 3 장치가 컴퓨터 프로그램 제품을 실행하여, 제 3 장치와 통신 연결된 디바이스가 개시된 실시예에 따른 방법을 수행하도록 제어할 수 있다. 제 3 장치가 컴퓨터 프로그램 제품을 실행하는 경우, 제 3 장치는 서버로부터 컴퓨터 프로그램 제품을 다운로드하고, 다운로드 된 컴퓨터 프로그램 제품을 실행할 수 있다. 또는, 제 3 장치는 프리로드 된 상태로 제공된 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수도 있다.As another example, the third apparatus may execute a computer program product to control a device communicatively connected with the third apparatus to perform the method according to the disclosed embodiment. When the third device executes the computer program product, the third device may download the computer program product from the server and execute the downloaded computer program product. Alternatively, the third device may execute the computer program product provided in a preloaded state to perform the method according to the disclosed embodiments.

또한, 본 명세서에서, "부"는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.Also, in this specification, "unit" may be a hardware component such as a processor or circuit, and/or a software component executed by a hardware component such as a processor.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The foregoing description of the present invention is for illustration, and those of ordinary skill in the art to which the present invention pertains can understand that it can be easily modified into other specific forms without changing the technical spirit or essential features of the present invention. will be. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. For example, each component described as a single type may be implemented in a distributed manner, and likewise components described as distributed may also be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is indicated by the following claims rather than the above detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present invention. do.

Claims (21)

사용자의 할일 목록(To Do List)을 제공하는 디바이스에 있어서,
외부 디바이스와 통신하는 통신부;
디스플레이; 및
프로세서를 포함하되, 상기 프로세서는,
상기 디스플레이에서 실행된 제1 어플리케이션에 의해 획득된 제1 데이터에 기초하여, 상기 할일 목록 내의 상기 사용자가 수행할 적어도 하나의 태스크를 결정하는데 이용되는 적어도 하나의 제1 키워드를 결정하고,
상기 적어도 하나의 제1 키워드와 관련된 제2 어플리케이션으로부터 획득된 제2 데이터에 기초하여, 적어도 하나의 제2 키워드를 결정하고,
상기 결정된 적어도 하나의 제1 키워드 및 상기 결정된 적어도 하나의 제2 키워드를 포함하는 키워드 목록(keyword list)을 표시하도록 상기 디스플레이를 제어하고,
상기 키워드 목록 내의 상기 적어도 하나의 제1 키워드 및 상기 적어도 하나의 제2 키워드 중 적어도 하나의 키워드를 선택하는 입력을 수신하고,
상기 선택된 적어도 하나의 키워드에 기초하여, 상기 할일 목록에서 상기 적어도 하나의 태스크를 자동으로 생성하고,
상기 제1 어플리케이션 및 상기 제2 어플리케이션과 상이한 제3 어플리케이션에 의해 획득된 제3 데이터에 기초하여, 상기 할일 목록의 상기 적어도 하나의 태스크의 적어도 일부를 삭제 및 교체하기 위한 적어도 하나의 대체 태스크를 결정하고,
상기 적어도 하나의 대체 태스크를 이용하여, 상기 적어도 하나의 태스크의 적어도 일부를 삭제 및 교체함으로써, 상기 할일 목록을 업데이트하고,
상기 업데이트된 할일 목록을 출력하도록 상기 디스플레이를 제어하는,
디바이스.
In a device that provides a user's to-do list (To Do List),
a communication unit for communicating with an external device;
display; and
A processor comprising:
determining at least one first keyword used to determine at least one task to be performed by the user in the to-do list based on first data obtained by a first application executed on the display;
determining at least one second keyword based on second data obtained from a second application related to the at least one first keyword;
controlling the display to display a keyword list including the determined at least one first keyword and the determined at least one second keyword;
receiving an input for selecting at least one keyword among the at least one first keyword and the at least one second keyword in the keyword list;
automatically create the at least one task from the to-do list based on the selected at least one keyword,
Determine at least one replacement task for deleting and replacing at least a portion of the at least one task of the to-do list based on third data obtained by the first application and a third application different from the second application do,
updating the to-do list by using the at least one replacement task to delete and replace at least a portion of the at least one task;
controlling the display to output the updated to-do list,
device.
제1항에 있어서,
상기 프로세서는, 상기 디스플레이를 제어함으로써 상기 키워드 목록을 상기 실행된 제1 어플리케이션의 실행 화면 상에 중첩하여 표시하는, 디바이스.
According to claim 1,
The processor, by controlling the display, superimposes and displays the keyword list on the execution screen of the executed first application, the device.
제1항에 있어서,
상기 제1 어플리케이션은, 상기 외부 디바이스와의 커뮤니케이션을 위한 채팅 어플리케이션이며, 상기 적어도 하나의 제1 키워드는 상기 디바이스와 상기 외부 디바이스 간에 송수신되는 텍스트로부터 추출되는, 디바이스.
According to claim 1,
The first application is a chatting application for communication with the external device, and the at least one first keyword is extracted from text transmitted and received between the device and the external device.
제1항에 있어서,
상기 프로세서는, 상기 키워드 목록에서 제1 아이템과 관련된 제1 키워드를 선택하는 입력을 수신하고, 상기 선택된 제1 키워드에 기초하여 상기 제1 아이템에 대한 적어도 하나의 후보 태스크를 결정하고, 상기 디스플레이를 제어함으로써 상기 결정된 적어도 하나의 후보 태스크에 대한 후보 태스크 목록을 표시하는, 디바이스.
According to claim 1,
The processor receives an input for selecting a first keyword related to a first item from the keyword list, determines at least one candidate task for the first item based on the selected first keyword, and performs the display. Displaying a list of candidate tasks for the determined at least one candidate task by controlling.
제4항에 있어서,
상기 프로세서는, 상기 선택된 제1 키워드, 상기 디바이스에 설치된 적어도 하나의 어플리케이션에 의해 획득된 상기 제1 키워드와 관련된 데이터 및 상기 사용자가 가입된 서비스 제공 서버로부터 획득된 상기 제1 키워드와 관련된 데이터의 전부 또는 일부를 조합하여, 상기 제1 아이템에 대한 적어도 하나의 후보 태스크를 결정하는, 디바이스.
5. The method of claim 4,
The processor includes all of the selected first keyword, data related to the first keyword acquired by at least one application installed in the device, and data related to the first keyword acquired from a service providing server to which the user is subscribed or some combination to determine at least one candidate task for the first item.
제4항에 있어서,
상기 프로세서는, 상기 디스플레이를 제어함으로써 상기 후보 태스크 목록을 편집하기 위한 GUI를 표시하는, 디바이스.
5. The method of claim 4,
wherein the processor displays a GUI for editing the candidate task list by controlling the display.
제4항에 있어서,
상기 프로세서는, 상기 후보 태스크 목록에 기초하여, 적어도 하나의 메인 태스크 및 상기 메인 태스크에 종속된 적어도 하나의 서브 태스크를 포함하는 상기 할일 목록을 생성하는, 디바이스.
5. The method of claim 4,
The processor is configured to generate the to-do list including at least one main task and at least one sub-task dependent on the main task, based on the candidate task list.
삭제delete 제1항에 있어서,
상기 프로세서는, 상기 제3 어플리케이션에 의해 획득된 제3 데이터 및 상기 사용자가 가입된 서비스 제공 서버로부터 획득된 제4 데이터에 기초하여, 상기 적어도 하나의 대체 태스크를 결정하고, 상기 디스플레이를 제어함으로써 상기 적어도 하나의 대체 태스크를 표시하는, 디바이스.
According to claim 1,
The processor is configured to determine the at least one replacement task based on the third data obtained by the third application and the fourth data obtained from the service providing server to which the user is subscribed, and control the display. A device indicating at least one alternate task.
제1항에 있어서,
상기 프로세서는, 상기 할일 목록 내의 상기 적어도 하나의 태스크가 수행되었는지를 판단하는데 이용되는 조건 정보를 획득하고, 상기 조건 정보에 기초하여, 상기 할일 목록 내의 상기 적어도 하나의 태스크가 수행되었는지를 모니터링하는, 디바이스.
According to claim 1,
The processor obtains condition information used to determine whether the at least one task in the to-do list has been performed, and monitors whether the at least one task in the to-do list is performed based on the condition information, device.
제10항에 있어서,
상기 프로세서는, 상기 모니터링 결과에 기초하여, 상기 할일 목록 내의 태스크를 업데이트하는, 디바이스.
11. The method of claim 10,
The processor is configured to update the task in the to-do list based on the monitoring result.
디바이스가 사용자의 할일 목록을 제공하는 방법에 있어서,
상기 디바이스의 디스플레이에서 실행된 제1 어플리케이션으로부터 상기 할일 목록을 생성하는데 이용되는 제1 데이터를 획득하는 단계;
상기 획득된 제1 데이터에 기초하여, 상기 할일 목록 내의 상기 사용자가 수행할 적어도 하나의 태스크를 결정하는데 이용되는 적어도 하나의 제1 키워드를 결정하는 단계;
상기 적어도 하나의 제1 키워드와 관련된 제2 어플리케이션으로부터 획득된 제2 데이터에 기초하여, 적어도 하나의 제2 키워드를 결정하는 단계;
상기 결정된 적어도 하나의 제1 키워드 및 상기 결정된 적어도 하나의 제2 키워드를 포함하는 키워드 목록을 표시하는 단계;
상기 키워드 목록 내의 상기 적어도 하나의 제1 키워드 및 상기 적어도 하나의 제2 키워드 중 적어도 하나의 키워드를 선택하는 입력을 수신하는 단계;
상기 선택된 적어도 하나의 키워드에 기초하여, 상기 할일 목록에서 상기 적어도 하나의 태스크를 자동으로 생성하는 단계;
상기 제1 어플리케이션 및 상기 제2 어플리케이션과 상이한 제3 어플리케이션에 의해 획득된 제3 데이터에 기초하여, 상기 할일 목록의 상기 적어도 하나의 태스크의 적어도 일부를 삭제 및 교체하기 위한 적어도 하나의 대체 태스크를 결정하는 단계;
상기 적어도 하나의 대체 태스크를 이용하여, 상기 적어도 하나의 태스크의 적어도 일부를 삭제 및 교체함으로써, 상기 할일 목록을 업데이트하는 단계; 및
상기 업데이트된 할일 목록을 출력하는 단계를 포함하는, 방법.
A method for a device to provide a user's to-do list, the method comprising:
acquiring first data used to generate the to-do list from a first application executed on a display of the device;
determining, based on the obtained first data, at least one first keyword used to determine at least one task to be performed by the user in the to-do list;
determining at least one second keyword based on second data obtained from a second application related to the at least one first keyword;
displaying a keyword list including the determined at least one first keyword and the determined at least one second keyword;
receiving an input for selecting at least one keyword among the at least one first keyword and the at least one second keyword in the keyword list;
automatically generating the at least one task from the to-do list based on the selected at least one keyword;
Determine at least one replacement task for deleting and replacing at least a portion of the at least one task of the to-do list based on third data obtained by the first application and a third application different from the second application to do;
updating the to-do list by using the at least one replacement task to delete and replace at least a portion of the at least one task; and
and outputting the updated to-do list.
제12항에 있어서,
상기 키워드 목록을 표시하는 단계는, 상기 키워드 목록을 상기 실행된 제1 어플리케이션의 실행 화면 상에 중첩하여 표시하는 단계를 포함하는, 방법.
13. The method of claim 12,
The displaying of the keyword list includes overlapping the keyword list on an execution screen of the executed first application and displaying the displayed keyword list.
제12항에 있어서, 상기 방법은,
상기 키워드 목록에서 제1 아이템과 관련된 제1 키워드를 선택하는 입력을 수신하는 단계;
상기 선택된 제1 키워드에 기초하여 상기 제1 아이템에 대한 적어도 하나의 후보 태스크를 결정하는 단계; 및
상기 결정된 적어도 하나의 후보 태스크에 대한 후보 태스크 목록을 표시하는 단계를 더 포함하는, 방법.
13. The method of claim 12, wherein the method comprises:
receiving an input for selecting a first keyword related to a first item from the keyword list;
determining at least one candidate task for the first item based on the selected first keyword; and
The method further comprising the step of displaying a list of candidate tasks for the determined at least one candidate task.
제14항에 있어서,
상기 후보 태스크 목록에 기초하여, 적어도 하나의 메인 태스크 및 상기 메인 태스크에 종속된 적어도 하나의 서브 태스크를 포함하는 상기 할일 목록을 생성하는 단계를 더 포함하는, 방법.
15. The method of claim 14,
The method further comprising: based on the candidate task list, generating the to-do list including at least one main task and at least one sub-task dependent on the main task.
제12항에 있어서, 상기 적어도 하나의 대체 태스크를 결정하는 단계는,
상기 제3 어플리케이션에 의해 획득된 제3 데이터 및 상기 사용자가 가입된 서비스 제공 서버로부터 획득된 제4 데이터에 기초하여, 상기 적어도 하나의 대체 태스크를 결정하는 단계; 및
상기 적어도 하나의 대체 태스크를 표시하는 단계를 포함하는, 방법.
13. The method of claim 12, wherein determining the at least one replacement task comprises:
determining the at least one replacement task based on third data obtained by the third application and fourth data obtained from a service providing server to which the user is subscribed; and
and indicating the at least one alternate task.
제12항에 있어서,
상기 할일 목록 내의 상기 적어도 하나의 태스크가 수행되었는지를 판단하는데 이용되는 조건 정보를 획득하는 단계; 및
상기 조건 정보에 기초하여, 상기 할일 목록 내의 상기 적어도 하나의 태스크가 수행되었는지를 모니터링하는 단계를 더 포함하는, 방법.
13. The method of claim 12,
obtaining condition information used to determine whether the at least one task in the to-do list has been performed; and
The method further comprising: monitoring whether the at least one task in the to-do list is performed based on the condition information.
삭제delete 삭제delete 디바이스가 사용자의 할일 목록을 제공하는 방법을 실행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체에 있어서, 상기 방법은,
상기 디바이스의 디스플레이에서 실행된 제1 어플리케이션으로부터 상기 할일 목록을 생성하는데 이용되는 제1 데이터를 획득하는 단계;
상기 획득된 제1 데이터에 기초하여, 상기 할일 목록 내의 상기 사용자가 수행할 적어도 하나의 태스크를 결정하는데 이용되는 적어도 하나의 제1 키워드를 결정하는 단계;
상기 적어도 하나의 제1 키워드와 관련된 제2 어플리케이션으로부터 획득된 제2 데이터에 기초하여, 적어도 하나의 제2 키워드를 결정하는 단계;
상기 결정된 적어도 하나의 제1 키워드 및 상기 결정된 적어도 하나의 제2 키워드를 포함하는 키워드 목록을 표시하는 단계;
상기 키워드 목록 내의 상기 적어도 하나의 제1 키워드 및 상기 적어도 하나의 제2 키워드 중 적어도 하나의 키워드를 선택하는 입력을 수신하는 단계;
상기 선택된 적어도 하나의 키워드에 기초하여, 상기 할일 목록에서 상기 적어도 하나의 태스크를 자동으로 생성하는 단계;
상기 제1 어플리케이션 및 상기 제2 어플리케이션과 상이한 제3 어플리케이션에 의해 획득된 제3 데이터에 기초하여, 상기 할일 목록의 상기 적어도 하나의 태스크의 적어도 일부를 삭제 및 교체하기 위한 적어도 하나의 대체 태스크를 결정하는 단계;
상기 적어도 하나의 대체 태스크를 이용하여, 상기 적어도 하나의 태스크의 적어도 일부를 삭제 및 교체함으로써, 상기 할일 목록을 업데이트하는 단계; 및
상기 업데이트된 할일 목록을 출력하는 단계를 포함하는, 컴퓨터 판독 가능 기록 매체.
A computer-readable recording medium containing a program for executing a method for a device to provide a user's to-do list, the method comprising:
acquiring first data used to generate the to-do list from a first application executed on a display of the device;
determining, based on the obtained first data, at least one first keyword used to determine at least one task to be performed by the user in the to-do list;
determining at least one second keyword based on second data obtained from a second application related to the at least one first keyword;
displaying a keyword list including the determined at least one first keyword and the determined at least one second keyword;
receiving an input for selecting at least one keyword among the at least one first keyword and the at least one second keyword in the keyword list;
automatically generating the at least one task from the to-do list based on the selected at least one keyword;
Determine at least one replacement task for deleting and replacing at least a portion of the at least one task of the to-do list based on third data obtained by the first application and a third application different from the second application to do;
updating the to-do list by using the at least one replacement task to delete and replace at least a portion of the at least one task; and
Comprising the step of outputting the updated to-do list, a computer-readable recording medium.
삭제delete
KR1020170139545A 2016-12-23 2017-10-25 System and method for providing to-do-list of user KR102458663B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/KR2017/015234 WO2018117685A1 (en) 2016-12-23 2017-12-21 System and method of providing to-do list of user
EP17883846.2A EP3552163A4 (en) 2016-12-23 2017-12-21 System and method of providing to-do list of user
CN201711408904.8A CN108241520B (en) 2016-12-23 2017-12-22 System and method for providing to-do list of user
US15/852,361 US11295275B2 (en) 2016-12-23 2017-12-22 System and method of providing to-do list of user

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20160177948 2016-12-23
KR1020160177948 2016-12-23

Publications (2)

Publication Number Publication Date
KR20180074567A KR20180074567A (en) 2018-07-03
KR102458663B1 true KR102458663B1 (en) 2022-10-25

Family

ID=62918532

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170139545A KR102458663B1 (en) 2016-12-23 2017-10-25 System and method for providing to-do-list of user

Country Status (2)

Country Link
EP (1) EP3552163A4 (en)
KR (1) KR102458663B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102591859B1 (en) 2023-05-20 2023-10-23 주성주 Smart member certificate

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11281439B2 (en) * 2018-07-25 2022-03-22 Avaya Inc. System and method for creating a contextualized after call workflow
KR102606287B1 (en) 2018-09-19 2023-11-27 삼성전자주식회사 Device and method for providing translation information of application
KR102418111B1 (en) * 2019-05-12 2022-07-08 이상령 Apparatus and method for creating custom requests and providing rewards for requests
CN111198986B (en) * 2019-12-17 2024-04-05 中国平安人寿保险股份有限公司 Information transmission method, device, electronic equipment and storage medium
CN113762903A (en) * 2020-06-02 2021-12-07 云米互联科技(广东)有限公司 Backlog processing method, household electrical appliance and storage medium
CN113442838A (en) * 2021-01-11 2021-09-28 安波福电子(苏州)有限公司 Vehicle-mounted central control system and use method thereof
CN113256238B (en) * 2021-04-21 2024-03-19 维沃移动通信有限公司 Reminding method and device and electronic equipment
CN113434678B (en) * 2021-06-28 2024-03-19 平安银行股份有限公司 Item type-based item reminding method, device, equipment and storage medium
KR102556875B1 (en) * 2022-05-26 2023-07-19 주식회사 더플릭 Device, method and program for event planning and media production service provision

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130007648A1 (en) * 2011-06-28 2013-01-03 Microsoft Corporation Automatic Task Extraction and Calendar Entry

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496500B2 (en) * 2004-03-01 2009-02-24 Microsoft Corporation Systems and methods that determine intent of data and respond to the data based on the intent
DE202006021197U1 (en) * 2005-09-26 2013-08-08 Research In Motion Limited Schedule appointments from electronic messages
US8037021B2 (en) * 2007-06-10 2011-10-11 Apple Inc. Calendaring techniques and interfaces
US20110145822A1 (en) * 2009-12-10 2011-06-16 The Go Daddy Group, Inc. Generating and recommending task solutions
US9514448B2 (en) * 2012-12-28 2016-12-06 Intel Corporation Comprehensive task management
US9626658B2 (en) * 2013-03-15 2017-04-18 Thomas W. Mustaine System and method for generating a task list
WO2014176750A1 (en) * 2013-04-28 2014-11-06 Tencent Technology (Shenzhen) Company Limited Reminder setting method, apparatus and system
KR102053196B1 (en) 2013-05-21 2019-12-06 엘지전자 주식회사 Mobile terminal and control method thereof
KR102047500B1 (en) * 2014-11-27 2019-11-21 삼성전자주식회사 System and method for providing to-do-list of user
EP3040915A1 (en) * 2014-12-29 2016-07-06 Nokia Technologies OY Method and apparatus for identifying trends

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130007648A1 (en) * 2011-06-28 2013-01-03 Microsoft Corporation Automatic Task Extraction and Calendar Entry

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102591859B1 (en) 2023-05-20 2023-10-23 주성주 Smart member certificate

Also Published As

Publication number Publication date
EP3552163A1 (en) 2019-10-16
EP3552163A4 (en) 2019-10-16
KR20180074567A (en) 2018-07-03

Similar Documents

Publication Publication Date Title
KR102458663B1 (en) System and method for providing to-do-list of user
CN108241520B (en) System and method for providing to-do list of user
CN109964271B (en) Apparatus and method for providing response message to voice input of user
KR102428920B1 (en) Image display device and operating method for the same
US20190042079A1 (en) Electronic device and method for providing search result thereof
KR102047500B1 (en) System and method for providing to-do-list of user
KR102426435B1 (en) Apparatus and method for providing a sentence based on a user input
US11475218B2 (en) Apparatus and method for providing sentence based on user input
KR102628037B1 (en) Method and apparatus for providing sales information of goods
KR20180055708A (en) Device and method for image processing
US11481551B2 (en) Device and method for providing recommended words for character input
KR102628042B1 (en) Device and method for recommeding contact information
US11941683B2 (en) Systems and methods for data ingestion and generation of task recommendations in task facilitation services
CN116320148A (en) Electronic device and method for controlling the same
CN110998507B (en) Electronic device and method for providing search results
US20210004702A1 (en) System and method for generating information for interaction with a user
US20230048441A1 (en) Representative task generation and curation
US11893063B2 (en) Electronic device and operation method thereof
KR20190046472A (en) Electronic device, server and method thereof for providing guide information regarding trouble occurred at the electronic device

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