KR20190019041A - 자연어 질의를 위한 근사적인 템플릿 매칭 - Google Patents

자연어 질의를 위한 근사적인 템플릿 매칭 Download PDF

Info

Publication number
KR20190019041A
KR20190019041A KR1020187018666A KR20187018666A KR20190019041A KR 20190019041 A KR20190019041 A KR 20190019041A KR 1020187018666 A KR1020187018666 A KR 1020187018666A KR 20187018666 A KR20187018666 A KR 20187018666A KR 20190019041 A KR20190019041 A KR 20190019041A
Authority
KR
South Korea
Prior art keywords
word
distance
search
representation vector
media guidance
Prior art date
Application number
KR1020187018666A
Other languages
English (en)
Other versions
KR102354652B1 (ko
Inventor
사시쿠마르 벤카타라만
마닉 말호트라
피 아메드 니잠 모하이딘
Original Assignee
로비 가이드스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 로비 가이드스, 인크. filed Critical 로비 가이드스, 인크.
Publication of KR20190019041A publication Critical patent/KR20190019041A/ko
Application granted granted Critical
Publication of KR102354652B1 publication Critical patent/KR102354652B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/3343Query execution using phonetics
    • G06F17/212
    • G06F17/248
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42203Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS] sound input device, e.g. microphone
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4828End-user interface for program selection for searching program descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • H04N21/8405Generation or processing of descriptive data, e.g. content descriptors represented by keywords

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Acoustics & Sound (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

시스템 및 방법은 검색 결과 세트를 식별하기 위한 복수의 자연어 검색 질의를 인식하는 미디어 안내 어플리케이션을 제공한다. 예를 들어, 사용자는 양키스가 다음 야구 경기를 할 때를 판단하기를 원할 수 있다. 사용자는 "양키스는 언제 경기합니까?(When are the Yankees playing?)", "양키스는 몇 시에 경기합니까?(What time is the Yankees game?)", "다음 양키스 야구 경기는 언제입니까?(When is the next Yankees baseball game?)"와 같은 여러 가지 방식으로 그 질의를 구성할 수 있다. 사용자는 질의가 어떻게 구성되었는지에 관계없이, 양키스가 언제 경기하는지에 대한 동일한 결과와 설명을 기대할 것이다. 본 시스템 및 방법은, 사용자가 원하는 결과를 얻기 위해 아이템 또는 정보를 검색할 때 복수의 검색 질의를 사용할 수 있게 한다.

Description

자연어 질의를 위한 근사적인 템플릿 매칭
종래의 시스템에서, 사용자는 텔레비전 프로그램 및 스포츠 스코어와 같은 광범위하게 다양한 미디어 및 정보에 액세스한다. 종종, 사용자는 음성 제어를 사용하는 것과 같이, 핸즈-프리 인터페이스를 사용하여 정보를 검색하려고 할 수 있다. 종래의 시스템은, 사용자가 음성 명령을 사용하여 검색을 수행하는 것을 허용할 수 있다. 그러나 이러한 시스템은 통상적으로 입력 음성 검색이 고정 질의 자체에 직접 매칭되기 때문에, 고정된 수의 검색 질의만 인식한다. 따라서, 사용자는 시스템이 인식할 수 있도록, 특정 방식으로 그 음성 명령을 구성해야 한다. 종종, 이것은 사용자가 자연스럽지 않은 방식으로 말하기를 요구한다. 많은 경우, 사용자는 시스템을 사용하기 전에 명령을 구조화해야 하는 방법을 찾아보거나 학습해야 한다. 음성 명령이 시스템에 의해 인식될 수 있도록 구성되지 않은 경우, 사용자는 시스템에 의해 인식되는 방식으로 음성을 반복하도록 프롬프팅될 수 있고 그리고/또는 검색 결과가 제시되지 않을 수 있다.
따라서, 유사한 의도를 갖는 복수의 자연어 질의를 인식하고 그 의도와 매칭되는 검색 결과를 제공하는 미디어 안내 시스템을 위한 방법 및 시스템이 여기에서 설명된다. 사용자는 다양한 상이한 언어들을 사용하여 게임 스케줄에 대한 질의(query)와 같은 질의를 구조화하기를 원할 수 있다. 예를 들어, 사용자는 양키스(Yankees)가 다음 야구 경기를 할 때를 결정하기를 원할 수 있다. 사용자는 "언제 양키스가 경기를 하나요?" 또는 "몇 시에 양키스 경기가 있나요?", "다음 양키스 야구 경기는 언제인가요?"와 같은 그 질의를 구조화할 수 있다. 미디어 안내 어플리케이션은 상술한 3개의 예시적인 질의 각각에 대해, 사용자가 언제 양키스가 그 다음 경기를 할 것인지를 판단하려고 시도하는지를 판단할 수 있다.
따라서, 미디어 안내 어플리케이션은 다음 양키스 경기에 대해 데이터베이스에 질의할 수 있고, 질의의 결과를 사용자에게 제시할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 검색 질의로부터 단어를 처리하고 유사한 의미를 갖는 단어가 유사한 의미를 갖지 않는 단어보다 함께 더 가깝게 맵핑되는 벡터 공간으로 단어를 맵핑할 수 있다. 예를 들어, "고양이(cat)"와 "개(dog)"라는 단어는 통상적으로 양 단어가 가정용 애완 동물을 설명하는 텍스트에 나타나기 때문에 함께 더 가까이 맵핑될 수 있다. 미디어 안내 어플리케이션은 검색 질의에 매우 근접한 벡터 공간으로부터 템플릿을 검색할 수 있고, 템플릿에 기초하여 검색 결과를 검색할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 단어 "고양이" 및 "개"에 근접한 위치에 누군가의 애완 동물을 찾는 것과 연관된 템플릿을 식별할 수 있는데, 그 이유는 단어 및 템플릿 모두 가정용 애완 동물과 관련되기 때문이다. 예를 들어, 미디어 안내 어플리케이션은 (예를 들어, 검색 질의 단어를 벡터 공간에서 템플릿의 단어와 매칭시킴으로써) 검색 질의의 단어를 일반화된 검색 질의 템플릿의 단어들과 매칭시키기 때문에, 미디어 안내 어플리케이션은 템플릿의 변형을 메모리에 저장할 필요 없이 검색 질의 템플릿을 검색 질의 템플릿 자체의 변형에 매칭시킬 수 있다. 따라서, 사용자는 종래 기술 시스템에서와 같이 구조화된 질의를 기억하고 암기는 데 부담을 받지 않는다.
일부 양태들에서, 미디어 안내 어플리케이션은 사용자 입력 디바이스를 통해 적어도 2개의 단어들을 포함하는 입력 질의를 수신할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 미디어 안내 어플리케이션에 접속된 키보드를 통해 텍스트 입력을 수신할 수 있다. 일부 실시예에서, 미디어 안내 어플리케이션은 미디어 안내 어플리케이션에 액세스 가능한 마이크로폰과 같은 오디오 입력 디바이스에서 음성 입력과 같은 오디오 신호를 검출할 수 있다. 미디어 안내 어플리케이션은 오디오 입력을 처리하여 오디오 신호 내의 단어들의 텍스트 열을 생성할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 음성 입력에 대해 음성-대-텍스트 인식 알고리즘을 수행할 수 있다. 미디어 안내 어플리케이션은, 예를 들어, 입력 오디오에 대해 음성-대-텍스트 처리를 수행한 후에, 입력 오디오가 두 단어를 포함하는지를 판단할 수 있다.
미디어 안내 어플리케이션은 입력 질의의 제1 단어에 대응하는 제1 표현 벡터 및 입력 질의의 제2 단어에 대응하는 제2 표현 벡터를 계산한다. 예를 들어, 미디어 안내 어플리케이션은 미디어 안내 어플리케이션에 액세스할 수 있는 자연어 처리 툴킷에서의 단어-대-벡터 알고리즘과 같은 알고리즘을 사용하여 입력 질의 내의 각 단어에 대한 벡터 표현을 생성할 수 있다. 미디어 안내 어플리케이션은 제1 및 제2 단어 각각에 대한 벡터 표현을 계산할 수 있어, 제1 벡터 표현 및 상기 제2 벡터 표현 내의 각각의 값이, 제1 단어 및 제2 단어가 단어 피처의 세트의 피처와 매칭되는 정도에 대응한다. 예를 들어, 미디어 안내 어플리케이션은 제1 단어에 기초하여, 단어들의 세트로부터 다른 단어들과 함께 발생하는 제1 단어의 확률을 판단할 수 있다. 제1 표현 벡터 내의 각각의 개별 값은, 제1 단어가 세트 내의 각각의 개별 단어와 함께 발생하는 각각의 확률을 포함할 수 있다. 예로서, 미디어 안내 어플리케이션은 "안투라지가 어디에 있나요(Where's Entourage)"라는 입력 질의를 수신할 수 있다. 미디어 안내 어플리케이션은 단어 "Where's"에 대한 제1 표현 벡터를 계산할 수 있고, 단어 "Entourage"에 대한 제2 표현 벡터를 계산할 수 있다.
미디어 안내 어플리케이션은 검색 의도와 관련된 검색 질의 템플릿을 데이터베이스로부터 검색한다. 예를 들어, 미디어 안내 어플리케이션은, 사용자가 미디어에 액세스할 수 있는지를 판단하는 의도와 같은 검색 의도와 관련된 단어를 원격 서버에 질의할 수 있다. 단어는 검색 질의 "미디어_X 찾기?(Locate media_X?)"와 같은 의도와 매칭되는 검색 질의 템플릿에 대응할 수 있으며 "media_X"라는 용어는 사용자가 검색하고 있는 미디어에 해당하는 단어로 미디어 안내 어플리케이션에 의해 대체될 수 있다. 예를 들어, 미디어 안내 어플리케이션은 사용자가 영화 "헝거 게임(Hunger Games)"을 검색하고 있는 것을 판단할 수 있다. 사용자가 영화 "Hunger Games"를 검색하고 있다고 판단하는 것에 응답하여, 미디어 안내 어플리케이션은 템플릿 내의 용어 "media_X"를 용어 "Hunger Games"로 교체하는 질의를 데이터베이스에 생성할 수 있다.
미디어 안내 어플리케이션은 상술한 바와 같이, 검색 질의 템플릿 내의 단어들 각각에 대한 표현 벡터를 계산할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 "찾기(Locate)"와 같은 제3 단어에 대응하는 제3 표현 벡터를 계산할 수 있고, "media_X"와 같은 제4 단어에 대응하는 제4 표현 벡터를 계산할 수 있다. 상술한 바와 같이, 제3 및 제4 표현 벡터의 값은, 공통으로 사용되는 단어의 세트에서 제3 및 제4 단어의 각각이 함께 발생할 확률과 같이, 제3 단어 및 제4 단어가 단어 피처의 세트의 피처와 얼마나 근접하게 매칭되는지를 나타낼 수 있다.
미디어 안내 어플리케이션은 제1 표현 벡터와 제3 표현 벡터 간의 제1 거리를 계산한다. 미디어 안내 어플리케이션은 제1 표현 벡터가 제3 표현 벡터와 얼마나 유사한지를 비교하기 위한 메트릭(metric)을 생성하기 위해 거리를 계산할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 제1 표현 벡터 내의 각각의 값을 제3 표현 벡터 내의 각각의 값과 비교하여 거리를 계산할 수 있다. 예를 들어, 미디어 안내 어플리케이션은, 제3 표현 벡터 내의 각각의 값에 대응하는 제1 표현 벡터의 각각의 값이 유사하지 않으면 큰 거리를 계산할 수 있다. 반대로, 미디어 안내 어플리케이션은, 제1 표현 벡터의 각각의 값이 제3 표현 벡터의 각각의 값과 유사하면 (예를 들어, 제1 표현 벡터 내의 값과 제3 표현 벡터 내의 대응하는 값 간의 차이가 임계값 내에 있음), 작은 거리를 계산할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 "Locate"라는 단어에 대응하는 표현 벡터를 "Where's"라는 단어에 대응하는 표현 벡터와 비교할 수 있고, 두 단어 모두가 항목의 위치를 결정하는 것을 나타내므로, 거리가 작은 것으로 결정할 수 있다.
미디어 안내 어플리케이션은, 제1 거리가 제1 임계 거리 미만이라고 판단한 것에 응답하여 제2 표현 벡터와 제4 표현 벡터 간의 제2 거리를 계산한다. 예를 들어, 미디어 안내 어플리케이션은 메모리로부터 제1 임계값을 검색하여, 제1 단어가 제3 단어와 유사한지를 판단할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 상술한 바와 같이, "Where's" 및 "Locate"의 각각의 표현 벡터들 간의 제1 거리를 결정할 수 있다. 미디어 안내 어플리케이션은 거리의 값을 임계값과 비교하여, 단어들이 유사한지 여부를 판단할 수 있다. 미디어 안내 어플리케이션이 단어들이 유사하다고 판단하면, 미디어 안내 어플리케이션은 제2 표현 벡터와 제4 표현 벡터 간의 제2 거리를 계산할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 상술한 바와 같이 제2 거리를 계산하여, "Entourage"와 같은 제2 단어가 "media_X"와 같은 제4 단어와 얼마나 유사한지를 정량화할 수 있는데, 그 이유는 입력 질의의 제1 단어가 검색 질의 템플릿의 제1 단어에 매칭되기 때문이다.
미디어 안내 어플리케이션은, 제2 거리가 제2 임계 거리 미만인 것으로 판단한 것에 응답하여 검색 질의 템플릿을 선택한다. 예를 들어, 미디어 안내 어플리케이션은 미디어 안내 어플리케이션에 액세스 가능한 원격 데이터베이스로부터 제2 임계값을 검색할 수 있다. 미디어 안내 어플리케이션은 제2 거리를 제2 임계 거리와 비교하여, (예를 들어, 입력 질의 내의 양쪽 단어가 검색 질의의 단어와 매칭되는 경우) 단어들이 검색 질의 템플릿을 사용하기에 충분히 유사한지 여부를 판단할 수 있다. 제2 거리가 제2 임계 거리 미만인 경우, 미디어 안내 어플리케이션은 사용자에게 검색 결과를 제공하기 위해 검색 질의 템플릿을 선택할 수 있다.
미디어 안내 어플리케이션은 검색 질의 템플릿에 기초하여 검색 결과를 검색한다. 예를 들어, 미디어 안내 어플리케이션은 검색 질의 템플릿을 사용하여 미디어의 위치를 포함하는 데이터베이스에 대한 질의를 구성할 수 있다. 예를 들어, 미디어 안내 어플리케이션은, 사용자의 검색 질의의 제1 단어가 검색 질의 템플릿의 제1 단어와 매칭되고 사용자의 검색 질의의 제2 단어가 검색 질의 템플릿의 제2 단어와 매칭되므로, 검색 결과를 검색하는 데 검색 질의 템플릿이 사용되어야 한다는 것으로 판단할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 질의 내의 입력 질의로부터 두 단어 중 하나를 데이터베이스에 포함시킬 수 있다. 예를 들어, 미디어 안내 어플리케이션은 검색 질의 템플릿 내의 단어를 입력 질의로부터의 단어로 대체할 수 있다. 미디어 안내 어플리케이션은 검색 질의 템플릿(예를 들어, "Locate media_X")에 기초하여 검색 질의를 생성할 수 있고, "media_X"를 사용자가 찾고자 하는 미디어(예를 들어, "Entourage")로 대체할 수 있다. 미디어 안내 어플리케이션은 질의를 검색 데이터베이스에 송신할 수 있으며, 질의 결과를 사용자에게 제시할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 네트워크 접속을 통해 질의 "Locate Entourage"를 송신할 수 있고 미디어의 위치를 기술하는 미디어 안내 어플리케이션의 스피커를 통해 오디오를 출력할 수 있다(예를 들어, 데이터베이스에 대한 질의의 결과에 기초함).
일부 실시예에서, 미디어 안내 어플리케이션은, 제1 단어가 데이터베이스에 대한 질의에 포함되어야 하는지 여부를 판단하기 위해 제1 단어와 연관된 품사를 식별할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 입력 질의에 품사 태깅(tagging) 알고리즘을 적용할 수 있다. 미디어 안내 어플리케이션은 입력 질의 내의 각각의 단어를 토큰화할 수 있고, 토큰화된 단어들의 리스트를 품사 태거("POS tagger")에 입력하여 각 단어와 연관된 품사를 검색할 수 있다. 일례에서, 미디어 안내 어플리케이션은, 제2 단어가 입력 질의의 대상이라고 판단할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 "Entourage"가 입력 질의의 대상인지를 판단할 수 있다. 미디어 안내 어플리케이션은 입력 질의(예를 들어, "Entourage")의 대상을 검색 질의 템플릿(예를 들어, "media_X")의 대상으로 대체할 수 있고, 검색 결과를 검색하기 위해 원격 데이터베이스에 질의를 송신할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 입력 질의 내의 불용어(stop word)를 무시할 수 있다. 예를 들어, 미디어 안내 어플리케이션은, 입력 질의가 2개 초과의 단어를 포함한다고 판단할 수 있다. 미디어 안내 어플리케이션은 입력 질의의 제1 단어를 불용어 리스트와 비교하여, 제1 단어가 불용어 리스트의 불용어와 매칭되는지 여부를 판단할 수 있다. 제1 단어가 불용어와 매칭되는 것으로 판단한 것에 응답하여, 미디어 안내 어플리케이션은 입력 질의의 다른 단어(예를 들어, 입력 질의로부터 제3 단어)를 선택할 수 있고, (예를 들어, 입력 질의의 제3 단어가 단어 피처의 세트의 피처와 매칭되는 정도를 판단하여) 입력 질의의 제3 단어에 대한 제5 표현 벡터를 계산할 수 있다. 미디어 안내 어플리케이션은, 제1 표현 벡터가 불용어에 대응하기 때문에, 제1 표현 벡터를 사용하는 대신에 제5 표현 벡터를 사용할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 제1 표현 벡터의 제1 값과 제2 표현 벡터의 대응하는 제2 값을 비교함으로써 제1 표현 벡터와 제3 표현 벡터 사이의 거리를 계산할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 제1 표현 벡터의 X 차원에서 제1 값을 취할 수 있고 제3 표현 벡터의 X 차원에서의 제2 값으로부터 제1 값을 감산할 수 있다. 미디어 안내 어플리케이션은 그 차이를 메모리 내의 위치에 저장할 수 있다. 미디어 안내 어플리케이션은 제1 및 제3 표현 벡터의 각 요소를 반복적으로 선택할 수 있고, 차이를 계산할 수 있고, 거리에 기초하여 거리 변수를 증분 또는 감소시킬 수 있다. 미디어 안내 어플리케이션은 제1 값과 제2 값을 비교하여, 제1 값과 제2 값이 임계량 미만으로 다른지 여부를 결정할 수 있다(예를 들어, 미디어 안내 어플리케이션이 제로의 차이를 계산할 때 또는 그 차이가 메모리에 저장된 임계값 미만일 때). 미디어 안내 어플리케이션이, 그 차이가 임계값 미만이라고 판단하면, 미디어 안내 어플리케이션은 거리 값을 변경하지 않고 둘 수 있다(또는 제로를 가산). 미디어 안내 어플리케이션이, 제1 값과 제2 값이 임계량 초과로 상이하다고 판단하면, 미디어 안내 어플리케이션은 값이 유사하지 않은 정도를 계산할 수 있고, 값이 비유사한 정도에 기초하여 거리를 증분시킬 수 있다. 예를 들어, 미디어 안내는 두 값의 차이가 5일 때 거리를 5씩 증분시킬 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 벡터 공간에서의 제3 표현 벡터에 대한 제1 표현 벡터의 방향에 기초하여 제1 표현 벡터와 제3 표현 벡터 간의 제1 거리를 계산할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 제1 표현 벡터의 요소의 수(예를 들어, N) 및 제3 표현 벡터의 요소의 수(예를 들어, N)를 판단할 수 있다. 제1 표현 벡터 내의 요소의 수가 제3 표현 벡터 내의 요소의 수와 동일하다고 판단하는 것에 응답하여(예를 들어, 두 벡터가 모두 N개의 요소를 가짐), 미디어 안내 어플리케이션은 제1 및 제3 표현 벡터를 차원 N의 벡터 공간에서 평가할 수 있다. 미디어 안내 어플리케이션은 벡터들 사이의 각도를 나타내는 제1 및 제3 표현 벡터 간의 코사인 유사성과 같은 벡터 공간에서의 거리를 계산할 수 있다. 제1 표현 벡터와 제3 표현 벡터 사이의 각도가 작은 경우, 미디어 안내 어플리케이션은, 벡터가 유사하다고 판단할 수 있다. 제1 표현 벡터와 제3 표현 벡터 사이의 각도가 클 때, 미디어 안내 어플리케이션은, 벡터들이 유사하지 않다고 판단할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은, 제1 단어가 제3 단어의 의미와 매칭되고 제4 단어의 의미와는 매칭되지 않는 경우, 제1 거리(예를 들어, 제1 표현 벡터와 제3 표현 벡터 사이)가 제1 표현 벡터와 제2 표현 벡터 간의 제4 표현 벡터 사이의 제3 거리 미만인 것으로 판단할 수 있다. 예를 들어, 상술한 바와 같이, 미디어 안내 어플리케이션은 코사인 거리를 제1 및 제3 거리로서 계산할 수 있다. 미디어 안내 어플리케이션은 (예를 들어, 단어의 의미를 포착하는 표현 벡터에 기초하여) 2개의 단어가 유사한 의미를 가질 때 거리가 최소인 것으로 판단할 수 있고, 단어가 유사한 의미를 갖지 않을 때 거리가 최대인 것으로 판단할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은, 제1 거리가 제1 임계 거리보다 크다고 판단할 수 있고 결과적으로 비교를 위해 제2 템플릿을 검색할 수 있다. 예를 들어, 제1 검색 질의 템플릿은 "사람 X는 누구인가요(Who's person_X)"라는 검색 질의를 포함할 수 있다. 미디어 안내 어플리케이션은 "Where's"(예를 들어, 제1 단어)와 "Who's"(예를 들어, 제5 단어) 사이의 거리를 계산할 수 있다. 미디어 안내 어플리케이션은 상술한 바와 같이, 그 각각의 표현 벡터를 기반으로 "Who's"가 "Where's"와 유사하지 않다고 판단할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 검색 질의 템플릿을 포함하는 데이터베이스로부터 제2 검색 질의 템플릿을 검색할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 "Locate media_X"라는 검색 질의를 포함하는 제2 검색 질의 템플릿을 검색할 수 있다. 미디어 안내 어플리케이션은 제2 검색 질의 템플릿을 검색할 수 있고, 제2 검색 질의 템플릿의 제1 단어(예를 들어, "Locate") 및 제2 검색 질의 템플릿의 제2 단어(예를 들어, "media_X")에 대해 상술한 바와 같이 각각의 제5 및 제6 표현 벡터를 계산할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 상술한 바와 같이, 제1 표현 벡터와 제5 표현 벡터 간의 제3 거리를 계산할 수 있고, 제3 거리와 제1 임계 거리를 비교할 수 있다. 제3 거리가 제1 임계 거리 미만인 것으로 판단한 것에 응답하여, 미디어 안내 어플리케이션은 제2 표현 벡터와 제6 표현 벡터 사이의 제4 거리를 계산할 수 있다(예를 들어, 입력 질의의 제2 단어 "Entourage"가 제2 검색 질의 템플릿의 제2 단어 "Media_X"와 매칭되는지 여부를 판단). 제4 거리가 제2 임계값 초과인 것으로 판단한 것에 응답하여, 미디어 안내 어플리케이션은 제2 검색 질의 템플릿을 선택할 수 있다. 제2 검색 질의 템플릿에 기초하여, 미디어 안내 어플리케이션은 (예를 들어, 텔레비전 쇼 "Entourage"의 위치를 식별하기 위해) 입력 질의의 의도에 대응하는 검색 결과를 검색하기 위해 데이터베이스에 질의를 생성할 수 있다. 미디어 안내 어플리케이션은 예를 들어, 사용자 의도와 매칭되는 미디어 목록(예를 들어, Entourage에 대한 미디어 목록)의 디스플레이를 생성함으로써 검색 결과를 사용자에게 제시할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 검색 질의 템플릿과 관련된 레이아웃에 기초하여 조직된 검색 결과의 표시를 생성할 수 있다. 예를 들어, 미디어 안내 어플리케이션은, 어떻게 검색 결과가 사용자에게 제시되어야 하는지를 나타내는 템플릿과 관련된 레이아웃을 (예를 들어, 데이터베이스로부터) 검색할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 "영화 쥬랜더를 어디에서 재생할 수 있나요?(Where can I play the movie Zoolander")"라는 입력 질의를 검색할 수 있다. 미디어 안내 어플리케이션은, (예를 들어, 입력 질의를 상술한 바와 같이 검색 질의 템플릿에 매칭시킴으로써) 입력 질의가 미디어를 찾기 위한 의도와 매칭되는지를 판단할 수 있고, Zoolander에 대한 액세스를 갖는 미디어 콘텐츠 공급자 식별하는 디스플레이 타일을 (예를 들어, 모자이크로) 생성할 수 있다. 반대로, 미디어 안내 어플리케이션은 입력 질의 "현재 MLB 순위는 무엇입니까?(What are the current MLB standings?)"를 검색할 수 있다. 미디어 안내 어플리케이션은, 입력 질의가 (예를 들어, 입력 질의를 검색 질의 템플릿에 매칭시킴으로써) 통계를 표시하기 위한 의도와 매칭되는지를 판단할 수 있다. 입력 질의가 통계를 표시하기 위한 의도와 매칭되는 것으로 판단한 것에 응답하여, 미디어 안내 어플리케이션은 MLB 통계를 포함하는 테이블의 표시를 생성할 수 있다.
상술한 시스템 및/또는 방법은 본 발명의 다른 시스템, 방법 및/또는 장치에 적용될 수 있거나 그에 따라 사용될 수 있음에 유의해야 한다.
본 발명의 상기 목적 및 이점과 다른 목적 및 이점은 첨부된 도면과 관련하여 취해진 후술하는 상세한 설명을 고려할 때 명백할 것이며, 동일한 참조 부호는 전체에서 동일 부분을 나타낸다:
도 1은 본 발명의 일부 실시예에 따라 사용자로부터 질의를 수신하도록 구성된 사용자 장비의 예시적인 예를 나타낸다.
도 2는 본 발명의 일부 실시예에 따라 2차원 벡터 공간에서의 단어 표현 벡터의 예시적인 예를 나타낸다.
도 3은 본 발명의 일부 실시예에 따라 미디어 및 위치 검색 템플릿을 나타내는 예시적인 데이터베이스 엔트리를 나타낸다.
도 4는 본 발명의 일부 실시예에 따라 사용자에 의해 입력된 질의와 매칭되는 검색 질의 템플릿에 기초하여 검색된 검색 결과를 표시하는 사용자 장비의 예시적인 예를 나타낸다.
도 5는 본 발명의 일부 실시예에 따라 제시될 수 있는 미디어 안내 디스플레이의 예시적인 예를 나타낸다.
도 6은 본 발명의 일부 실시예에 따라 제시될 수 있는 미디어 안내 디스플레이의 다른 예시적인 예를 나타낸다.
도 7은 본 발명의 일부 실시예에 따른 예시적인 사용자 장비 디바이스의 블록도이다.
도 8은 본 발명의 일부 실시예에 따른 예시적인 미디어 시스템의 블록도이다.
도 9는 본 발명의 일부 실시예에 따라 근사 템플릿 매치에 기초하여 검색 결과를 생성하기 위한 예시적인 단계의 흐름도이다.
도 10은 본 개시의 일부 실시예에 따라 검색 질의 템플릿을 선택하기 위한 예시적인 단계의 흐름도이다.
유사한 의도를 갖는 것으로서 복수의 자연어 질의를 인식하고 그 의도와 매칭되는 검색 결과를 생성하는 미디어 안내 시스템을 제공하기 위한 시스템 및 방법이 여기에 제공된다. 예를 들어, 미디어 안내 어플리케이션은 음성 또는 텍스트 기반 검색을 위한 인터페이스를 제공할 수 있다. 미디어 안내 어플리케이션은 각각이 동일한 의도를 갖는 사용자로부터 복수의 상이한 질의를 검색할 수 있다. 예를 들어, 사람이 말하는 방식의 자연스러운 변화로 인해, 다음번 텔레비전 쇼인 "왕좌의 게임(Game of Thrones)"이 방송되는 것을 사용자가 식별하려고 할 때, 사용자는 " '왕좌의 게임'이 언제 다시 방송되는가?" 또는 "몇시에 '왕좌의 게임'의 다음 에피소드를 볼 수 있는?" 또는 "왕좌의 게임'의 에피소드 5를 볼 수 있는 시간을 알려주세요" 등을 말할 수 있다. 미디어 안내 어플리케이션은 "왕좌의 게임"의 다음 에피소드가 방송되는 시간을 식별하기 위한 의도로 각각의 변형을 인식할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 사용자에 대한 일반화된 의도를 포함하는 데이터베이스의 템플릿에 액세스할 수 있다. 예를 들어, 일반화된 의도는 미디어 스케줄에 대한 요청일 수 있다. 일반화된 의도는 복수의 단어와 연관될 수 있다. 복수의 단어 각각은, 유사한 의미를 갖는 단어들이 벡터 공간 내에서 매우 근접하게 맵핑되는 다차원 벡터 공간 내의 벡터와 연관될 수 있다. 미디어 안내 어플리케이션은 벡터 공간 내에서 검색 질의의 단어에 매우 근접한 템플릿의 단어를 식별함으로써 검색 질의와 매칭되는 템플릿을 찾을 수 있다. 미디어 안내 어플리케이션은 템플릿에 기초하여 검색 질의를 생성할 수 있고, 생성된 질의에 기초하여 다양한 검색 결과를 검색할 수 있다. 앞선 예에 이어서, 미디어 안내 어플리케이션은 "왕좌의 게임"에 대한 방송 스케줄에 관한 정보를 포함하는 데이터베이스에 질의를 생성할 수 있다. 미디어 안내 어플리케이션은 질의에 기초하여 검색 결과를 검색할 수 있고, 결과의 표시를 생성할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 "왕좌의 게임"에 대한 방송 시간 스케줄을 검색할 수 있으며, 스케줄의 표시를 생성할 수 있으며, 다음 이용가능한 에피소드 또는 사용자가 요청한 다른 임의의 에피소드에 대한 방송 시간을 강조 표시할 수 있다.
미디어 안내 어플리케이션은 사용자 입력 디바이스를 통해 입력 질의를 수신할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 물리적 또는 가상 키보드(예를 들어, 디스플레이상의 터치 입력이 미디어 안내 어플리케이션에 의해 문자들과 상관되는, 디스플레이 상에 생성된 키보드)에 접속될 수 있다. 미디어 안내 어플리케이션은 자연어 검색 질의와 같은 검색 질의를 포함하는 키보드를 통한 텍스트 입력을 수신할 수 있고, 자연어 검색 질의를 검색 템플릿에 매칭시켜 검색 결과 세트를 검색할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 "데릭 지터(Derek Jeter)의 타격 통계를 보여주세요"라는 질의를 검색할 수 있다. 미디어 안내 어플리케이션은 질의를 분석할 수 있고, 사용자가 야구 선수인 데릭 지터에 대한 통계를 요청하고 있다고 판단할 수 있다. 사용자가 데릭 지터에 대한 통계를 요청하는 것을 검출하는 것에 응답하여, 미디어 안내 어플리케이션은 데릭 지터에 대한 통계를 검색할 수있고 통계의 표시를 생성할 수 있다.
임의의 주어진 콘텐츠 전달 시스템에서 사용자에게 이용가능한 콘텐츠의 양은 상당할 수 있다. 결과적으로, 많은 사용자는, 사용자가 콘텐츠 선택을 효율적으로 탐색하고 원하는 콘텐츠를 쉽게 식별할 수 있게 하는 인터페이스를 통한 미디어 안내 형태를 원할 수 있다. 이러한 안내를 제공하는 어플리케이션을 여기에서는 상호 작용 미디어 안내 어플리케이션, 또는 때때로 미디어 안내 어플리케이션 또는 안내 어플리케이션이라 칭한다.
상호 작용 미디어 안내 어플리케이션은 안내를 제공하는 콘텐츠에 따라 다양한 유형을 취할 수 있다. 하나의 통상적인 유형의 미디어 안내 어플리케이션은 상호 작용 텔레비전 프로그램 가이드이다. 상호 작용 텔레비전 프로그램 가이드(때로는 전자 프로그램 가이드라고도 함)는 사용자가 많은 유형의 콘텐츠 또는 미디어 자산을 탐색하고 찾을 수 있게 하는 잘 알려진 안내 어플리케이션이다. 상호 작용 미디어 안내 어플리케이션은, 사용자가 콘텐츠를 탐색하고 위치를 찾고 선택할 수 있게 하는 그래픽 사용자 인터페이스 화면을 생성할 수 있다. 여기에 언급된 바와 같이, "미디어 자산" 및 "콘텐츠"라는 용어는 텔레비전 프로그래밍뿐만 아니라 유료 시청 프로그램, 주문형 프로그램(예를 들어, 주문형 비디오(VOD) 시스템), 인터넷 콘텐츠(예를 들어, 스트리밍 콘텐츠, 다운로드 가능한 콘텐츠, 웹캐스트 등), 비디오 클립, 오디오, 콘텐츠 정보, 그림, 회전 이미지, 문서, 재생 리스트, 웹사이트, 기사, 서적, 전자 서적, 블로그, 챗 세션, 소셜 미디어, 어플리케이션, 게임 및/또는 임의의 다른 미디어 또는 멀티미디어 및/또는 이들의 조합과 같은 전자적으로 소비 가능한 사용자 자산을 의미하는 것으로 이해되어야 한다. 안내 어플리케이션은 또한, 사용자가 콘텐츠를 탐색하고 찾을 수 있게 한다. 여기에 언급된, "멀티미디어"라는 용어는 예를 들어, 텍스트, 오디오, 이미지, 비디오 또는 상호 작용 콘텐츠 형태인, 상술한 적어도 2개의 다른 콘텐츠 형태를 이용하는 콘텐츠를 의미하는 것으로 이해되어야 한다. 콘텐츠는 사용자 장비 디바이스에 의해 기록, 재생, 표시 또는 액세스될 수 있지만, 또한 라이브 공연의 일부가 될 수도 있다.
여기에서 논의되는 실시예 중 임의의 것을 수행하기 위한 미디어 안내 어플리케이션 및/또는 임의의 명령어는 컴퓨터 판독 가능 매체 상에 인코딩될 수 있다. 컴퓨터 판독 가능 매체는 데이터를 저장할 수 있는 임의의 매체를 포함한다. 컴퓨터 판독 가능 매체는 전기 신호 또는 전자기 신호를 전파하는 것을 포함하지만 이에 한정되지 않는 일시적일 수 있거나, 하드 디스크, 플로피 디스크, USB 드라이브, DVD, CD, 미디어 카드, 레지스터 메모리, 프로세서 캐시, 랜덤 액세스 메모리("RAM") 등과 같은 휘발성 및 비휘발성 컴퓨터 메모리 또는 저장 디바이스에 한정되지 않지만 이를 포함하는 비일시적일 수도 있다.
인터넷, 모바일 컴퓨팅 및 고속 무선 네트워크의 출현으로, 사용자는 전통적으로 하지 않은 사용자 장비 디바이스 상의 미디어에 액세스하고 있다. 본 명세서에서 언급되는 "사용자 장비 디바이스", "사용자 장비", "사용자 디바이스", "전자 디바이스", "전자 장비", "미디어 장비 디바이스" 또는 "미디어 디바이스"라는 문구는 텔레비전, 스마트 TV, 셋톱 박스, 위성 텔레비전을 다루기 위한 통합 수신기 디코더(IRD), 디지털 저장 디바이스, 디지털 미디어 수신기(DMR), 디지털 미디어 어댑터(DMA), 스트리밍 미디어 디바이스, DVD 플레이어, DVD 레코더, 접속된 DVD, 로컬 미디어 서버, 블루-레이(BLU-RAY) 플레이어, 블루-레이 레코더, 퍼스널 컴퓨터(PC), 랩탑 컴퓨터, 태블릿 컴퓨터, WebTV 박스, 퍼스널 컴퓨터 텔레비전(PC/TV), PC 미디어 서버, PC 미디어 센터, 핸드-헬드 컴퓨터, 고정 전화기, 개인 디지털 기기(PDA), 이동 전화, 휴대용 비디오 플레이어, 휴대용 음악 플레이어, 휴대용 게임기, 스마트 폰, 또는 임의의 다른 텔레비전 장비, 컴퓨팅 장비 또는 무선 디바이스, 및/또는 이들의 조합과 같은, 상술한 콘텐츠에 액세스하기 위한 임의의 디바이스를 의미하는 것으로 이해되어야 한다. 일부 실시예에서, 사용자 장비 디바이스는 전방 지향 스크린 및 후방 지향 스크린, 다수의 전방 스크린 또는 다수의 각이 있는 스크린을 가질 수 있다. 일부 실시예에서, 사용자 장비 디바이스는 전방 지향 카메라 및/또는 후방 지향 카메라를 가질 수 있다. 이러한 사용자 장비 디바이스에서, 사용자는 텔레비전을 통해 이용 가능한 동일한 콘텐츠를 탐색하고 찾을 수 있다. 따라서 이러한 디바이스에서도 미디어 안내를 이용할 수 있다. 제공되는 안내는 텔레비전을 통해서만 이용 가능한 콘텐츠, 하나 이상의 다른 유형의 사용자 장비 디바이스를 통해서만 이용 가능한 콘텐츠, 또는 텔레비전 및 하나 이상의 다른 유형의 사용자 장비 디바이스를 통해 모두 이용 가능한 콘텐츠에 대한 것일 수 있다. 미디어 안내 어플리케이션은 온-라인 어플리케이션(즉, 웹-사이트에서 제공됨), 또는 독립형 어플리케이션 또는 사용자 장비 디바이스 상의 클라이언트로서 제공될 수 있다. 미디어 안내 어플리케이션을 구현할 수 있는 다양한 디바이스 및 플랫폼은 이하에서 보다 상세하게 설명된다.
미디어 안내 어플리케이션의 기능 중 하나는 미디어 안내 데이터를 사용자에게 제공하는 것이다. 여기에서 언급된 "미디어 안내 데이터" 또는 "안내 데이터"라는 문구는 안내 어플리케이션을 조작하는 데 사용되는 콘텐츠 또는 데이터와 관련된 임의의 데이터를 의미하는 것으로 이해되어야 한다. 예를 들어, 안내 데이터는 프로그램 정보, 안내 어플리케이션 설정, 사용자 선호도, 사용자 프로파일 정보, 미디어 목록, 미디어-관련 정보(예를 들어, 방송 시간, 방송 채널, 제목, 설명, 등급 정보(예를 들어, 부모 조정 등급, 평론가 등급 등), 장르 또는 카테고리 정보, 배우 정보, 방송사 또는 공급자의 로고에 대한 로고 데이터 등), 미디어 포맷(예를 들어, 표준 해상도, 고해상도, 3D 등), 알림 정보(예를 들어, 텍스트, 이미지, 미디어 클립 등), 주문형 정보, 블로그, 웹사이트 및 사용자가 원하는 콘텐츠 선택을 탐색하고 찾아내는 데 도움이 되는 임의의 다른 유형의 안내 데이터를 포함할 수 있다.
일부 실시예에서, 이하의 도 7과 관련하여 더 논의되는 제어 회로(704)는 메모리(즉, 저장 장치(708))에 저장된 미디어 안내 어플리케이션에 대한 명령어를 실행한다. 특히, 제어 회로(704)는 미디어 안내 어플리케이션에 의해 명령을 받아서, 상술한 그리고 후술하는 기능을 수행할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 도 1, 도 4, 도 5 및 도 6과 관련하여 논의된 미디어 안내 디스플레이를 생성하기 위해 제어 회로(704)에 명령어를 제공할 수 있다. 일부 구현에서, 제어 회로(704)에 의해 수행되는 임의의 액션은 미디어 안내 어플리케이션으로부터 수신된 명령어에 기초할 수 있다.
여기에 언급된 "~에 응답하여"라는 용어는 그 결과로서 개시되는 것을 나타낸다. 예를 들어, 제2 액션에 응답하여 수행되는 제1 액션은 제1 액션과 제2 액션 간의 사이 단계들을 포함할 수 있다.
여기에 언급된 "~에 직접 응답하여"라는 용어는 무언가에 의해 유발되는 것을 나타낸다. 예를 들어, 제2 액션에 대한 직접 응답으로 수행되는 제1 액션은 제1 액션과 제2 액션 간의 사이 단계들을 포함하지 않을 수 있다.
도 1은 본 발명의 일부 실시예에 따라, 음성 검색을 수신하도록 구성된 사용자 장비의 예의 예시적인 실시예를 나타낸다. 사용자 장비(100)는 시스템 질의(102) 및 사용자 질의(104)를 갖는 것으로 도시된다.
일부 양태들에서, 사용자 장비(100)는 유사한 의도를 갖는 복수의 자연어 질의를 인식하고 그 의도와 매칭되는 검색 결과를 생성하기 위한 미디어 안내 어플리케이션을 실행하는 제어 회로(예를 들어, 제어 회로(704))를 포함할 수 있다. 사용자 장비(100)는 도 8과 관련하여 추가로 논의되는 사용자 텔레비전 장비(802), 사용자 컴퓨터 장비(804) 및 무선 사용자 통신 디바이스(806)의 모든 동일한 기능을 가질 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 입력 디바이스로부터 적어도 2개의 단어를 포함하는 검색 입력을 검색한다. 예를 들어, 미디어 안내 어플리케이션은 음파를 전기 신호로 변환하여 검색 입력(예를 들어, 음성 검색 입력)을 검색할 수 있는 마이크로폰 또는 다른 사운드 트랜스듀서에 액세스할 수 있다. 미디어 안내 어플리케이션은 마이크로폰 또는 사운드 트랜스듀서로부터 검색된 전기 신호를 처리하고 전기 신호 내의 단어를 식별할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 마이크로폰(예를 들어, 사용자 장비(100))을 포함하는 디바이스에 통합될 수 있다. 미디어 안내 어플리케이션은, 사용자가 마이크로폰으로 말하는 것에 응답하여 마이크로폰으로부터 오디오 웨이브 신호를 검색할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 (예를 들어, 마이크로폰으로부터 신호를 폴링(polling)하거나 사운드 입력에 의해 트리거된 인터럽트를 검출함으로써) 마이크로폰에서의 신호를 모니터링할 수 있다. 마이크로폰에서의 사운드가 임계값(예를 들어, 아날로그 오디오 신호에 대한 임계 전압 또는 디지털 신호에 대한 임계값) 초과인 경우, 미디어 안내 어플리케이션은 오디오 신호에 대해 음성-대-텍스트 시퀀싱을 수행하여 오디오 입력으로부터 텍스트 열을 생성할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 오디오 신호의 단어를 식별하기 위해 오디오 신호에 대해 음성-대-텍스트 시퀀싱을 수행할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 오디오 신호를 분석할 수 있고, 오디오 신호를 오디오 음소(예를 들어, 유사한 클래스의 사운드)를 나열하는 데이터베이스에 매칭시킬 수 있다. 예를 들어, 단어 "bet"과 "bat"의 차이는 음소 "EH" 대 "AE"로 캡처될 수 있다. 일부 실시예에서, 미디어 안내 어플리케이션은 매칭을 수행하기 전에 오디오 신호를 필터링하거나 변환할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 마이크로폰에서 오디오 신호를 필터링할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 아날로그 필터(예를 들어, 인간의 음성 범위의 주파수 내에 있지 않는 전압 신호를 차단하는 아날로그 필터)를 적용할 수 있거나, (예를 들어, 디지털 샘플의 시퀀스에 수학식을 적용함으로써) 디지털 필터링을 적용할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 음소를 단어-음소 쌍의 데이터베이스에 매칭시킬 수 있다. 예를 들어, 미디어 안내 어플리케이션은 오디오 신호에서 음소 "B", "EH" 및 "T"를 검출할 수 있다. 미디어 안내 어플리케이션은 오디오 신호로부터 일련의 3-음소, 2-음소, 4-음소 등(즉, 3개, 2개, 4개의 음소 등)을 구성할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 오디오 신호에서 음소 "B", "EH" 및 "T"를 검출하는 것에 기초하여 3-음소 "B-EH-T"를 구성할 수 있다. 미디어 안내 어플리케이션은 단어-음소 쌍을 포함하는 데이터베이스를 검색하여 음성 신호 내의 단어를 식별할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 3-음소 "B-EH-T"를 단어 "BET"와 연관된 "B-EH-T"를 갖는 데이터베이스 엔트리와 매칭시킬 수 있다. 미디어 안내 어플리케이션은, 음소 "B-EH-T"에 대응하는 오디오 신호의 부분이 단어 "BET"와 연관되어 있다고 판단할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 오디오 입력을 처리하여 오디오 신호 내의 단어의 텍스트 열을 생성할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 상술한 바와 같이, 음성 입력에 대해 음성-대-텍스트 인식 알고리즘을 수행할 수 있다. 미디어 안내 어플리케이션은 복수의 단어를 식별할 수 있고, 오디오 신호에서 검출된 단어 각각을 포함하는 문자열을 형성할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 오디오 신호에서 "Let's", "Go" 및 "Rovi"라는 단어를 검출할 수 있다. "Let's", "Go" 및 "Rovi"라는 단어를 검출하는 것에 응답하여, 미디어 안내 어플리케이션은 "가자 로비(Let's go Rovi)"라는 문자열을 구성할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 단어의 시퀀스에 대해 오디오 신호를 모니터링하여 검색을 개시할 수 있다. 예를 들어, 미디어 안내 어플리케이션이 검색을 수행하기 전에, 미디어 안내 어플리케이션이 "Let's go Rovi"라는 단어 시퀀스를 검출할 때까지 미디어 안내 어플리케이션은 대기할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 단어 "Let's go Rovi"의 시퀀스를 검출하는 것에 응답하여 디스플레이 시스템 질의(102)를 생성할 수 있다. 일부 예에서, 미디어 안내 어플리케이션은 검색(예를 들어, "Let's go Rovi")을 초기화하기 위해 질의를 검색한 후에 사용자로부터 검색 질의(예를 들어, 사용자 질의(104))를 검색할 수 있다. 일부 실시예에서, 미디어 안내 어플리케이션은 "Let's go Rovi"와 같이 검색을 초기화하기 위한 질의를 수신한 것에 응답하여 검색 인터페이스(예를 들어, 시스템 질의(102)를 포함하는 디스플레이)를 초기화할 수 있다.
미디어 안내 어플리케이션은 입력 질의의 제1 단어에 대응하는 제1 표현 벡터 및 입력 질의의 제2 단어에 대응하는 제2 표현 벡터를 계산할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 상술한 바와 같이 오디오 인터페이스를 통해 사용자로부터 질의를 검색할 수 있다. 미디어 안내 어플리케이션은 미디어 안내 어플리케이션의 마이크로폰으로부터의 오디오 신호 내의 단어를 검출하는 것에 기초하여 "안투라지는 어디에 있습니까?(Where's Entourage?)"라는 문자열을 구성할 수 있다. 미디어 안내 어플리케이션은 문자열 내의 각 단어에 대한 벡터 표현을 식별하기 위해 알고리즘을 적용할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 알고리즘을 적용하여 문자열 내의 각 단어에 대한 의미를 식별할 수 있다. 예를 들어, "Where's"라는 축약형은 "왈도는 어디에 있습니까?(Where's Waldo?)에서의 "where is", "존은 일주일 내내 어디에 있었습니까?(Where's John been all week?)"에서의 "where has", 또는 "소금은 어디서 왔습니까?(Where's salt come from?)"에서의 "Where does"에 대응할 수 있다. 미디어 안내 어플리케이션은 축약형 "Where's"에 대한 3개의 벡터를 식별할 수 있으며, 각각의 벡터는 축약형 "Where's"의 의미에 대응한다. 일례에서, 미디어 안내 어플리케이션은 이웃 단어에 기초하여 "Where's"라는 단어에 대응하는 벡터를 식별할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 "스케일(scale)"이라는 단어가 "물고기의 크기(A scale on a fish)"과 같은 제1 의미와, "저울에 책의 무게를 재다(Weigh the book on the scale)"에서의 제2 의미를 갖는다고 판단할 수 있다. 스케일의 의미가 그 주변 단어들에 의존하기 때문에, 미디어 안내 어플리케이션은 "스케일"을 포함하는 단어 어구에 대한 표현 벡터를 계산할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 코퍼스(corpus) 내의 단어에 대한 벡터 공간을 구성하기 위해 단어의 코퍼스를 분석할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 복수의 사용자로부터 한 세트의 검색 질의와 같은 텍스트 코퍼스를 검색할 수 있다. 미디어 안내 어플리케이션은 코퍼스(예를 들어, 검색 질의의 코퍼스) 내의 각 단어의 분포 특성을 식별할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 검색 질의의 코퍼스를 분석할 수 있으며, 한 단어가 코퍼스 내의 다른 단어와 얼마나 자주 발생하는지를 판단할 수 있다. 미디어 안내 어플리케이션은 관찰된 분산 특성에 기초하여 코퍼스 내의 단어에 대한 삽입을 결정할 수 있다. 예를 들어, "scale of a fish"에서 "scale"이라는 단어에 대응하는 벡터는, 예를 들어, 미디어 안내 어플리케이션이 "scale"이라는 단어가 자주 "fish"라는 단어와 함께 발생하는 것으로 판단할 수 있으므로, "fish"라는 단어에 해당하는 벡터와 유사할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 사용자와 관련된 단어를 포함하는 트레이닝 코퍼스를 분석할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 사용자에 의해 사용되는 문장 또는 단어 조각을 포함하는 사용자와 관련된 프로파일을 검색할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 이메일, 텍스트 메시지 및/또는 사용자의 대화를 로깅하여 사용자에 의한 구두의, 타이핑된, 읽은 등의 텍스트의 코퍼스를 생성할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 메모리로부터 사용자 프로파일을 검색할 수 있다. 미디어 안내 어플리케이션은 사용자를 먼저 식별하고(예를 들어, 로그인 정보, 사용자의 그림, 사용자의 음성, 사용자를 고유하게 식별하는 해시값 또는 사용자의 임의의 다른 알려진 식별 정보) 그 후 사용자의 아이덴티티를 사용자 프로파일 데이터베이스의 엔트리와 비교함으로써 사용자 프로파일이 존재하는지 여부를 판단할 수 있다. 비교의 결과로서, 미디어 안내 어플리케이션은 프로파일을 찾으면 프로파일에 대한 포인터를 수신할 수 있거나, 프로파일이 존재하지 않으면 널(NULL) 값을 수신할 수 있다. 사용자 프로파일 데이터베이스는 미디어 안내 어플리케이션에 대해 원격으로 또는 로컬로(예를 들어, 저장 장치(508) 상 또는 아래의 도 5 및 도 6과 관련하여 설명되는 통신 네트워크(614)를 통해 액세스되는 미디어 안내 데이터 소스(618) 상) 위치될 수 있다. 사용자 프로파일을 찾으면, 미디어 안내 어플리케이션은 사용자와 관련된 텍스트의 코퍼스를 가리키는 데이터베이스 엔트리에 액세스할 수 있다. 예를 들어, 사용자는 "Entourage"라는 이름의 개를 가질 수 있다. 미디어 안내 어플리케이션은 사용자와 관련된 코퍼스를 분석할 수 있으며 "Entourage"라는 단어가 사용자의 애완 동물에 대한 다른 참조(예를 들어, "가져와, 안투라지(Go fetch, Entourage)" "안투라지에게 밥 주었니?(Did you feed Entourage?) 또는 "안투라지 산책시키기(Take Entourage for a walk)")와 함께 자주 나타나는지 판단할 수 있다. 이 판단에 응답하여, 미디어 안내 어플리케이션은 "Where Entourage"라는 검색 질의가 사용자의 애완 동물의 위치를 식별하기 위한 요청에 대응한다고 판단할 수 있으며, Entourage라는 이름의 애완 동물을 가지지 않은 제2 사용자의 경우, 미디어 안내 어플리케이션은 질의 "Where's entourage?"가 텔레비전 쇼 "Entourage"에 대응한다고 판단할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 단어에 대한 벡터 표현을 식별하기 위해 기존의 알고리즘 또는 알고리즘 세트를 사용할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 단어에 대한 벡터 표현을 식별하기 위해 워드2벡(Word2Vec) 신경망과 같은 미디어 안내 어플리케이션에 액세스할 수 있는 자연어 처리 툴킷에서 단어-대-벡터 알고리즘과 같은 신경망을 이용할 수 있다. 미디어 안내 어플리케이션은 검색 질의에서 식별된 단어를 Word2Vec 신경망에 기반한 표현과 상관시킬 수 있다. 예를 들어, 미디어 안내 어플리케이션은 "Where's Entourage?"라는 단어를 포함하는 검색 질의를 검색할 수 있다. 미디어 안내 어플리케이션은 신경 네트워크에 기초하여 단어 "Where's"에 대한 제1 벡터 및 단어 "Entourage"에 대한 제2 벡터를 계산할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은, 제1 단어가 데이터베이스에 대한 질의에 포함되어야 하는지 여부를 판단하기 위해 제1 단어와 연관된 품사를 식별할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 (예를 들어, 은닉 마르코프(Markov) 모델을 사용하여) 입력 질의에 품사 태깅(part-of-speech tagging) 알고리즘을 적용할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 검색 질의를 토큰화하기 위한 알고리즘을 사용하여 단어 또는 문구로 검색 질의를 분해할 수 있다. 미디어 안내 어플리케이션은 토큰화된 단어의 리스트를 품사 태거(tagger)("POS 태거")에 입력하여 각 단어와 연관된 품사를 검색할 수 있다. 일례에서, 미디어 안내 어플리케이션은, 제2 단어가 입력 질의의 대상이라고 판단할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 "Entourage"가 입력 질의의 대상이라고 판한할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 입력 질의 내의 불용어(stop word)를 무시할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 상술된 바와 같이, POS 태깅 알고리즘을 적용하는 것에 기초하여, 질의의 단어가 불용어임을 판단할 수 있다. 미디어 안내 어플리케이션은, 그 단어가 불용어(예를 들어, 단어가 검색 질의에 의미를 부가하지 않기 때문에)인 것으로 미디어 안내 어플리케이션이 판단하면, 단어에 대한 벡터 표현을 생성하는 것을 건너뛸 수 있다. 예를 들어, 미디어 안내 어플리케이션은 입력 질의의 제1 단어를 불용어 리스트와 비교하여, 제1 단어가 불용어 리스트의 불용어와 매칭되는지 여부를 판단할 수 있다. 제1 단어가 불용어와 매칭된다고 판단한 것에 응답하여, 미디어 안내 어플리케이션은 입력 질의의 다른 단어(예를 들어, 입력 질의의 제3 단어)를 선택할 수 있고, 입력 질의의 제3 단어에 대한 표현 벡터를 계산할 수 있다. 미디어 안내 어플리케이션은 제1 단어에 대한 제1 표현 벡터를 계산하려고 프로세싱 리소스를 낭비하는 대신에 제5 표현 벡터를 사용할 수 있다.
도 2는 본 발명의 일부 실시예에 따른 2차원 벡터 공간에서의 단어 표현 벡터를 나타낸다. 그래프(200)는 y 차원(202) 및 x 차원(214)을 갖는 것으로 도시된다. 일부 실시예에서, y 차원(202) 및 x 차원(214)은 상술한 바와 같이, 단어 코퍼스를 분석할 때 미디어 안내 어플리케이션에 의해 검출된 단어의 피처를 나타낸다. y 차원(202) 또는 x 차원(214) 내의 값은 단어가 차원에 의해 표현된 피처와 매칭되는 정도를 나타낼 수 있다. 예를 들어, 단어가 x 차원(214)의 피처와 근접하게 매칭되면, 미디어 안내 어플리케이션은 단어에 대응하는 표현 벡터의 x 차원에 높은 값을 할당할 수 있다. 예를 들어, 피처는 단어 피처 또는 문구와 매우 근접한 단어를 찾을 가능성과 같은 확률일 수 있다. 예를 들어, 미디어 안내 어플리케이션은, x 차원이 단어가 명사에 가깝게 자주 나타나거나 동물 이름에 가깝게 나타날 확률에 대응한다고 판단할 수 있다. x 차원에서의 값은 코퍼스를 평가하고, 그 단어가 단어 피처 또는 문구와 근접하게 나타날 확률을 판단하는 것에 기초하여 계산될 수 있다. 예를 들어, 미디어 안내 어플리케이션은, 단어가 코퍼스에 나타나는 총 횟수를 카운트하고, 그 단어가 코퍼스에 나타날 총 횟수에 대해 그 단어가 단어 피처 또는 문구에 매우 근접하게 나타나는 횟수가 확률이라고 판단할 수 있다.
그래프(200)는 표현 벡터(218, 216 및 208)를 갖는 것으로 도시된다. 일부 실시예에서, 미디어 안내 어플리케이션은 상술한 바와 같이, 신경망 내의 단어에 대한 삽입에 기반하여 표현 벡터(218, 216 및 208)를 계산할 수 있다. 미디어 안내 어플리케이션은 y 차원(202) 및 x 차원(214)에 의해 표현되는 2차원 벡터 공간 내의 표현 벡터에 대해 y 차원(202)의 제1 값 및 x 차원(214)의 제2 값을 계산할 수 있다. 예를 들어, 미디어 안내 어플리케이션은, 단어가 y 차원(202)에 대응하는 단어 피처와 얼마나 근접하게 매칭되는지에 기초하여 표현 벡터에 대한 Y 값을 계산하고, 단어가 x 차원(214)에 대응하는 단어 피처와 얼마나 근접하게 매칭되는지에 기초하여 X 값을 계산할 수 있다. 예시적인 본 도면에서는, 단순화를 위해 단지 2개의 단어 피처가 도시되어 있다. 그러나, 미디어 안내 어플리케이션은 임의의 수의 차원(예를 들어, 3차원, 200차원 등)의 표현 벡터를 계산할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 차원 내의 값들 사이의 차이를 계산할 수 있다. 각각의 차이 x 차원(214) 또는 y 차원(202)에서 표현 벡터들(216, 218 및/또는 208) 사이의 유사성을 나타내는 차이(204,206,210 및 212)를 갖는 것으로 그래프(200)에 도시된다. 미디어 안내 어플리케이션은 표현 벡터(216)와 표현 벡터(218) 사이의 y 차원(202)에서의 차이에 기초하여 차이(206)를 계산할 수 있다. 미디어 안내 어플리케이션은 표현 벡터(208)와 표현 벡터(218) 사이의 y 차원(202)에서의 차이에 기초하여 차이(206)를 계산할 수 있다. 미디어 안내 어플리케이션은 표현 벡터(218)와 표현 벡터(208) 사이의 x 차원 차이(214)에서의 차이에 기초하여 차이(210)를 계산할 수 있다. 미디어 안내 어플리케이션은 표현 벡터(218)와 표현 벡터(216) 사이의 x 차원(214)에서의 차이에 기초하여 차이(212)를 계산할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 검색 질의(예를 들어, 사용자 질의(104))를 검색 질의 템플릿과 매칭시켜 검색 결과를 검색할 수 있다. 예를 들어 미디어 안내 어플리케이션은 "안투라지는 어디에 있습니까?(Where's Entourage?)", "안투라지의 스트리밍 위치를 찾아주세요(Find streaming locations for Entourage)" 또는 "어느 채널에서 안투라지가 나옵니까?(Which channel is Entourage on?)"와 같은 검색 질의를 수신할 수 있고, 텔레비전 쇼 "Entourage"와 같이 사용자가 미디어에 액세스할 수 있는 위치를 찾기 위해 템플릿에 각 검색 질의를 매칭시킬 수 있다.
도 3은 본 발명의 일부 실시예에 따라 검색 템플릿을 나타내는 예시적인 데이터베이스 엔트리를 나타낸다. 데이터베이스(300)는 엔트리(316) 및 엔트리(318)의 2개의 엔트리를 갖는 것으로 도시된다. 엔트리(316)는 미디어 위치 검색과 관련된 검색 의도(302)에 대응한다. 엔트리(316)는 데이터베이스(304)와 추가로 연관된다. 데이터베이스(304)는 미디어 안내 어플리케이션에 의해 사용되어 검색 의도(302)를 갖는 검색을 수행할 수 있다. 예를 들어, 미디어 안내 어플리케이션은, 미디어 안내 어플리케이션이 검색을 수행할 때 영화가 위치된 곳을 식별하기 위해 엔트리(316)를 선택할 수 있다. 미디어 안내 어플리케이션은, 데이터베이스(304)가 검색 의도(302)(예를 들어, 미디어를 찾기 위한 의도)와 관련되기 때문에 검색을 수행하기 위한 데이터베이스(304)를 선택할 수 있다. 엔트리(316)는 검색 질의 템플릿(306)을 갖는 것으로 추가로 도시된다. 미디어 안내 어플리케이션은 검색 의도(302)를 갖는 검색을 수행할 때 질의를 데이터베이스(304)에 구성하기 위해 검색 질의 템플릿(306)을 사용할 수 있다. 예를 들어, 미디어 검색 어플리케이션이 미디어의 위치를 식별하기 위한 검색(예를 들어, 검색 매칭 검색 의도(302))을 수행할 때, 미디어 안내 어플리케이션은 검색 질의 템플릿(306)에 기초하여 포맷된 질의를 사용하여 데이터베이스(304)를 검색할 수 있다. 예를 들어, 입력 질의가 "Where's Entourage?"인 경우, 미디어 안내 어플리케이션은 "Entourage"에 대한 미디어 위치를 찾기 위한 요청으로서 검색 질의를 식별할 수 있다. 미디어 안내 어플리케이션은 "안투라지를 찾아주세요(Entourage Locate)"라는 질의를 생성하고 그 질의를 데이터베이스(304)(예를 들어, 미디어 안내 데이터 데이터베이스)에 송신함으로써 "Entourage"를 검색할 수 있다. 미디어 안내 어플리케이션은 사용자 질의(104)와 관련된 매칭 표현 벡터(예를 들어, 질의 템플릿의 단어와 관련된 표현 벡터에 대한 "Where's" 및 "Entourage"에 대한 표현 벡터(예를 들어, 표현 벡터(308, 310))에 기초하여 사용자 질의(104)(예를 들어, "Where's Entourage")와 엔트리(316)를 매칭시킬 수 있다. 예를 들어, 엔트리(316)는 단어 "Locate"에 대응하는 연관된 표현 벡터(308) 및 단어 "Media"에 대응하는 표현 벡터(310)를 갖는 것으로 도시된다. 미디어 안내 어플리케이션은 단어 "Locate"에 대응하는 표현 벡터와 단어 "Where's"에 대응하는 표현 벡터를 매칭시킬 수 있다. 유사하게, 미디어 안내 어플리케이션은 (예를 들어, 각각의 단어가 유사한 의미를 가지며, 따라서 벡터 공간에서 매우 근접한 위치에 있기 때문에) 단어 "Entourage"에 대응하는 표현 벡터와 단어 "media"에 대응하는 표현 벡터를 매칭시킬 수 있다.
미디어 안내 어플리케이션은 데이터베이스로부터 검색 의도(예를 들어, 검색 의도(302))와 관련된 검색 질의 템플릿(예를 들어, 검색 질의 템플릿(306))을 검색할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 사용자 검색 질의의 단어에 대한 표현 벡터를 생성할 수 있고, 검색 질의의 단어의 표현 벡터를 데이터베이스(예를 들어, 데이터베이스(300))에 저장된 표현 벡터와 매칭시킬 수 있다. 예를 들어, 미디어 안내 어플리케이션은 검색 질의의 제1 단어(예를 들어, "Where's")에 대응하는 제1 표현 벡터를 계산하고, 검색 질의의 제2 단어(예를 들어, "Entourage")에 대한 제3 표현을 계산할 수 있다 . 미디어 안내 어플리케이션은 데이터베이스 엔트리(예를 들어, 미디어 위치 의도에 대응하는 엔트리(316))에 대응하는 제3 단어에 대응하는 제3 표현 벡터를 계산할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 엔트리(316)에 대응하는 단어 "Locate"에 대한 제3 표현 벡터를 계산할 수 있다. 미디어 안내 어플리케이션은 엔트리(316)와 관련된 "media"와 같은 제4 단어에 대응하는 제4 표현 벡터를 계산할 수 있다. 상술한 바와 같이, 제3 및 제4 표현 벡터의 값은, 제3 단어 및 제4 단어가 단어 피처의 세트의 피처(예를 들어, x 차원(214)에 대응하고 y 차원(202)에 대응하는 피처)와 얼마나 가깝게 매칭되는지를 나타낼 수 있다.
미디어 안내 어플리케이션은 두 벡터들 간의 거리를 계산함으로써 제1 표현 벡터가 제2 표현 벡터와 매칭되는지 여부를 판단할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 제1 표현 벡터(예를 들어, 단어 "Where's"에 대한 표현 벡터)와 제3 표현 벡터(예를 들어, 단어 "locate"에 대한 표현 벡터) 사이의 제1 거리를 계산할 수 있다. 미디어 안내 어플리케이션은, (예를 들어, "Where's"라는 용어가 단어 "locatin"의 사용과 얼마나 가깝게 매칭되는지를 판단하기 위해) 제1 표현 벡터가 제3 표현 벡터와 얼마나 유사한지를 비교하기 위한 메트릭(metric)을 생성하기 위한 거리를 계산할 수 있다. 미디어 안내 어플리케이션은 각각의 차원에서 각각의 개별 벡터값의 유사성에 기초하여 각각의 표현 벡터 간의 전체 거리를 계산할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 x 차원(214)에서 2개의 표현 벡터들 사이의 거리를 계산할 수 있고, y 차원(202)에서 2개의 표현 벡터들 사이의 거리를 계산할 수 있다. 2개의 벡터들 사이의 전체 거리는 x 차원 및 y 차원에서의 거리의 합에 기초하여 계산될 수 있다. 예를 들어, 미디어 안내 어플리케이션은 각각의 표현 벡터(216, 218)에 대응하는 x 차원에서의 값을 검색하고 그 값을 감산함으로서 표현 벡터(216)와 표현 벡터(218) 사이의 x 차원(214)에서의 차이를 계산할 수 있다. 미디어 안내 어플리케이션은 차이(212)에 의해 그래픽으로 나타내어지는 거리를 계산할 수 있다. 일례에서, 미디어 안내 어플리케이션은 단어 "Locate"에 대응하는 표현 벡터를 단어 "Where's"에 대응하는 표현 벡터와 비교할 수 있고, 두 단어가 항목의 위치를 식별하는 것과 연관될 수 있고, 따라서 벡터 공간에서 매우 근접한 벡터를 가지므로 거리가 작다고 판단할 수 있다.
미디어 안내 어플리케이션은, 제1 거리가 제1 임계 거리보다 작다고 판단한 것에 응답하여 제2 표현 벡터와 제4 표현 벡터 간의 제2 거리를 계산할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 메모리로부터 제1 임계값을 검색하여, 제1 단어가 제3 단어와 유사한지 여부를 판단할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 상술한 바와 같이, "Where's" 및 "Locate"의 각각의 표현 벡터들 사이의 제1 거리를 판단할 수 있다. 미디어 안내 어플리케이션은 거리 값을 임계값과 비교하여, 단어들이 유사한지 여부를 판단할 수 있다. 미디어 안내 어플리케이션이, 단어들이 유사하다고 판단하면, 미디어 안내 어플리케이션은 제2 표현 벡터와 제4 표현 벡터 사이의 제2 거리(예를 들어, y 차원(202)의 거리)를 계산할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 "Entourage"와 같은 제2 단어가 "media"와 같은 제4 단어와 얼마나 유사한지를 정량화하기, 위와 마찬가지로, 제2 거리를 계산할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 표현 벡터의 각 차원에 대한 대응하는 값들 사이의 거리를 계산함으로써 제1 표현 벡터와 제3 표현 벡터 사이의 거리를 계산할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 제1 표현 벡터(예를 들어, 차원 N의 값)로부터 제1 값을 취할 수 있고, 또한 차원 N으로부터의 제3 표현 벡터로부터의 제2 값에서 제1 값을 감산할 수 있다. 미디어 안내 어플리케이션은 그 차이를 메모리의 한 위치에 저장할 수 있다. 미디어 안내 어플리케이션은 제1 및 제3 표현 벡터의 각 요소를 반복적으로 선택할 수 있고, 차이를 계산할 수 있으며, 그 차이에 기초하여 거리 변수를 증가 또는 감소시킬 수 있다. 예를 들어, 각각의 차원에 대해, 미디어 안내 어플리케이션은 제1 및 제2 표현 벡터의 N 차원의 값들 사이에서 계산된 차이만큼 거리 변수를 증가시킬 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은, 제1 값이 제2 값의 임계값 내에 있는지 여부를 판단하기 위해 (예를 들어, 미디어 안내 어플리케이션이 제로의 차이를 계산할 때) 제1 값과 제2 값을 비교할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 제1 값과 제2 값 사이의 거리가 5라고 판단할 수 있다. 미디어 안내 어플리케이션이, 거리가 작다고(예를 들어, 메모리로부터 검색된 임계값보다 작다고) 판단하면, 미디어 안내 어플리케이션이 거리를 증가시키지 않을 수 있다. 예를 들어, 미디어 안내 어플리케이션이, 그 차이가 제로(예를 들어, 임계값 1 미만)라고 판단하면, 미디어 안내 어플리케이션은 거리의 값을 변경하지 않고 유지할 수 있다(예를 들어, 제로를 가산함). 미디어 안내 어플리케이션이, 제1 값이 제2 값의 임계 거리 내에 있지 않다고 판단하면, 미디어 안내 어플리케이션은, 값이 유사하지 않은 정도를 계산할 수 있고, 값이 유사하지 않은 정도에 기초하여 거리를 증가시킬 수 있다. 예를 들어, 미디어 안내 어플리케이션은 차이의 단계적 스케일에 기초하여 거리를 계산할 수 있다. 예를 들어, 미디어 안내 어플리케이션은, 그 차이가 제로와 1 사이일 때 거리를 제로만큼 증가시킬 수 있다. 그 차이가 1과 2 사이 일 때, (예를 들어, 차원이 유사한 벡터에 대해 거리에 대한 영향을 최소화하지만, 벡터가 차원이 비유사한 거리에 대한 영향을 증폭시키기 위해) 미디어 안내 어플리케이션은 거리를 5씩 증가시킬 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 벡터 공간에서 제3 표현 벡터에 대한 제1 표현 벡터의 방향에 기초하여 제1 표현 벡터와 제3 표현 벡터 간의 제1 거리를 계산할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 제1 표현 벡터의 요소의 수(예를 들어, N) 및 제3 표현 벡터의 요소의 수(예를 들어, N)를 판단할 수 있다. 제1 표현 벡터 내의 요소의 수가 제3 표현 벡터 내의 요소의 수와 동일하다고 판단하는 것에 응답하여(예를 들어, 두 벡터가 모두 N개의 요소를 가짐), 미디어 안내 어플리케이션은 차원 N의 벡터 공간에서 제1 및 제3 표현 벡터를 평가할 수 있다. 미디어 안내 어플리케이션은 제1 및 제3 표현 벡터 간의 코사인 유사성과 같은 벡터 공간에서의 거리를 계산할 수 있는데, 여기서 벡터들 간의 각도는 거리를 나타낸다. 제1 표현 벡터와 제3 표현 벡터 간의 각도가 작은 경우, 미디어 안내 어플리케이션은, 벡터가 유사하다고 판단할 수 있다. 제1 표현 벡터와 제3 표현 벡터 사이의 각도가 클 때, 미디어 안내 어플리케이션은, 벡터들이 유사하지 않다고 판단할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은, 제2 단어가 제4 단어의 의미와 매칭되고 제5 단어의 의미와 매칭되지 않을 때, 제2 거리(예를 들어, 제2 표현 벡터와 제4 표현 벡터 사이)가 제2 표현 벡터와 제5 표현 벡터(예를 들어, 제2 템플릿의 단어에 대응하는 표현 벡터) 간의 제3 거리보다 작은 것으로 판단할 수 있다. 예를 들어, 상술한 바와 같이, 미디어 안내 어플리케이션은 제2 표현 벡터(예를 들어, 단어 "Entourage"에 대한 표현 벡터)와 제4 표현 벡터(예를 들어, "media"에 대한 표현 벡터) 사이의 제2 거리를 계산할 수 있다. 일례에서, 미디어 안내 어플리케이션은 단어 POI에 대응하는 표현 벡터(314)와 같은 제5 표현 벡터 간의 거리를 계산할 수 있다. 미디어 안내 어플리케이션은, 두 단어가 유사한 의미를 가질 때, 거리가 최소인 것으로 판단할 수 있고(예를 들어, "Entourage"와 "media"가 트레이닝 코퍼스에서 유사한 컨텍스트에서 유사하게 함께 나타나기 때문에, "Entourage"와 "media"는 유사한 표현 벡터를 가질 수 있음), 단어들이 유사한 의미를 갖지 않을 때 그 거리가 최대인 것으로 판단할 수 있다(예를 들어, "Entourage"와 "POI"가 코퍼스에서 유사한 컨텍스트에서 유사하게 나타나지 않으므로, "Entourage"와 "POI"가 비유사한 표현 벡터를 가질 수 있다).
미디어 안내 어플리케이션은, 제2 거리가 제2 임계 거리보다 작은 것으로 판단한 것에 응답하여, 검색 질의 템플릿을 선택할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 미디어 안내 어플리케이션에 액세스 가능한 원격 데이터베이스로부터 제2 임계값을 검색할 수 있다. 미디어 안내 어플리케이션은 제2 거리를 제2 임계 거리와 비교하여, 단어가 검색 질의 템플릿을 사용하기에 충분히 유사한지 (예를 들어, 입력 질의 내의 두 단어가 검색 질의의 단어와 매칭되는지) 여부를 판단할 수 있다. 제2 거리가 제2 임계 거리 미만인 경우, 미디어 안내 어플리케이션은 사용자에게 검색 결과를 제공하기 위해 검색 질의 템플릿을 선택할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은, 제1 거리가 제1 임계 거리보다 큰 것으로 판단할 수 있고, 결과적으로 비교를 위해 제2 템플릿을 검색할 수 있다. 예를 들어, 제1 검색 질의 템플릿은 "Who's person"이라는 검색 질의를 포함할 수 있다. 미디어 안내 어플리케이션은 "Where's"(예를 들어, 제1 단어)와 "Who's"(예를 들어, 제5 단어) 사이의 거리를 계산할 수 있다. 미디어 안내 어플리케이션은 상술한 바와 같이 각각의 표현 벡터를 기초로 "Who's"가 "Where's"와 유사하지 않다고 판단할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 검색 질의 템플릿을 포함하는 데이터베이스로부터 제2 검색 질의 템플릿을 검색할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 "Locate media"라는 검색 질의를 포함하는 제2 검색 질의 템플릿을 검색할 수 있다. 미디어 안내 어플리케이션은 제2 검색 질의 템플릿을 검색할 수 있고, 제2 검색 질의 템플릿의 제1 단어(예를 들어, "Locate") 및 검색 질의 템플릿의 제2 단어(예를 들어, 'media')에 대해, 상술한 바와 f같이 각각의 제5 및 제6 표현 벡터를 계산할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 상술한 바와 같이, 제1 표현 벡터와 제5 표현 벡터 간의 제3 거리를 계산할 수 있고, 제5 거리를 제1 임계 거리와 비교할 수 있다. 제3 거리가 제1 임계 거리보다 작은 것으로 판단한 것에 응답하여, 미디어 안내 어플리케이션은 (예를 들어, 입력 질의의 제2 단어 "Entourage"가 제2 검색 템플릿의 제2 단어 "media"와 매칭되는지를 판단하기 위해) 제2 표현 벡터와 제6 표현 벡터 사이의 제4 거리를 계산할 수 있다. 제4 거리가 제2 임계값 미만인 것으로 판단한 것에 응답하여, 미디어 안내 어플리케이션은 제2 검색 질의 템플릿을 선택할 수 있다.
미디어 안내 어플리케이션은 검색 질의 템플릿에 기초하여 검색 결과를 검색할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 검색 질의 템플릿을 사용하여 미디어의 위치를 포함하는 데이터베이스에 질의를 구성할 수 있다. 예를 들어, 미디어 안내 어플리케이션은, 사용자의 검색 질의의 제1 단어가 검색 질의 템플릿의 제1 단어와 일치하고, 사용자의 검색 질의의 제2 단어가 검색 질의 템플릿의 제2 단어와 매칭되므로, 그 검색 질의 템플릿이 검색 결과를 검색하는 데 사용되어야 하는 것으로 판단할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 거리에 기초하여 대응하는 템플릿을 등급화할 수 있다. 예를 들어, 미디어 안내 어플리케이션은, (예를 들어, 벡터의 각 차원에 대한 거리를 계산하고 그 거리를 합산함으로써) "Where's Entourage"라는 검색 질의가 엔트리(316)에 대해 5의 전체 거리를 갖고, 엔트리(318)에 대해 15의 전체 거리를 갖는 것으로 판단할 수 있다. 거리 5가 거리 15보다 작기 때문에, 미디어 안내 어플리케이션은 엔트리(318)에 비해 엔트리(316)를 더 높게 등급화할 수 있다. 미디어 안내 어플리케이션은 엔트리(318)에 대한 엔트리(316)의 더 높은 등급 때문에, 엔트리(314)보다는 엔트리(316)에 대응하는 검색 질의 템플릿을 선택할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 검색 질의 템플릿을 사용하여 템플릿과 연관된 데이터베이스에 질의할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 템플릿을 사용할 수 있고, 입력 질의로부터의 두 단어 중 하나를 포함하여 데이터베이스(예를 들어, 미디어 위치를 식별하려고 시도할 때 검색 결과를 검색하는데 사용되는 데이터베이스(304))에 대한 질의를 형성할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 검색 질의 템플릿 내의 단어를 입력 질의로부터의 단어로 대체할 수 있다. 미디어 안내 어플리케이션은 검색 질의 템플릿(예를 들어, "Locate media")을 기반으로 검색 질의를 생성할 수 있으며, "media"를 단어 "media"와 가장 근접하게 매칭되는 사용자 검색 질의로부터의 단어(media에 대한 최소 거리를 갖는 사용자 검색 질의로부터의 단어)로 대체할 수 있다. 미디어 안내 어플리케이션은 데이터베이스 엔트리에서 식별된 검색 데이터베이스(예를 들어, 데이터베이스(304))에 질의를 송신할 수 있고, 질의의 결과를 사용자에게 제시할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 네트워크 접속을 통해 질의 "Locate Entourage"를 송신할 수 있다. 일부 실시예에서, 미디어 안내 어플리케이션은 질의에 기초하여 검색 결과를 검색하고, 검색 결과를 사용자에게 제시할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 (예를 들어, 데이터베이스에 대한 질의 결과에 기초하여) 미디어의 위치를 기술하는 미디어 안내 어플리케이션의 스피커를 통해 오디오를 출력할 수 있다.
도 4는 본 발명의 일부 실시예에 따라 사용자에 의해 입력된 질의와 매칭되는 검색 질의 템플릿에 기초하여 검색된 검색 결과를 표시하는 사용자 장비의 예시적인 예를 나타낸다. 사용자 장비(400)는 검색 의도(402)에 대응하는 검색 결과(404) 및 검색 결과(406)를 갖는 것으로 도시된다. 또한, 사용자 장비(400)는 선택되었을 때, 미디어 안내 어플리케이션으로 하여금 그 의도에 기초하여 더 많은 검색 결과를 검색하게 하거나 다른 의도에 기초하여 검색 결과를 검색하게 하는 옵션(408) 및 옵션(410)을 갖는 것으로 도시된다. 예를 들어, 미디어 안내 어플리케이션은 검색 질의 템플릿의 단어에 대한 검색 질의의 단어의 매칭에 기초하여 미디어 안내 어플리케이션에 의해 예측된 의도에 대응하는 디스플레이 의도(402)를 선택적으로 생성할 수 있다. 미디어 안내 어플리케이션은 "Entourage"의 주문형 버전의 이용 가능성을 나타내는 데이터베이스로부터의 정보를 수신하는 것에 응답하여, 쇼 "Entourage"에 대한 주문형 제공에 대응하는 디스플레이 검색 결과(404)를 선택적으로 생성할 수 있다. 미디어 안내 어플리케이션은 텔레비전 쇼 "Entourage"에 관한 스케줄링 정보를 수신하는 것에 응답하여, 쇼 "Entourage"의 방송 버전에 대응하는 디스플레이 검색 결과(406)를 선택적으로 생성할 수 있다. 미디어 안내 어플리케이션은 텔레비전 쇼 "Entourage"에 대응하는 추가 검색 결과가 이용 가능할 때 디스플레이 옵션(408)을 선택적으로 생성할 수 있다. 미디어 안내 어플리케이션은, 사용자 검색 질의가 임계량 내에서 제2 템플릿과 매칭되는 것으로 판단하는 것에 응답하여, 디스플레이 옵션(410)을 선택적으로 생성할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 "Entourage"라는 이름의 애완 동물을 가진 사용자에 대해, "Where's Entourage" 질의가 미디어를 검색할 의도 및 애완 동물을 찾을 의도 모두에 매칭되는 것으로 판단할 수 있다. 따라서, 미디어 안내 어플리케이션은 사용자가 (예를 들어, 옵션(410)을 통해) 다른 의도를 사용하여 검색을 수행하는 옵션을 생성할 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 (예를 들어, 사용자 장비(400) 상의) 검색 질의 템플릿과 연관된 레이아웃에 기초하여 구성된 검색 결과의 표시를 생성할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 검색 결과가 어떻게 사용자에게 제시되어야 하는지를 나타내는 (예를 들어, 엔트리(316)로부터의) 템플릿과 연관된 레이아웃을 검색할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 "어디에서 안투라지를 볼 수 있나요?(Where can I watch Entourage?)"의 입력 질의를 검색할 수 있다. 미디어 안내 어플리케이션은 (예를 들어, 입력 질의를 상술한 바와 같이 검색 질의 템플릿에 매칭시킴으로써) 입력 질의가 미디어를 찾기 위한 의도와 매칭되는지를 판단할 수 있고, 식별된 미디어에 관한 정보(예를 들어, 검색 결과(404 또는 406))를 포함하는 디스플레이 타일을 생성할 수 있다. 반대로, 미디어 안내 어플리케이션은 입력 질의 "현재 MLB 순위는 무엇입니까?(What are the current MLB standing?)"를 검색할 수 있다. 미디어 안내 어플리케이션은, 입력 질의가 (예를 들어, 입력 질의를 스포츠 통계에 대한 검색 질의 템플릿과 연관된 단어에 매칭시킴으로써) 통계를 표시하기 위한 의도와 매칭되는지를 판단할 수 있다. 입력 질의가 통계를 표시하기 위한 의도와 매칭되는 것으로 판단한 것에 응답하여, 미디어 안내 어플리케이션은 스포츠 통계, 플레이어의 이미지, MLB와 연관된 미디어에 관한 정보를 포함하는 테이블의 표시를 생성할 수 있다.
여기에서의 예들이 2개의 단어를 갖는 2차원과 관련하여 설명되었지만, 사용자 검색 질의, 템플릿 등은 임의의 수의 단어와 관련될 수 있다. 템플릿과 관련된 복수의 단어의 표현 벡터는 단어의 신경망 삽입에 기초한 임의의 수의 차원과 관련될 수 있다.
도 5 및 도 6은 미디어 안내 데이터를 제공하는데 사용될 수 있는 예시적인 디스플레이 스크린을 나타낸다. 도 5 및 도 6에 나타내어진 표시 스크린은 임의의 적합한 사용자 장비 디바이스 또는 플랫폼 상에 구현될 수 있다. 도 5 및 도 6의 디스플레이가 전체 스크린 디스플레이로 나타내어져 있지만, 표시되는 콘텐츠 위에 전체적으로 또는 부분적으로 겹칠 수도 있다. 사용자는 디스플레이 스크린에 제공된 선택 가능한 옵션(예를 들어, 메뉴 옵션, 목록 옵션, 아이콘, 하이퍼링크 등)을 선택하거나 원격 컨트롤 또는 다른 사용자 입력 인터페이스 또는 디바이스 상의 전용 버튼(예를 들어, 안내(GUIDE) 버튼)을 누름으로써 콘텐츠 정보에 액세스하려는 희망을 나타낼 수 있다. 사용자의 표시에 응답하여, 미디어 안내 어플리케이션은, 그리드 내의 시간 및 채널, 시간, 채널, 소스, 콘텐츠 유형, 카테고리(예를 들어, 영화, 스포츠, 뉴스, 어린이 또는 다른 프로그래밍 카테고리), 또는 다른 미리 정의된, 사용자-정의된, 또는 다른 조직화 기준에 의하는 바와 같이, 몇몇 방식들 중 하나로 조직된 미디어 안내 데이터를 디스플레이 스크린에 제공할 수 있다.
도 5는 시간 및 채널에 의해 배열되고, 또한 단일 디스플레이에서 상이한 유형의 콘텐츠에 대한 액세스를 가능하게 하는 프로그램 목록 디스플레이(500)의 예시적인 그리드를 나타낸다. 디스플레이(500)는 (1) 각 채널/콘텐츠 유형 식별자(열 의 셀)가 이용 가능한 상이한 채널 또는 콘텐츠 유형을 식별하는 채널/콘텐츠 유형 식별자(504)의 열; 및 (2) 각각의 시간 식별자(행의 셀)가 프로그래밍의 시간 블록을 식별하는 시간 식별자(506)의 행을 갖는 그리드(502)를 포함할 수 있다. 그리드(502)는 또한 프로그램 목록(508)과 같은 프로그램 목록의 셀을 포함하며, 각 목록은 목록의 연관된 채널 및 시간에 제공된 프로그램의 제목을 제공한다. 사용자 입력 디바이스로, 사용자는 하이라이트 영역(510)을 이동시킴으로써 프로그램 목록을 선택할 수 있다. 하이라이트 영역(510)에 의해 선택된 프로그램 목록에 대한 정보는 프로그램 정보 영역(512)에 제공될 수 있다. 영역(512)은 예를 들어, 프로그램 제목, 프로그램 설명, (해당되는 경우) 프로그램이 제공된 시간, (해당되는 경우) 프로그램이 있는 채널, 프로그램의 등급 및 기타 원하는 정보를 포함할 수 있다.
선형 프로그래밍(예를 들어, 미리 정해진 시간에 복수의 사용자 장비 디바이스로 전송되도록 스케줄링되고 스케줄에 따라 제공되는 콘텐츠)에 대한 액세스를 제공하는 것 이외에, 미디어 안내 어플리케이션은 또한 비선형 프로그래밍(예를 들어, 사용자 장비 디바이스에 언제든지 액세스할 수 있고 스케줄에 따라 제공되지 않는 콘텐츠)에 대한 액세스를 제공한다. 비선형 프로그래밍은 주문형 콘텐츠(예를 들어, VOD), 인터넷 콘텐츠(예를 들어, 스트리밍 미디어, 다운로드 가능한 미디어 등), 로컬 저장된 콘텐츠(예를 들어, 상술한 모든 사용자 장비 디바이스 또는 다른 저장 디바이스에 저장된 콘텐츠), 또는 다른 시간-독립적인 콘텐츠를 포함하는 상이한 콘텐츠 소스로부터의 콘텐츠를 포함할 수 있다. 주문형 콘텐츠는 영화 또는 특정 콘텐츠 공급자(예를 들어, "더 소프라노(The Sopranos)" 및 "열정을 억제하세요(Curb Your Enthusiasm)"를 공급하는 HBO On Demand)에 의해 공급되는 다른 콘텐츠를 포함할 수 있다. HBO ON DEMAND는 Time Warner Company L.P. 등이 소유한 서비스 마크이고, THE SOPRANOS 및 CURB YOUR ENTHUSIASM은 Home Box Office, Inc. 소유의 상표이다. 인터넷 콘텐츠에는 챗 세션 또는 웹캐스트와 같은 웹 이벤트 또는 인터넷 웹 사이트 또는 다른 인터넷 액세스(예를 들어, FTP)를 통해 스트리밍 콘텐츠 또는 다운로드 가능한 콘텐츠로서 이용 가능한 주문형 콘텐츠를 포함할 수 있다.
그리드(502)는 주문형 목록(514), 기록된 콘텐츠 목록(516), 및 인터넷 콘텐츠 리스트(518)를 포함하는 비선형 프로그래밍을 위한 미디어 안내 데이터를 제공할 수 있다. 상이한 유형의 콘텐츠 소스로부터의 콘텐츠에 대한 미디어 안내 데이터를 결합하는 디스플레이는 "혼합-미디어" 디스플레이로 때때로 칭해진다. 디스플레이(500)와 다른, 표시될 수 있는 미디어 안내 데이터 유형의 다양한 치환은 사용자 선택 또는 안내 어플리케이션 정의(예를 들어, 기록 및 방송 목록만의 디스플레이, 주문형 및 방송 목록만의 디스플레이 등)에 기초할 수 있다. 나타내어진 바와 같이, 목록(514, 516 및 518)은 그리드(502)에 표시된 전체 시간 블록에 걸쳐 있는 것으로 나타내어져, 이들 목록의 선택이 각각 주문형 목록, 기록된 목록 또는 인터넷 목록에 전용인 디스플레이에 대한 액세스를 제공할 수 있음을 나타낸다. 일부 실시예에서, 이들 콘텐츠 유형에 대한 목록은 그리드(502)에 직접 포함될 수 있다. 추가 미디어 안내 데이터는 사용자가 내비게이션 아이콘(520) 중 하나를 선택하는 것에 응답하여 표시될 수 있다. (사용자 입력 디바이스 상의 화살표 키를 누르면, 내비게이션 아이콘(520)을 선택하는 것과 유사한 방식으로 표시에 영향을 줄 수 있다.)
디스플레이(500)는 또한 비디오 영역(522) 및 옵션 영역(526)을 포함할 수 있다. 비디오 영역(522)은, 사용자가 현재 이용 가능하거나, 이용 가능할 것이거나, 또는 사용자에게 이용 가능했던 프로그램을 시청 및/또는 프리뷰하는 것을 허용할 수 있다. 비디오 영역(522)의 콘텐츠는 그리드(502)에 표시된 목록들 중 하나에 대응하거나, 이와 독립적일 수 있다. 비디오 영역을 포함하는 그리드 디스플레이는 때로 PIG(picture-in-guide) 디스플레이로 칭해진다. PIG 디스플레이 및 그 기능은 Satterfield 등의 2003년 5월 13일자로 허여된 미국 특허 제6,564,378호 및 Yuen 등의 2001년 5월 29일자로 허여된 미국 특허 제6,239,794호에 매우 상세하게 설명되어 있으며, 그 전체 내용이 여기에 참조로서 통합된다. PIG 디스플레이는 여기에 설명되는 실시예의 다른 미디어 안내 어플리케이션 디스플레이 스크린에 포함될 수 있다.
옵션 영역(526)은, 사용자가 상이한 유형의 콘텐츠, 미디어 안내 어플리케이션 디스플레이, 및/또는 미디어 안내 어플리케이션 피처에 액세스하는 것을 허용할 수 있다. 옵션 영역(526)은 디스플레이(500)(및 여기에 설명된 다른 디스플레이 스크린)의 일부일 수 있거나, 온-스크린 옵션을 선택하거나 사용자 입력 디바이스 상의 전용 또는 할당 가능한 버튼을 누름으로써 사용자에 의해 호출될 수 있다. 옵션 영역(526) 내의 선택 가능한 옵션은 그리드(502)의 프로그램 목록과 관련된 피처일 수 있거나, 메인 메뉴 디스플레이로부터 이용 가능한 옵션을 포함할 수 있다. 프로그램 목록과 관련된 피처는 다른 방송 시간 검색 또는 프로그램의 수신, 프로그램 기록, 프로그램 연속 기록의 인에이블링, 프로그램 및/또는 채널을 즐겨 찾기로 설정, 프로그램 구매 또는 기타 피처의 방식을 포함할 수 있다. 메인 메뉴 디스플레이에서 이용 가능한 옵션은 검색 옵션, VOD 옵션, 부모 조정 옵션, 인터넷 옵션, 클라우드-기반 옵션, 디바이스 동기화 옵션, 보조 스크린 디바이스 옵션, 다양한 유형의 미디어 안내 데이터 디스플레이에 액세스하는 옵션, 프리미엄 서비스에 대한 가입 옵션, 사용자 프로파일을 편집하는 옵션, 브라우즈 오버레이에 액세스하는 옵션 또는 기타 옵션을 포함할 수 있다.
미디어 안내 어플리케이션은 사용자의 선호도에 기초하여 개인화될 수 있다. 개인화된 미디어 안내 어플리케이션을 사용하면, 사용자가 디스플레이 및 기능을 맞춤화하여 미디어 안내 어플리케이션으로 개인화된 "경험"을 만들 수 있다. 이러한 개인화된 경험은, 사용자가 이러한 맞춤화를 입력할 수 있게 하거나 및/또는 다양한 사용자 선호도를 결정하기 위해 사용자 활동을 모니터링하는 미디어 안내 어플리케이션에 의해 생성될 수 있다. 사용자는 로그인하거나 자신을 안내 어플리케이션에 식별시킴으로써 그 개인화된 안내 어플리케이션에 액세스할 수 있다. 미디어 안내 어플리케이션의 맞춤화는 사용자 프로파일에 따라 이루어질 수 있다. 맞춤화는 다양한 프리젠테이션 스킴(예를 들어, 디스플레이의 컬러 스킴, 텍스트의 폰트 크기 등), 표시되는 콘텐츠 목록의 양태(예를 들어, HDTV만 또는 3D 프로그래밍만, 선호 채널 선택에 기초한 사용자 지정 방송 채널, 채널 표시의 재정렬, 추천 콘텐츠 등), 원하는 기록 피처((예를 들어, 특정 사용자의 기록 또는 시리즈 기록, 기록 품질 등), 부모 조정 설정, 인터넷 콘텐츠의 맞춤화된 프리젠테이션(예를 들어, 소셜 미디어 콘텐츠, 이메일, 전자적으로 전달된 기사 등) 및 기타 원하는 맞춤화를 포함할 수 있다.
미디어 안내 어플리케이션은 사용자가 사용자 프로파일 정보를 제공할 수 있게 하거나 사용자 프로파일 정보를 자동으로 컴파일할 수 있게 한다. 미디어 안내 어플리케이션은 예를 들어, 사용자가 액세스하는 콘텐츠 및/또는 사용자가 안내 어플리케이션과 가질 수 있는 다른 상호 작용을 모니터링할 수 있다. 또한, 미디어 안내 어플리케이션은 (예를 들어, www.allrovi.com과 같이 사용자가 액세스하는 인터넷의 다른 웹 사이트, 사용자가 액세스하는 다른 미디어 안내 어플리케이션, 사용자가 액세스하는 다른 상호 작용 어플리케이션, 사용자의 다른 사용자 장비 디바이스 등으로부터) 특정 사용자와 관련된 다른 사용자 프로파일의 전체 또는 일부를 얻을 수 있고, 및/또는 미디어 안내 어플리케이션이 액세스할 수 있는 다른 소스로부터 사용자에 관한 정보를 얻을 수 있다. 결과적으로, 사용자는 사용자의 상이한 사용자 장비 디바이스에 걸쳐 통일된 안내 어플리케이션 경험을 제공받을 수 있다. 이러한 유형의 사용자 경험은 도 8과 결부하여 아래에서 보다 상세히 설명된다. 부가적인 개인화된 미디어 안내 어플리케이션 피처는 Ellis 등의, 2005년 7월 11일에 출원된 미국 특허 출원 공개 제2005/0251827호, Boyer 등의, 2007년 1월 16일자로 허여된 미국 특허 제7,165,098호, 및 Ellis 등의, 2002년 2월 21일자로 출원된 미국 특허 출원 공개 제2002/0174430호에 훨씬 상세하게 설명되어 있으며, 여기에서 그 전체 내용이 참조로써 통합된다.
미디어 안내를 제공하기 위한 다른 디스플레이 구성이 도 6에 나타내어져 있다. 비디오 모자이크 디스플레이(600)는 콘텐츠 유형, 장르 및/또는 다른 조직 기준에 기초하여 조직된 콘텐츠 정보에 대한 선택 가능한 옵션(602)을 포함한다. 디스플레이(600)에서, 텔레비전 목록 옵션(604)이 선택 가능하여, 방송 프로그램 목록으로서 목록(606, 608, 610 및 612)을 제공한다. 디스플레이(600)에서, 목록은 커버 아트, 콘텐츠로부터의 스틸 이미지, 비디오 클립 프리뷰, 콘텐츠로부터의 라이브 비디오, 또는 목록에서 미디어 안내 데이터에 의해 기술된 콘텐츠를 사용자에게 나타내는 다른 유형의 콘텐츠를 포함하는 그래픽 이미지를 제공할 수 있다. 각 그래픽 목록은 또한 텍스트를 수반할 수 있어, 목록과 관련된 콘텐츠에 대한 추가 정보를 제공할 수 있다. 예를 들어, 목록(608)은 미디어부(614) 및/또는 텍스트부(616)를 포함하여 하나 초과의 부분을 포함할 수 있다. 미디어부(614) 및/또는 텍스트부(616)는 풀-스크린으로 콘텐츠를 보거나, (예를 들어, 비디오가 표시되는 채널에 대한 목록을 보기 위해) 미디어부(614)에 표시된 콘텐츠와 관련된 정보를 보도록 선택될 수 있다.
디스플레이(600)의 목록은 상이한 크기를 가지지만(즉, 목록(606)은 목록(608, 610 및 612)보다 큼), 원하는 경우, 모든 목록은 동일한 크기일 수 있다. 목록은 콘텐츠 공급자가 원하는 대로 또는 사용자 선호도에 기초하여 사용자에게 관심 있는 정도를 나타내거나 특정 콘텐츠를 강조하기 위해 크기가 다양하거나 그래픽으로 강조 표시될 수 있다. 콘텐츠 목록을 그래픽으로 강조 표시하기 위한 다양한 시스템 및 방법은 예를 들어, Yates의, 2009년 11월 12일자로 출원된 미국 특허 출원 공개 제2010/0153885호에 논의되어 있으며, 그 천체가 참조로써 여기에 통합된다.
사용자는 하나 이상의 그 사용자 장비 디바이스로부터 콘텐츠 및 미디어 안내 어플리케이션(및 상술한 그리고 후술하는 그 디스플레이 스크린)에 액세스할 수 있다. 도 7은 예시적인 사용자 장비 디바이스(700)의 일반화된 실시예를 나타낸다. 사용자 장비 디바이스의 더욱 구체적인 구현은 도 8과 결부하여 후술된다. 사용자 장비 디바이스(700)는 입력/출력(여기서 "I/O") 경로(702)를 통해 콘텐츠 및 데이터를 수신할 수 있다. I/O 경로(702)는 콘텐츠(예를 들어, 방송 프로그래밍, 주문형 프로그래밍, 인터넷 콘텐츠, 로컬 영역 네트워크(LAN), 또는 광대역 네트워크(WAN)를 통해 이용 가능한 콘텐츠 및/또는 다른 콘텐츠) 및 데이터를, 처리 회로(706) 및 저장 장치(708)를 포함하는 제어 회로(704)에 제공할 수 있다. 제어 회로(704)는 명령, 요청, 및 다른 적절한 데이터를 I/O 경로(702)를 사용하여 송신 및 수신하는 데 사용될 수 있다. I/O 경로(702)는 제어 회로(704)(및 특히 처리 회로(706))를 하나 이상의 통신 경로(후술함)에 접속할 수 있다. I/O 기능은 이들 통신 경로 중 하나 이상에 의해 제공될 수 있지만, 도 7에서는 도면이 지나치게 복잡해지는 것을 회피하기 위해 단일 경로로서 나타내어진다.
제어 회로(704)는 처리 회로(706)와 같은 임의의 적절한 처리 회로에 기초할 수 있다. 여기에서 언급되는 바와 같이, 처리 회로는 하나 이상의 마이크로프로세서, 마이크로컨트롤러, 디지털 신호 프로세서, 프로그래머블 로직 디바이스, 필드 프로그래머블 게이트 어레이(FPGA), 어플리리케이션 특정 집적 회로(ASIC) 등에 기초한 회로를 의미하는 것으로 이해되어야 하며, 멀티-코어 프로세서(예를 들어, 듀얼-코어, 쿼드-코어, 헥사-코어 또는 임의의 적절한 수의 코어) 또는 수퍼 컴퓨터를 포함할 수 있다. 일부 실시예에서, 처리 회로는 복수의 개별 프로세서 또는 처리 유닛, 예를 들어, 복수의 동일 유형의 처리 유닛(예를 들어, 2개의 인텔 코어(Intel Core) i7 프로세서) 또는 복수의 상이한 프로세서(예를 들어, 인텔 코어 i5 프로세서 및 인텔 코어 i7 프로세서)에 걸쳐 분산될 수 있다.
클라이언트-서버 기반 실시예에서, 제어 회로(704)는 안내 어플리케이션 서버 또는 다른 네트워크들 또는 서버들과 통신하기에 적합한 통신 회로를 포함할 수 있다. 상술한 기능을 수행하기 위한 명령어는 안내 어플리케이션 서버에 저장될 수 있다. 통신 회로는 케이블 모뎀, 통합 서비스 디지털 네트워크(ISDN) 모뎀, 디지털 가입자 라인(DSL) 모뎀, 전화 모뎀, 이더넷 카드, 또는 다른 장비와의 통신을 위한 무선 모뎀, 또는 임의의 다른 적절한 통신 회로를 포함할 수 있다. 이러한 통신은 인터넷 또는 임의의 다른 적절한 통신 네트워크 또는 경로(도 8과 결부하여 보다 상세하게 설명됨)를 포함할 수 있다. 또한, 통신 회로는 사용자 장비 디바이스의 피어-투-피어 통신 또는 서로 원격의 위치에 있는 사용자 장비 디바이스의 통신(더욱 상세하게 후술함)을 가능하게 하는 회로를 포함할 수 있다.
메모리는 제어 회로(704)의 일부인 저장 장치(708)로서 제공되는 전자 저장 디바이스일 수 있다. 여기서 언급되는 "전자 저장 디바이스" 또는 "저장 디바이스"라는 문구는 랜덤-액세스 메모리, 판독-전용 메모리, 하드 드라이브, 광 드라이브, 디지털 비디오 디스크(DVD) 레코더, 컴팩트 디스크(CD) 레코더, 블루-레이(BLU-RAY) 디스크(BD) 레코더, 블루-레이 3D 디스크 레코더, 디지털 비디오 레코더(DVR, 때로 개인용 비디오 레코더 또는 PVR이라고도 함), 고상 상태 디바이스, 퀀텀 저장 디바이스, 게임 콘솔, 게임 미디어 또는 기타 적합한 고정식 또는 이동식 저장 디바이스 및/또는 그 임의의 조합과 같은, 전자 데이터, 컴퓨터 소프트웨어 또는 펌웨어를 저장하기 위한 임의의 디바이스를 의미하는 것으로 이해되어야 한다. 저장 장치(708)는 상술된 미디어 안내 데이터뿐만 아니라 여기에 설명된 다양한 유형의 콘텐츠를 저장하는데 사용될 수 있다. 비휘발성 메모리가 또한 (예를 들어, 부트-업 루틴 및 다른 명령어를 론칭하기 위해) 사용될 수 있다. 도 8과 관련하여 설명되는 클라우드-기반 저장 장치는 저장 장치(708)를 보완하기 위해 또는 저장 장치(708) 대신에 사용될 수 있다.
제어 회로(704)는, 하나 이상의 아날로그 튜너, 하나 이상의 MPEG-2 디코더 또는 다른 디지털 디코딩 회로, 고해상도 튜너, 또는 임의의 다른 적절한 튜닝 또는 비디오 회로 또는 이러한 회로의 조합과 같은 비디오 생성 회로 및 튜닝 회로를 포함할 수 있다. 또한, 인코딩 회로(예를 들어, 공중파, 아날로그 또는 디지털 신호를 저장용 MPEG 신호로 변환하기 위함)가 제공될 수 있다. 제어 회로(704)는 또한 콘텐츠를 사용자 장비(700)의 바람직한 출력 포맷으로 업컨버팅 및 다운컨버팅하기 위한 스케일러 회로를 포함할 수 있다. 또한, 제어 회로(704)는 디지털 신호 및 아날로그 신호 간 변환을 위해 디지털-대-아날로그 변환기 회로 및 아날로그-대-디지털 변환기 회로를 포함할 수 있다. 튜닝 및 인코딩 회로는 사용자 장비 디바이스에 의해 사용되어 콘텐츠를 수신하고 표시하거나, 재생하거나 또는 기록할 수 있다. 튜닝 및 인코딩 회로는 또한 안내 데이터를 수신하는데 사용될 수 있다. 예를 들어, 튜닝, 비디오 생성, 인코딩, 디코딩, 암호화, 해독, 스케일러 및 아날로그/디지털 회로를 포함하는 여기에 설명되는 회로는 하나 이상의 범용 또는 특수 프로세서 상에서 실행되는 소프트웨어를 사용하여 구현될 수 있다. 동시 튜닝 기능(예를 들면, 감시 및 기록 기능, 픽처-인-픽처(PIP) 기능, 다중-튜너 기록 등)을 처리하기 위해 다중 튜너가 제공될 수 있다. 저장 장치(708)가 사용자 장비(700)와 별개의 디바이스로서 제공되면, 튜닝 및 인코딩 회로(다중 튜너 포함)는 저장 장치(708)와 관련될 수 있다.
사용자는 사용자 입력 인터페이스(710)를 사용하여 제어 회로(704)에 명령어를 전송할 수 있다. 사용자 입력 인터페이스(710)는 원격 컨트롤, 마우스, 트랙볼, 키패드, 키보드, 터치 스크린, 터치 패드, 스타일러스 입력, 음성 인식 인터페이스, 또는 다른 사용자 입력 인터페이스와 같은 임의의 적절한 사용자 인터페이스일 수 있다. 디스플레이(712)는 독립형 장치로서 제공되거나 사용자 장비 디바이스(700)의 다른 요소들과 통합될 수 있다. 예를 들어, 디스플레이(712)는 터치스크린 또는 터치-감지 디스플레이일 수 있다. 이러한 상황에서, 사용자 입력 인터페이스(710)는 디스플레이(712)와 통합되거나 결합될 수 있다. 디스플레이(712)는 모니터, 텔레비전, 모바일 디바이스용 액정 디스플레이(LCD), 비정질 실리콘 디스플레이, 저온 폴리 실리콘 디스플레이, 전자 잉크 디스플레이, 전기 영동 디스플레이, 액티브 매트릭스 디스플레이, 일렉트로-웨팅 디스플레이, 전기 유체 디스플레이, 음극선관 디스플레이, 발광 다이오드 디스플레이, 전계 발광 디스플레이, 플라즈마 디스플레이 패널, 고성능 어드레싱 디스플레이, 박막 트랜지스터 디스플레이, 유기 발광 다이오드 디스플레이, 표면 도전 전자-이미터 디스플레이(SED), 레이저 텔레비전, 탄소 나노튜브, 양자점 디스플레이, 간섭계 변조기 디스플레이, 또는 시각적 이미지를 표시하기 위한 임의의 다른 적절한 장비 중 하나 상일 수 있다. 일부 실시예에서, 디스플레이(712)는 HDTV-가능형일 수 있다. 일부 실시예에서, 디스플레이(712)는 3D 디스플레이일 수 있고, 상호 작용 미디어 안내 어플리케이션 및 임의의 적합한 콘텐츠가 3D로 표시될 수 있다. 비디오 카드 또는 그래픽 카드는 디스플레이(712)로의 출력을 생성할 수 있다. 비디오 카드는 3D 장면 및 2D 그래픽의 가속 렌더링, MPEG-2/MPEG-4 디코딩, TV 출력, 또는 다중 모니터에 대한 접속 능력과 같은 다양한 기능을 제공할 수 있다. 비디오 카드는 제어 회로(704)와 관련하여 상술한 임의의 처리 회로일 수 있다. 비디오 카드는 제어 회로(704)와 통합될 수 있다. 스피커(714)는 사용자 장비 디바이스(700)의 다른 요소와 통합되어 제공될 수 있거나 독립형 유닛일 수 있다. 디스플레이(712) 상에 표시된 비디오 및 다른 콘텐츠의 오디오 컴포넌트는 스피커(714)를 통해 재생될 수 있다. 일부 실시예에서, 오디오는 스피커(714)를 통해 오디오를 처리 및 출력하는 수신기(미도시)에 분배될 수 있다.
안내 어플리케이션은 임의의 적합한 아키텍처를 사용하여 구현될 수 있다. 예를 들어, 이는 사용자 장비 디바이스(700) 상에 완전히 구현된 독립형 어플리케이션일 수 있다. 이러한 접근법에서, 어플리케이션의 명령어는 국부적으로 (예를 들어, 저장 장치(708)에) 저장되고, 어플리케이션에 의해 사용되는 데이터는 (예를 들어, 대역 외 피드(feed)로부터, 인터넷 리소스로부터 또는 다른 적절한 접근법을 사용하여) 주기적으로 다운로드될 수 있다. 제어 회로(704)는 저장 장치(708)로부터 어플리케이션의 명령어를 검색하고 여기에서 논의된 디스플레이 중 임의의 것을 생성하기 위해 명령어를 처리할 수 있다. 처리된 명령어에 기초하여, 제어 회로(704)는, 입력이 입력 인터페이스(710)로부터 수신될 때 수행할 액션을 결정할 수 있다. 예를 들어, 디스플레이 업/다운 상의 커서의 이동은, 입력 인터페이스(710)가 업/다운 버튼이 선택되었음을 나타낼 때 처리된 명령어에 의해 나타내어질 수 있다.
일부 실시예에서, 미디어 안내 어플리케이션은 클라이언트-서버 기반 어플리케이션이다. 사용자 장비 디바이스(700) 상에 구현된 두꺼운 또는 얇은 클라이언트에 의한 사용을 위한 데이터는 사용자 장비 디바이스(700)에 원격인 서버에 요청을 발행함으로써 주문형으로 검색된다. 클라이언트-서버 기반 안내 어플리케이션의 일례에서, 제어 회로(704)는, 원격 서버가 제공하는 웹 페이지를 해석하는 웹 브라우저를 실행한다. 예를 들어, 원격 서버는 어플리케이션에 대한 명령어를 저장 디바이스에 저장할 수 있다. 원격 서버는 회로(예를 들어, 제어 회로(704))를 사용하여 저장된 명령어를 처리하고 상술한 및 후술되는 디스플레이를 생성할 수 있다. 클라이언트 디바이스는 원격 서버에 의해 생성된 디스플레이를 수신할 수 있고, 장비 디바이스(700) 상에 디스플레이의 콘텐츠를 국부적으로 표시할 수 있다. 이러한 방식으로, 명령어의 처리가 서버에 의해 원격으로 수행되며, 결과적인 디스플레이가 장비 디바이스(700) 상에 국부적으로 제공된다. 장비 디바이스(700)는 입력 인터페이스(710)를 통해 사용자로부터 입력을 수신하고, 대응하는 디스플레이를 처리 및 생성하기 위해 이들 입력을 원격 서버에 송신할 수 있다. 예를 들어, 장비 디바이스(700)는, 업/다운 버튼이 입력 인터페이스(710)를 통해 선택되었음을 나타내는 통신을 원격 서버에 송신할 수 있다. 원격 서버는 그 입력에 따라 명령어를 처리하고, 입력에 대응하는 어플리케이션의 디스플레이(예를 들어, 커서를 위/아래로 움직이는 디스플레이)를 생성할 수 있다. 그 후, 생성된 디스플레이는 사용자에게 프리젠테이션을 위해 장비 디바이스(700)로 송신된다.
일부 실시예에서, 미디어 안내 어플리케이션은 인터프리터 또는 가상 머신(제어 회로(704)에 의해 실행됨)에 의해 다운로드되고 해석되거나 달리 실행된다. 일부 실시예에서, 안내 어플리케이션은 적절한 피드의 일부로서 제어 회로(704)에 의해 수신되고 제어 회로(704)상에서 실행되는 사용자 에이전트에 의해 해석되는 ETV 2진 교환 포맷(EBIF)으로 인코딩될 수 있다. 예를 들어, 안내 어플리케이션은 EBIF 어플리케이션일 수 있다. 일부 실시예에서, 안내 어플리케이션은 제어 회로(704)에 의해 실행되는 로컬 가상 머신 또는 다른 적절한 미들웨어에 의해 수신되고 실행되는 일련의 자바-기반 파일에 의해 정의될 수 있다. 이러한 일부 실시예(예를 들어, MPEG- 2 또는 다른 디지털 미디어 인코딩 방식을 채용함)에서, 안내 어플리케이션은 예를 들어, 인코딩되어, 프로그램의 MPEG 오디오 및 비디오 패킷으로 MPEG-2 객체 캐러셀(carousel)로 송신될 수 있다.
사용자 텔레비전 장비(802), 사용자 컴퓨터 장비(804), 무선 사용자 통신 디바이스(806), 또는 비 휴대용 게임기와 같은, 콘텐츠에 액세스하기에 적합한 임의의 다른 유형의 사용자 장비로서, 도 7의 사용자 장비 디바이스(700)가 도 8의 시스템(800)에 구현될 수 있다. 간략화를 위해, 이들 디바이스는 여기에서 총괄적으로 사용자 장비 또는 사용자 장비 디바이스로 칭해질 수 있으며, 상술한 사용자 장비 디바이스와 실질적으로 유사할 수 있다. 미디어 안내 어플리케이션이 구현될 수 있는 사용자 장비 디바이스는 독립형 디바이스로서 기능할 수 있거나, 디바이스들의 네트워크의 일부일 수도 있다. 디바이스의 다양한 네트워크 구성이 구현될 수 있으며, 이하에서 더 상세히 설명된다.
도 7과 결부하여 상술한 시스템 특징들 중 적어도 일부를 이용하는 사용자 장비 디바이스는, 단지 사용자 텔레비전 장비(802), 사용자 컴퓨터 장비(804), 또는 무선 사용자 통신 디바이스(806)로서 분류되지 않을 수 있다. 예를 들어, 사용자 텔레비전 장비(802)는 일부 사용자 컴퓨터 장비(804)와 같이, 인터넷 콘텐츠에 액세스할 수 있는 인터넷-가능형일 수 있으며, 사용자 컴퓨터 장비(804)는 일부 텔레비전 장비(802)와 같이 텔레비전 프로그래밍에 대한 액세스를 허용하는 튜너를 포함할 수 있다. 미디어 안내 어플리케이션은 다양한 상이한 유형의 사용자 장비 상에서 동일 레이아웃을 가질 수 있거나, 사용자 장비의 디스플레이 성능에 맞춤화될 수 있다. 예를 들어, 사용자 컴퓨터 장비(804)에서, 안내 어플리케이션은 웹 브라우저에 의해 액세스되는 웹 사이트로서 제공될 수 있다. 다른 예에서, 안내 어플리케이션은 무선 사용자 통신 디바이스(806)에 대해 축소될 수 있다.
시스템(800)에서, 통상적으로 각 유형의 사용자 장비 디바이스 중 2개 이상이 있지만, 도면을 과도하게 복잡하게 하는 것을 피하기 위해 각각의 하나만이 도 8에 나타내어져 있다. 또한, 각각의 사용자는 2개 이상의 유형의 사용자 장비 디바이스 및 각각의 유형의 사용자 장비 디바이스 중 2개 이상을 또한 이용할 수 있다.
일부 실시예에서, 사용자 장비 디바이스(예를 들어, 사용자 텔레비전 장비(802), 사용자 컴퓨터 장비(804), 무선 사용자 통신 디바이스(806))는 "제2 스크린 디바이스"로 칭해질 수 있다. 예를 들어, 제2 스크린 디바이스는 제1 사용자 장비 디바이스 상에 제시된 콘텐츠를 보충할 수 있다. 제2 스크린 디바이스 상에 제시되는 콘텐츠는 제1 디바이스 상에 제시되는 콘텐츠를 보충하는 임의의 적합한 콘텐츠일 수 있다. 일부 실시예에서, 제2 스크린 디바이스는 설정을 조정하고 제1 디바이스의 선호도를 표시하기 위한 인터페이스를 제공한다. 일부 실시예에서, 제2 스크린 디바이스는 다른 제2 스크린 디바이스와 상호 작용하거나 소셜 네트워크와 상호 작용하기 위해 구성된다. 제2 스크린 디바이스는 제1 디바이스와 동일한 룸, 제1 디바이스와 다른 룸이지만 같은 집 또는 건물, 또는 제1 디바이스와 다른 건물에 배치될 수 있다.
사용자는 또한 집 내의 디바이스 및 원격 디바이스에 걸쳐 일관된 미디어 안내 어플리케이션 설정을 유지하기 위해 다양한 설정을 설정할 수 있다. 여기에 설명된 것뿐만 아니라, 채널 및 프로그램 즐겨 찾기, 안내 어플리케이션이 프로그래밍 추천을 만들기 위해 이용하는 프로그래밍 선호도, 디스플레이 선호도 및 다른 적절한 바람직한 안내 설정도 포함한다. 예를 들어, 사용자가 자신의 사무실에 있는 개인용 컴퓨터의 예를 들어, 웹 사이트 www.allrovi.com을 즐겨 찾기 채널로 설정하면, 동일한 채널이 사용자의 가정용 디바이스(예를 들어, 사용자 텔레비전 장비 및 사용자 컴퓨터 장비)뿐만 아니라 원하는 경우 사용자의 모바일 디바이스 상에 즐겨찾기로 나타날 것이다. 따라서, 하나의 사용자 장비 디바이스에 대한 변경은, 동일하거나 상이한 유형의 사용자 장비 디바이스인지에 관계없이, 다른 사용자 장비 디바이스의 안내 경험을 변경할 수 있다. 또한, 변경은 사용자가 입력한 설정뿐만 아니라 안내 어플리케이션에 의해 모니터링되는 사용자 활동을 기반으로 할 수도 있다.
사용자 장비 디바이스는 통신 네트워크(814)에 커플링될 수 있다. 즉, 사용자 텔레비전 장비(802), 사용자 컴퓨터 장비(804) 및 무선 사용자 통신 디바이스(806)는 각각 통신 경로(808, 810 및 812)를 통해 통신 네트워크(814)에 커플링된다. 통신 네트워크(814)는 인터넷, 이동 전화 네트워크, 이동 음성 또는 데이터 네트워크(예를 들어, 4G 또는 LTE 네트워크), 케이블 네트워크, 공중 교환 전화 네트워크, 또는 다른 유형의 통신 네트워크 또는 통신 네트워크의 조합을 포함하는 하나 이상의 네트워크일 수 있다. 경로들(808, 810 및 812)은 위성 경로, 광섬유 경로, 케이블 경로, 인터넷 통신(예를 들어, IPTV)을 지원하는 경로, (예를 들어, 방송 또는 다른 무선 신호를 위한) 자유 공간 접속, 또는 임의의 다른 적합한 유선 또는 무선 통신 경로 또는 이러한 경로들의 조합을 개별적으로 또는 함께 포함할 수 있다. 경로(812)는, 도 8에 나타내어진 예시적인 실시예에서, 무선 경로라는 것을 나타내기 위해 점선으로 도시되고, 경로(808 및 810)는 유선 경로임을 나타내기 위해 실선으로 도시된다(하지만, 이 경로는 원한다면 무선 경로일 수 있음). 사용자 장비 디바이스와의 통신은 이들 통신 경로 중 하나 이상에 의해 제공될 수 있지만, 도면을 과도하게 복잡하게 하지 않기 위해 도 8에서는 단일 경로로 나타내어진다.
통신 경로들이 사용자 장비 디바이스들 사이에 도시되지 않지만, 이들 디바이스들은 경로(808, 810 및 812)와 관련하여 상술한 것과 같은 통신 경로뿐만 아니라, USB 케이블, IEEE 1394 케이블, 무선 경로(예를 들어, 블루투스(Bluetooth), 적외선, IEEE 802-1x 등) 또는 유선 또는 무선 경로를 통한 다른 근거리 통신과 같은 다른 점-대-점 통신 경로를 통해 서로 직접 통신할 수 있다. BLUETOOTH Bluetooth SIG, INC.가 소유 한 인증 마크이다. 사용자 장비 디바이스는 또한 통신 네트워크(814)를 통해 간접 경로를 통해 서로 직접 통신할 수 있다.
시스템(800)은 각각 통신 경로(820 및 822)를 통해 통신 네트워크(814)에 커플링된 콘텐츠 소스(816) 및 미디어 안내 데이터 소스(818)를 포함한다. 경로(820 및 822)는 경로(808, 810 및 812)와 관련하여 상술한 임의의 통신 경로를 포함할 수 있다. 콘텐츠 소스(816) 및 미디어 안내 데이터 소스(818)와의 통신은 하나 이상의 통신 경로를 통해 교환될 수 있지만, 도면을 과도하게 복잡하게 하는 것을 피하기 위해 도 8의 단일 경로로 나타내어진다. 또한, 각각의 콘텐츠 소스(816) 및 미디어 안내 데이터 소스(818) 중 2개 이상이 존재할 수 있지만, 도면을 과도하게 복잡하게 하는 것을 피하기 위해 도 8에는 그 각각의 하나만이 나타내어진다. (이러한 소스의 각각의 상이한 유형이 후술된다.) 원하는 경우, 콘텐츠 소스(816) 및 미디어 안내 데이터 소스(818)는 하나의 소스 디바이스로서 통합될 수 있다. 일부 실시예에서, 소스(816 및 818)와 사용자 장비(802, 804 및 806)와의 통신이 통신 네트워크(814)를 통하는 것으로 도시되지만, 소스(816, 818)는 경로(808, 810, 812)와 관련하여 상술한 것과 같은 통신 경로(미도시)를 통해 사용자 장비(802, 804 및 806)와 직접 통신할 수 있다.
콘텐츠 소스(816)는 텔레비전 분배 설비, 케이블 시스템 헤드엔드, 위성 분배 설비, 프로그래밍 소스(예를 들어, NBC, ABC, HBO 등과 같은 텔레비전 방송국), 중개 분배 설비 및/또는 서버, 인터넷 공급자, 주문형 미디어 서버 및 기타 콘텐츠 공급자를 포함하는 하나 이상의 유형의 콘텐츠 분배 설비를 포함할 수 있다. NBC는 National Broadcasting Company, Inc. 소유의 상표이며 ABC는 American Broadcasting Company, Inc. 소유의 상표이며 HBO는 Home Box Office, Inc 소유의 상표이다. 콘텐츠 소스(816)는 콘텐츠의 발신자(예를 들어, 텔레비전 방송국, 웹캐스트 공급자 등)일 수 있거나, 콘텐츠의 발신자가 아닐 수 있다(예를 들어, 주문형 콘텐츠 공급자, 다운로드용 방송 프로그램 콘텐츠의 인터넷 공급자 등). 콘텐츠 소스(816)는 케이블 소스, 위성 공급자, 주문형 공급자, 인터넷 공급자, 오버-더-톱(over-the-top) 콘텐츠 공급자 또는 다른 콘텐츠의 공급자를 포함할 수 있다. 콘텐츠 소스(816)는 또한 임의의 사용자 장비 디바이스로부터 원격의 위치에서 다른 유형의 콘텐츠(사용자에 의해 선택된 비디오 콘텐츠 포함)를 저장하는 데 사용되는 원격 미디어 서버를 포함할 수 있다. 콘텐츠의 원격 저장을 위한 시스템 및 방법, 및 원격 저장 콘텐츠를 사용자 장비에 제공하는 방법은 Ellis 등의, 2010년 7월 20일자로 허여된 미국 특허 제7,761,892호와 관련하여 보다 상세히 논의되고, 그 전체가 참조로써 여기에 통합된다.
미디어 안내 데이터 소스(818)는 상술한 미디어 안내 데이터와 같은 미디어 안내 데이터를 제공할 수 있다. 임의의 적절한 접근법을 사용하여 사용자 장비 디바이스에 미디어 안내 데이터가 제공될 수 있다. 일부 실시예에서, 안내 어플리케이션은 데이터 피드(예를 들어, 연속 피드 또는 트리클(trickle) 피드)를 통해 프로그램 가이드 데이터를 수신하는 독립형 상호 작용 텔레비전 프로그램 가이드일 수 있다. 프로그램 스케줄 데이터 및 다른 안내 데이터는 대역 내 디지털 신호를 사용하거나, 대역 외 디지털 신호를 사용하거나, 또는 임의의 다른 적절한 데이터 전송 기술에 의해 텔레비전 채널 측대역에서 사용자 장비에 제공될 수 있다. 프로그램 스케줄 데이터 및 다른 미디어 안내 데이터는 복수의 아날로그 또는 디지털 텔레비전 채널 상의 사용자 장비에 제공될 수 있다.
일부 실시예에서, 미디어 안내 데이터 소스(818)로부터의 안내 데이터는 클라이언트-서버 접근법을 사용하여 사용자 장비에 제공될 수 있다. 예를 들어, 사용자 장비 디바이스는 서버로부터 미디어 안내 데이터를 끌어낼 수 있거나, 서버가 사용자 장비 디바이스로 미디어 안내 데이터를 푸싱할 수 있다. 일부 실시예에서, 사용자 장비에 상주하는 안내 어플리케이션 클라이언트는, 필요할 때, 예를 들어, 안내 데이터가 오래된 경우 또는 사용자 장비가 사용자로부터 데이터 수신 요청을 수신한 경우, 안내 데이터를 얻기 위해 소스(818)와 세션을 개시할 수 있다. 임의의 적절한 빈도(예를 들어, 연속적으로, 매일, 사용자가 지정한 시간 주기, 시스템 특정 시간 주기, 사용자 장비로부터의 요청에 응답하여 등)로 미디어 안내가 사용자 장비에 제공될 수 있다. 미디어 안내 데이터 소스(818)는 사용자 장비(802, 804 및 806)에 미디어 안내 어플리케이션 자체 또는 미디어 안내 어플리케이션에 대한 소프트웨어 업데이트를 제공할 수 있다.
일부 실시예에서, 미디어 안내 데이터는 뷰어 데이터를 포함할 수 있다. 예를 들어, 뷰어 데이터는 현재 및/또는 이력적인 사용자 활동 정보(예를 들어, 사용자가 통상적으로 시청하는 콘텐츠, 사용자가 콘텐츠를 시청하는 시간, 사용자가 소셜 네트워크와 상호 작용하는지 여부, 사용자가 정보를 게시할 소셜 네트워크와 상호 작용하는 시간, 사용자가 통상적으로 시청하는 콘텐츠 유형(예를 들어, 유료 TV 또는 무료 TV), 기분, 뇌 활동 정보 등)를 포함할 수 있다. 미디어 안내 데이터는 또한 가입 데이터를 포함할 수 있다. 예를 들어, 가입 데이터는 주어진 사용자가 어떤 소스 또는 서비스에 가입했는지 및/또는 주어진 사용자가 이전에 가입했으나 후에 액세스를 종료한(예를 들어, 사용자가 프리미엄 채널에 가입했는지 여부, 사용자가 서비스의 프리미엄 레벨을 추가했는지 여부, 사용자가 인터넷 속도를 증가시켰는지 여부) 소스 또는 서비스를 식별할 수있다. 일부 실시예에서, 뷰어 데이터 및/또는 가입 데이터는 1년 넘는 기간 동안 주어진 사용자의 패턴을 식별할 수 있다. 미디어 안내 데이터는 주어진 사용자가 서비스/소스에 대한 액세스를 종료할 가능성을 나타내는 스코어를 생성하는 데 사용되는 모델(예를 들어, 생존자 모델)을 포함할 수 있다. 예를 들어, 미디어 안내 어플리케이션은, 주어진 사용자가 특정 서비스 또는 소스에 대한 액세스를 종료할지의 가능성을 나타내는 값 또는 스코어를 생성하기 위해 모델을 사용하여 뷰어 데이터를 가입 데이터로 처리할 수 있다. 특히, 스코어가 높으면, 사용자가 특정 서비스 또는 소스에 대한 액세스를 종료할 것이라는 더 높은 신뢰 수준을 나타낼 수 있다. 스코어에 기초하여, 미디어 안내 어플리케이션은 스코어에 의해 나타내어진 특정 서비스 또는 소스가 사용자가 액세스를 종료할 가능성이 높은 서비스 또는 소스로서 사용자가 유지하도록 사용자를 유도하는 프로모션을 생성할 수 있다.
미디어 안내 어플리케이션은 예를 들어, 사용자 장비 디바이스 상에 구현된 독립형 어플리케이션일 수 있다. 예를 들어, 미디어 안내 어플리케이션은 저장 장치(708)에 저장되고 사용자 장비 디바이스(700)의 제어 회로(704)에 의해 실행될 수 있는 소프트웨어 또는 실행 가능한 명령어들의 세트로서 구현될 수 있다. 일부 실시예에서, 미디어 안내 어플리케이션은, 클라이언트 어플리케이션만 사용자 장비 디바이스에 상주하고 서버 어플리케이션은 원격 서버에 상주하는 클라이언트-서버 어플리케이션일 수 있다. 예를 들어, 미디어 안내 어플리케이션은 부분적으로 사용자 장비 디바이스(700)의 제어 회로(704) 상의 클라이언트 어플리케이션 및 원격 서버의 제어 회로에서 동작하는 서버 어플리케이션(예를 들어, 미디어 안내 데이터 소스(818))로서의 원격 서버 상에서 부분적으로 구현될 수 있다. (미디어 안내 데이터 소스(818)와 같은) 원격 서버의 제어 회로에 의해 실행될 때, 미디어 안내 어플리케이션은 제어 회로로 하여금 안내 어플리케이션 디스플레이를 생성하고 생성된 디스플레이를 사용자 장비 디바이스로 전송하도록 명령할 수 있다. 서버 어플리케이션은 사용자 장비상의 저장을 위해 데이터를 전송하도록 미디어 안내 데이터 소스(818)의 제어 회로에 명령할 수 있다. 클라이언트 어플리케이션은 안내 어플리케이션 디스플레이를 생성하도록 수신 사용자 장비의 제어 회로에 명령할 수 있다.
사용자 장비(802, 804 및 806)에 전달된 콘텐츠 및/또는 미디어 안내 데이터는 OTT(over-the-top) 콘텐츠일 수 있다. OTT 콘텐츠 전달은 상술된 사용자 장비 디바이스를 포함하여 인터넷-가능 가능 사용자 디바이스가 케이블 또는 위성 접속을 통해 수신된 콘텐츠 외에 상술한 임의의 콘텐츠를 포함하여 인터넷을 통해 전송되는 콘텐츠를 수신할 수 있게 한다. OTT 콘텐츠는 인터넷 서비스 공급자(ISP)가 제공하는 인터넷 접속을 통해 전달되지만 제3자가 콘텐츠를 분배한다. ISP는 콘텐츠의 시청 능력, 저작권 또는 재분배에 대한 책임을 지지 않을 수 있으며, OTT 콘텐츠 공급자가 제공한 IP 패킷을 전송만 할 수 있다. OTT 콘텐츠 공급자의 예는 IP 패킷을 통해 오디오 및 비디오를 제공하는 YOUTUBE, NETFLIX 및 HULU를 포함한다. Youtube는 Google Inc. 소유의 상표이고 Netflix는 Netflix Inc. 소유의 상표이며, Hulu는 Hulu, LLC 소유의 상표이다. OTT 콘텐츠 공급자는 추가적으로 또는 대안으로 상술한 미디어 안내 데이터를 제공할 수 있다. OTT 콘텐츠 제공자는 콘텐츠 및/또는 미디어 안내 데이터 외에, 미디어 안내 어플리케이션(예를 들어, 웹-기반 어플리케이션 또는 클라우드-기반 어플리케이션)을 분배할 수 있거나, 콘텐츠는 사용자 장비 디바이스에 저장된 미디어 안내 어플리케이션에 의해 표시될 수 있다.
미디어 안내 시스템(800)은, 콘텐츠에 액세스하고 미디어 안내를 제공하기 위해 사용자 장비 디바이스 및 콘텐츠 소스 및 안내 데이터가 서로 통신할 수 있는 다수의 접근법 또는 네트워크 구성을 예시하기 위한 것이다. 여기에 설명된 실시예는 이들 접근법 중 임의의 하나 또는 서브셋에서, 또는 콘텐츠를 전달하고 미디어 안내를 제공하기 위한 다른 접근법을 채용하는 시스템에 적용될 수 있다. 다음의 4개의 접근법은 도 8의 일반화된 예의 특정 예시를 제공한다.
제1 접근법에서, 사용자 장비 디바이스는 홈 네트워크 내에서 서로 통신할 수 있다. 사용자 장비 디바이스는 상술한 근거리 점-대-점 통신 스킴을 통해, 홈 네트워크 상에 제공된 허브 또는 다른 유사한 디바이스를 통한 간접 경로를 통해, 또는 통신 네트워크(814)를 통해 서로 직접 통신할 수 있다. 하나의 집에 있는 복수의 개인들 각각은 홈 네트워크 상의 다른 사용자 장비 디바이스를 조작할 수 있다. 결과적으로, 다양한 미디어 안내 정보 또는 설정이 상이한 사용자 장비 디바이스들 사이에서 통신되는 것이 바람직할 수 있다. 예를 들어, 사용자가 홈 네트워크 내의 상이한 사용자 장비 디바이스 상에서 일관된 미디어 안내 어플리케이션 설정을 유지하는 것이 바람직할 수 있으며, 이는 Ellis 등의, 2005년 7월 11일자로 출원된 미국 특허 공개 제2005/0251827호에 더 상세히 설명되어 있다. 홈 네트워크 내의 상이한 유형의 사용자 장비 디바이스는 또한 서로 통신하여 콘텐츠를 송신할 수 있다. 예를 들어, 사용자는 사용자 컴퓨터 장비로부터 휴대용 비디오 플레이어 또는 휴대용 음악 플레이어로 콘텐츠를 송신할 수 있다.
제2 접근법에서, 사용자는 콘텐츠에 액세스하여 미디어 안내를 얻는 복수의 유형의 사용자 장비를 가질 수 있다. 예를 들어, 일부 사용자는 집과 모바일 디바이스에서 액세스되는 홈 네트워크를 가질 수 있다. 사용자는 원격 디바이스에 구현된 미디어 안내 어플리케이션을 통해 홈 내의 디바이스를 제어할 수 있다. 예를 들어, 사용자는 사무실의 퍼스널 컴퓨터 또는 PDA 또는 웹-가능 모바일 전화와 같은 모바일 디바이스를 통해 웹사이트의 온라인 미디어 안내 어플리케이션에 액세스할 수 있다. 사용자는 온라인 안내 어플리케이션에 다양한 설정(예를 들어, 기록, 다시 알림, 또는 기타 설정)을 설정하여 사용자의 홈 내 장비를 제어할 수 있다. 온라인 가이드는 사용자 장비를 직접 제어하거나, 사용자의 홈 내 장비의 미디어 안내 어플리케이션과 통신하여 제어할 수 있다. 예를 들어, 사용자 장비 디바이스가 서로 원격의 위치에 있을 경우, 통신하는 사용자 장비 디바이스에 대한 다양한 시스템 및 방법이 Ellis 등의, 2011년 10월 25일자로 허여된 미국 특허 제8,046,801호에 논의되며, 이는 그 전체가 참조로써 여기에 통합된다.
제3 접근법에서, 홈 내부 및 외부의 사용자 장비 디바이스의 사용자는 자신의 미디어 안내 어플리케이션을 사용하여 콘텐츠에 액세스하기 위해 콘텐츠 소스(816)와 직접 통신할 수 있다. 구체적으로, 홈 내에서, 사용자 텔레비전 장비(802) 및 사용자 컴퓨터 장비(804)의 사용자는 바람직한 콘텐츠를 탐색하고 찾아 내기 위해 미디어 안내 어플리케이션에 액세스할 수 있다. 사용자는 또한 무선 사용자 통신 디바이스(806)를 사용하여 홈 외부의 미디어 안내 어플리케이션에 액세스하여 바람직한 콘텐츠를 탐색하고 찾아 낼 수 있다.
제4 접근법에서, 사용자 장비 디바이스는 클라우드 컴퓨팅 환경에서 클라우드 서비스에 액세스하기 위해 동작할 수 있다. 클라우드 컴퓨팅 환경에서, 콘텐츠 공유, 저장 또는 분배를 위한 다양한 유형의 컴퓨팅 서비스(예를 들어, 비디오 공유 사이트 또는 소셜 네트워킹 사이트)는 "클라우드"라고 하는 네트워크=액세스 가능한 컴퓨팅 및 저장 리소스의 컬렉션에 의해 제공된다. 예를 들어, 클라우드는 통신 네트워크(814)를 통해 인터넷과 같은 네트워크를 통해 접속된 다양한 유형의 사용자 및 디바이스에 클라우드-기반 서비스를 제공하는, 중앙 또는 분산된 위치에 위치될 수 있는 서버 컴퓨팅 디바이스의 컬렉션을 포함할 수 있다. 클라우드 리소스는 하나 이상의 콘텐츠 소스(816) 및 하나 이상의 미디어 안내 데이터 소스(818)를 포함할 수 있다. 부가적으로 또는 대안적으로, 원격 컴퓨팅 사이트는 사용자 텔레비전 장비(802), 사용자 컴퓨터 장비(804), 무선 사용자 통신 디바이스(806)와 같은 다른 사용자 장비 디바이스를 포함할 수 있다. 예를 들어, 다른 사용자 장비 디바이스는 비디오의 저장된 사본 또는 스트리밍되는 비디오에 대한 액세스를 제공할 수 있다. 이러한 실시예에서, 사용자 장비 디바이스는 중앙 서버와 통신하지 않고, 피어-투-피어 방식으로 동작할 수 있다.
클라우드는 사용자 장비 디바이스에 대한, 상술한 임의의 콘텐츠에 대한 액세스뿐만 아니라, 다른 예들 중에서, 콘텐츠 저장, 콘텐츠 공유, 또는 소셜 네트워킹 서비스와 같은 서비스에 대한 액세스를 제공한다. 클라우드 컴퓨팅 서비스 공급자를 통해 또는 다른 온라인 서비스의 공급자를 통해 서비스가 클라우드에 제공될 수 있다. 예를 들어, 클라우드-기반 서비스는 콘텐츠 저장 서비스, 콘텐츠 공유 사이트, 소셜 네트워킹 사이트 또는 접속된 디바이스 상에서 다른 자에 의한 시청을 위해 사용자-제공 콘텐츠가 분배되는 다른 서비스를 포함할 수 있다. 이러한 클라우드-기반 서비스는 사용자 장비 디바이스가 콘텐츠를 클라우드에 저장하고, 콘텐츠를 국부적으로 저장하고 국부적으로 저장된 콘텐츠에 액세스하는 것이 아니라 콘텐츠를 수신할 수 있게 한다.
사용자는 콘텐츠를 기록하기 위해, 캠코더, 비디오 모드를 갖는 디지털 카메라, 오디오 레코더, 모바일 전화 및 핸드헬드 컴퓨팅 디바이스와 같은 다양한 콘텐츠 캡처 디바이스를 사용할 수 있다. 사용자는 예를 들어, 사용자 컴퓨터 장비(804) 또는 콘텐츠 캡처 기능을 갖는 무선 사용자 통신 디바이스(806)로부터 직접 클라우드상의 콘텐츠 저장 서비스에 콘텐츠를 업로드할 수 있다. 대안적으로, 사용자는 먼저 사용자 컴퓨터 장비(804)와 같은 사용자 장비 디바이스로 콘텐츠를 전송할 수 있다. 콘텐츠를 저장하는 사용자 장비 디바이스는 통신 네트워크(814) 상의 데이터 송신 서비스를 사용하여 클라우드에 콘텐츠를 업로드한다. 일부 실시예에서, 사용자 장비 디바이스 자체는 클라우드 리소스이고, 다른 사용자 장비 디바이스는, 사용자가 콘텐츠를 저장한 사용자 디바이스 장비로부터 직접 콘텐츠에 액세스할 수 있다.
클라우드 리소스는 예를 들어, 웹 브라우저, 미디어 안내 어플리케이션, 데스크톱 어플리케이션, 모바일 어플리케이션, 및/또는 이들의 액세스 어플리케이션의 임의의 조합을 사용하여 사용자 장비 디바이스에 의해 액세스될 수 있다. 사용자 장비 디바이스는 어플리케이션 전달을 위해 클라우드 컴퓨팅에 의존하는 클라우드 클라이언트일 수 있거나, 사용자 장비 디바이스는 클라우드 리소스에 액세스하지 않고 일부 기능을 가질 수 있다. 예를 들어, 사용자 장비 디바이스 상에서 실행되는 일부 어플리케이션은 클라우드 어플리케이션, 즉 인터넷을 통해 서비스로서 전달되는 어플리케이션일 수 있으며, 다른 어플리케이션은 사용자 장비 디바이스 상에 저장 및 실행될 수 있다. 일부 실시예에서, 사용자 디바이스는 복수의 클라우드 리소스로부터 동시에 콘텐츠를 수신할 수 있다. 예를 들어, 사용자 디바이스는 하나의 클라우드 리소스로부터 오디오를 스트리밍하면서, 제2 클라우드 리소스로부터 콘텐츠를 다운로드할 수 있다. 또는, 사용자 디바이스는 더 효율적인 다운로드를 위해 복수의 클라우드 리소스로부터 콘텐츠를 다운로드할 수 있다. 일부 실시예에서, 사용자 장비 디바이스는 도 7과 관련하여 설명된 처리 회로에 의해 수행되는 처리 동작과 같은 동작을 처리하기 위해 클라우드 리소스를 사용할 수 있다.
도 9는 본 발명의 일부 실시예에 따라 유사한 의도를 갖는 복수의 자연어 질의를 인식하고, 그 의도에 매칭되는 검색 결과를 제공하기 위한 예시적인 단계의 흐름도이다. 프로세스(900)는 제어 회로(704)에 의해 실행되는 사용자 장비(100, 400, 802, 804 및/또는 806) 상에 구현된 미디어 안내 어플리케이션이 사용자 입력 디바이스(예를 들어, 사용자 입력 인터페이스(710))를 통해 입력 질의를 수신하고, 입력 질의가 적어도 2개의 단어를 포함하는 단계(902)에서 시작한다. 예를 들어, 미디어 안내 어플리케이션은 사용자 입력 인터페이스(710)에 접속된 마이크로폰으로부터 사용자 입력 인터페이스(710)를 통해 입력된 사운드를 수신할 수 있다. 미디어 안내 어플리케이션은 입력 인터페이스(710)를 통해 사용자에 의해 입력된 사운드에 대해 음성-대-텍스트 변환을 수행할 수 있다.
단계(904)에서, 미디어 안내 어플리케이션은 입력 질의의 제1 단어에 대응하는 제1 표현 벡터 및 입력 질의의 제2 단어에 대응하는 제2 표현 벡터를 계산하며, 여기서 제1 및 제2 표현 벡터의 각각의 값은, 제1 단어 및 제2 단어가 단어 피처 세트의 피처에 각각 매칭되는 정도에 대응한다. 예를 들어, 미디어 안내 어플리케이션은 텍스트의 코퍼스를 분석할 수 있고, 동시 발생하는 단어들의 분포 특성을 식별할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 "검투사(Gladiator)"라는 이름의 개를 가진 제1 사용자에 대응하는 코퍼스에 대해, 사용자가 개 "Gladiator"를 자주 언급할 수 있지만, 로마 제국(Roman Empire)의 검투사를 언급하지 않을 수 있기 때문에, "Gladiaotr"라는 단어가 개와 관련된 다른 단어와 자주 발생할 것이라고 판단할 수 있다. 그러나, 역사 애호가인 사용자의 경우, 제2 사용자는 개 이름에 관해서가 아니라 로마 제국과 관련해서 검투사를 자주 언급할 수 있기 때문에, "Gladiator"라는 단어가 로마 또는 로마 제국과 관련된 단어와 함께 발생하는 사용자와 연관된 코퍼스를 검색할 수 있다. 미디어 안내 어플리케이션은, 유사한 인자를 갖는 단어들이 다차원 공간에 근접하게 위치되는 다차원 공간에서 단어들에 대한 삽입을 식별할 수 있다.
단계(906)에서, 미디어 안내 어플리케이션은, 데이터베이스로부터 검색 질의 템플릿이 적어도 2개의 단어를 포함하고, 검색 질의 템플릿의 제3 단어 및 검색 질의 템플릿의 제4 단어가 각각 제2 단어 피처의 피처에 매칭되는 정도에 대응하는 각각의 값을 갖는 제3 표현 벡터 및 제4 표현 벡터와 연관되는 검색 의도에 대한 검색 질의 템플릿을 검색한다. 예를 들어, 미디어 안내 어플리케이션은 복수의 단어와 관련된 검색 질의 템플릿을 검색할 수 있으며, 각각의 단어는 각각의 표현 벡터를 갖는다. 미디어 안내 어플리케이션은 검색 질의에 대응하는 표현 벡터(예를 들어, 제1 및 제2 표현 벡터)를 템플릿과 관련된 단어에 대응하는 표현 벡터(예를 들어, 검색 질의 템플릿의 단어에 대응하는 제3 및 제4 표현 벡터)와 비교할 수 있다.
단계(908)에서, 미디어 안내 어플리케이션은 제1 표현 벡터와 제3 표현 벡터 간의 제1 거리를 계산한다. 예를 들어, 미디어 안내 어플리케이션은 각 벡터 내의 값들 사이의 유사성을 비교함으로써 제1 표현 벡터와 제3 표현 벡터를 비교하여(예를 들어, 제1 벡터의 x 차원의 값과 제2 벡터의 x 차원의 값을 비교), 두 벡터 사이의 전반적인 유사성을 판단한다.
단계(910)에서, 미디어 안내 어플리케이션은, 제1 거리가 제1 임계 거리보다 작은지 여부를 판단한다. 예를 들어, 미디어 안내 어플리케이션은 저장 장치(708)와 같은 메모리 또는 통신 네트워크(822)를 통한 미디어 안내 데이터 소스와 같은 원격 데이터베이스로부터 임계 거리를 검색할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 검색 질의의 단어가 템플릿과 관련된 단어와 얼마나 근접하게 매칭되는지에 기초하여 모든 템플릿을 등급화할 수 있다. 미디어 안내 어플리케이션은 질의의 제1 단어에 대한 표현 벡터와 가장 높은 등급을 갖는 템플릿의 제3 단어 사이의 거리에 기초하여 임계값을 설정할 수 있다. 미디어 안내 어플리케이션이, 거리가 임계값보다 작다고 판단하면, 미디어 안내 어플리케이션은 단계(912)로 진행한다. 그렇지 않은 경우, 미디어 안내 어플리케이션은 데이터베이스(예를 들어, 저장 장치(708)에 위치한 데이터베이스 또는 통신 네트워크(814)를 통해 미디어 안내 데이터 소스(818)에서)로부터 다른 템플릿을 검색할 수 있고, 단계(906)로 복귀할 수 있다.
단계(912)에서, 미디어 안내 어플리케이션은 제2 표현 벡터와 제4 표현 벡터 사이의 제2 거리를 계산한다. 예를 들어, 미디어 안내 어플리케이션은 상술된 바와 같이, 코사인 차이를 사용하여 두 벡터들 사이의 각도를 계산함으로써 검색 질의의 제2 단어의 표현 벡터와 템플릿과 연관된 제2 단어의 표현 벡터 간의 거리를 계산할 수 있다.
단계(914)에서, 미디어 안내 어플리케이션은, 제2 거리가 제2 임계 거리보다 작은지 여부를 판단한다. 예를 들어, 미디어 안내 어플리케이션은 제1 임계 거리와 유사한 방식으로 제2 임계값 차이를 계산할 수 있거나, 저장 장치(708)와 같은 메모리로부터 또는 통신 네트워크(814)를 통해 미디어 안내 데이터 소스(818)로부터 미리 정의된 임계값을 검색할 수 있다. 미디어 안내 어플리케이션이, 그 거리가 임계값보다 작은 것으로 판단하면, 미디어 안내 어플리케이션은 단계(916)로 진행한다. 그렇지 않은 경우, (예를 들어, 현재 템플릿이 임계량 내에서 매칭되지 않았으므로) 미디어 안내 어플리케이션은 단계(906)로 진행하여 데이터베이스로부터 다른 템플릿을 검색한다.
단계(916)에서, 미디어 안내 어플리케이션은 검색 질의 템플릿을 선택한다. 예를 들어, 미디어 안내 어플리케이션은 템플릿에 대응하는 데이터베이스 엔트리와 연관된 데이터베이스(예를 들어, 저장 장치(708)로서의 데이터베이스 또는 통신 네트워크(814)를 통한 미디어 안내 데이터 소스(818)) 필드로부터 검색할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 통신 네트워크(814)를 통해 미디어 안내 데이터 소스(818)에 위치한 데이터베이스(300)로부터 엔트리(316)를 검색할 수 있다. 미디어 안내 어플리케이션은 검색 질의 템플릿 필드(예를 들어, 검색 질의 템플릿(306))에 액세스할 수 있고, 그 템플릿에 기초하여 질의를 생성할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 질의 내의 단어와 매칭되는 템플릿 내의 단어를 식별할 수 있고, 템플릿으로부터의 단어를 질의로부터의 단어로 대체할 수 있다. 예를 들어, 사용자가 텔레비전 쇼 "Entourage"를 검색할 때, 미디어 안내 어플리케이션은 단어 "Entourage"를 식별하여 검색 질의 템플릿(306)에서 단어 "media"를 대체할 수 있다.
단계(918)에서, 미디어 안내 어플리케이션은 선택된 검색 질의 템플릿에 기초하여 검색 결과를 검색한다. 예를 들어, 미디어 안내 어플리케이션은 상술한 바와 같이 템플릿의 단어를 검색 질의의 단어로 대체함으로써 질의를 생성할 수 있고, 템플릿에 대응하는 데이터베이스에 대한 네트워크 접속을 통해 질의를 송신할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 미디어에 대한 위치를 식별하기 위해 질의를 데이터베이스(304)에 송신할 수 있다. 일부 실시예에서, 미디어 안내 어플리케이션은 데이터베이스(304)를 국부적으로(예를 들어, 저장 장치(708)의 처리 회로(706)를 통해) 또는 원격으로(예를 들어, 미디어 안내 데이터 소스(818)에서 통신 네트워크(814)를 통해) 액세스할 수 있다.
단계(920)에서, 미디어 안내 어플리케이션은 검색된 검색 결과의 표시를 생성한다. 예를 들어, 미디어 안내 어플리케이션은 데이터베이스(304)로부터 검색된 디스플레이 검색 결과(404 및 406)를 생성할 수 있다. 일부 실시예에서, 미디어 안내 어플리케이션은 텍스트-대-음성 알고리즘을 사용하여 사운드를 합성하고, 검색 결과(예를 들어, 검색 결과(404) 및 검색 결과(406))에 대응하는 오디오 출력을 생성할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 "HBO GO-On Demand에서 이용 가능한 안투라지 세션(Entourage Season) 1"이라는 용어를 포함하는 오디오 웨이브와 같은 검색 결과(404)에 대응하는 합성된 단어를 포함하는 스피커(714) 상의 출력을 위한 오디오 웨이브를 생성할 수 있다. 일부 실시예에서, 다른 템플릿이 또한 검색 질의와 근접하게(예를 들어, 거리가 임계값 내에 있을 때, 제2 템플릿보다 미디어 안내 어플리케이션에 의해 더 높은 등급을 갖는 제1 템플릿) 매칭될 때, 미디어 안내 어플리케이션은, 사용자가 다른 템플릿을 기반으로 추가 검색 결과를 보고 싶어하는지 여부에 대해 사용자에게 프롬프팅할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 사용자 장비(400) 상의 디스플레이 옵션(410)을 생성할 수 있거나, 상술한 바와 같은 텍스트-대-음성 알고리즘을 사용하여 합성된 오디오를 사용하여 사용자에게 프롬프팅할 수 있다. 일부 실시예에서, 미디어 안내 어플리케이션은 추가 검색 결과를 요청하는 사용자 입력을 대기할 수 있고, (예를 들어, 사용자 입력 인터페이스(710)를 통해 터치스크린상의 입력을 통해) 옵션(410)의 선택을 수신하는 것에 응답하여, 또는 사용자 입력 인터페이스(710)의 마이크로폰을 통해 수신된 오디오에 응답하여, 추가 검색 결과의 표시를 생성할 수 있다.
도 10은 본 발명의 일부 실시예에 따라 검색 질의 템플릿을 선택하기 위한 예시적인 단계들의 흐름도이다. 프로세스(1000)는, 제어 회로(704)에 의해 실행되는 사용자 장비(100, 400, 802, 804 및/또는 806) 상에 구현된 미디어 안내 어플리케이션이 사용자 입력 디바이스(예를 들어, 사용자 입력 인터페이스(710))를 통해 적어도 2개의 단어를 포함하는 입력 질의를 수신하는 단계(1002)에서 시작한다. 예를 들어, 미디어 안내 어플리케이션은 사용자 입력 인터페이스(710)에 접속된 마이크로폰으로부터 사용자 입력 인터페이스(710)를 통해 사운드 입력을 수신할 수 있다. 미디어 안내 어플리케이션은 입력 인터페이스(710)를 통해 사용자에 의해 입력된 사운드에 대해 음성-대-텍스트 변환을 수행하여 사용자 입력과 관련된 단어의 문자열을 생성할 수 있다.
단계(1004)에서, 미디어 안내 어플리케이션은 입력 질의 내의 각 단어에 대한 카테고리를 판단한다. 예를 들어, 미디어 안내 어플리케이션은 품사 검출 알고리즘을 사용하여 질의 내의 각 단어 간의 연관성을 분석할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 문장 내의 다른 단어들과 관련하여 각 단어에 대한 품사에 기초하여 입력 질의 내의 각 단어에 대한 카테고리를 판단할 수 있다. 예를 들어 "안투라지 재생(Play Entourage)" 질의의 경우, 미디어 안내 어플리케이션은 단어 "Entourage"가 명사 및 질의 대상인 것으로 판단하여, 그에 따라 "Entourage"를 대상 카테고리와 연관시킬 수 있다. 다른 예에서, 미디어 안내 어플리케이션은 "찾기(Find)"가 동작 동사라고 판단할 수 있으며 "Find"가 동작 동사라고 판단한 것에 응답하여, "Find"를 동작 동사 카테고리와 연관시킬 수 있다. 일부 실시예에서, 미디어 안내 어플리케이션은 질의 내의 각 단어를 저장 장치(708)와 같은 메모리 또는 통신 네트워크(814)를 통해 미디어 안내 데이터 소스(818)에 저장된 불용어의 리스트와 비교할 수 있다. 미디어 안내 어플리케이션이, 단어가 불용어 리스트로부터의 단어와 매칭한다고 판단하면, 미디어 안내 어플리케이션은 질의어를 불용어 카테고리와 연관시킬 수 있다.
단계(1006)에서, 미디어 안내 어플리케이션은, 임의의 단어가 불용어 카테고리에 대응하는지 여부를 판단한다. 예를 들어, 상술한 바와 같이, 미디어 안내 어플리케이션은 질의의 단어를 불용어 리스트의 단어와 비교할 수 있다. 질의 내의 단어가 불용어들의 리스트 내의 단어와 매칭되면, 미디어 안내 어플리케이션은, 그 단어가 불용어 카테고리에 대응한다고 판단할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 "언제 양키스가 경기합니까?(When are the Yankees playing?)"라는 질의를 받을 수 있다. 미디어 안내 어플리케이션은 단어 "a" 및 "the"가 단어들을 불용어 리스트와 비교하는 것에 기초하여, 또는 상술된 바와 같은 품사 태깅 알고리즘을 사용하여 불용어라고 판단할 수 있다. 미디어 안내 어플리케이션이, 단어가 불용어 카테고리에 대응한다고 판단하면, 미디어 안내 어플리케이션은 단계(1008)로 진행한다. 그렇지 않은 경우, 미디어 안내 어플리케이션은 단계(1010)로 진행한다.
단계(1008)에서, 미디어 안내 어플리케이션은 입력 질의 수정하여 불용어 카테고리와 매칭되는 입력 질의로부터의 단어를 삭제한다. 이전의 예에 이어서, 미디어 안내 어플리케이션이 "When are the Yankees playing?"라는 질의를 받으면, 미디어 안내 어플리케이션은, 단어 "are" 및 "the"가 불용어인 것으로 판단할 수 있다. 미디어 안내 어플리케이션은 사용자의 원래 질의로부터 불용어를 제거하고 불용어 카테고리에 대응하지 않는 사용자의 원래 질의에서의 단어를 유지함으로써 불용어를 제외한 수정된 질의를 생성할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 입력 질의 "When are the Yankees playing?"를 "When Yankees playing?"이 되도록 수정할 수 있어, 시스템은 입력 질의를 템플릿에 매칭시키는데 도움이 되지 않는 질의 내의 용어를 처리하는 리소스를 낭비하지 않는다.
단계(1010)에서, 미디어 안내 어플리케이션은 수정된 입력 질의로부터 단어를 선택한다. 예를 들어, 미디어 안내 어플리케이션은 수정된 질의의 각각의 단어를 증분적으로 선택할 수 있다(예를 들어, 수정된 질의의 단어들의 시퀀스에서의 제2 단어에 선행하는 수정된 질의의 단어들의 시퀀스에서의 제1 단어를 선택). 대안적으로, 미디어 안내 어플리케이션은 각 단어와 관련된 카테고리에 기초하여 단어를 선택할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 두번째로 대상 카테고리에 대응하는 단어에 선행하여, 첫번째로 동작 동사 카테고리에 대응하는 단어를 선택할 수 있다. 그러나, 미디어 안내 어플리케이션은 임의의 다른 카테고리의 시퀀스에 기초하여 임의의 다른 선택 방법을 사용할 수 있다.
단계(1012)에서, 미디어 안내 어플리케이션은 선택된 단어에 대한 제1 표현 벡터를 계산한다. 예를 들어, 미디어 안내 어플리케이션은 상술한 바와 같이, 트레이닝된 단어 데이터의 코퍼스에 기초하여 벡터 공간에의 단어의 삽입을 식별하는 알고리즘을 적용할 수 있다. 미디어 안내 어플리케이션은 메모리(예를 들어, 저장 장치(708) 또는 통신 네트워크(814)를 통한 미디어 안내 데이터 소스(818))의 단어 벡터에 대응하는 벡터 공간 내의 좌표와 같은, 벡터를 식별하는 데이터를 저장할 수 있다.
단계(1014)에서, 미디어 안내 어플리케이션은 메모리로부터 검색 질의 템플릿을 검색한다. 예를 들어, 미디어 안내 어플리케이션은 메모리(예를 들어, 저장 장치(708) 또는 통신 네트워크(814)를 통한 미디어 안내 데이터 소스(818))로부터 랜덤하게 또는 순차적으로 검색 질의 템플릿을 선택할 수 있다. 다른 예에서, 미디어 안내 어플리케이션은 검색 질의 내의 단어와 연관된 카테고리에 기초하여 템플릿을 선택할 수 있다. 예를 들어, 수정된 검색 질의가 동작 동사 카테고리와 연관된 단어들을 갖는 경우, 미디어 안내 어플리케이션은 동작 동사를 포함하는 템플릿을 검색할 수 있다.
단계(1016)에서, 미디어 안내 어플리케이션은 선택된 단어의 카테고리와 매칭되는 검색 질의 템플릿 내의 단어를 식별한다. 예를 들어, 미디어 안내 어플리케이션이 질의 "왕좌의 게임 스트림(Stream Game of Thrones)"을 수신하면, 미디어 안내 어플리케이션은 (예를 들어, 템플릿이 동작 동사, play를 포함하고, 입력 질의가 동작 동사 "stream"을 포함하므로) 검색 질의 템플릿 "미디어 재생(Play Media)"을 포함하는 템플릿을 검색할 수 있다. 미디어 안내 어플리케이션은 검색 질의로부터 단어 "Stream"을 선택할 수 있고, 그에 따라 "Play" 및 "Stream"이라는 단어가 모두 동작 동사 카테고리에 대응하기 때문에, 검색 질의 템플릿에서 "Play"를 선택할 수 있다.
단계(1018)에서, 미디어 안내 어플리케이션은 검색 질의에서 식별된 단어에 대한 제2 표현 벡터를 계산한다. 예를 들어, 미디어 안내 어플리케이션은 상술한 방법 중 임의의 것을 사용하여 단어 "Play"에 대한 표현 벡터를 계산할 수 있거나, 대안적으로 또는 추가적으로 템플릿과 연관된 데이터베이스(예를 들어, 저장 장치(708) 또는 통신 네트워크(814)를 통한 미디어 안내 데이터 소스(818))로부터 사전 계산된 표현 벡터를 검색할 수 있다.
단계(1020)에서, 미디어 안내 어플리케이션은 제1 표현 벡터와 제2 표현 벡터 간의 거리를 계산한다. 예를 들어, 미디어 안내 어플리케이션은 두 벡터 사이의 코사인 차이와 같은 임의의 벡터 거리 계산을 사용하여 두 벡터 간의 거리를 계산할 수 있다.
단계(1022)에서, 미디어 안내 어플리케이션은, 거리가 임계 최대 거리보다 큰지 여부를 판단한다. 예를 들어, 미디어 안내 어플리케이션은 "Play"와 "Stream" 사이의 거리를 계산할 수 있고, 단어가 유사한 의미를 갖고 및/또는 텍스트 코퍼스에 기초하여 유사한 단어와 자주 함께 나타나기 때문에, 단어 "Stream"에 대응하는 벡터가 단어 "Play"라는 단어에 대응하는 벡터에 근접한다고 판단할 수 있다. 미디어 안내 어플리케이션은 템플릿과 관련된 스코어에 값이 추가되기 전에 최대 거리에 대한 임계값을 검색할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 스코어를 계산하여, (예를 들어, 템플릿 내의 복수의 단어들에 대해 수정된 검색 질의 내이 복수의 단어들의 거리에 기초하여) 전체적으로 템플릿과 검색 질의 사이의 거리를 정량화할 수 있다. 미디어 안내 어플리케이션이 단어가 근접한다고(예를 들어, 임계값 내에 있음) 판단하면, 미디어 안내 어플리케이션은 스코어에 임의의 값을 부가함으로써 거리에 페널티를 가하지 않을 수 있다. 미디어 안내 어플리케이션이, 거리가 임계 최대 거리보다 크다고 판단하면, 미디어 안내 어플리케이션은 단계(1024)에서 템플릿에 대응하는 스코어를 증분시킨다. 그렇지 않은 경우, 미디어 안내 어플리케이션은 단계(1026)로 진행한다.
단계(1024)에서, 미디어 안내 어플리케이션은, 제1 표현 벡터가 제2 표현 벡터와 다른 정도에 기초하여 검색 질의 템플릿에 대응하는 스코어를 증분시킨다. 예를 들어, 미디어 안내 어플리케이션은 제1 표현 벡터와 제2 표현 벡터 사이의 거리에 기초하여 스코어를 증분시킬 수 있다. 일부 실시예에서, 미디어 안내 어플리케이션은 스코어를 스케일링할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 2개의 벡터 간의 거리에 2(또는 임의의 다른 수)를 곱하고, 곱셈의 결과에 의해 스코어를 증분시킬 수 있다.
단계(1026)에서, 미디어 안내 어플리케이션은, 수정된 입력 질의의 최종 단어가 선택되는지 판단한다. 미디어 안내 어플리케이션은 템플릿 내의 대응하는 단어와의 비교를 위해 수정된 입력 질의로부터 각각의 단어를 언제 선택하였는지를 판단할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 입력 질의의 각 단어를 증분적으로 선택할 수 있다. 미디어 안내 어플리케이션은 입력 질의 내의 단어의 수 및 미디어 안내 어플리케이션에 의해 선택된 단어의 위치를 나타내는 인덱스 값을 (예를 들어, 저장 장치(708) 또는 통신 네트워크(814)를 통한 미디어 안내 데이터 소스(818)에) 저장할 수 있다. 미디어 안내 어플리케이션은, 인덱스 값이 입력 질의 내의 단어들의 수와 매칭될 때 최종 단어가 선택되었다고 판단할 수 있다. 미디어 안내 어플리케이션은, 입력 질의의 각 단어가 선택되었을 때를 인식하는 임의의 다른 방법을 사용할 수 있다. 미디어 안내 어플리케이션이, 수정된 입력 질의의 최종 단어가 선택되었다고 판단하면, 미디어 안내 어플리케이션은 단계(1028)로 진행한다. 그렇지 않은 경우, 미디어 안내 어플리케이션은 단계(1010)로 진행하여 입력 질의로부터 다른 단어를 선택한다.
단계(1028)에서, 미디어 안내 어플리케이션은, (예를 들어, 검색 템플릿이 검색을 위해 이용되어야 하는지 여부를 판단하기 위해) 검색 질의 템플릿에 대응하는 스코어가 임계 최대 스코어보다 큰지 여부를 판단한다. 예를 들어, 미디어 안내 어플리케이션은 검색을 위해 사용될 검색 질의 템플릿에 허용 가능한 최대 스코어를 나타내는 메모리로부터의 임계값을 검색할 수 있다. 일부 실시예들에서, 미디어 안내 어플리케이션은 임계값을 계산할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 다른 검색 질의 템플릿의 스코어에 기초하여 임계값을 계산할 수 있다. 예를 들어, 미디어 안내 어플리케이션은 검색 질의 템플릿에 대한 각각의 스코어에 대해 각각의 개별 검색 질의 템플릿을 등급화할 수 있다. 미디어 안내 어플리케이션은 (예를 들어, 최고 등급 검색 질의 템플릿만 선택되도록) 두번째로 높은 등급의 검색 질의 템플릿의 스코어로서 임계 최대 스코어를 계산할 수 있다. 미디어 안내 어플리케이션이, 스코어가 임계 최대 스코어보다 크다고 판단하면, 미디어 안내 어플리케이션은 단계(1014)로 진행하여 메모리로부터 검색 질의 템플릿(예를 들어, 최고 등급의 검색 질의 템플릿 또는 다른 검색 질의 템플릿)을 검색한다. 그렇지 않으면, 미디어 안내 어플리케이션은 단계(1030)로 진행하여 템플릿에 기초하여 질의를 생성한다.
단계(1030)에서, 미디어 안내 어플리케이션은 템플릿에 기초하여 질의를 생성하고, 검색 질의 내의 식별된 단어는 수정된 입력 질의로부터의 단어로 대체된다. 예를 들어, 미디어 안내 어플리케이션은 입력 질의 "헝거 게임을 어떻게 재생하나요?(How can I play Hunger Games?)"를 검색할 수 있다. 미디어 안내 어플리케이션은 입력 질의를 "미디어 재생 옵션(Media playback options)"이라는 단어와 연관된 검색 질의 템플릿과 매칭시킬 수 있다. 미디어 안내 어플리케이션은 입력 질의로부터 단어 "Media"를 단어 "Hunger Games"로 대체함으로써 템플릿에 기초하여 검색 질의를 생성할 수 있다. 예를 들어, 미디어 안내 어플리케이션은, 질의 내의 단어가 템플릿 내의 단어와 동일 카테고리와 관련된다는 판단에 기초하여 템플릿 내의 단어를 질의 내의 단어로 대체할 수 있다. 예를 들어, 미디어 안내 어플리케이션은, "Hunger Games"가 입력 질의의 대상이고, "Media"가 템플릿의 대상이라고 판단할 수 있다. 미디어 안내 어플리케이션은 질의에서 단어 "Media"를 "Hunger Games"로 대체하여 질의 "헝거 게임 재생 옵션(Hunger Games playback options)"을 생성할 수 있다. 다른 예에서, 미디어 안내 어플리케이션은 "반지의 제왕 스트림(Stream Lord of the Rings)"과 같은 질의를 수신할 수 있다. 미디어 안내 어플리케이션은 (예를 들어, 이 템플릿이 미디어를 얻기 위한 모든 방법에 대해 일반화될 수 있기 때문에) 단어 "미디어 취득 방법(Get Media How)"을 포함하는 템플릿과 질의를 매칭시킬 수 있다. 미디어 안내 어플리케이션은, 단어 "stream"이 사용자가 수행하려는 액션(예를 들어, 미디어 취득)과 사용자가 액션이 수행되기 원하는 방식(예를 들어, 스트리밍 대 메일을 통한 블루-레이 디스크 상에서 수신) 모두를 설명하기 때문에, 단어 "Stream"을 질의 내의 단어 "Get" 및 "How"와 매칭시킬 수 있다. 미디어 안내 어플리케이션은 (예를 들어, 사용자가 미디어를 얻는 방식을 설명하기 때문에) 템플릿의 단어 "how"를 단어 "stream"으로 대체할 수 있으며, 템플릿의 단어 "media"를 단어 "Lord of the Rings"(예를 들어, 사용자가 찾고 있는 미디어)로 대체할 수 있다.
단계(1032)에서, 미디어 안내 어플리케이션은 생성된 질의를 사용하여 검색 결과를 검색한다. 예를 들어, 미디어 안내 어플리케이션은 템플릿과 관련된 데이터베이스(예를 들어, 템플릿에 기초한 검색 질의에 대한 검색 결과를 포함하는 데이터베이스)를 식별할 수 있다. 예를 들어, 검색 질의 템플릿이 미디어 재생과 관련될 때, 미디어 안내 어플리케이션은 미디어와 연관된 데이터베이스를 식별할 수 있다. 검색 질의 템플릿이 판타지 스포츠 통계와 관련될 때, 미디어 안내 어플리케이션은 판타지 스포츠 플레이어와 연관된 데이터베이스를 식별할 수 있다. 미디어 안내 어플리케이션은 생성된 질의를 데이터베이스로 송신하여 데이터베이스로부터 검색 결과를 검색할 수 있다. 미디어 안내 어플리케이션이 디스플레이를 생성할 수 있고, 텍스트-대-음성 알고리즘을 통해 상술된 임의의 방법을 사용하여 미디어 안내 어플리케이션에 의해 검색된 임의의 검색 결과를 합성할 수도 있다.
프로세스들(900 및/또는 1000) 중 임의의 것 또는 그 임의의 단계가 도 1, 4, 7 내지 8에 나타낸 임의의 장치 상에 수행될 수 있거나, 이에 의해 제공될 수 있다는 것에 유의해야 한다. 예를 들어, 프로세스(900 및/또는 1000)는 유사한 의도를 갖는 복수의 자연어 질의를 인식하기 위해 사용자 장비(802, 804 및/또는 806)(도 8), (100)(도 1) 및/또는 (400)(도 4)에 대해 사용자 장비 상에서 구현되는 제어 회로에 의한 명령에 따라 제어 회로(704)(도 7)에 의해 실행될 수 있으며, 그 의도에 매칭되는 검색 결과를 제공한다.
도 9 및/또는 도 10의 단계 또는 설명이 본 발명의 임의의 다른 실시예와 함께 사용될 수 있다는 것이 고려된다. 또한, 도 9 및/또는 도 10과 관련하여 설명된 단계 또는 설명이 본 발명의 목적에 추가로 대안적인 순서 또는 병렬로 행해질 수 있다. 예를 들어, 이러한 각 단계는 시스템 또는 방법의 지연을 줄이거나 속도를 증가시키기 위해 임의의 순서 또는 병렬 또는 실질적으로 동시에 수행될 수 있다. 또한, 도 1, 4 및 7, 8과 관련하여 논의된 임의의 장치 또는 장비는 도 9 및/또는 도 10의 하나 이상의 단계를 수행하는데 사용될 수 있다는 것에 유의해야 한다.
본 발명에 관련된 방법이 컴퓨터 사용 가능 및/또는 판독 가능 매체를 포함하는 컴퓨터 프로그램 제품으로 구현될 수 있음은 본 기술분야의 통상의 기술자에게 명백할 것이다. 예를 들어, 이러한 컴퓨터 사용 가능 매체는 컴퓨터 판독 가능 프로그램 코드가 저장되어 있는, CD-ROM 디스크 또는 통상의 ROM 디바이스와 같은 판독 전용 메모리 디바이스, 또는 하드 드라이브 디바이스 또는 컴퓨터 디스켓과 같은 랜덤 액세스 메모리로 구성될 수 있다. 또한, 본 발명에 관련된 방법, 기술 및 프로세스가 처리 회로를 사용하여 실행될 수 있음을 이해해야 한다. 예를 들어, 입력 사용자 질의를 템플릿에 매칭시키는 것은, 처리 회로에 의해, 예를 들어, 도 7의 처리 회로(706)에 의해 수행될 수 있다. 예를 들어, 처리 회로는 사용자 장비(700), 미디어 콘텐츠 소스(816), 또는 미디어 안내 데이터 소스(818) 내의 범용 프로세서, 맞춤형 집적 회로(예를 들어, ASIC) 또는 필드 프로그래머블 게이트 어레이(FPGA)일 수 있다. 예를 들어, 여기에 설명된 바와 같은 프로파일은 도 7의 저장 장치(708), 도 8의 미디어 안내 데이터 소스(818)에 저장되고, 이로부터 검색될 수 있다. 또한, 처리 회로 또는 컴퓨터 프로그램은 도 7의 저장 장치(708) 또는 도 8의 미디어 안내 데이터 소스(818) 내에 저장된 사용자 코퍼스와 연관된 설정을 업데이트할 수 있다.
상술한 프로세스는 예시적이고 한정하려는 것은 아니다. 본 기술분야의 통상의 기술자는 여기에서 논의된 프로세스의 단계가 생략, 수정, 결합 및/또는 재배열될 수 있고, 임의의 추가 단계가 본 발명의 범위를 벗어나지 않고도 수행될 수 있다는 것을 이해할 것이다. 보다 일반적으로, 상술한 발명은 예시적인 것으로서 한정하려는 것이 아니다. 후속하는 청구항만이 본 발명이 포함하는 바에 대한 한계를 설정하는 것으로 의도된다. 또한, 임의의 일 실시예에서 설명된 특징 및 한정이 여기에서의 임의의 다른 실시예에 적용될 수 있으며, 일 실시예와 관련된 흐름도 또는 예는 다른 순서로 수행되거나, 병렬로 수행되는 적절한 방식으로 임의의 다른 실시예와 결합될 수 있다는 것에 유의해야 한다. 또한, 여기에 설명된 시스템 및 방법은 실시간으로 수행될 수 있다. 상술한 시스템 및/또는 방법은 다른 시스템 및/또는 방법에 적용될 수 있거나 이에 따라 사용될 수 있음에 또한 유의해야 한다.

Claims (50)

  1. 검색을 수행하는 방법으로서,
    사용자 입력 디바이스를 통해, 적어도 2개의 단어들을 포함하는 입력 질의를 수신하는 단계;
    상기 입력 질의의 제1 단어에 대응하는 제1 표현 벡터 및 상기 입력 질의의 제2 단어에 대응하는 제2 표현 벡터를 계산하는 단계 - 상기 제1 및 제2 표현 벡터들의 각각의 값들은, 상기 제1 단어 및 상기 제2 단어가 각각 단어 피처(feature)들의 세트의 피처들에 매칭되는 정도에 대응함 -;
    검색 의도에 관한 검색 질의 템플릿을 데이터베이스로부터 검색하는 단계 - 상기 검색 질의 템플릿은 적어도 2개의 단어들을 포함하고, 상기 검색 질의 템플릿의 제3 단어 및 상기 검색 질의 템플릿의 제4 단어는 각각 상기 단어 피처들의 세트의 피처들과 매칭되는 정도에 대응하는 각각의 값들을 갖는 제3 표현 벡터 및 제4 표현 벡터와 연관됨 -;
    상기 제1 표현 벡터와 상기 제3 표현 벡터 간의 제1 거리를 계산하는 단계;
    상기 제1 거리가 제1 임계 거리 미만인 것으로 판단하는 것에 응답하여, 상기 제2 표현 벡터와 상기 제4 표현 벡터 간의 제2 거리를 계산하는 단계; 및
    상기 제2 거리가 제2 임계 거리 미만인 것으로 판단하는 것에 응답하여,
    상기 검색 질의 템플릿을 선택하는 단계;
    상기 선택된 검색 질의 템플릿에 기초하여 검색 결과들을 검색하는 단계; 및
    상기 검색된 검색 결과들의 표시를 생성하는 단계
    를 포함하는, 검색을 수행하는 방법.
  2. 제1항에 있어서,
    상기 제1 표현 벡터와 상기 제3 표현 벡터 간의 거리를 계산하는 단계는,
    상기 제1 표현 벡터의 제1 값과 상기 제2 표현 벡터의 대응하는 제2 값을 비교하여 상기 제1 값과 상기 제2 값이 임계값 미만으로 차이나는지 여부를 판단하는 단계;
    상기 값들이 상기 임계값 미만으로 차이나는 것으로 판단하는 것에 응답하여, 상기 거리를 변경하지 않는 단계; 및
    상기 값들이 상기 임계값 미만으로 차이가 나지 않는 것으로 판단하는 것에 응답하여, 상기 값들이 비유사한(dissimilar) 정도를 계산하고, 상기 값들이 비유사한 정도에 기초하여 상기 거리를 증분시키는 단계
    를 포함하는 것인, 검색을 수행하는 방법.
  3. 제1항에 있어서,
    상기 제1 표현 벡터와 상기 제3 표현 벡터 간의 상기 제1 거리를 계산하는 단계는, 벡터 공간 내의 상기 제3 표현 벡터에 대한 상기 제1 표현 벡터의 방향에 기초하여, 상기 제1 거리는 상기 제1 표현 벡터와 상기 제3 표현 벡터 간의 각도의 척도인 것인, 검색을 수행하는 방법.
  4. 제1항에 있어서,
    상기 사용자 입력은 오디오 입력 디바이스에서 오디오 신호를 통해 수신되고, 상기 제1 단어 및 상기 제2 단어는 상기 오디오 신호에 대한 음성 대 텍스트 처리를 수행함으로써 상기 오디오 신호로부터 생성되는 것인, 검색을 수행하는 방법.
  5. 제1항에 있어서,
    상기 질의 내의 상기 입력 질의로부터 상기 두 단어들 중 하나를 상기 데이터베이스에 포함시키는 단계를 더 포함하는, 검색을 수행하는 방법.
  6. 제5항에 있어서,
    상기 제1 단어와 연관된 품사를 식별하는 단계; 및
    상기 제1 단어가 상기 입력 질의의 대상인 것으로 판단하는 것에 응답하여, 상기 질의 내의 상기 제1 단어를 상기 데이터베이스에 포함시키는 단계
    를 더 포함하는, 검색을 수행하는 방법.
  7. 제1항에 있어서,
    상기 제1 단어를 불용어들(stop words) 리스트와 비교하여, 상기 제1 단어가 상기 불용어들 리스트의 불용어와 매칭되는지 여부를 판단하는 단계; 및
    상기 제1 단어가 상기 불용어와 매칭되는 것으로 판단하는 것에 응답하여,
    상기 입력 질의의 제3 단어를 선택하는 단계; 및
    제5 표현 벡터를 계산하는 단계
    를 더 포함하고,
    상기 제1 표현 벡터의 값들은, 상기 입력 질의의 상기 제3 단어가 상기 단어 피처들의 세트의 피처들에 매칭되는 정도에 대응하는 것인, 검색을 수행하는 방법.
  8. 제1항에 있어서,
    상기 제1 단어가 상기 제3 단어의 의미와 매칭되고 상기 제4 단어의 의미와는 매칭되지 않을 때, 상기 제1 거리는 상기 제1 표현 벡터와 상기 제4 표현 벡터 간의 제3 거리 미만인 것인, 검색을 수행하는 방법.
  9. 제1항에 있어서,
    상기 검색 질의 템플릿은 제1 검색 질의 템플릿이고,
    상기 제1 거리가 상기 제1 임계 거리 초과라고 판단하는 것에 응답하여,
    제2 검색 질의 템플릿을 상기 데이터베이스로부터 검색하는 단계 - 상기 제2 검색 질의 템플릿은, 상기 제2 검색 질의 템플릿의 제1 단어와 상기 제2 검색 질의 템플릿의 제2 단어가 각각 상기 단어 피처들의 세트의 피처들과 매칭되는 정도에 대응하는 각각의 값들을 갖는 제5 표현 벡터 및 제6 표현 벡터와 연관됨 -;
    상기 제1 표현 벡터와 상기 제5 표현 벡터 간의 제3 거리를 계산하는 단계;
    상기 제3 거리가 상기 제1 임계 거리 미만인 것으로 판단하는 것에 응답하여, 상기 제2 표현 벡터와 상기 제6 표현 벡터 간의 제4 거리를 계산하는 단계; 및
    상기 제4 거리가 상기 제2 임계값 미만인 것으로 판단하는 것에 응답하여, 상기 검색 결과들을 검색하기 위해 상기 제2 검색 질의 템플릿을 선택하는 단계
    를 더 포함하는, 검색을 수행하는 방법.
  10. 제1항에 있어서,
    상기 검색된 검색 결과들의 표시를 생성하는 단계는,
    상기 검색 질의 템플릿과 연관된 상기 데이터베이스로부터 레이아웃을 검색하는 단계; 및
    상기 레이아웃에 기초하여 상기 검색된 검색 결과들의 표시(display)를 생성하는 단계
    를 더 포함하는 것인, 검색을 수행하는 방법.
  11. 검색을 수행하도록 구성된 제어 회로를 포함하는 시스템으로서,
    상기 제어 회로는,
    사용자 입력 디바이스를 통해, 적어도 2개의 단어들을 포함하는 입력 질의를 수신하고;
    상기 입력 질의의 제1 단어에 대응하는 제1 표현 벡터 및 상기 입력 질의의 제2 단어에 대응하는 제2 표현 벡터를 계산하고 - 상기 제1 및 제2 표현 벡터들의 각각의 값들은, 상기 제1 단어 및 상기 제2 단어가 각각 단어 피처들의 세트의 피처들에 매칭되는 정도에 대응함 -;
    검색 의도에 관한 검색 질의 템플릿을 데이터베이스로부터 검색하고 - 상기 검색 질의 템플릿은 적어도 2개의 단어들을 포함하고, 상기 검색 질의 템플릿의 제3 단어 및 상기 검색 질의 템플릿의 제4 단어는 각각 상기 단어 피처들의 세트의 피처들과 매칭되는 정도에 대응하는 각각의 값들을 갖는 제3 표현 벡터 및 제4 표현 벡터와 연관됨 -;
    상기 제1 표현 벡터와 상기 제3 표현 벡터 간의 제1 거리를 계산하고;
    상기 제1 거리가 제1 임계 거리 미만인 것으로 판단하는 것에 응답하여, 상기 제2 표현 벡터와 상기 제4 표현 벡터 간의 제2 거리를 계산하고;
    상기 제2 거리가 제2 임계 거리 미만인 것으로 판단하는 것에 응답하여,
    상기 검색 질의 템플릿을 선택하고;
    상기 선택된 검색 질의 템플릿에 기초하여 검색 결과들을 검색하며;
    상기 검색된 검색 결과들의 표시를 생성하도록
    구성되는 것인, 검색을 수행하도록 구성된 제어 회로를 포함하는 시스템.
  12. 제11항에 있어서,
    상기 제어 회로는 또한, 상기 제1 표현 벡터와 상기 제3 표현 벡터 간의 거리를 계산할 때,
    상기 제1 표현 벡터의 제1 값과 상기 제2 표현 벡터의 대응하는 제2 값을 비교하여 상기 제1 값과 상기 제2 값이 임계값 미만으로 차이나는지 여부를 판단하고;
    상기 값들이 상기 임계값 미만으로 차이나는 것으로 판단하는 것에 응답하여, 상기 거리를 변경하지 않으며;
    상기 값들이 상기 임계값 미만으로 차이가 나지 않는 것으로 판단하는 것에 응답하여, 상기 값들이 비유사한 정도를 계산하고, 상기 값들이 비유사한 정도에 기초하여 상기 거리를 증분시키도록
    구성되는 것인, 검색을 수행하도록 구성된 제어 회로를 포함하는 시스템.
  13. 제11항에 있어서,
    상기 제어 회로는 또한, 상기 제1 표현 벡터와 상기 제3 표현 벡터 간의 상기 제1 거리를 계산할 때, 벡터 공간 내의 상기 제3 표현 벡터에 대한 상기 제1 표현 벡터의 방향에 상기 제1 거리를 기초하여, 상기 제1 거리는 상기 제1 표현 벡터와 상기 제3 표현 벡터 간의 각도의 척도(measure)가 되도록 구성되는 것인, 검색을 수행하도록 구성된 제어 회로를 포함하는 시스템.
  14. 제11항에 있어서,
    상기 사용자 입력은 오디오 입력 디바이스에서 오디오 신호를 통해 수신되고, 상기 제1 단어 및 상기 제2 단어는 상기 오디오 신호에 대한 음성 대 텍스트 처리를 수행함으로써 상기 오디오 신호로부터 생성되는 것인, 검색을 수행하도록 구성된 제어 회로를 포함하는 시스템.
  15. 제11항에 있어서,
    상기 제어 회로는 또한, 상기 질의 내의 상기 입력 질의로부터 상기 두 단어들 중 하나를 상기 데이터베이스에 포함시키도록 구성되는 것인, 검색을 수행하도록 구성된 제어 회로를 포함하는 시스템.
  16. 제15항에 있어서,
    상기 제어 회로는 또한,
    상기 제1 단어와 연관된 품사를 식별하고;
    상기 제1 단어가 상기 입력 질의의 대상인 것으로 판단하는 것에 응답하여, 상기 질의 내의 상기 제1 단어를 상기 데이터베이스에 포함시키도록
    구성되는 것인, 검색을 수행하도록 구성된 제어 회로를 포함하는 시스템.
  17. 제11항에 있어서,
    상기 제어 회로는 또한,
    상기 제1 단어를 불용어들 리스트와 비교하여, 상기 제1 단어가 상기 불용어들 리스트의 불용어와 매칭되는지 여부를 판단하고;
    상기 제1 단어가 상기 불용어와 매칭되는 것으로 판단하는 것에 응답하여,
    상기 입력 질의의 제3 단어를 선택하고;
    제5 표현 벡터를 계산하도록 - 상기 제1 표현 벡터의 값들은, 상기 입력 질의의 상기 제3 단어가 상기 단어 피처들의 세트의 피처들에 매칭되는 정도에 대응함 -
    구성되는 것인, 검색을 수행하도록 구성된 제어 회로를 포함하는 시스템.
  18. 제11항에 있어서,
    상기 제1 단어가 상기 제3 단어의 의미와 매칭되고 상기 제4 단어의 의미와는 매칭되지 않을 때, 상기 제1 거리는 상기 제1 표현 벡터와 상기 제4 표현 벡터 간의 제3 거리 미만인 것인, 검색을 수행하도록 구성된 제어 회로를 포함하는 시스템.
  19. 제11항에 있어서,
    상기 검색 질의 템플릿은 제1 검색 질의 템플릿이고,
    상기 제어 회로는 또한,
    상기 제1 거리가 상기 제1 임계 거리 초과라고 판단하는 것에 응답하여,
    제2 검색 질의 템플릿을 상기 데이터베이스로부터 검색하고 - 상기 제2 검색 질의 템플릿은, 상기 제2 검색 질의 템플릿의 제1 단어와 상기 제2 검색 질의 템플릿의 제2 단어가 각각 상기 단어 피처들의 세트의 피처들과 매칭되는 정도에 대응하는 각각의 값들을 갖는 제5 표현 벡터 및 제6 표현 벡터와 연관됨-;
    상기 제1 표현 벡터와 상기 제5 표현 벡터 간의 제3 거리를 계산하고;
    상기 제3 거리가 상기 제1 임계 거리 미만인 것으로 판단하는 것에 응답하여, 상기 제2 표현 벡터와 상기 제6 표현 벡터 간의 제4 거리를 계산하며;
    상기 제4 거리가 상기 제2 임계값 미만인 것으로 판단하는 것에 응답하여, 상기 검색 결과들을 검색하기 위해 상기 제2 검색 질의 템플릿을 선택하도록
    구성되는 것인, 검색을 수행하도록 구성된 제어 회로를 포함하는 시스템.
  20. 제11항에 있어서,
    상기 제어 회로는 또한, 상기 검색된 검색 결과들의 표시를 생성할 때,
    상기 검색 질의 템플릿과 연관된 상기 데이터베이스로부터 레이아웃을 검색하고;
    상기 레이아웃에 기초하여 상기 검색된 검색 결과들의 표시를 생성하도록
    구성되는 것인, 검색을 수행하도록 구성된 제어 회로를 포함하는 시스템.
  21. 검색을 수행하는 시스템으로서,
    사용자 입력 디바이스를 통해, 적어도 2개의 단어들을 포함하는 입력 질의를 수신하는 수단;
    상기 입력 질의의 제1 단어에 대응하는 제1 표현 벡터 및 상기 입력 질의의 제2 단어에 대응하는 제2 표현 벡터를 계산하는 수단 - 상기 제1 및 제2 표현 벡터들의 각각의 값들은, 상기 제1 단어 및 상기 제2 단어가 각각 단어 피처들의 세트의 피처들에 매칭되는 정도에 대응함 -;
    검색 의도에 관한 검색 질의 템플릿을 데이터베이스로부터 검색하는 수단 - 상기 검색 질의 템플릿은 적어도 2개의 단어들을 포함하고, 상기 검색 질의 템플릿의 제3 단어 및 상기 검색 질의 템플릿의 제4 단어가 각각 상기 단어 피처들의 세트의 피처들과 매칭되는 정도에 대응하는 각각의 값들을 갖는 제3 표현 벡터 및 제4 표현 벡터와 연관됨 -;
    상기 제1 표현 벡터와 상기 제3 표현 벡터 간의 제1 거리를 계산하는 수단;
    상기 제1 거리가 제1 임계 거리 미만인 것으로 판단하는 것에 응답하여, 상기 제2 표현 벡터와 상기 제4 표현 벡터 간의 제2 거리를 계산하는 수단; 및
    상기 제2 거리가 제2 임계 거리 미만인 것으로 판단하는 것에 응답하여,
    상기 검색 질의 템플릿을 선택하는 수단;
    상기 선택된 검색 질의 템플릿에 기초하여 검색 결과들을 검색하는 수단; 및
    상기 검색된 검색 결과들의 표시를 생성하는 수단
    을 포함하는, 검색을 수행하는 시스템.
  22. 제21항에 있어서,
    상기 제1 표현 벡터와 상기 제3 표현 벡터 간의 거리를 계산하는 수단은,
    상기 제1 표현 벡터의 제1 값과 상기 제2 표현 벡터의 대응하는 제2 값을 비교하여 상기 제1 값과 상기 제2 값이 임계값 미만으로 차이나는지 여부를 판단하는 수단;
    상기 값들이 상기 임계값 미만으로 차이나는 것으로 판단하는 것에 응답하여, 상기 거리를 변경하지 않는 수단; 및
    상기 값들이 상기 임계값 미만으로 차이가 나지 않는 것으로 판단하는 것에 응답하여, 상기 값들이 비유사한 정도를 계산하고, 상기 값들이 비유사한 정도에 기초하여 상기 거리를 증분시키는 수단
    을 더 포함하는 것인, 검색을 수행하는 시스템.
  23. 제21항에 있어서,
    상기 제1 표현 벡터와 상기 제3 표현 벡터 간의 상기 제1 거리를 계산하는 수단은, 상기 제1 거리를, 벡터 공간 내의 상기 제3 표현 벡터에 대한 상기 제1 표현 벡터의 방향에 기초하는 수단을 더 포함하여, 상기 제1 거리는 상기 제1 표현 벡터와 상기 제3 표현 벡터 간의 각도의 척도인 것인, 검색을 수행하는 시스템.
  24. 제21항에 있어서,
    상기 사용자 입력을 오디오 입력 디바이스에서 오디오 신호를 통해 수신하는 수단; 및
    상기 제1 단어 및 상기 제2 단어를, 상기 오디오 신호에 대한 음성 대 텍스트 처리를 수행함으로써 상기 오디오 신호로부터 생성하는 수단
    을 더 포함하는, 검색을 수행하는 시스템.
  25. 제21항에 있어서,
    상기 질의 내의 상기 입력 질의로부터 상기 두 단어들 중 하나를 상기 데이터베이스에 포함시키는 수단을 더 포함하는, 검색을 수행하는 시스템.
  26. 제25항에 있어서,
    상기 제1 단어와 연관된 품사를 식별하는 수단; 및
    상기 제1 단어가 상기 입력 질의의 대상인 것으로 판단하는 것에 응답하여, 상기 질의 내의 상기 제1 단어를 상기 데이터베이스에 포함시키는 수단
    을 더 포함하는, 검색을 수행하는 시스템.
  27. 제21항에 있어서,
    상기 제1 단어를 불용어들 리스트와 비교하여, 상기 제1 단어가 상기 불용어들 리스트의 불용어와 매칭되는지 여부를 판단하는 수단; 및
    상기 제1 단어가 상기 불용어와 매칭되는 것으로 판단하는 것에 응답하여,
    상기 입력 질의의 제3 단어를 선택하는 수단; 및
    제5 표현 벡터를 계산하는 수단
    을 더 포함하고,
    상기 제1 표현 벡터의 값들은, 상기 입력 질의의 상기 제3 단어가 상기 단어 피처들의 세트의 피처들에 매칭되는 정도에 대응하는 것인, 검색을 수행하는 시스템.
  28. 제21항에 있어서,
    상기 제1 단어가 상기 제3 단어의 의미와 매칭되고 상기 제4 단어의 의미와는 매칭되지 않을 때, 상기 제1 거리는 상기 제1 표현 벡터와 상기 제4 표현 벡터 간의 제3 거리 미만인 것인, 검색을 수행하는 시스템.
  29. 제21항에 있어서,
    상기 검색 질의 템플릿은 제1 검색 질의 템플릿이고,
    상기 제1 거리가 상기 제1 임계 거리 초과라고 판단하는 것에 응답하여,
    제2 검색 질의 템플릿을 상기 데이터베이스로부터 검색하는 수단 - 상기 제2 검색 질의 템플릿은, 상기 제2 검색 질의 템플릿의 제1 단어와 상기 제2 검색 질의 템플릿의 제2 단어가 각각 상기 단어 피처들의 세트의 피처들과 매칭되는 정도에 대응하는 각각의 값들을 갖는 제5 표현 벡터 및 제6 표현 벡터와 연관됨 -;
    상기 제1 표현 벡터와 상기 제5 표현 벡터 간의 제3 거리를 계산하는 수단;
    상기 제3 거리가 상기 제1 임계 거리 미만인 것으로 판단하는 것에 응답하여, 상기 제2 표현 벡터와 상기 제6 표현 벡터 간의 제4 거리를 계산하는 수단; 및
    상기 제4 거리가 상기 제2 임계값 미만인 것으로 판단하는 것에 응답하여, 상기 검색 결과들을 검색하기 위해 상기 제2 검색 질의 템플릿을 선택하는 수단
    을 더 포함하는, 검색을 수행하는 시스템.
  30. 제21항에 있어서,
    상기 검색된 검색 결과들의 표시를 생성하는 수단은,
    상기 검색 질의 템플릿과 연관된 상기 데이터베이스로부터 레이아웃을 검색하는 수단; 및
    상기 레이아웃에 기초하여 상기 검색된 검색 결과들의 표시를 생성하는 수단
    을 더 포함하는 것인, 검색을 수행하는 시스템.
  31. 검색을 수행하기 위해 인코딩된 명령어들을 갖는 메모리를 포함하는 비일시적인 컴퓨터 판독 가능 매체로서, 상기 명령어들은,
    사용자 입력 디바이스를 통해, 적어도 2개의 단어들을 포함하는 입력 질의를 수신하는 명령어;
    상기 입력 질의의 제1 단어에 대응하는 제1 표현 벡터 및 상기 입력 질의의 제2 단어에 대응하는 제2 표현 벡터를 계산하는 명령어 - 상기 제1 및 제2 표현 벡터들의 각각의 값들은, 상기 제1 단어 및 상기 제2 단어가 각각 단어 피처들의 세트의 피처들에 매칭되는 정도에 대응함 -;
    검색 의도에 관한 검색 질의 템플릿을 데이터베이스로부터 검색하는 명령어 - 상기 검색 질의 템플릿은 적어도 2개의 단어들을 포함하고, 상기 검색 질의 템플릿의 제3 단어 및 상기 검색 질의 템플릿의 제4 단어는 각각 상기 단어 피처들의 세트의 피처들과 매칭되는 정도에 대응하는 각각의 값들을 갖는 제3 표현 벡터 및 제4 표현 벡터와 연관됨 -;
    상기 제1 표현 벡터와 상기 제3 표현 벡터 간의 제1 거리를 계산하는 명령어;
    상기 제1 거리가 제1 임계 거리 미만인 것으로 판단하는 것에 응답하여, 상기 제2 표현 벡터와 상기 제4 표현 벡터 간의 제2 거리를 계산하는 명령어; 및
    상기 제2 거리가 제2 임계 거리 미만인 것으로 판단하는 것에 응답하여,
    상기 검색 질의 템플릿을 선택하는 명령어;
    상기 선택된 검색 질의 템플릿에 기초하여 검색 결과들을 검색하는 명령어; 및
    상기 검색된 검색 결과들의 표시를 생성하는 명령어
    를 포함하는 것인, 비일시적인 컴퓨터 판독 가능 매체.
  32. 제31항에 있어서,
    상기 제1 표현 벡터와 상기 제3 표현 벡터 간의 거리를 계산하는 명령어는,
    상기 제1 표현 벡터의 제1 값과 상기 제2 표현 벡터의 대응하는 제2 값을 비교하여 상기 제1 값과 상기 제2 값이 임계값 미만으로 차이나는지 여부를 판단하는 명령어;
    상기 값들이 상기 임계값 미만으로 차이나는 것으로 판단하는 것에 응답하여, 상기 거리를 변경하지 않는 명령어; 및
    상기 값들이 상기 임계값 미만으로 차이가 나지 않는 것으로 판단하는 것에 응답하여, 상기 값들이 비유사한 정도를 계산하고, 상기 값들이 비유사한 정도에 기초하여 상기 거리를 증분시키는 명령어
    를 더 포함하는 것인, 비일시적인 컴퓨터 판독 가능 매체.
  33. 제31항에 있어서,
    상기 제1 표현 벡터와 상기 제3 표현 벡터 간의 상기 제1 거리를 계산하는 명령어는, 상기 제1 거리를, 벡터 공간 내의 상기 제3 표현 벡터에 대한 상기 제1 표현 벡터의 방향에 기초하는 명령어를 더 포함하여, 상기 제1 거리는 상기 제1 표현 벡터와 상기 제3 표현 벡터 간의 각도의 척도인 것인, 비일시적인 컴퓨터 판독 가능 매체.
  34. 제31항에 있어서,
    상기 사용자 입력은 오디오 입력 디바이스에서 오디오 신호를 통해 수신되고, 상기 제1 단어 및 상기 제2 단어는 상기 오디오 신호에 대한 음성 대 텍스트 처리를 수행함으로써 상기 오디오 신호로부터 생성되는 것인, 비일시적인 컴퓨터 판독 가능 매체.
  35. 제31항에 있어서,
    상기 질의 내의 상기 입력 질의로부터 상기 두 단어들 중 하나를 상기 데이터베이스에 포함시키는 명령어를 더 포함하는, 비일시적인 컴퓨터 판독 가능 매체.
  36. 제35항에 있어서,
    상기 제1 단어와 연관된 품사를 식별하는 명령어; 및
    상기 제1 단어가 상기 입력 질의의 대상인 것으로 판단하는 것에 응답하여, 상기 질의 내의 상기 제1 단어를 상기 데이터베이스에 포함시키는 명령어
    를 더 포함하는, 비일시적인 컴퓨터 판독 가능 매체.
  37. 제31항에 있어서,
    상기 제1 단어를 불용어들 리스트와 비교하여, 상기 제1 단어가 상기 불용어들 리스트의 불용어와 매칭되는지 여부를 판단하는 명령어; 및
    상기 제1 단어가 상기 불용어와 매칭되는 것으로 판단하는 것에 응답하여,
    상기 입력 질의의 제3 단어를 선택하는 명령어; 및
    제5 표현 벡터를 계산하는 명령어
    를 더 포함하고,
    상기 제1 표현 벡터의 값들은, 상기 입력 질의의 상기 제3 단어가 상기 단어 피처들의 세트의 피처들에 매칭되는 정도에 대응하는 것인, 비일시적인 컴퓨터 판독 가능 매체.
  38. 제31항에 있어서,
    상기 제1 단어가 상기 제3 단어의 의미와 매칭되고 상기 제4 단어의 의미와는 매칭되지 않을 때, 상기 제1 거리는 상기 제1 표현 벡터와 상기 제4 표현 벡터 간의 제3 거리 미만인 것인, 비일시적인 컴퓨터 판독 가능 매체.
  39. 제31항에 있어서,
    상기 검색 질의 템플릿은 제1 검색 질의 템플릿이고,
    상기 제1 거리가 상기 제1 임계 거리 초과라고 판단하는 것에 응답하여,
    제2 검색 질의 템플릿을 상기 데이터베이스로부터 검색하는 명령어 - 상기 제2 검색 질의 템플릿은, 상기 제2 검색 질의 템플릿의 제1 단어와 상기 제2 검색 질의 템플릿의 제2 단어가 각각 상기 단어 피처들의 세트의 피처들과 매칭되는 정도에 대응하는 각각의 값들을 갖는 제5 표현 벡터 및 제6 표현 벡터와 연관됨 -;
    상기 제1 표현 벡터와 상기 제5 표현 벡터 간의 제3 거리를 계산하는 명령어;
    상기 제3 거리가 상기 제1 임계 거리 미만인 것으로 판단하는 것에 응답하여, 상기 제2 표현 벡터와 상기 제6 표현 벡터 간의 제4 거리를 계산하는 명령어; 및
    상기 제4 거리가 상기 제2 임계값 미만인 것으로 판단하는 것에 응답하여, 상기 검색 결과들을 검색하기 위해 상기 제2 검색 질의 템플릿을 선택하는 명령어
    를 더 포함하는, 비일시적인 컴퓨터 판독 가능 매체.
  40. 제31항에 있어서,
    상기 검색된 검색 결과들의 표시를 생성하는 명령어는,
    상기 검색 질의 템플릿과 연관된 상기 데이터베이스로부터 레이아웃을 검색하는 명령어; 및
    상기 레이아웃에 기초하여 상기 검색된 검색 결과들의 표시를 생성하는 명령어
    를 더 포함하는 것인, 비일시적인 컴퓨터 판독 가능 매체.
  41. 검색을 수행하는 방법으로서,
    제어 회로를 사용하여, 사용자 입력 디바이스를 통해, 적어도 2개의 단어들을 포함하는 입력 질의를 수신하는 단계;
    상기 제어 회로를 사용하여, 상기 입력 질의의 제1 단어에 대응하는 제1 표현 벡터 및 상기 입력 질의의 제2 단어에 대응하는 제2 표현 벡터를 계산하는 단계 - 상기 제1 및 제2 표현 벡터들의 각각의 값들은, 상기 제1 단어 및 상기 제2 단어가 각각 단어 피처들의 세트의 피처들에 매칭되는 정도에 대응함 -;
    상기 제어 회로를 사용하여, 검색 의도에 관한 검색 질의 템플릿을 데이터베이스로부터 검색하는 단계 - 상기 검색 질의 템플릿은 적어도 2개의 단어들을 포함하고, 상기 검색 질의 템플릿의 제3 단어 및 상기 검색 질의 템플릿의 제4 단어는 각각 상기 단어 피처들의 세트의 피처들과 매칭되는 정도에 대응하는 각각의 값들을 갖는 제3 표현 벡터 및 제4 표현 벡터와 연관됨 -;
    상기 제어 회로를 사용하여, 상기 제1 표현 벡터와 상기 제3 표현 벡터 간의 제1 거리를 계산하는 단계;
    상기 제1 거리가 제1 임계 거리 미만인 것으로 판단하는 것에 응답하여, 상기 제어 회로를 사용하여, 상기 제2 표현 벡터와 상기 제4 표현 벡터 간의 제2 거리를 계산하는 단계; 및
    상기 제2 거리가 제2 임계 거리 미만인 것으로 판단하는 것에 응답하여,
    상기 제어 회로를 사용하여, 상기 검색 질의 템플릿을 선택하는 단계;
    상기 제어 회로를 사용하여, 상기 선택된 검색 질의 템플릿에 기초하여 검색 결과들을 검색하는 단계; 및
    상기 제어 회로를 사용하여, 상기 검색된 검색 결과들의 표시를 생성하는 단계
    를 포함하는, 검색을 수행하는 방법.
  42. 제41항에 있어서,
    상기 제1 표현 벡터와 상기 제3 표현 벡터 간의 거리를 계산하는 단계는,
    상기 제1 표현 벡터의 제1 값과 상기 제2 표현 벡터의 대응하는 제2 값을 비교하여 상기 제1 값과 상기 제2 값이 임계값 미만으로 차이나는지 여부를 판단하는 단계;
    상기 값들이 상기 임계값 미만으로 차이나는 것으로 판단하는 것에 응답하여, 상기 거리를 변경하지 않는 단계; 및
    상기 값들이 상기 임계값 미만으로 차이가 나지 않는 것으로 판단하는 것에 응답하여, 상기 값들이 비유사한 정도를 계산하고, 상기 값들이 비유사한 정도에 기초하여 상기 거리를 증분시키는 단계
    를 포함하는 것인, 검색을 수행하는 방법.
  43. 제41항 또는 제42항에 있어서,
    상기 제1 표현 벡터와 상기 제3 표현 벡터 간의 상기 제1 거리를 계산하는 단계는, 벡터 공간 내의 상기 제3 표현 벡터에 대한 상기 제1 표현 벡터의 방향에 기초하여, 상기 제1 거리가 상기 제1 표현 벡터와 상기 제3 표현 벡터 간의 각도의 척도인 것인, 검색을 수행하는 방법.
  44. 제41항 내지 제43항 중 어느 한 항에 있어서,
    상기 사용자 입력은 오디오 입력 디바이스에서 오디오 신호를 통해 수신되고, 상기 제1 단어 및 상기 제2 단어는 상기 오디오 신호에 대한 음성 대 텍스트 처리를 수행함으로써 상기 오디오 신호로부터 생성되는 것인, 검색을 수행하는 방법.
  45. 제41항 내지 제44항 중 어느 한 항에 있어서,
    상기 질의 내의 상기 입력 질의로부터 상기 두 단어들 중 하나를 상기 데이터베이스에 포함시키는 단계를 더 포함하는, 검색을 수행하는 방법.
  46. 제45항에 있어서,
    상기 제1 단어와 연관된 품사를 식별하는 단계; 및
    상기 제1 단어가 상기 입력 질의의 대상인 것으로 판단하는 것에 응답하여, 상기 질의 내의 상기 제1 단어를 상기 데이터베이스에 포함시키는 단계
    를 더 포함하는, 검색을 수행하는 방법.
  47. 제41항 내지 제46항 중 어느 한 항에 있어서,
    상기 제1 단어를 불용어들 리스트와 비교하여, 상기 제1 단어가 상기 불용어들 리스트의 불용어와 매칭되는지 여부를 판단하는 단계; 및
    상기 제1 단어가 상기 불용어와 매칭되는 것으로 판단하는 것에 응답하여,
    상기 입력 질의의 제3 단어를 선택하는 단계; 및
    제5 표현 벡터를 계산하는 단계
    를 더 포함하고,
    상기 제1 표현 벡터의 값들은, 상기 입력 질의의 상기 제3 단어가 상기 단어 피처들의 세트의 피처들에 매칭되는 정도에 대응하는 것인, 검색을 수행하는 방법.
  48. 제41항 내지 제47항 중 어느 한 항에 있어서,
    상기 제1 단어가 상기 제3 단어의 의미와 매칭되고 상기 제4 단어의 의미와는 매칭되지 않을 때, 상기 제1 거리는 상기 제1 표현 벡터와 상기 제4 표현 벡터 간의 제3 거리 미만인 것인, 검색을 수행하는 방법.
  49. 제41항 내지 제48항 중 어느 한 항에 있어서,
    상기 검색 질의 템플릿은 제1 검색 질의 템플릿이고,
    상기 제1 거리가 상기 제1 임계 거리 초과라고 판단하는 것에 응답하여,
    제2 검색 질의 템플릿을 상기 데이터베이스로부터 검색하는 단계 - 상기 제2 검색 질의 템플릿은, 상기 제2 검색 질의 템플릿의 제1 단어와 상기 제2 검색 질의 템플릿의 제2 단어가 각각 상기 단어 피처들의 세트의 피처들과 매칭되는 정도에 대응하는 각각의 값들을 갖는 제5 표현 벡터 및 제6 표현 벡터와 연관됨 -;
    상기 제1 표현 벡터와 상기 제5 표현 벡터 간의 제3 거리를 계산하는 단계; 및
    상기 제3 거리가 상기 제1 임계 거리 미만인 것으로 판단하는 것에 응답하여, 상기 제2 표현 벡터와 상기 제6 표현 벡터 간의 제4 거리를 계산하는 단계; 및
    상기 제4 거리가 상기 제2 임계값 미만인 것으로 판단하는 것에 응답하여, 상기 검색 결과들을 검색하기 위해 상기 제2 검색 질의 템플릿을 선택하는 단계
    를 더 포함하는, 검색을 수행하는 방법.
  50. 제41항 내지 제49항 중 어느 한 항에 있어서,
    상기 검색된 검색 결과들의 표시를 생성하는 단계는,
    상기 검색 질의 템플릿과 연관된 상기 데이터베이스로부터 레이아웃을 검색하는 단계; 및
    상기 레이아웃에 기초하여 상기 검색된 검색 결과들의 표시를 생성하는 단계
    를 더 포함하는 것인, 검색을 수행하는 방법.
KR1020187018666A 2016-06-20 2017-06-20 자연어 질의를 위한 근사적인 템플릿 매칭 KR102354652B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/187,029 US10037360B2 (en) 2016-06-20 2016-06-20 Approximate template matching for natural language queries
US15/187,029 2016-06-20
PCT/US2017/038245 WO2017223035A1 (en) 2016-06-20 2017-06-20 Approximate template matching for natural language queries

Publications (2)

Publication Number Publication Date
KR20190019041A true KR20190019041A (ko) 2019-02-26
KR102354652B1 KR102354652B1 (ko) 2022-01-24

Family

ID=59298521

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187018666A KR102354652B1 (ko) 2016-06-20 2017-06-20 자연어 질의를 위한 근사적인 템플릿 매칭

Country Status (9)

Country Link
US (4) US10037360B2 (ko)
EP (1) EP3380959A1 (ko)
JP (1) JP7016802B2 (ko)
KR (1) KR102354652B1 (ko)
CN (1) CN109478189A (ko)
AU (1) AU2017281453A1 (ko)
BR (1) BR112018013291A2 (ko)
MX (1) MX2018007985A (ko)
WO (1) WO2017223035A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023128660A1 (ko) * 2021-12-30 2023-07-06 삼성전자주식회사 검색을 수행하기 위한 전자 장치 및 그 제어 방법

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9202176B1 (en) * 2011-08-08 2015-12-01 Gravity.Com, Inc. Entity analysis system
US10915543B2 (en) 2014-11-03 2021-02-09 SavantX, Inc. Systems and methods for enterprise data search and analysis
US10832130B2 (en) * 2016-09-19 2020-11-10 Google Llc Recommending a document for a user to access
US20180113938A1 (en) * 2016-10-24 2018-04-26 Ebay Inc. Word embedding with generalized context for internet search queries
US11392632B1 (en) * 2016-12-12 2022-07-19 SimpleC, LLC Systems and methods for locating media using a tag-based query
CN106874467B (zh) * 2017-02-15 2019-12-06 百度在线网络技术(北京)有限公司 用于提供搜索结果的方法和装置
US11328128B2 (en) 2017-02-28 2022-05-10 SavantX, Inc. System and method for analysis and navigation of data
EP3590053A4 (en) 2017-02-28 2020-11-25 SavantX, Inc. SYSTEM AND METHOD OF ANALYSIS AND DATA TRAVEL
US10607271B1 (en) * 2017-03-16 2020-03-31 Walgreen Co. Search platform with data driven search relevancy management
CN107291828B (zh) * 2017-05-27 2021-06-11 北京百度网讯科技有限公司 基于人工智能的口语查询解析方法、装置及存储介质
US10901992B2 (en) * 2017-06-12 2021-01-26 KMS Lighthouse Ltd. System and method for efficiently handling queries
US10395655B1 (en) * 2017-09-13 2019-08-27 Amazon Technologies, Inc. Proactive command framework
US20190108282A1 (en) * 2017-10-09 2019-04-11 Facebook, Inc. Parsing and Classifying Search Queries on Online Social Networks
US11232109B1 (en) 2017-12-01 2022-01-25 Pinterest, Inc. Object identification based on long-term user behavior and short-term interest
US11163779B1 (en) 2017-12-01 2021-11-02 Pinterest, Inc. Binary representations of objects based on object attributes
US11132622B2 (en) * 2017-12-27 2021-09-28 International Business Machines Corporation Autonomous system for hypotheses generation
US10878808B1 (en) * 2018-01-09 2020-12-29 Amazon Technologies, Inc. Speech processing dialog management
US10831797B2 (en) * 2018-03-23 2020-11-10 International Business Machines Corporation Query recognition resiliency determination in virtual agent systems
US11971910B2 (en) * 2018-10-22 2024-04-30 International Business Machines Corporation Topic navigation in interactive dialog systems
US11461551B1 (en) * 2018-10-23 2022-10-04 Private AI Inc. Secure word search
US11520821B2 (en) * 2018-11-27 2022-12-06 Rovi Guides, Inc. Systems and methods for providing search query responses having contextually relevant voice output
CN109766429A (zh) * 2019-02-19 2019-05-17 北京奇艺世纪科技有限公司 一种语句检索方法及装置
US11361365B2 (en) * 2019-02-25 2022-06-14 Etsy, Inc. Intuitive entity navigation
KR20200119531A (ko) * 2019-04-10 2020-10-20 삼성전자주식회사 자연어 응답을 생성하는 전자 장치 및 자연어 응답 생성 방법
US11550783B2 (en) * 2019-04-18 2023-01-10 Sap Se One-shot learning for text-to-SQL
US10964324B2 (en) * 2019-04-26 2021-03-30 Rovi Guides, Inc. Systems and methods for enabling topic-based verbal interaction with a virtual assistant
CN110059163B (zh) * 2019-04-29 2022-05-13 百度在线网络技术(北京)有限公司 生成模板的方法和装置、电子设备、计算机可读介质
US11521149B2 (en) * 2019-05-14 2022-12-06 Yawye Generating sentiment metrics using emoji selections
US11694032B2 (en) * 2019-09-12 2023-07-04 Oracle International Corporation Template-based intent classification for chatbots
US11270075B2 (en) * 2019-10-31 2022-03-08 International Business Machines Corporation Generation of natural language expression variants
WO2021124490A1 (ja) * 2019-12-18 2021-06-24 富士通株式会社 情報処理プログラム、情報処理方法および情報処理装置
EP4080379A4 (en) 2019-12-19 2022-12-28 Fujitsu Limited INFORMATION PROCESSING PROGRAM, METHOD AND DEVICE
CN111651474B (zh) * 2020-06-02 2023-07-25 东云睿连(武汉)计算技术有限公司 一种自然语言至结构化查询语言的转换方法及系统
US11516347B2 (en) 2020-06-30 2022-11-29 ROVl GUIDES, INC. Systems and methods to automatically join conference
US11403286B2 (en) * 2020-07-28 2022-08-02 Sap Se Bridge from natural language processing engine to database engine
AU2020257045B2 (en) * 2020-07-28 2022-06-02 Sap Se Bridge from natural language processing engine to database engine
EP3945431A1 (en) * 2020-07-28 2022-02-02 Sap Se Bridge from natural language processing engine to database engine
US11995412B1 (en) * 2023-10-06 2024-05-28 Armada Systems, Inc. Video based question and answer

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030069880A1 (en) * 2001-09-24 2003-04-10 Ask Jeeves, Inc. Natural language query processing
US20040078190A1 (en) * 2000-09-29 2004-04-22 Fass Daniel C Method and system for describing and identifying concepts in natural language text for information retrieval and processing
US20130262107A1 (en) * 2012-03-27 2013-10-03 David E. Bernard Multimodal Natural Language Query System for Processing and Analyzing Voice and Proximity-Based Queries
US20140358889A1 (en) * 2013-06-04 2014-12-04 Google Inc. Natural language search results for intent queries

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6239794B1 (en) 1994-08-31 2001-05-29 E Guide, Inc. Method and system for simultaneously displaying a television program and information about the program
US6564378B1 (en) 1997-12-08 2003-05-13 United Video Properties, Inc. Program guide system with browsing display
CN1867068A (zh) 1998-07-14 2006-11-22 联合视频制品公司 交互式电视节目导视系统及其方法
EP1942668B1 (en) 1998-07-17 2017-07-12 Rovi Guides, Inc. Interactive television program guide system having multiple devices within a household
AR020608A1 (es) 1998-07-17 2002-05-22 United Video Properties Inc Un metodo y una disposicion para suministrar a un usuario acceso remoto a una guia de programacion interactiva por un enlace de acceso remoto
US7165098B1 (en) 1998-11-10 2007-01-16 United Video Properties, Inc. On-line schedule system with personalization features
KR101548473B1 (ko) 2001-02-21 2015-08-28 로비 가이드스, 인크. 개인용 비디오 녹화 특징을 갖는 대화식 프로그램 가이드를 위한 시스템 및 방법
US6676014B2 (en) * 2001-03-31 2004-01-13 Koninklijke Philips Electronics N.V. Machine readable label system with offline capture and processing
US20100153885A1 (en) 2005-12-29 2010-06-17 Rovi Technologies Corporation Systems and methods for interacting with advanced displays provided by an interactive media guidance application
JP2007316803A (ja) * 2006-05-24 2007-12-06 Matsushita Electric Ind Co Ltd 操作支援装置および操作支援方法
JP4827721B2 (ja) * 2006-12-26 2011-11-30 ニュアンス コミュニケーションズ,インコーポレイテッド 発話分割方法、装置およびプログラム
US8346792B1 (en) * 2010-11-09 2013-01-01 Google Inc. Query generation using structural similarity between documents
CA2747153A1 (en) * 2011-07-19 2013-01-19 Suleman Kaheer Natural language processing dialog system for obtaining goods, services or information
CN103064838B (zh) * 2011-10-19 2016-03-30 阿里巴巴集团控股有限公司 数据搜索方法和装置
US8589164B1 (en) * 2012-10-18 2013-11-19 Google Inc. Methods and systems for speech recognition processing using search query information
US9830321B2 (en) * 2014-09-30 2017-11-28 Rovi Guides, Inc. Systems and methods for searching for a media asset
JP2016091374A (ja) * 2014-11-06 2016-05-23 日本電信電話株式会社 パラメータ推定装置、カテゴリ割当装置、方法、及びプログラム
US10748118B2 (en) * 2016-04-05 2020-08-18 Facebook, Inc. Systems and methods to develop training set of data based on resume corpus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040078190A1 (en) * 2000-09-29 2004-04-22 Fass Daniel C Method and system for describing and identifying concepts in natural language text for information retrieval and processing
US20030069880A1 (en) * 2001-09-24 2003-04-10 Ask Jeeves, Inc. Natural language query processing
US20130262107A1 (en) * 2012-03-27 2013-10-03 David E. Bernard Multimodal Natural Language Query System for Processing and Analyzing Voice and Proximity-Based Queries
US20140358889A1 (en) * 2013-06-04 2014-12-04 Google Inc. Natural language search results for intent queries

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023128660A1 (ko) * 2021-12-30 2023-07-06 삼성전자주식회사 검색을 수행하기 위한 전자 장치 및 그 제어 방법

Also Published As

Publication number Publication date
AU2017281453A1 (en) 2018-07-12
CN109478189A (zh) 2019-03-15
JP2019525272A (ja) 2019-09-05
BR112018013291A2 (pt) 2018-12-04
KR102354652B1 (ko) 2022-01-24
US11200243B2 (en) 2021-12-14
US20190266166A1 (en) 2019-08-29
WO2017223035A1 (en) 2017-12-28
JP7016802B2 (ja) 2022-02-07
US12079226B2 (en) 2024-09-03
US20180307691A1 (en) 2018-10-25
US20170364520A1 (en) 2017-12-21
US20220138211A1 (en) 2022-05-05
US10037360B2 (en) 2018-07-31
MX2018007985A (es) 2019-03-28
US10324940B2 (en) 2019-06-18
EP3380959A1 (en) 2018-10-03

Similar Documents

Publication Publication Date Title
US12079226B2 (en) Approximate template matching for natural language queries
US11860927B2 (en) Systems and methods for searching for a media asset
US20210248999A1 (en) Systems and methods for conversations with devices about media using interruptions and changes of subjects
US10672390B2 (en) Systems and methods for improving speech recognition performance by generating combined interpretations
US10031967B2 (en) Systems and methods for using a trained model for determining whether a query comprising multiple segments relates to an individual query or several queries
US12057103B2 (en) Systems and methods for identifying content corresponding to a language spoken in a household
US11687729B2 (en) Systems and methods for training a model to determine whether a query with multiple segments comprises multiple distinct commands or a combined command
US20160085800A1 (en) Systems and methods for identifying an intent of a user query

Legal Events

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