KR101770527B1 - Automatic task classification based upon machine learning - Google Patents

Automatic task classification based upon machine learning Download PDF


Publication number
KR101770527B1 KR1020167001061A KR20167001061A KR101770527B1 KR 101770527 B1 KR101770527 B1 KR 101770527B1 KR 1020167001061 A KR1020167001061 A KR 1020167001061A KR 20167001061 A KR20167001061 A KR 20167001061A KR 101770527 B1 KR101770527 B1 KR 101770527B1
South Korea
Prior art keywords
Prior art date
Application number
Other languages
Korean (ko)
Other versions
KR20160053905A (en
형식 신
로날드 수지탄
사얀데브 무커지
홍-펭 인
양 순
요시카즈 아키나가
페로 수바식
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
Priority to US201361909992P priority Critical
Priority to US61/909,992 priority
Application filed by 가부시키가이샤 엔티티 도코모 filed Critical 가부시키가이샤 엔티티 도코모
Priority to PCT/US2014/067475 priority patent/WO2015081128A1/en
Publication of KR20160053905A publication Critical patent/KR20160053905A/en
Application granted granted Critical
Publication of KR101770527B1 publication Critical patent/KR101770527B1/en




    • G06N20/00Machine learning
    • G06F15/18
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • G06F17/30654
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06N99/005
    • G10L15/00Speech recognition
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3347Query execution using vector based model
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • G10L2015/0631Creating reference templates; Clustering
    • G10L2015/0633Creating reference templates; Clustering using lexical or orthographic knowledge sources


다음의 사용자 요청에 대해 태스크 카테고리들 중 유력한 하나를 결정하기 위해 다음의 사용자 요청에 적용될 수 있는 태스크 분류기 모델을 개발하기 위해 기계학습 알고리즘으로 복수의 태스크 카테고리들 각각에서 사람이 생성한 요청들의 훈련 데이터베이스를 처리하는 시스템 및 방법이 제공된다. Of the following user requested task categories of requests are generated people from each of the plurality of task categories as machine learning algorithms to develop the following tasks classifier model that can be applied to a user's request in order to determine the dominant one for the training database a system and method for processing is provided.



관련 출원 Related Applications

이 출원은 2013년 11월 27일자 출원된 미국 가출원 제61/909,992호의 우선권 이익을 주장하며, 상기 특허문헌의 내용은 그 전체가 참조에 의해 여기에 포함된다. This application claims the priority benefit of No. 61 / 909,992 U.S. Provisional Application dated 27 November 2013, and the contents of the patent document is incorporated herein in its entirety by reference.

기술분야 Art

본 발명은 일반적으로는 개인비서(personal assistant) 애플리케이션에 관한 것이고, 더욱 구체적으로는 기계학습에 기초한 사용자 요청의 처리에 관한 것이다. The present invention generally relates to personal assistant (personal assistant) applications, and more particularly to the processing of the user request based on machine learning.

사용자의 텍스트 또는 자연어 요청에 대해 대응하는 태스크(task)를 수행함으로써 응답하는 다양한 개인비서 소프트웨어 애플리케이션이 개발되어 있다. Various personal assistant responds by a software application that performs a task (task) that corresponds to the user of the text or natural language request has been developed. 예를 들면, 스마트폰 사용자에 의해 액세스된 개인비서 애플리케이션은 전화번호를 검색하여, 전화를 걸거나, 레스토랑을 찾거나, 이메일을 작성하여 보내거나, 일정을 추가하는 등을 수행한다. For example, the personal assistant application that is accessed by a smartphone user performs a search, such as a telephone number, make a call, find a restaurant, or write an email to send, or to add a schedule. 그와 관련하여, 특정 사용자는 주어진 태스크를 위한 요청을 종종 다른 사용자와 다르게 표현할 것이다. With respect to that, a particular user will often be expressed differently from the others to request for a given task. 그와 같은 편차(variation)는 인간의 상호작용에 있어서 필연적이다. Deviation (variation), such as that is inevitable in the human interaction. 이러한 가변성으로 인해, 종래의 개인비서 소프트웨어 애플리케이션들은 사용자의 원하는 요청을 적절히 실행하는데 있어서 통상적으로 오류가 발생하기 쉽다. Due to this variability, a conventional personal assistant software applications are likely to have error according typically to properly execute the desired requests of the user occurs. 또한, 그러한 애플리케이션은 즉흥적(ad hoc)일 수 있으며 따라서 다양한 언어에 적용하기 어렵다. In addition, such an application can be spontaneous (ad hoc), and therefore it is difficult to apply in a variety of languages.

따라서, 사용자에 의해 요구된 태스크를 분류하여 실행함에 있어서 더욱 정확하고 언어에 독립적인 개선된 시스템에 대한 필요가 당해 기술분야에 존재한다. Thus, a more accurate and exists in the art a need to the art for an improved system independent of the language in the practice to classify the requested task by the user.

태스크 분류 및 실행에 있어서 개선된 정확성을 제공하기 위해, 태스크 분류를 위해 기계학습 알고리즘을 이용하는 시스템 및 방법이 제공된다. To provide improved accuracy in the classification task and running, the system and method is provided using a machine learning algorithm to the classification task. 복수의 태스크 카테고리 내에서 사용자들이 요청을 어떻게 표현하는지에 대하여 다양한 사용자들로부터 훈련 데이터베이스가 생성된다. The training database is created from a variety of users with respect to how they express that your request within one task category. 충분히 많은 수의 사용자를 조사함으로써, 개별 사용자들이 주어진 원하는 태스크를 어떻게 표현하는지의 자연적인 편차가 적당히 샘플링된다. By examining a sufficiently large number of users, the natural variations in how individual users how they want to express a given task is properly sampled. 예를 들면, 엄마와 같은 특정 상대방에게 전화를 거는 태스크에 대하여, 한 사용자는 "Call mom"으로 표현할 수 있지만 다른 사용자는 "Please call mom" 또는 "Call mother"로 표현할 수 있다. For example, for a task call a particular person such as the mother, the user will be represented by "Call mom", but others can be expressed as "Please call mom" or "Call mother". 주어진 태스크가 다른 사용자들에 의해 어떻게 표현되는지에 대한 이러한 편차를 특징짓기 위해 비교적 큰 훈련 데이터베이스가 예를 들면 크라우드 소싱(crowd sourcing)을 통해 생성될 수 있다. Given task is to be created is relatively large training database to characterize these deviations of how expression by other users, for example through a crowd sourcing (crowd sourcing). 그 결과 생성된 훈련 데이터베이스는 복수의 태스크 카테고리로부터 특정 태스크를 요청함에 있어서 수천의 사용자들의 응답을 포함할 수 있다. The resulting training database may include the responses of thousands of users in requesting a particular task from the plurality of task categories. 사용자가 특정 태스크를 의도하고 있었다는 것을 선험적으로 알기 때문에, 그 결과 생성된 사용자 요청은 그 분류에 있어서 모호함이 없다. Because of a priori knowing that the user had intended certain tasks, as a result, the generated user request is no ambiguity in its category. 따라서 상기 훈련 데이터베이스는 다양한 사용자 요청들의 엄청나게 많은 예를 가질 수 있으며, 그것들 모두는 각자의 적합한 태스크 카테고리로 편성된다. Therefore, the training database may have a great number of examples of the various user requests, all of which are organized into their proper task categories.

그러면 그와 같은 고품질 훈련 데이터베이스는 다양한 기계학습 알고리즘을 통해 이용될 수 있다. This high-quality training database, such as that can be used with a variety of machine learning algorithms. 예를 들면, 각각의 데이터베이스 사용자 요청은 피처 벡터(feature vector) 또는 다른 기계적 표현으로 변환될 수 있다. For example, each of the database a user request can be converted into a feature vector (feature vector) or other mechanical expression. 따라서 상기 훈련 데이터베이스는 각각의 태스크 카테고리를 위한 다양한 피처 벡터를 포함할 수 있으며, 각각의 피처 벡터는 주어진 훈련 데이터베이스 사용자의 요청에 대응한다. Therefore, the training database may include various feature vectors for each task category, each feature vector corresponds to a request of a given user training database. 각각의 피처 벡터의 차원성은 원하는 복잡도에 종속한다. Dimension of each feature vector castle depends on the desired complexity. 예를 들면, 주어진 사용자의 요청 내의 각각의 고유 단어(또는 구)는 피처 벡터 차원에 대응할 수 있다. For example, each unique word in the given user's request (or phrase) may correspond to the feature vector dimension. 각각의 피처 벡터 차원을 위한 가중치는 대응하는 단어 또는 구가 대응하는 사용자의 요청에서 몇 차례 일어나는지에 종속할 수 있다. Weights for each dimension of the feature vector may be dependent on several occasions happening in a word or phrase corresponding to the corresponding user request. 대안으로, 상기 가중치는, 가중치 부여가 단지 주어진 단어 또는 구가 사용자 요청에 있었는지 여부에만 종속하는, 이원적(binary)일 수 있다. Alternatively, the weights, the weight given to one, dual (binary), which is only a given word or phrase depend only on whether there in the user's request. 그 다음, 그 결과 생성된 피처 벡터는 각각의 태스크에 대한 다양한 사용자 요청이 피처 벡터 공간에서 어떻게 군집화(clustering)되는지의 태스크 분류기 모델을 결정하기 위해 지원 벡터 머신(SVM: support vector machine)과 같은 기계학습 알고리즘을 훈련시키기 위해 사용될 수 있다. Then, the resultant feature vector support vector machine to determine the tasks classifier model of how clustering (clustering) in a variety of user requests the feature vector space for each task: Machines such as (SVM support vector machine) It can be used to train the learning algorithm.

태스크 분류 모델을 개발하기 위해 다양한 태스크에 대해 사람이 생성한 요청들의 고품질 훈련 데이터베이스를 통한 이러한 선험적인 기계학습이 주어지면, 추가의 사용자 요청이 태스크 분류기 모델에 따라 실시간으로 확실하게 분류될 수 있다. To develop a task classification model given these a priori machine learning through high-quality training database of requests that people have been created for a variety of tasks, additional user requests can be real-time clearly categorized according to the task classifier model. 다시 말하면, 수신된 사용자 요청은 (자연어 입력의 경우에) 용이하게 텍스트로 변환되며, 대응하는 텍스트는 피처 벡터로 변환되어 미리 결정된 태스크 분류기 모델에 따라 태스크 카테고리들 중 예상된 하나로 분류된다. In other words, the received user request is converted to text to facilitate (in the case of the natural language input), the corresponding text is classified as one of the expected task categories according to a predetermined task, the classifier model is converted into a feature vector. 이 프로세스는 태스크 분류의 정확성을 증가시킬 뿐만 아니라 언어 독립적이다. This process is independent of the language as well as to increase the accuracy of the classification task. 즉 해당하는 언어들에서의 사용자 요청을 수용하도록 상기 프로세스를 확장하기 위해서 단지 다른 언어들에서의 훈련 데이터베이스를 수집하면 된다. That is to expand the process to accommodate your request in the appropriate language is only collected when the training database in different languages.

태스크 실행의 정확성을 증가시키기 위해, 사용자의 요청은 예상된 태스크의 정체(identity)에 기초하여 추가로 처리되어 그것의 특정한 쿼리들(queries)(만일 있다면)이 결정될 수 있다. In order to increase the accuracy of task execution, the user's request is to be further processed on the basis of the identity of the estimated task (identity) its specific query (queries) (if any) can be determined. 그와 관련하여, 각각의 태스크 카테고리는 다양한 쿼리 카테고리와 관련될 수 있다. In conjunction therewith, each task category may be associated with a different query categories. 예를 들면, 사용자 요청이 "레스토랑 검색" 태스크 카테고리로 분류되었다고 가정한다. For example, it is assumed that the user requests classified as a "restaurant search" task category. 이 태스크 분류는 "레스토랑 유형"(예컨대, Italian 또는 Chinese) 및 "레스토랑 위치"(예컨대, Palo Alto)와 같은 다양한 쿼리 클래스와 관련될 수 있다. This task category may be associated with a different class of queries, such as "restaurant type" (e.g., Italian or Chinese) and "restaurant location" (e. G., Palo Alto). 주어진 사용자 요청에서의 쿼리 클래스에 대한 구체적인 예시는 "쿼리"로서 표시될 것이다. Specific examples of queries in a given class of user requests will be displayed as a "query". 예를 들면, "Find a good Italian Restaurant in Palo Alto"의 사용자 요청은 요리 쿼리(Italian) 및 위치 쿼리(Palo Alto)를 추출하도록 처리될 수 있다. For example, the user requests the "Find a good Italian Restaurant in Palo Alto" may be treated to extract the cooking query (Italian) and the location query (Palo Alto). 쿼리 추출의 정확성을 증가시키기 위해, 쿼리 클래스 및 대응하는 가능한 쿼리들이 사전 개발될 수 있다. To increase the accuracy of the extracted query, the query class and adaptable to a query it can be pre-programmed. 예를 들면, 상기 사전은 위치 쿼리 카테고리에 각각의 가능한 위치에 대한 입력항목(entry)을 포함할 수 있다. For example, the dictionary may include entries (entry) for each of the possible positions for the location query category. 그러면 상기 쿼리 추출은 사용자의 요청에서 매칭되는 사전 입력항목들을 확인하는 것을 포함할 수 있으며, 그것은 그 다음 상기 사전의 대응하는 쿼리와 즉시 관련된다. Then, the query extracts can contain to identify them in dictionary entries that match the user's request, it is immediately associated with the response to the query, then the dictionary.

태스크 실행 모듈은 적절한 애플리케이션 프로그래밍 인터페이스(API)를 호출함으로써 예상된 태스크 및 임의의 관련된 쿼리들을 사용할 수 있다. Task execution module may use the tasks and any related queries anticipated by calling the appropriate application programming interface (API). 예를 들면, 레스토랑 검색 태스크는 레스토랑 검색을 서비스하는 "Yelp"와 같은 외부 검색 제공자를 사용하여 가장 잘 수행될 수도 있다. For example, a restaurant search task may be best performed by using the external search provider such as "Yelp" serving the restaurant search. 한편, 만일 상기 예상된 태스크가 통화 개시라면, 관련된 쿼리는 사용자의 휴대용 장치 내 휴대전화 기능을 위해 상기 API를 통해 전송될 수 있을 것이다. On the other hand, If is the expected task initiated calls, relating to the query would be sent via the API for your phone function of the portable user device.

여기에 개시된 시스템 및 방법의 추가의 기능들 및 이점들은 다음의 상세한 설명을 통해 더욱 잘 이해될 수 있을 것이다. This system and additional features and advantages of the methods disclosed will be able to be better understood through the following detailed description.

도 1은 본 발명의 일 실시예에 따른 사용자 요청을 실행하기 위한 시스템의 블럭도이다. 1 is a block diagram of a system for executing a user request, according to an embodiment of the invention.
도 2는 태스크 분류 이후 사용자 요청으로부터 쿼리 추출을 도시한다. Figure 2 illustrates a query extracted from the user's request after the classification task.
도 3은 도 1의 시스템 내 태스크 분류 모듈에 대한 더 상세한 블럭도이다. Figure 3 is a more detailed block diagram of a system within a task classification module of Figure 1;
도 4는 도 3의 태스크 분류 모듈에 의해 사용되는 태스크 분류기 모델을 생성하기 위한 모듈들을 도시한다. Figure 4 illustrates a module for generating a task classifier model used by the task division module of FIG.
도 5는 도 1의 시스템 내 쿼리 추출 모듈에 대한 더 상세한 블럭도이다. Figure 5 is a more detailed block diagram of a system within the query extraction module of Fig.
도 6은 도 1의 시스템 내 태스크 실행 모듈들에 대한 더 상세한 블럭도이다. Figure 6 is a more detailed block diagram of the system within the task execution module of Figure 1;
도 7은 본 발명의 일 실시예에 따른 사용자 요청을 실행하도록 구성된 컴퓨터 시스템을 도시한다. Figure 7 illustrates a computer system configured to execute the user's request in accordance with one embodiment of the present invention.
본 발명의 실시예들과 그것들의 이점은 아래의 상세한 설명을 참조함으로써 가장 잘 이해된다. Embodiments and their advantages of the present invention are best understood by reference to the following detailed description. 도면들 중 하나 이상에서 도시된 같은 요소들을 확인하기 위해 같은 참조번호들이 사용되었다. Reference numbers have been used, such to make them the same elements illustrated in one or more of the figures.

아래에서 제시된 상세한 설명은 첨부한 도면들과 함께 다양한 구성들의 설명으로서 의도되며, 여기서 설명된 개념들이 실행될 수 있는 유일한 구성을 나타내는 것을 의도하지 않는다. The detailed description set forth below is not intended to represent the only configuration that is intended as a description of various configurations, it can be executed to the concept described here with the accompanying drawings. 상세한 설명은 다양한 개념들의 완전한 이해를 제공할 목적으로 구체적인 상세를 포함한다. The detailed description includes specific details for the purpose of providing a thorough understanding of the various concepts. 그러나 이 개념들은 이러한 구체적인 상세 없이도 실행될 수 있음은 당해 기술분야의 통상의 기술자에게는 명백할 것이다. However, the concepts may be practiced without these specific details will be apparent to those skilled in the art. 어떤 실시예에서는, 그와 같은 개념을 불명료하게 하는 것을 피하기 위해 기존의 구조체들 및 구성요소들이 블럭도 내에 도시되어 있다. In some embodiments, there is shown in FIG existing structures and components block in order to avoid obscuring the concepts such as those.

개인비서 애플리케이션에 의해 사용자 요청의 실행을 위한 더 큰 정확성을 제공하기 위해, 한 세트의 태스크에 대해 미리 기록된 사용자 요청들의 훈련 데이터베이스에 기초한 기계학습 알고리즘을 통해 태스크 분류기가 훈련된다. For by a personal assistant applications provide greater accuracy for the execution of user requests through a machine learning algorithm based on the training database of previously recorded user request for a set of tasks is the training task group classification. 예를 들면, 다수의 태스크에 대해 사람이 생성한 요청을 포함하는 훈련 데이터베이스을 생성하기 위해 크라우드 소싱이 사용될 수 있다. For example, a crowd sourcing may be used to generate training Database, including a request to create a person for a number of tasks. 그 점에 있어서, 특정 사용자는 주어진 태스크에 대한 요청을 다른 사용자의 말투(phrasings)와 다르게 종종 표현할 것이다. In that respect, certain users will often express different requests for the given task, language (phrasings) of other users. 그와 같은 편차는 인간의 상호작용에 있어서 필연적인 것이다. Variations such as those will be the inevitable in human interaction. 이러한 가변성으로 인해, 종래의 개인비서 소프트웨어 애플리케이션들은 사용자의 원하는 요청을 적절히 실행함에 있어서 오류가 발생하기 쉽다. Due to this variability, the conventional personal assistant software applications are error prone method as properly run any of your requests. 시간이 경과함에 따라, 그와 같은 종래의 개인비서 애플리케이션들은 적절한 태스크가 실행되도록 사용자에 의해 수정됨으로써 그것들의 실수로부터 학습할 수 있다. Over time, conventional personal assistant applications, such as that are modified by the user so that the appropriate task being executed can be learned from those of real numbers. 그러나 시간의 경과에 따른 그와 같은 학습은 사용자에게는 매우 실망스러울 수 있으므로 사용자는 자신의 의도를 실행함에 있어서 피할수 없는 실수들을 수정하기 위해 필요한 시간을 소비하기보다는 개인비서 애플리케이션을 사용하는 것을 중단한다. But learning like that with the passage of time can be very frustrating for users, users should stop using the Personal Assistant applications, rather than spending the time needed to correct the mistakes it can not be avoided in carrying out his intention .

이와 비교하여, 여기서 개시된 시스템 및 방법들은 사용자가 정확한 결과를 얻기 위해 훈련 장애물을 극복할 필요가 없도록 사용자 요청에 대해 대응하는 태스크들을 예측하기 위해 훈련 데이터베이스를 통해 훈련된 태스크 분류기를 사용한다. In comparison, the system and method disclosed herein uses a task classifier trained by the training database in order to eliminate the need to overcome the hurdles training to obtain the result of the user and accurate to predict the task corresponding to the user request. 또한, 확인된 태스크는 그 다음에 사용자 요청으로부터 쿼리 및 대응하는 쿼리 카테고리 또는 클래스를 추출하기 위해 이용될 수 있다. Further, the identified task may be used to then extract the query category or class to query and response from the user request. 여기에서 사용된, 사용자 요청으로부터의 쿼리 추출과 관련된 용어 "쿼리"는 주어진 태스크의 특정한 파라미터들을 지칭한다. The term "query" related to the extracted query from a user request as used herein refers to the specific parameters of a given task. 상기 태스크에 기초하여, 이 파라미터들은 클래스들로 편성될 수 있다. On the basis of the tasks, the parameters may be organized into classes. 예를 들면, 레스토랑 검색은 사용자가 원하는 요리의 유형과 원하는 위치를 통상 확인할 것이다. For example, the restaurant will confirm your search is usually the desired location and type of food you want. 요리 유형 및 원하는 위치는 각각의 쿼리 클래스를 포함한다. Cuisine type and desired locations include each query class. 상기 "쿼리"는 그 다음 각각의 쿼리 클래스의 특정한 구체예를 포함할 것이다. The "query" will contain a particular embodiment of each of the following class of queries. 예를 들면, "Find a good Italian Restaurant in Palto Alto"의 사용자 요청은 요리 유형으로 "Italian"의 쿼리를 그리고 원하는 위치로 "Palo Alto"를 가질 수 있다. For example, you can have a "Find a good Italian Restaurant in Palto Alto" user request of the "Palo Alto" query on the "Italian" cooking type and the desired position. 이러한 쿼리 추출의 정확성은 예상된 태스크에 응답하여 수행됨으로써 크게 강화될 수 있다. The accuracy of such a query is extracted it can be significantly enhanced by being performed in response to the estimated task. 쿼리 추출과 관련하여, 각각의 태스크 카테고리는 가능한 쿼리들 및 그것들의 대응하는 쿼리 카테고리들의 사전과 연관지어질 수 있다. With respect to the query extraction, each task category may be in connection with dictionary of possible queries and those corresponding to a query category. 일단 사용자 요청이 특정의 예상된 태스크로 분류되었다면, 그 사용자 요청은 임의의 쿼리들 및 대응하는 쿼리 클래스들을 위한 매칭을 확인하기 위해 그 태스크를 위한 대응하는 사전과 비교될 것이다. Once the user if the request is classified into specific tasks expected of the user request is to be compared with the corresponding dictionary for the task to make a matching query for any class of queries and responses.

태스크 실행 모듈은 그 다음에 사용자의 요청을 실행하기 위해 상기 예상된 태스크의 확인 및 대응하는 쿼리들을 사용할 것이다. Task execution module will use the query and to check the response of the expected task to execute the user's request to the next. 예를 들면, 태스크 실행 모듈은 쿼리들을 대응하는 API에 전송하기 위해 상기 예상된 태스크를 사용할 것이다. For example, the task execution module will use the expected task for transmitting the API corresponding to the query. API의 선택에 관계없이, 태스크 실행 결과는 종래의 방법에 비해 현저하게 정확하다. Regardless of the choice of the API, the task execution result is significantly more accurate than the conventional method. 이제 몇몇 실시예를 설명할 것이다. Now it will be described some embodiments.

실시예들 Embodiments

이제 도면들을 참조하면, 도 1은 예를 들어 자연어 입력(110)을 통해 수신된 것과 같은 사용자 요청을 실행하는 예시적 시스템(100)을 도시한다. With reference now to the drawings, FIG. 1, for example, illustrates an exemplary system 100 for executing a user request such as that received from the natural language input (110). 시스템(100)은 사용자가 원하는 대응하는 태스크를 예측하기 위해 자연어 입력(110)에 의해 표현된 것과 같은 사용자 요청을 처리하는 기능을 한다. The system 100 functions to process the user request, as the user is expressed by the natural language input 110 to estimate the corresponding tasks that you want. 시스템(100)은 사용자의 요청을 한 세트의 잠재적인 태스크 카테고리들로부터 선택된 주어진 태스크에 대응하는 것으로 분류하도록 쉽게 구성된다. System 100 is configured to easily classified as corresponding to a given task is selected the user's request from a potential task categories of a set. 시스템(100)에 의해 서비스되는 잠재적인 태스크들의 세트의 크기는, 본 명세서에 추가로 설명되는 바와 같이, 단지 설계상의 선택이다. The size of the set of potential tasks to be serviced by the system 100 is just selected in the design, as described further herein. 따라서 이것은 시스템(100)이 쉽게 확장 가능할 때 특히 유리 유리하다. Thus, it is advantageous particularly advantageous when the system 100 be easily extended. 또한, 본 명세서에서 추가로 설명되는 바와 같이, 시스템(100)은 영어 외의 다른 언어들에도 쉽게 적응된다. In addition, as will be further described herein, the system 100 is easily adapted to other languages ​​other than English.

자연어 입력 텍스트 변환 모듈(120)은 사용자의 자연어 입력(110)을 텍스트 입력(130)으로 변환한다. Natural language input text conversion module 120 converts the user's natural language input 110 to a text entry (130). 대안으로, 사용자는 (구술된) 자연어 입력(110)을 제공하는 것에 반대로 텍스트 입력(130)을 직접 제공할 수 있다. Alternatively, the user may be provided as opposed to the text input unit 130 directly to provide a natural language input 110 (the oral). 태스크 분류기 모듈(140)은 사용자의 원하는 태스크를 예측하기 위해 텍스트 입력(130)을 처리하며, 이것은 아래에서 추가로 설명될 것이다. Task classifier module 140 processes the text input unit 130 in order to predict the desired task of the user, which will be described further below. 태스크 분류기 모듈(140)에 의해 결정된 예측 태스크에 기초하여, 쿼리 추출기 모듈(150)은 쿼리들 및 대응하는 쿼리 클래스들을 추출하기 위해 텍스트 입력(130)을 처리한다. Based on the determined prediction task by task classifier module 140, the query extractor module 150 processes the text input unit 130 to extract the class of queries to query and response. 예시적 쿼리 추출(220)이 도 2에 도시되어 있다. The exemplary query extraction unit 220 is shown in FIG. 이 경우에, "Find a good Italian Restaurant in Palo Alto"의 사용자 요청은 도 1의 태스크 분류기 모듈(140)에 의해 레스토랑 검색 태스크로 분류되었다. In this case, "Find a good Italian Restaurant in Palo Alto" the user's request has been classified as a restaurant search task by task classifier module 140 of FIG. 레스토랑 검색 태스크는 두 개의 쿼리 클래스, 즉 레스토랑 타입 및 위치를 포함한다. Restaurant searches task includes two query class, the type of restaurant and location. 시스템(100)의 쿼리 추출기(150)는 사용자 요청을 분석하여 각각의 쿼리 클래스의 구체예를 확인한다. Query extractor of the system 100, the controller 150 confirms a specific example of each class of queries to analyze the user's request. 다시 말해서, 쿼리 추출기(150)는 각각의 쿼리 클래스에 대해 대응하는 쿼리를 확인한다. In other words, the query extractor 150 confirms a query that corresponds to each class of queries. 도 2의 예에서, 결과적인 쿼리(220)는 "Italian Restaurant"과 "Palo Alto"이다. In the example of Figure 2, the resulting query 220 is "Italian Restaurant" and "Palo Alto". 다시 도 1을 참조하면, 태스크 실행 인터페이스 모듈(160)은 태스크 실행 모듈(170)의 API와 같은 적절한 태스크 실행 인터페이스를 선택하기 위해 상기 예상된 태스크를 사용한다. Referring back to Figure 1, the task execution interface module 160 uses the expected task for selecting the appropriate interface, such as API task execution of the task execution module 170.

이제 시스템(100) 내의 다양한 모듈들의 동작을 더욱 상세히 설명할 것이다. It will now be described in more detail the operation of various modules in the system 100. 도 3에는 태스크 분류기 모듈(140)에 대한 확대된 블럭도가 도시되어 있다. Figure 3 in which also an enlarged block diagram of the task classifier module 140 is shown. 모듈(140) 내의 피처 추출기 모듈(130)은 텍스트 입력(130)을 처리하여 피처 벡터(320)를 추출한다. Feature extraction module 130 in the module 140 processes the text input unit 130 extracts a feature vector (320). 이 추출은 도 4의 훈련 데이터 세트(400)에 대해서도 수행된다. The extraction is carried out for the training data set 400 of Fig. 훈련 데이터 세트(400)는 다양한 태스크 카테고리들 또는 분류들에 대하여 다수의 미리-수집된 사용자 요청들을 포함한다. Comprises a collection of user request-training data set 400 includes a plurality of advance with respect to various task category or classification. 도 4의 실시예에서, 32개의 태스크 분류가 있다. In the embodiment of Figure 4, there are 32 tasks classification. 각각의 태스크에 대한 사용자 요청은 동일한 태스크 ID가 할당되며, 상기 ID는 정수로 구성될 수 있다. User requests for each task will be assigned the same task ID, the ID may be of a constant. 예를 들면, 훈련 데이터 세트(400)는 표 1에 제시된 태스크들을 포함할 수 있다. For example, the training data set 400 may include the tasks set out in Table 1 below.

교통 traffic 지도 map 날씨 weather 음악 music 영화 movie 사진 Picture SNS SNS 뉴스 news
게임 game App 레스토랑 restaurant 레시피 recipe book 쇼핑 shopping 여행 Travel 위키피디아 Wikipedia
병원 hospital 정보 Information 전화 telephone 이메일 e-mail 카메라 camera 일정확인 calendar check 일정 calendar 메모 memo
타이머 timer 알람 alarm 음악재생기 Music Player 인사하기 Greeting 칭찬 compliment 비방 calumny 지루함 boredom 사랑 love

태스크 카테고리들의 개수는 대안의 실시예에서 쉽게 변경될 수 있음을 이해할 것이다. The number of task categories will understand that can be easily modified in an alternate embodiment. 훈련 데이터 세트(400)는 크라우드 소싱, 다른 자연어로 기존 훈련 데이터의 번역, 웹사이트 크롤링(crawing), 또는 다른 적합한 방법들에 의해 생성될 수 있다. Training data set 400 may be generated by crowdsourcing translation of existing training data with other natural, website crawl (crawing), or other suitable methods. 크라우드 소싱 실시예에서, 익명 사용자인 사람은 표 1의 태스크들과 같은 다양한 태스크들에 대해 자신들의 말투에 대한 질문에 답한다. In crowdsourcing example, an anonymous user who has the answers to questions about their accents for a variety of tasks, such as in Table 1 task. 사용자들은 예컨대 자연어 응답들을 통해서 질문들에 답을 하며 그 응답들은 그 다음에 훈련 데이터베이스를 구축하기 위해 입력 텍스트로 변환되며, 상기 훈련 데이터베이스는 훈련 데이터 세트(400)를 형성하기 위해 추출된 그것의 피처 벡터를 가질 수 있다. Users, for example to answer the questions via the natural language response and the response are transformed by the input text to build the training database in the following, the training database with that of the feature extraction to form a training data set (400) vectors may have. 피처 추출 이전에 입력 텍스트의 예시적 훈련 데이터베이스가 표 2에 제시되어 있다. The feature extraction prior to the illustrative training database of the input text are shown in Table 2.

레스토랑 검색 Search Restaurants 근처에 괜찮은 버거 가게는 어디인가? Where a decent burger shop nearby?
... ... ... ...
전화통화 phone call 엄마와 전화통화 Mom and phone calls
... ... ... ...
전화통화 phone call Joe와 전화통화 Joe and phone calls

텍스트 입력과 대응하는 태스크들의 예시적 훈련 데이터베이스에서, 가능한 태스크 카테고리들은 "레스토랑 검색" 태스크 카테고리 및 "전화통화" 태스크 카테고리를 포함할 수 있다. In an exemplary training database of the task and the corresponding text input, available task categories may include "search options" task category, and "Phone calls" task category. 레스토랑 검색을 위한 예시적 텍스트는 "Where is a nice burger place nearby"이다. An exemplary text for Restaurants is "Where is a nice burger place nearby". 훈련 데이터베이스는 사람 사용자들에 의해 생성된 수많은 그러한 예시적인 레스토랑 검색들을 포함하도록 쉽게 확대될 수 있다. Training database can be easily extended to include a number of such exemplary Restaurants produced by the human user. 다른 태스크들도 역시 사람 사용자들에 의해 생성된 수천 개의 예시적 텍스트들에 의해 표현될 수 있다. Other tasks may also be also be represented by thousands of exemplary text generated by a human user. 표 2에서, "전화통화" 태스크는 "Call Mom"과 "Call Joe"의 예시적 텍스트 두 개를 포함한다. In Table 2, the "telephone calls" task will include the two exemplary text in the "Call Mom" ​​and "Call Joe" dog. 일반적으로, 훈련 데이터베이스에 더 많은 텍스트가 입력될수록, 여기서 개시되는 기계학습 알고리즘이 그와 같은 각각의 예로부터 학습하기에 더 좋다. In general, As more text is entered into the training database, it is better to machine learning algorithms learn from each example, such as those disclosed herein. 태스크들은 선험적으로 이미 확인되었기 때문에, 훈련 데이터베이스 내 각각의 데이터는 태스크 이름(태스크 ID)과 사람 사용자에 의해 생성된 대응하는 텍스트 입력을 포함한다. Tasks are because it is already confirmed a priori, training each of the data within the database, including text input to the response generated by the user name of the task (task ID) and man. "교통"과 같은 주어진 카테고리에 대한 훈련 데이터 세트(400) 내 모든 사용자 요청들은 동일한 태스크 ID가 주어진다. Training data set 400 within all user requests for a given category, such as "traffic" are given the same task ID. 대응하는 사용자 요청을 위한 텍스트는 피처 추출 모듈(310) 또는 그것의 등가물에 의해 훈련 피처 벡터로 변환된다. Text for a response to the user request is converted into a training feature vector by a feature extraction module 310, or its equivalent. 일 실시예에서, 훈련 데이터 세트(400) 내의 각각의 다른 단어는 2진 값에 의해 표현된 피처에 대응한다. In one embodiment, each of the other words in the training data set 400 corresponding to the features represented by a binary value. 만일 텍스트 입력이 특정한 단어를 가지면, 이 단어에 대한 피처에 대응하는 2진 값이 1로 설정된다. If the text input Having a specific word, a binary value corresponding to the features for the word is set to 1. 또한, 각각의 상이한 N-그램(gram), 즉 사용자 요청 내 N개 단어로 구성되는 구에도 2진 값이 할당될 수 있다. In addition, there is also a binary value can be assigned to each sphere consisting in N different words N- g (gram), that is a user request. 훈련 피처 벡터들에 대해 그 결과로 생성된 피처 벡터 공간은 따라서 숫자 M의 차원을 가질 것이며, 여기서 M은 훈련 데이터 세트(400) 내에서 발견된 N-그램들과 모든 다른 단어들의 합과 같다. A feature vector space to produce a result for the training feature vector is therefore will have the dimensions of a number M, where M is equal to the sum of the N- gram, and all other terms found in the training data set (400). 일 실시예에서, 결과적인 복잡성을 낮추기 위해 개별 단어들에 추가하여 바이-그램(2개의 연속 단어)만이 개별 피처들에 할당된다. In one embodiment, in order to reduce the resulting complexity, by adding to the respective word-grams (two successive words) only it is assigned to the individual features. 주의할 것은, 훈련 피처 벡터들을 생성하기 위해 TF-IDF(term frequency-inverse document frequency)와 같은 다른 가중치 스킴들이 이용될 수 있다. Note that, other weighting schemes such as TF-IDF (term frequency-inverse document frequency) may be used to generate the training feature vectors. 예를 들면, 도 4의 훈련 데이터 세트(400) 내의 훈련 피처 벡터들은 그것들의 다양한 차원들에 대해 정수아닌 계수를 가진다. For example, FIG training feature vector in the training data set 400 of a 4 have the coefficient is not constant for the various dimensions thereof.

훈련 데이터 세트(400) 내의 훈련 피처 벡터들은 텍스트 입력(130)에서 사용될 수 있는 피처들(개별 단어들 및 N-그램들)의 사전을 구성하기 위해 고려될 수 있다. Training features in the training data set 400 vectors can be considered to configure a dictionary of the features that can be used in the input text 130 (individual words and N- gram s). 다시 도 3을 참조하면, 피처 추출 모듈(310)은 훈련 데이터 세트(400) 내의 훈련 피처 벡터들은 구축하기 위해 사용된 임의의 피처들(개별 단어들 및 임의 적용 가능한 N-그램들)을 위해, 사용자의 텍스트 입력(130)을 분석한다. Referring back to FIG. 3, the feature extraction module 310 to the training feature vectors are any of the features (individual words and the N- gram possible any applicable) used to build in a training data set 400, It analyzes a user's text input (130). 훈련 데이터 세트(400) 내에서 발생한 것과 매칭되지 않는 단어들 및 N-그램들은 무시될 수 있다. The word does not match those occurring in the training data set 400 and the N- gram may be ignored. 일 실시예에서, 텍스트 입력(130) 내의 각각의 매칭 피처는 1의 2진 가중치가 주어지지만 그와 같은 가중치 부여는 전술한 것과 같이 수정될 수 있다. In one embodiment, each of the matching features in the text entry 130, but given a binary weighting of the first weighting such may be modified as described above. 결과로서 생성된 피처 벡터(320)는 그 다음에 훈련 데이터 세트(400)의 구축에서 사용된 태스크들의 세트로부터 예측 태스크(350)를 제공하기 위해, 훈련 데이터 세트(400)로부터 추출된 태스크 분류기 모델(340)에 따라 태스크 분류기 서브-모듈(330)에 의해 처리될 것이다. Results The task classifier model extracted from the feature vector 320 is then to provide a prediction task 350 from the set of tasks in the construction of the training data set 400, the training data set 400 is generated as a according to the 340 task classifier sub-will be processed by the module 330.

도 4를 다시 참조하면, 트레이너 모듈(410)에 의해 구현된 것과 같은 기계학습 알고리즘은 태스크 분류기 모델(340)을 생성하기 위해 훈련 데이터 세트(400) 내의 훈련 피처 벡터들을 처리한다. Referring again to Figure 4, a machine learning algorithm such as the one implemented by the trainer module 410 processes the training feature vector in the training data set 400 to create a task, the classifier model 340. 지원 벡터 머신(SVM) 또는 나이브 베이즈 분류기(naive Bayes classifier)와 같은 기계학습 훈련 모듈(410)에 의해 구현될 수 있는 선별된 적당한 기계학습 알고리즘들이 존재한다. Support Vector Machine (SVM) or Naive Bayes classifier (naive Bayes classifier) ​​and a suitable screening machine learning algorithms that can be implemented by a trained machine learning module 410 as they exist. 특정한 기계학습 알고리즘에 기초하여, 훈련 모델(410)에 의해 생성된 태스크 분류기 모델(340)은 태스크 분류기 서브-모듈(330)이 피처 벡터(320)에 대해 유력한 예측 태스크(350)를 결정하는 것을 가능하게 한다. Based on a specific machine learning algorithm, the task classifier model 340 is a task classifier sub generated by a training model (410) to determine the module 330 viable prediction task 350 for the feature vector 320 It makes it possible. 그와 관련하여, 주어진 태스크에 대한 훈련 피처 벡터들은 상기 다양한 피처들에 의해 생성된 벡터 공간에서 군집화되는 경향이 있을 것이다. In connection with the training feature vector for a given task will be a tendency for clustering in the vector space generated by the various features. 이 군집화에 기초하여, 태스크 분류기 서브-모듈(330)은 그 다음에, 만일 피처 벡터(320)가 훈련 데이터 세트(400)를 구축하기 위해 사용된 원래의 훈련 피처 벡터들의 일부라면 피처 벡터(320)가 속했을 유력한 태스크 카테고리를 결정할 수 있다. Based on this grouping, task classifier sub-module 330 may then, if feature vector 320 is a part, if the feature vector (320 of the original training feature vectors used to construct the training data set (400) ) you can determine the dominant category when in a task.

훈련 피처 벡터에 의한 이러한 선험적 기계학습은, 피처 벡터들이 단어들이 아니라 수학적 실체들이라는 점에서, 사용자들에 의해 구술된 언어에 전적으로 독립적이다. Such a priori machine learning by training feature vectors, in that the feature vectors are mathematical entities, not the words, it is entirely independent of the language spoken by the user. 따라서 적절한 태스크 분류기 모델을 구축하기 위해 단지 대응하는 훈련 데이터 세트를 생성함으로써 시스템(100)을 다른 언어들로 확대하는 것은 간단하다. Therefore, it is simple to just respond by creating a training set of data to establish the appropriate task classifier models expand the system 100 in other languages. 따라서 주어진 사용자 시장을 위해 사용된 특정 언어에 관계없이, 여기서 개시된 정확한 태스크 분류를 유익하게 즐길 수 있을 것이다. Therefore, it will be able to enjoy the benefits, the exact classification tasks described here, regardless of the specific language to use for a given user market. 이 태스크 분류는 종래의 개인비서 애플리케이션에서 사용된 즉흥적인 기술들보다 더 정확할 뿐만 아니라 결과물인 태스크 분류는 또한 쿼리 추출을 더욱 정확하게 만든다. The task of classification is not only more accurate than an impromptu technique used in conventional personal assistant application tasks resulting classification also makes a query more accurately extracted.

도 5에는 쿼리 추출기 모듈(150)이 더 상세히 도시되어 있다. Figure 5 shows query extractor module 150 is further shown in detail. 각각의 태스크에 관하여, 일부 태스크는 관련된 쿼리를 갖지 않을 수 있음을 주목해야 한다. With respect to each task, some tasks must be noted that you can not have an associated query. 예를 들면, 지루함 태스크는 시스템(100)으로부터 농담을 듣기를 원하는 사용자와 관련이 있다. For example, boredom task is related to the user desiring to hear the joke from the system 100. The 일 실시예에서, 태스크 분류기 모델(140)에 의한 확인 외에 지루함 태스크의 추가 분류는 존재하지 않는다. In one embodiment, the additional group of boring task in addition to confirmation by task classifier model 140 is not present. 그러나 전화통화 태스크와 같은 다른 태스크들은 그렇지 않다. But it does not have another task, such as a phone call task. 즉 시스템(100)은 주어진 사용자 요청이 전화통화 태스크에 대응하는지 단지 확인하는 것 이상을 하여야 하며, 이는 수신자가 누구인지 시스템(100)이 알 필요가 있기 때문이다. That system 100 to be more than just verify that a given user request corresponds to a phone call task, because you need the recipient know who the system (100). 이러한 추가의 파라미터들은 전술한 것과 같이 "쿼리 클래스"에 정리된다. These additional parameters are listed in the "Query class" as described above. 예를 들면, 레스토랑 검색은 전형적으로 원하는 레스토랑 유형을 하나의 쿼리 클래스로서 확인할 것이다. For example, a restaurant search will typically determine the type of restaurant you want as a class of queries. 추가로, 동일한 레스토랑 검색은 위치 역시 또 다른 쿼리 클래스로서 보통 확인할 것이다. In addition, the search will also see the same restaurant where normally as another class of queries. 각각의 태스크에 대한 다양한 쿼리 클래스들의 ID가 주어지면(가능하다면), 사전(530)이 구성된다. Given the ID of the various class of queries for each of the tasks, if possible, the pre-530 is configured. 각각의 사전 입력항목은 쿼리 클래스("태그(tag)"로도 표시됨) 및 쿼리 클래스의 특정 예(관련된 쿼리)의 데이터 쌍일 수도 있다. Each dictionary entry may ssangil data of a query class ( "tag (tag)" also displayed) and specific example (related to the query) for the query class.

사전(530)의 구성과 관련하여, 주목할 것은 훈련 데이터 세트(400) 내 모든 가능한 쿼리를 확인하는 것을 기대할 수는 없다는 것이며, 그러기 위해서는 임의의 주어진 사용자에 의해 만들어질 수 있는 모든 가능한 사용자 요청을 포함해야 할 것이기 때문이며, 이는 물론 성립할 수 없다. With respect to the configuration of the dictionary (530), noting it is the training data set (400) can be expected to identify all the possible queries in it will not, do so in order to include all possible user requests can be made by any given user because you will need, of course, it can not be established. 시스템(100)과 상대할 수 있는 수십억의 사용자가 잠재적으로 존재하므로 훈련 데이터 세트(400)는 그렇게 많은 잠재적 사용자들로부터 모든 가능한 쿼리를 미리 포함할 수 없다. Because of the system (100) and relative to billions of potential users exist in the training data set 400 may not include all possible queries from potential users so much in advance. 그러나 위키피디아와 같은 데이터베이스는 "위치"와 같은 주어진 클래스에 대한 모든 잠재적 쿼리를 확인하기 위해 쉽게 분석될 수 있을 것이다. However databases such as Wikipedia would easily be analyzed in order to identify all potential queries for a given class, such as "location". 예를 들면, 미국이나 다른 원하는 나라의 모든 도시들이 그와 같은 데이터베이스로부터 확인되고 레스토랑 검색 태스크를 위한 위치 태그와 함께 사전(530)에 입력될 수 있다. For example, it can be shown the United States or any other country wants to enter the pre-530 with a position tag for verification from a database and search task options such. 마찬가지로, 요리의 가능한 유형들 역시 레스토랑 검색 태스크를 위한 요리 태그의 유형과 함께 사전(530)에 입력될 수 있다. Similarly, the possible types of cooking can also be entered into the dictionary (530), along with the type of food for the tag Restaurants task. 다른 검색 태스크들에 대한 태그들을 위한 잠재적 쿼리들 역시 적당한 데이터베이스들의 검색을 통해 예시될 수 있다. Potential query for tags Search for other tasks can also be illustrated through a search of the appropriate database. 예를 들면, 전화통화 태스크에 대한 "수신자 성명" 태그는 이름(및 원한다면 성씨도)이 예시될 수 있다. For example, the "recipient name" tag for a phone call task can be exemplified name (surname and if you want too). 이것은, 가능한 쿼리들이 이와 같이 손쉽게 예상되고 사전(530)에 입력되므로 일단 사용자 요청이 주어진 태스크 카테고리에 속하는 것으로 예측되면 대응하는 쿼리들이 쿼리 추출 모듈(520)에 의해 손쉽게 확인될 수 있다는 점에서, 매우 유리하다. This, in that the possible queries are therefore so easily estimated and entered into the dictionary 530. Once the user request, the query can be identified easily by the query extraction module 520 corresponding to when predicted to belong to a given task category, so It is advantageous. 그렇게 하기 위해, 모듈(520)은 관련된 태그들(쿼리 클래스)에 대해 텍스트 입력(130) 내의 단어들을 사전(530)의 입력항목들과 비교한다. To do so, module 520 compares words in the input text 130 and the entry in the dictionary 530 for the associated tag (class of queries). 예를 들면, 다시 도 2를 참조하면, 용어 "Palo Alto"는 위치 태그 아래에 사전(530)에서 매칭을 가질 수 있다. For example, referring to Figure 2 again, the term "Palo Alto" may have a matching in the dictionary (530) below the location tag. 마찬가지로, 용어 "Italian Restaurant"은 요리 유형 태그 아래에 사전(530)에서 매칭을 가질 수 있다. Similarly, the term "Italian Restaurant" can have the match in advance (530) below the cooking type tag. 이와 같이, 주어진 텍스트 입력(130)은 그것의 적절한 쿼리들(500)을 확인하기 위해 시스템(100)에 의해 손쉽게 확인된다. In this way, a given text entry 130 is easily confirmed by the system 100 to verify its proper query to 500.

도 6에 도시된 것과 같이, 태스크 실행 인터페이스 모듈(160)은 임의의 외부 콘텐츠 제공자가 필요한지를 결정하기 위해 예상된 태스크(350)를 사용한다. As shown in Figure 6, the task execution interface module 160 uses the task 350 is expected to determine that any external content provider is required. 전화통화 태스크와 같은 어떤 태스크들은 외부 콘텐츠 제공자가 필요하지 않다. Some tasks, such as phone call task will not need an external content provider. 반면, 레스토랑 검색은 외부 검색 제공자를 사용하여 수행될 수 있다. On the other hand, the restaurant search can be performed using an external search providers. 따라서 태스크 실행 모듈(160)은 임의의 관련된 쿼리들을 태스크 실행 모듈(160) 내의 적절한 API로 발송한다. Thus, the task execution module 160 sends any of the related queries to the appropriate API in the task execution unit 160. 외부 검색 제공자가 필요한 쿼리들은 대응하는 콘텐츠 제공자의 API(620)에 발송된다. Query external search providers need are sent to the API (620) corresponding to the content provider. 반대로, 사용자 장치의 내부 기능이 필요한 쿼리들은 대응하는 내부 기능 API(610)에 발송된다. Conversely, the query requires the internal functionality of the user equipment are sent in a corresponding inner API to 610.

시스템(100)은 하나 이상의 컴퓨터를 사용하여 구현되거나 또는 설정된 FPGA 또는 ASIC(s)을 사용하여 예시될 수 있다. System 100 may be illustrated using an implementation using one or more computers, or set FPGA or ASIC (s). 도 7에는 시스템(100)용의 하나 이상의 모듈을 구현하기 위한 적당한 컴퓨터 시스템(700)이 도시되어 있다. Figure 7 is a suitable computer system 700 for implementing one or more modules for the system 100 shown. 관리자는 디스플레이(711), 키보드(704), 및 오디오/비디오 I/O(705)을 사용하여 시스템(700)을 구성할 수 있다. The administrator can configure the system 700 using the display 711, a keyboard 704, and audio / video I / O (705). 시스템(700)은 버스(702)를 통해 명령들의 메모리(714)에 연결된 하나 이상의 프로세서를 포함한다. System 700 includes one or more processors coupled to the memory 714 of the command through the bus 702. 버스(702)는 또한 네트워크 인터페이스(706) 및 통신링크(718)를 통해 인터넷과 같은 네트워크(750)에 연결된다. Bus 702 is also coupled to a network 750 such as the Internet via the network interface 706 and communication link 718. 이와 같이, 도 1의 자연어 입력(110)과 같은 사용자의 상호작용은 네트워크(750)로부터 시스템(700)에 의해 손쉽게 수신될 수 있다. Thus, even a user's interactions with the natural language input 110 of 1 can be easily received by system 700 from the network 750. 여기서 설명된 다양한 모듈들을 구현하기 위해 프로세서(712)에 의해 실행되는 메모리(714) 내에 저장된 명령은 Java 또는 다른 적당한 프로그래밍 언어로 작성될 수 있다. Instructions stored in the memory 714 to be executed by the processor 712 to implement the various modules described herein may be written in Java or other suitable programming language.

당해 기술분야의 통상의 기술자는 이제 가까이에 있는 특정한 애플리케이션에 의해 본 발명의 범위와 사상을 벗어나지 않으면서 본 발명 장치의 사용 방법과 재료, 장치, 구성에 있어서 다양한 수정, 치환, 변경이 이루어질 수 있음을 이해할 것이다. Ordinary skill in the art now can be made numerous modifications, substitutions, changes in the method using the apparatus of the invention without departing from the scope and spirit of the present invention by the particular application at hand and the material unit, configured it will be appreciated. 이것으로부터, 본 발명의 범위는 여기서 설명된 특정한 실시예들에 제한되는 것이 아니며, 상기 실시예들은 단지 설명을 위한 예시일 뿐이고, 첨부된 청구항들과 그것들의 기능적 균등물에 완전히 상당하는 것으로 이해되어야 한다. From this, the scope of the present invention is not limited to the specific embodiments described herein, the embodiments are merely one example for illustration purposes only, be understood that fully corresponds to the claims and their functional equivalents attached do.

Claims (20)

  1. 기계로-구현되는 방법에 있어서, In the method to be implemented, - a machine
    복수의 사용자들에게 복수의 태스크 카테고리들의 각각에 대하여 사람이 생성한 사용자 요청들을 생성하도록 요청하여, 상기 사람이 생성한 사용자 요청들을 수집하고, 사용자 요청들의 훈련 데이터베이스를 생성하는 단계; By making a request to a plurality of users to generate a user request to create one for each of the plurality of task categories, the method comprising: collecting the person is created by the user request, and generate a training database of a user request;
    각각의 태스크 카테고리에 대하여, 대응하는 사용자 요청 내의 각각의 상이한 단어에 수치 값을 할당함으로써, 상기 훈련 데이터베이스 내의 상기 대응하는 사용자 요청으로부터 훈련 피처 벡터를 추출하여, 각각의 태스크 카테고리에 대해 훈련 피처 벡터들을 가진 훈련 데이터 세트를 형성하는 단계; For each task category, by assigning a numerical value to each different word in the corresponding user to request, extracts the training feature vector from the corresponding user request in the training database, the training feature vector for each task category forming with the training data set;
    각각의 태스크 카테고리에 대하여, 상기 태스크 카테고리에 대응하는 상기 훈련 데이터 세트 내의 상기 훈련 피처 벡터들을 처리하여, 상기 태스크 카테고리에 대해 태스크 분류기 모델을 결정하는 단계; For each task category, the method comprising processing the training feature vector in the training data set corresponding to the task category, the categorizer determines the task model for the task category;
    상기 복수의 태스크 카테고리들 중 하나로 분류될 수 있는 추가 요청을 사용자로부터 수신하는 단계; Adding classifiable in one of the plurality of task categories: receiving a request from a user; And
    상기 기계에서, 상기 추가 요청으로부터 추출된 피처 벡터를 상기 태스크 분류기 모델과 비교하여 어느 태스크 카테고리가 상기 추가 요청에 대응하는지를 확인(identify)하는 단계;를 포함하고, Includes,;, at the machine, determine whether any task category is added to the response to the request (identify) by comparing the feature vector extracted from the request and the additional task classifier model
    상기 사람이 생성한 사용자 요청들의 각 사용자 요청은 상기 복수의 태스크 카테고리들 중의 하나와 고유하게 대응하는, 기계로-구현되는 방법. A method implemented each user request of the user requests the person is generated in, the machine, which uniquely corresponds to one of the plurality of task categories.
  2. 제 1 항에 있어서, According to claim 1,
    상기 기계에서, 상기 확인된 태스크 카테고리에 대해 하나 이상의 쿼리 클래스를 위한 가능한 값들의 사전과 상기 추가 요청 내의 단어들을 비교하여, 하나 이상의 태스크 파라미터에 대해 상기 추가 요청 내의 매칭되는 단어들 또는 구들(phases)을 확인하는 단계를 추가로 포함하는, 기계로-구현되는 방법. In said machine, comparing the words in the identified task category one or more pre-and the further request of possible values ​​for the class of queries for words or phrases for more than one task parameter is matched in the add request (phases) how to be implemented - the, the machine further comprises the step of identifying.
  3. 제 2 항에 있어서, 3. The method of claim 2,
    상기 매칭되는 단어들 또는 구들을 사용함으로써 상기 추가 요청을 서비스하는 단계를 추가로 포함하는, 기계로-구현되는 방법. By using words or phrases that the matching, the machine further comprising the step of adding services to the request-implemented method.
  4. 제 1 항에 있어서, According to claim 1,
    상기 확인된 태스크 카테고리가 완성을 위해 외부 콘텐츠 제공자를 필요로 하는지 여부 또는 상기 확인된 태스크 카테고리가 상기 사용자의 휴대용 장치에 의해 수행될 수 있는지 여부를 결정하는 단계; Determining whether the identified category is whether the task or the check that the need for an external content provider to complete a task category may be performed by a portable device, the user;
    상기 확인된 태스크 카테고리가 완성을 위해 상기 외부 콘텐츠 제공자가 필요하다는 결정에 응답하여 상기 외부 콘텐츠 제공자를 위해 애플리케이션 프로그램 인터페이스를 호출하는 단계; The step of calling an application program interface to the identified task category in response to a determination that the external content provider, the need for completion to the external content provider; And
    상기 확인된 태스크 카테고리가 상기 휴대용 장치에 의해 수행될 수 있다는 결정에 응답하여 상기 휴대용 장치상의 프로그램을 위해 애플리케이션 프로그램 인터페이스를 호출하는 단계; The step of calling the application program interface in response to a determination that the identified task categories that may be performed by the portable device to the program on the portable device;
    를 추가로 포함하는, 기계로-구현되는 방법. , The machine including a further-implemented method.
  5. 제 4 항에 있어서, 5. The method of claim 4,
    상기 휴대용 장치는 휴대전화를 포함하는, 기계로-구현되는 방법. The portable device, the machine including a phone-implemented method.
  6. 제 1 항에 있어서, According to claim 1,
    상기 추가 요청은 자연어 요청을 포함하며, Said further request comprises a natural language request,
    상기 자연어 요청을 텍스트 입력으로 변환하는 단계; Converting the natural language request into a text input; And
    상기 텍스트 입력으로부터 상기 추출된 피처 벡터를 추출하는 단계; Extracting a feature vector extracted from the said text input;
    를 추가로 포함하는, 기계로-구현되는 방법. , The machine including a further-implemented method.
  7. 제 1 항에 있어서, According to claim 1,
    상기 훈련 데이터 세트를 처리하여, 상기 태스크 분류기 모델을 결정하는 단계는 상기 훈련 데이터 세트에 기계학습 알고리즘을 적용하는 단계를 포함하는, 기계로-구현되는 방법. The step of processing the training data set, the classifier determines the task model, a machine comprising the step of applying a machine learning algorithm on the training data set-implemented method.
  8. 제 7 항에 있어서, The method of claim 7,
    상기 기계학습 알고리즘은 지원벡터 기계훈련 알고리즘을 포함하는, 기계로-구현되는 방법. The machine learning algorithms, the machine comprising a support vector machine training algorithm method is implemented.
  9. 제 7 항에 있어서, The method of claim 7,
    상기 기계학습 알고리즘은 나이브 베이즈(Naive Bayes) 알고리즘을 포함하는, 기계로-구현되는 방법. The machine learning algorithms, the machine including a Naive Bayes (Naive Bayes) algorithm method is implemented.
  10. 제 1 항에 있어서, According to claim 1,
    상기 태스크 카테고리들은 레스토랑 검색 태스크 카테고리, 전화통화 태스크 카테고리, 이메일 태스크 카테고리, 및 교통 태스크 카테고리를 포함하는, 기계로-구현되는 방법. The task categories, the machine including a category Restaurants task, phone call task categories, e-mail task categories, and task categories Traffic - How to be implemented.
  11. 삭제 delete
  12. 삭제 delete
  13. 삭제 delete
  14. 삭제 delete
  15. 삭제 delete
  16. 삭제 delete
  17. 삭제 delete
  18. 삭제 delete
  19. 삭제 delete
  20. 삭제 delete
KR1020167001061A 2013-11-27 2014-11-25 Automatic task classification based upon machine learning KR101770527B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US201361909992P true 2013-11-27 2013-11-27
US61/909,992 2013-11-27
PCT/US2014/067475 WO2015081128A1 (en) 2013-11-27 2014-11-25 Automatic task classification based upon machine learning

Publications (2)

Publication Number Publication Date
KR20160053905A KR20160053905A (en) 2016-05-13
KR101770527B1 true KR101770527B1 (en) 2017-08-22



Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167001061A KR101770527B1 (en) 2013-11-27 2014-11-25 Automatic task classification based upon machine learning

Country Status (6)

Country Link
US (1) US9471887B2 (en)
EP (1) EP3074877A4 (en)
JP (1) JP6440732B2 (en)
KR (1) KR101770527B1 (en)
CN (1) CN105378699B (en)
WO (1) WO2015081128A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10019515B2 (en) 2015-04-24 2018-07-10 Microsoft Technology Licensing, Llc Attribute-based contexts for sentiment-topic pairs
US9792281B2 (en) * 2015-06-15 2017-10-17 Microsoft Technology Licensing, Llc Contextual language generation by leveraging language understanding
US10176171B1 (en) * 2017-12-29 2019-01-08 Aiqudo, Inc. Language agnostic command-understanding digital assistant

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040148154A1 (en) * 2003-01-23 2004-07-29 Alejandro Acero System for using statistical classifiers for spoken language understanding
US20060074630A1 (en) * 2004-09-15 2006-04-06 Microsoft Corporation Conditional maximum likelihood estimation of naive bayes probability models
US20110107242A1 (en) * 2009-11-02 2011-05-05 Microsoft Corporation Task prediction

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266559B2 (en) * 2002-12-05 2007-09-04 Microsoft Corporation Method and apparatus for adapting a search classifier based on user queries
US7231375B2 (en) * 2003-10-10 2007-06-12 Microsoft Corporation Computer aided query to task mapping
US8082264B2 (en) * 2004-04-07 2011-12-20 Inquira, Inc. Automated scheme for identifying user intent in real-time
JP2006146621A (en) * 2004-11-19 2006-06-08 Nec Corp Information management device and method, and information management program
US7949186B2 (en) * 2006-03-15 2011-05-24 Massachusetts Institute Of Technology Pyramid match kernel and related techniques
US7558766B1 (en) * 2006-09-29 2009-07-07 Hewlett-Packard Development Company, L.P. Classification using enhanced feature sets
US20080162117A1 (en) * 2006-12-28 2008-07-03 Srinivas Bangalore Discriminative training of models for sequence classification
CN101211339A (en) * 2006-12-29 2008-07-02 上海芯盛电子科技有限公司 Intelligent web page classifier based on user behaviors
EP2817739A4 (en) * 2012-02-22 2016-04-20 Nokia Technologies Oy A system, and a method for providing a predition for controlling a system
HUE030528T2 (en) * 2012-03-15 2017-05-29 Cortical Io Gmbh Methods, apparatus and products for semantic processing of text
US9659145B2 (en) * 2012-07-30 2017-05-23 Nutech Ventures Classification of nucleotide sequences by latent semantic analysis
CN102929613B (en) * 2012-10-16 2016-08-10 无锡江南计算技术研究所 Operating system tuning method and apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040148154A1 (en) * 2003-01-23 2004-07-29 Alejandro Acero System for using statistical classifiers for spoken language understanding
US20060074630A1 (en) * 2004-09-15 2006-04-06 Microsoft Corporation Conditional maximum likelihood estimation of naive bayes probability models
US20110107242A1 (en) * 2009-11-02 2011-05-05 Microsoft Corporation Task prediction

Also Published As

Publication number Publication date
EP3074877A4 (en) 2017-09-06
JP6440732B2 (en) 2018-12-19
CN105378699B (en) 2018-12-18
CN105378699A (en) 2016-03-02
EP3074877A1 (en) 2016-10-05
US20160019471A1 (en) 2016-01-21
JP2017505964A (en) 2017-02-23
US9471887B2 (en) 2016-10-18
KR20160053905A (en) 2016-05-13
WO2015081128A1 (en) 2015-06-04

Similar Documents

Publication Publication Date Title
US10282377B2 (en) Suggested terms for ambiguous search queries
US9805127B2 (en) Methods and systems for utilizing activity data with clustered events
JP5475795B2 (en) Custom language model
US8983825B2 (en) Collaborative language translation system
CN102750271B (en) Conversational dialogue and learning correction
US20150081686A1 (en) Default Structured Search Queries on Online Social Networks
US20070136068A1 (en) Multimodal multilingual devices and applications for enhanced goal-interpretation and translation for service providers
US10083690B2 (en) Better resolution when referencing to concepts
CN105027118B (en) Modify the structure of a search query on online social networks
JP2018173979A (en) Client-side search templates for online social networks
US20070136222A1 (en) Question and answer architecture for reasoning and clarifying intentions, goals, and needs from contextual clues and content
US9703859B2 (en) Keyword search queries on online social networks
US9367607B2 (en) Natural-language rendering of structured search queries
US9299041B2 (en) Obtaining data from unstructured data for a structured data collection
US9646609B2 (en) Caching apparatus for serving phonetic pronunciations
US20150279348A1 (en) Generating natural language outputs
WO2013155619A1 (en) Conversational agent
US20190220460A1 (en) Searchable index
CN105830065A (en) Generating recommended search queries on online social networks
JP2007514249A (en) Translator database
CN104718569A (en) Improved voice pronunciation
US20160162569A1 (en) Methods and systems for improving machine learning performance
CN103198155B (en) An interactive system and method based on intelligent mobile terminal Q
WO2013173352A2 (en) Crowd sourcing information to fulfill user requests
CN107077201A (en) Eye gaze for spoken language understanding in multi-modal conversational interactions

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