KR20160030943A - 음성 입력에 기초한 표 데이터에 관한 연산의 수행 기법 - Google Patents

음성 입력에 기초한 표 데이터에 관한 연산의 수행 기법 Download PDF

Info

Publication number
KR20160030943A
KR20160030943A KR1020167001093A KR20167001093A KR20160030943A KR 20160030943 A KR20160030943 A KR 20160030943A KR 1020167001093 A KR1020167001093 A KR 1020167001093A KR 20167001093 A KR20167001093 A KR 20167001093A KR 20160030943 A KR20160030943 A KR 20160030943A
Authority
KR
South Korea
Prior art keywords
table data
data
query
computing device
application
Prior art date
Application number
KR1020167001093A
Other languages
English (en)
Other versions
KR102334064B1 (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 KR20160030943A publication Critical patent/KR20160030943A/ko
Application granted granted Critical
Publication of KR102334064B1 publication Critical patent/KR102334064B1/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/248Presentation of query results
    • 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
    • G06F17/246
    • G06F17/3053
    • G06F17/30554
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • 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/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context

Abstract

본 명세서에서는 음성 입력에 기초하여 표 데이터에 대해 연산을 수행하는 것과 관련된 다양한 기술들이 설명된다. ASR 시스템은 표 데이터의 내용에 기초하여 맞춤화되는 언어 모델을 포함한다. ASR 시스템은 사용자의 스피치를 나타내는 음성 신호를 수신한다. ASR 시스템은 ASR이 표 데이터의 내용을 이용하여 맞춤화되는 것에 기초하여 음성 신호의 필사본을 생성한다. 표 데이터에 대한 연산은 음성 신호의 필사본에 기초하여 수행된다.

Description

음성 입력에 기초한 표 데이터에 관한 연산의 수행 기법{PERFORMING AN OPERATION RELATIVE TO TABULAR DATA BASED UPON VOICE INPUT}
컴퓨터 실행 가능 스프레드시트 애플리케이션들은 통상적으로 그들의 사용자들이 표 데이터를 구성 및 분석하는 것을 가능하게 하도록 구성된다. 일반적으로, 컴퓨터 실행 가능 스프레드시트 애플리케이션들의 스프레드시트는 행들 및 열들로 배열되는 셀들을 포함한다. 셀들은 각각의 텍스트 스트링을 포함할 수 있으며, 텍스트 스트링은 수치 값, 텍스트 글자, 심벌 또는 이들의 소정 조합이거나 이들을 포함할 수 있다. 더구나, 함수가 셀에 할당될 수 있으며, 따라서 셀의 값은 스프레드시트 내의 다른 셀들의 값들에 기초하여 결정된다. 스프레드시트 애플리케이션의 사용자는 셀을 선택할 수 있으며, 예를 들어 셀 내의 글자들을 변경하거나 셀에 할당된 함수를 수정함으로써 그의 내용을 수동으로 수정할 수 있다.
통상적인 스프레드시트 애플리케이션은 특히 스프레드시트 애플리케이션의 사용자가 스프레드시트 애플리케이션에 의해 고유하게 지원되는 함수들 및 그러한 함수들을 호출하는 커맨드들과 친숙한 경우에 표 데이터를 구성 및 조작하는 데 적합하다. 일례에서, 스프레드시트 애플리케이션의 사용자는 (예로서, 그래픽 사용자 인터페이스 또는 텍스트 엔트리를 통해) 셀을 선택하고, 텍스트 엔트리 필드에서 텍스트 커맨드(예로서, "SUM")를 제시하고, 여러 셀을 선택함으로써, 여러 셀 내의 값들이 합산되게 할 수 있으며, 합산 결과는 특정 셀 내에 표시될 수 있다.
초보 사용자들은 일반적으로 스프레드시트 애플리케이션에 의해 지원되는 기본 함수들을 비교적 빠르게 학습할 수 있지만, 초보 사용자들은 종종 표 데이터의 더 복잡한 또는 미묘한 차이의 조작의 수행이 어렵다는 것을 발견한다. 또한, 사용자가 (사용자가 전문가인 경우에도) 상이한 스프레드시트 환경들에 대한 적절한 신택스를 기억하거나 아는 것이 종종 어려운데, 이는 상이한 스프레드시트 환경들이 그들 자신의 각각의 미묘한 차이를 갖기 때문이다. 예를 들어, 통상적인 스프레드시트 애플리케이션의 초보 사용자는 스프레드시트 애플리케이션 내에 로딩된 표 데이터에 대해 소정 타입의 분류 연산들을 수행하기 어려울 수 있다. 다른 예에서, 초보 사용자는 표 데이터를 재구성하기 위해 스프레드시트 애플리케이션에 의해 지원되는 커맨드들의 시퀀스를 생성하기 어려울 수 있다. 예를 들어, 일부 상황들에서, 초보 사용자는 재구성을 자동으로 수행할 수 있는 매크로를 구성하는 것이 아니라 셀 값들을 수동으로 복사하여 원하는 위치들에 배치하는 고된 작업을 수행할 것이다.
더구나, 이동 컴퓨팅 장치들 상의 비교적 작은 디스플레이 면적으로 인해 이러한 장치들 상에서는 일부 타입의 스프레드시트 관련 연산들이 어려울 수 있다. 더 작은 디스플레이들과 관련된 문제들을 극복하기 위해, 사용자들은 디스플레이 상의 뷰들을 확대하여, 스프레드시트의 일부의 "줌인된" 뷰를 제공할 수 있다. 그러나, 이것은 사용자가 표 데이터의 더 전체적인 뷰를 획득하는 것을 방해하여, 잠재적으로는 스프레드시트 애플리케이션에 대한 사용자의 경험에 악영향을 줄 수 있다.
아래는 본 명세서에서 더 상세히 설명되는 내용의 간단한 요약이다. 이 요약은 청구항들의 범위를 한정하는 것을 의도하지 않는다.
본 명세서에서는 스피치 입력을 통한 표 데이터의 조작을 용이하게 하는 다양한 기술들이 설명된다. 예를 들어, 워드 프로세싱 애플리케이션, 스프레드시트 애플리케이션, 웹 브라우저 등과 같은 애플리케이션이 표 데이터를 표시하도록 구성될 수 있다. 애플리케이션은 그 안에 표 데이터를 로딩할 수 있으며, 표 데이터는 특정 언어에서 일반적으로 사용되지 않는 값들, 사용자에 의해 맞춤화되는 값들(예로서, 사람의 이름, 사용자에 의해 정의되는 두문자어 등)을 포함할 수 있다. 애플리케이션은 애플리케이션의 사용자에 의해 제시되는 발화된 질의(spoken query)를 인식하도록 구성되는 자동 음성 인식(automatic speech recognition (ASR)) 시스템을 더 포함하거나 그와 통신할 수 있다. 일 실시예에서, ASR 시스템은 스프레드시트 애플리케이션 내에 로딩되는 데이터에 기초하여 맞춤화될 수 있다. 예를 들어, 표 데이터는 엔트리 "OT Pay"를 포함할 수 있으며, 여기서 문구 요소 "OT"는 "overtime"에 대한 두문자어이고, 문구 요소 "Pay"는 그의 통상적인 시맨틱 의미를 갖는다. 그러나, 문구 "OT Pay"는 영어에서 통상적으로 사용되는 문구가 아니며; 따라서 통상적인 ASR 시스템(심지어는 대어휘 ASR 시스템)은 사용자에 의해 제시되는 발언 내에서 문구 "OT Pay"를 정확하게 인식하기 어려울 수 있다. 예를 들어, 통상적인 ASR 시스템은 발언이 문구 "OT Pay"가 아니라 "old toupee"를 포함하는 것으로 결정할 수 있다.
본 명세서에서 설명되는 양태들에 따르면, 애플리케이션 내에 포함되거나 애플리케이션에 의해 액세스될 수 있는 ASR 시스템은 표 데이터에 기초하여 맞춤화될 수 있다. 예를 들어, ASR 시스템은 음향 모델, 어휘 모델 및 언어 모델을 포함할 수 있으며, 음향 모델은 특정 언어 내의 음소들을 모델링하고, 어휘 모델은 요소들(예로서, 단어들 또는 삼음소들과 같은 음소들의 시퀀스들)을 모델링하며, 언어 모델은 요소들의 시퀀스들을 모델링한다. 일례에 따르면, 어휘 모델 또는 언어 모델 중 하나 이상은 표 데이터에 기초하여 갱신될 수 있다. 전술한 예를 계속하면, 언어 모델은 요소 시퀀스 "OT Pay"를 포함하도록 맞춤화될 수 있다.
언어 모델과 더 구체적으로 관련하여, 언어 모델은 애플리케이션과 상호작용할 때 사용자 또는 사용자들에 의해 과거에 사용된 것으로 알려진 질의들, 커맨드들 등에 기초하여 구축될 수 있다. 즉, 언어 모델은 복수의 부분적으로 완성된 문구를 포함할 수 있으며, 문구들 내의 요소들의 시퀀스들에 대해 통계 확률들이 정의될 수 있다. 예를 들어, 언어 모델은 부분적으로 완성된 문구 "how much ___"를 포함할 수 있다. 이러한 부분적으로 완성된 문구는 표 데이터의 내용에 기초하여 완성될 수 있다. 예를 들어, 글자 시퀀스 "OT Pay"가 위에 표시된 빈 영역 내에 삽입되어, 완전한 문구 "how much OT Pay"를 형성할 수 있다. 이것은 ASR 시스템의 검색 공간을 효과적으로 제한하며, 따라서 사용자가 발언 "how much OT PAY did our company pay last year"를 제시할 때, ASR 시스템은 사용자가 표 데이터 내의 특정 엔트리 또는 엔트리들의 세트(예로서, "OT Pay"로 라벨링된 열 헤더)를 언급하고 있다는 것을 인식할 수 있다.
따라서, 애플리케이션은 음성 커맨드들의 수신에 응답하여 표 데이터에 대해 연산들을 수행하도록 구성될 수 있다. 그러한 연산들은 데이터 분류, 데이터에 대한 수학 함수들, 표 데이터의 증대, 표 데이터의 가시화 등을 포함할 수 있지만, 이에 한정되지 않는다. 또한, 검색 공간이 표 데이터의 내용에 기초하여 제한됨에 따라, ASR 시스템은 애플리케이션의 사용자에 의해 제시되는 발화된 커맨드들을 비교적 정확하게 디코딩할 수 있다.
위의 요약은 본 명세서에서 설명되는 시스템들 및/또는 방법들의 일부 양태들의 기본적인 이해를 제공하기 위해 간단한 요약을 제공한다. 이 요약은 본 명세서에서 설명되는 시스템들 및/또는 방법들의 포괄적인 개요는 아니다. 이 요약은 그러한 시스템들 및/또는 방법들의 중요한/필수적인 요소들을 식별하거나 그들의 범위를 한정하는 것을 의도하지 않는다. 이 요약의 유일한 목적은 일부 개념들을 후술하는 더 상세한 설명에 대한 서론으로서 간단한 형태로 제공하는 것이다.
도 1은 스프레드시트 애플리케이션 내에 로딩되는 표 데이터에 기초하는 발언의 디코딩을 용이하게 하는 예시적인 시스템의 기능 블록도이다.
도 2는 애플리케이션 내에 로딩되는 표 데이터에 기초하여 맞춤화될 수 있는 예시적인 자동 음성 인식(ASR) 시스템의 기능 블록도이다.
도 3은 자연 언어 질의에 기초하여 애플리케이션 내에 로딩되는 표 데이터를 수정할 수 있는 예시적인 표 조작 시스템의 기능 블록도이다.
도 4는 네트워크 액세스 가능 표들을 인덱싱하는 인덱스의 구성을 용이하게 하는 예시적인 시스템의 기능 블록도이다.
도 5는 표들을 인덱싱하는 인덱스를 통해 질의를 실행하고, 질의에 기초하여 표들의 순위화된 리스트를 출력할 수 있는 예시적인 데이터 회수 컴포넌트의 기능 블록도이다.
도 6은 사용자의 발언을 나타내는 음성 신호의 디코딩에 기초하여 표 데이터에 대한 컴퓨팅 연산을 수행하기 위한 예시적인 방법을 나타내는 흐름도이다.
도 7은 애플리케이션 내에 로딩되는 표 데이터의 내용에 기초하여 ASR 시스템 내의 언어 모델을 갱신하기 위한 예시적인 방법을 나타내는 흐름도이다.
도 8-24는 스프레드시트 애플리케이션의 예시적인 그래픽 사용자 인터페이스를 나타낸다.
도 25는 예시적인 컴퓨팅 시스템이다.
이제, 음성 입력에 기초하는 표 데이터에 대한 연산들의 수행에 관한 다양한 기술들이 도면들을 참조하여 설명되며, 도면들 전반에서 동일한 요소들을 지시하기 위해 동일한 참조 번호들이 사용된다. 아래의 설명에서는 설명의 목적으로 하나 이상의 양태의 충분한 이해를 제공하기 위해 다수의 특정 상세가 제공된다. 그러나, 그러한 양태(들)는 이러한 특정 상세 없이도 실시될 수 있다는 것이 명백할 수 있다. 다른 예들에서, 하나 이상의 양태의 설명을 용이하게 하기 위해 공지 구조들 및 장치들은 블록도 형태로 도시된다. 또한, 소정의 시스템 컴포넌트들에 의해 실행되는 것으로 설명되는 기능이 다수의 컴포넌트에 의해 수행될 수 있다는 것을 이해해야 한다. 유사하게, 예를 들어, 하나의 컴포넌트가 다수의 컴포넌트에 의해 실행되는 것으로 설명되는 기능을 수행하도록 구성될 수 있다.
더욱이, 용어 "또는"은 배타적인 "또는"이 아니라 포괄적인 "또는"을 의미하는 것을 의도한다. 즉, 달리 지정되거나 문맥으로부터 명확하지 않는 한은, "X가 A 또는 B를 이용한다"라는 표현은 자연스런 포괄적인 치환들 중 어느 하나를 의미하는 것을 의도한다. 즉, "X가 A 또는 B를 이용한다"라는 표현은 다음의 예들: X가 A를 이용한다; X가 B를 이용한다; 또는 X가 A 및 B 양자를 이용한다 중 어느 하나에 의해 충족된다. 게다가, 본원 및 첨부된 청구항들에서 사용되는 바와 같은 관사 "하나(a, an)"는 달리 지정되거나 문맥으로부터 단수 형태를 지시하는 것이 명확하지 않는 한은 일반적으로 "하나 이상"을 의미하는 것으로 해석되어야 한다.
또한, 본 명세서에서 사용되는 바와 같이, 용어 "컴포넌트" 및 "시스템은 프로세서에 의해 실행될 때 소정 기능이 수행되게 하는 컴퓨터 실행 가능 명령어들을 갖도록 구성되는 컴퓨터 판독 가능 데이터 저장소를 포함하는 것을 의도한다. 컴퓨터 실행 가능 명령어들은 루틴, 함수 등을 포함할 수 있다. 컴포넌트 또는 시스템은 단일 장치 상에 국지화되거나 여러 장치에 걸쳐 분산될 수 있다는 것도 이해해야 한다. 또한, 본 명세서에서 사용되는 바와 같이, "예시적인"이라는 용어는 선호를 지시하는 것을 의도하는 것이 아니라, 무언가의 예시 또는 예로서의 사용을 의미하는 것을 의도한다.
이제, 도 1을 참조하면, 음성 입력에 기초하는 표 데이터에 관한 연산의 수행을 용이하게 하는 예시적인 시스템(100)이 도시된다. 시스템(100)은 데스크탑 컴퓨팅 장치, 랩탑 컴퓨팅 장치, 전화, 태블릿(슬레이트) 컴퓨팅 장치, 웨어러블 컴퓨팅 장치, 비디오 게임 콘솔, 텔레비전 등일 수 있지만 이에 한정되지 않는 클라이언트 컴퓨팅 장치(102)를 포함한다. 시스템(100)은 옵션으로서 서버 컴퓨팅 장치(104)를 포함할 수 있으며, 클라이언트 컴퓨팅 장치(102)는 인터넷과 같은 네트워크(106)를 통해 서버 컴퓨팅 장치(104)와 통신한다.
클라이언트 컴퓨팅 장치(102)는 클라이언트 프로세서(108) 및 클라이언트 메모리(110)를 포함한다. 클라이언트 메모리(110)는 클라이언트 프로세서(108)에 의해 실행되는 애플리케이션(112)을 그 안에 로딩하고 있다. 애플리케이션(112)은 그 안에 표 데이터(114)를 로딩하고 있다. 따라서, 애플리케이션(112)은 예를 들어 스프레드시트 애플리케이션, 워드 프로세싱 애플리케이션, 웹 브라우저, 슬라이드쇼 표시 애플리케이션, 데이터베이스 관리 시스템 등일 수 있다. 표 데이터(114)는 행들 및 열들 내에 배열된 복수의 엔트리를 포함한다. 엔트리들 내의 엔트리는 텍스트 스트링을 포함할 수 있으며, 텍스트 스트링은 글자들의 시퀀스를 포함한다. 글자들은 문자, 숫자 및/또는 심벌일 수 있다. 또한, 일례에서, 텍스트 스트링은 엔티티를 나타낼 수 있으며, 엔티티는 사람, 장소 또는 물건일 수 있다. 더욱이, 텍스트 스트링은 텍스트 스트링을 포함하는 엔트리와 관련된 엔티티들을 설명하는 엔티티 이름일 수 있다. 예를 들어, 텍스트 스트링은 열에 대한 열 헤더 내에 포함될 수 있다. 더 구체적인 예에서, 열 헤더는 텍스트 스트링 "PEOPLE"을 포함할 수 있으며, 열 내의 엔트리들은 사람들의 각각의 이름을 포함할 수 있다. 텍스트 스트링은 표 데이터(114)의 행 헤더 내에 또는 본문 내에 있을 수 있다는 것을 이해해야 한다.
클라이언트 컴퓨팅 장치(102)는 또한 디스플레이(116)를 포함하거나 그와 통신하며, 클라이언트 프로세서(108)는 표 데이터(114)가 디스플레이(116) 상에 표시되게 할 수 있다. 디스플레이(116)는 터치 감지 디스플레이일 수 있으며, 따라서 디스플레이(116) 상에서 수행되는 제스처를 통해 애플리케이션(112)에 입력이 제공될 수 있다. 클라이언트 컴퓨팅 장치(102)는 또한 마이크(118)를 포함하거나 그와 통신할 수 있다. 마이크(118)는 클라이언트 컴퓨팅 장치(102)의 사용자로부터 음성 입력을 수신하고, 음성 입력에 기초하여 음성 신호를 생성한다. 따라서, 음성 신호는 음성 입력의 전자적 표현이다.
애플리케이션(112)은 애플리케이션(112) 내에 로딩되는 표 데이터(114)에 대해 컴퓨팅 연산들을 실행하도록 구성되는 실행기 시스템(120)을 더 포함한다. 실행기 시스템(120)에 의해 지원되는 예시적인 연산들은 특히 표 데이터(114) 내의 데이터의 분류, 표 데이터(114) 내의 데이터의 필터링, 표 데이터(114)의 적어도 일부에 대한 수학 연산의 수행, 표 데이터(114)의 가시화(예로서, 표 데이터(114)를 나타내는 그래프들 또는 차트들의 생성), 다른 데이터를 이용한 표 데이터(114)의 증대를 포함하지만 이에 한정되지 않는다.
실행기 시스템(120)은 자동 음성 인식(ASR) 시스템(122)을 포함할 수 있으며, ASR 시스템(122)은 음성 신호의 수신에 응답하여 음성 입력 내의 요소들(단어들, 두문자어들, 약어들 등)을 인식하고, 음성 입력의 텍스트 필사본을 출력한다. ASR 시스템(122)은 음성 신호가 아닌, 애플리케이션(112)과의 과거의 상호작용들, 디스플레이(116) 상의 시선의 위치, 외부 소스들로부터의 데이터 등을 포함하는 다른 데이터를 이용하여 음성 입력 내의 요소들을 인식할 수 있다. 본 명세서에서 더 상세히 설명되는 바와 같이, ASR 시스템(122)은 애플리케이션(112) 내에 로딩되는 표 데이터(114)에 기초하여 맞춤화될 수 있다. 표 데이터(114)에 기초하여 맞춤화될 때, ASR 시스템(122)은 클라이언트 컴퓨팅 장치(102)의 사용자에 의해 발화되는 언어에서 통상적으로 사용되지 않는 음성 입력 내의 요소들을 인식할 수 있다. 비한정적인 예로서, ASR 시스템(122)은 드물거나 애플리케이션(112)의 사용자가 만들지 않은 표 데이터(114) 내의 두문자어를 인식할 수 있다.
실행기 시스템(120)은 ASR 시스템(122)과 통신하는 표 조작 시스템(124)도 포함한다. 표 조작 시스템(124)은 ASR 시스템(122)에 의해 생성되는 음성 입력의 필사본을 수신하고, 필사본의 수신에 응답하여 표 데이터(114)에 대해 전술한 컴퓨팅 연산을 수행한다.
전술한 바와 같이, 시스템(100)은 옵션으로서 클라이언트 컴퓨팅 장치(102)와 네트워크 통신하는 서버 컴퓨팅 장치(104)를 포함한다. 서버 컴퓨팅 장치(104)는 서버 프로세서(126) 및 서버 메모리(128)를 포함한다. 서버 메모리(128)는 서버 프로세서(126)에 의해 실행되는 검색 시스템(130)을 포함한다. 서버 컴퓨팅 장치(104)는 또한 표 인덱스(134)를 포함하는 데이터 저장소(132)를 포함하거나 그와 통신하며, 표 인덱스(134)는 네트워크 액세스 가능 표들(예로서, 인터넷을 통해 액세스될 수 있는 웹 페이지들 상에서 이용 가능한 표들)을 인덱싱한다. 전술한 바와 같이, 실행기 시스템(120)에 의해 수행될 수 있는 예시적인 연산은 표 데이터(114)의 증대를 포함한다. 표 데이터(114)를 증대시키기 위해, 표 조작 시스템(124)은 ASR 시스템(122)에 의해 출력되는 텍스트(필사본)를 수신하고, 수신된 텍스트에 기초하여 질의를 구성할 수 있다. 표 조작 시스템(124)은 질의를 네트워크(106)를 통해 서버 컴퓨팅 장치(104)로 전송할 수 있다. 서버 프로세서(126)는 질의를 수신하고, 검색 시스템(130)은 질의에 기초하여 표 인덱스(134)를 통해 검색을 실행한다. 더 구체적으로, 검색 시스템(130)은 표 인덱스(134)를 통해 검색을 수행하고, 질의와 관련된 추가적인 표 데이터를 식별한다. 이어서, 검색 시스템(130)은 추가적인 표 데이터를 네트워크(106)를 통해 클라이언트 컴퓨팅 장치(102)로 전송할 수 있으며, 표 조작 시스템(124)은 서버 컴퓨팅 장치(104)로부터 수신되는 추가적인 표 데이터를 이용하여 표 데이터(114)를 증대시킬 수 있다.
이제, 시스템(100)의 동작이 설명된다. 클라이언트 컴퓨팅 장치(102)의 사용자는 애플리케이션(112)이 메모리(110) 내에 로딩되고 클라이언트 프로세서(108)에 의해 실행되게 할 수 있다. 클라이언트 프로세서(108)는 애플리케이션(112)의 그래픽 사용자 인터페이스(GUI)가 디스플레이(116) 상에 표시되게 할 수 있다. 클라이언트 컴퓨팅 장치(102)의 사용자는 표 데이터(114)가 (예로서, 메모리(110) 또는 다른 데이터 저장소로부터) 애플리케이션(112) 내로 로딩되게 할 수 있거나, 키보드, 디스플레이(116) 등과 같은 적절한 입력 메커니즘을 통해 표 데이터(114)를 애플리케이션(112) 내로 입력할 수 있다. 전술한 바와 같이, 표 데이터(114)는 복수의 엔트리를 포함하며, 엔트리들 내의 엔트리는 텍스트 스트링을 포함한다.
표 데이터(114)가 애플리케이션(112) 내에 로딩되는 것에 응답하여, ASR 시스템(122)은 표 데이터(114)에 기초하여 맞춤화될 수 있다. 예를 들어, ASR 시스템(122)은 표 데이터 내의 텍스트 스트링에 기초하여 맞춤화될 수 있다. 비한정적인 예에서, 텍스트 스트링은 "OT Pay 2012"일 수 있으며, 여기서 "OT"는 "overtime"을 나타내는 두문자어이고, "Pay"는 그의 알려진 시맨틱 의미를 가지며, "2012"는 2012년을 나타낸다. ASR 시스템(122)은 그의 어휘 모델 또는 언어 모델 내에 "OT Pay 2012"를 포함하도록 맞춤화될 수 있으며, 따라서 ASR 시스템(122)은 "OT Pay 2012"라는 문구가 음성 입력 내에 포함될 때 이를 인식하는 것이 가능해진다.
더구나, ASR 시스템(122)은 표 데이터(114) 내의 텍스트 스트링들의 공지된 동의어들을 고려하도록 맞춤화될 수 있다. 이 예에서, ASR 시스템(122)은 표 데이터의 내용들을 분석하고, "OT Pay 2012"를 표 데이터 내에 포함되지만, ASR 시스템(122)의 어휘 모델 내에 표현되지 않은 것으로 식별할 수 있다. 전술한 텍스트 스트링을 식별하는 것에 응답하여, ASR 시스템(122)은 텍스트 스트링 "OT Pay 2012"의 부분들의 공지된 동의어들을 검색할 수 있다. 예를 들어, ASR 시스템(122)은 동의어들의 데이터베이스를 검색하고, (예로서, 특히 단어 "Pay"와 함께 사용될 때) "overtime"이 두문자어 "OT"에 대한 동의어인 것으로 결정할 수 있다. 이것은 ASR 시스템(122)으로 하여금 클라이언트 컴퓨팅 장치(102)의 사용자가 표 데이터(114) 내의 텍스트 스트링들을 지칭하는 방식에 관해 강건한 것을 가능하게 한다. 예를 들어, 사용자는 다음의 질의 "sum all values in the overtime pay column"을 제시할 수 있다. ASR 시스템(122)이 표 데이터(114) 내의 텍스트 스트링의 공지된 동의어들을 고려하도록 갱신됨에 따라, ASR 시스템(122)은 음성 신호 내의 "overtime"을 텍스트 스트링 내에 포함된 "OT"로 맵핑할 수 있고, 그 안에 ("overtime"이 아니라) "OT"를 포함하는 필사본을 출력할 수 있다. 다른 예에서, 표 조작 시스템(124)은 동의어들에 대한 지식을 가질 수 있으며, 필사본 내의 "overtime"을 "OT"로 맵핑할 수 있다. 전술한 바와 같이, 이러한 맵핑들은 공지된 동의어들의 데이터베이스로부터 획득될 수 있다. 다른 예들에서, 맵핑들은 시스템 관리자 또는 최종 사용자에 의해 제공될 수 있다. 표 조작 시스템(124)은 ASR 시스템(122)에 의해 생성되는 텍스트를 수신할 수 있으며, 그러한 텍스트에 기초하여 연산을 수행할 수 있다. 또한, 외부 데이터에 대한 이전의 지식을 ASR 시스템(122)으로 밀어올려 에러를 줄일 수 있다. 예를 들어, ASR 시스템(122)은 엔티티들, 속성 이름들, 개념들, 개념들에 대한 발생 통계들 및 공동 발생 통계들, 및 속성들의 사전들을 포함하도록 수정될 수 있다.
또한, 본 명세서에서 더 상세히 설명되는 바와 같이, 실행기 시스템(120)은 클라이언트 컴퓨팅 장치(102)의 사용자에 의해 제시되는 자연 언어 질의에 기초하는 표 데이터(114)에 대한 연산들의 수행을 지원한다. 전술한 바와 같이, ASR 시스템(122)은 클라이언트 컴퓨팅 장치(102)에서 수신되는 음성 입력 내의 요소들을 나타내는 필사본을 출력할 수 있다. 표 조작 시스템(124)은 예를 들어 표 데이터(114)의 내용에 기초하여 연산들을 구별할 수 있다. 예를 들어, 표 조작 시스템(124)은 표 데이터(114) 내의 엔티티들의 타입들(예로서, 사람, 장소 또는 물건)을 식별할 수 있다. 이어서, 표 조작 시스템(124)은 그러한 알려진 타입들을 이용하여, 자연 언어 질의의 해석들을 구별할 수 있다. 표 조작 시스템(124)이 사용자 질의를 해석할 때, 표 조작 시스템(124)은 표 데이터(114)의 내용들 및 잠재적으로는 원격적으로 식별된 데이터(검색 시스템(130)에 의해 식별됨)를 이용하여, 자연 언어 질의의 프로그램 해석들을 생성할 수 있다(예로서, 프로그램들이 클라이언트 컴퓨팅 장치(102)의 사용자에 의해 제시되는 자연 언어 질의 내에서 요청되는 작업을 수행하는 것으로 생각된다). 표 조작 시스템(124)에 의해 사용될 수 있는 다른 예시적인 데이터는 소정 엔티티 또는 엔티티 타입에 대한 특정 속성의 확률, 신뢰성 및 밀도를 포함한다.
이제, 도 2를 참조하면, ASR 시스템(122)의 예시적인 기능 블록도가 도시된다. ASR 시스템(122)은 인식 작업들을 수행하기 위한 임의의 적절한 컴퓨팅 구조를 포함할 수 있다. 예를 들어, ASR 시스템(122)은 히든 마르코프 모델(hidden Markov model: HMM), 가우스 혼합 모델(Gaussian mixture model: GMM), 신경망, 디프 신경망(deep neural network: DNN) 등이거나 이들을 포함할 수 있다. ASR 시스템(122)은 음향 모델(202), 어휘 모델(204) 및 언어 모델(206)을 포함한다. 음향 모델(202)은 관심 있는 언어 내의 음소들을 모델링한다. 예를 들어, 영어에는 약 40개의 음소가 존재하며, 음향 모델(202)은 이러한 음소들을 통계적으로 모델링할 수 있다. 어휘 모델(204)은 ASR 시스템(122)에 의해 인식될 엔티티들을 정의한다. 통상적으로, 이러한 엔티티들은 단어들이다. 그러나, 다른 예에서, 엔티티들은 음소들(삼음소들)의 시퀀스들일 수 있으며, 어휘 모델(204)은 음소 시퀀스들에 대한 확률들을 정의한다. 언어 모델(206)은 엔티티 시퀀스들에 대한 확률들을 정의한다. 일례에서, 언어 모델(206)은 단어 "how" 및 "far"이 시퀀스 내에서 높은 확률로 인식되는 경우에 다음 단어가 "away"일 확률이 높다는 것을 지시할 수 있다.
ASR 시스템(122)은 표 데이터(114) 내의 텍스트 스트링들에 기초하여 언어 모델(206)을 맞춤화하도록 구성되는 갱신기 컴포넌트(208)도 포함한다. 일례에 따르면, 언어 모델(206)은 애플리케이션(112)의 사용자들에 의해 과거에 사용된 것으로 알려진 문구들 내의 빈 공간들 또는 슬롯들을 초기에 포함할 수 있다. 예를 들어, 이러한 문구들은 스프레드시트 애플리케이션 등과의 사용자 상호작용의 모니터링을 통해 웹으로부터 채취될 수 있다. 예시적인 부분 문구들은 특히 "sum up", "how much", "sort based upon"과 같은 단어 시퀀스들을 포함할 수 있다. 이어서, 빈 공간들 또는 슬롯들은 표 데이터(114)로부터 추출된 텍스트 스트링들로 채워질 수 있으며, 완성된 시퀀스들에 대한 확률들이 계산되고, 언어 모델(206) 내에 포함될 수 있다.
전술한 예를 계속하면, 부분적으로 완성된 문구 "sum up___"은 (예로서, 시퀀스 "sum up OT Pay"를 형성하기 위해) 텍스트 스트링 "OT Pay"를 이용하여 완성될 수 있다. 또한, 부분적으로 완성된 문구 "how much___"는 (예로서, 시퀀스 "how much OT Pay"를 형성하기 위해) 텍스트 스트링 "OT Pay"를 이용하여 완성될 수 있다. 이러한 시퀀스들에 대한 확률들은 표 데이터 내의 텍스트 스트링의 문맥에 기초하여 계산될 수 있으며; 예를 들어 텍스트 스트링 "OT Pay"는 열 헤더일 수 있고, 열 엔트리들은 수치일 수 있다. 따라서, 문구가 수치 값들(예로서, "how much", "sum up" 등)을 언급할 때 "OT Pay"가 문구를 성공적으로 완성할 확률이 높게 산정될 수 있다. 역으로, 문구가 알파벳 값들(예로서, "alphabetically arrange")을 언급할 때 "OT Pay"가 문구를 성공적으로 완성할 확률은 낮게 산정될 수 있다.
게다가, 갱신기 컴포넌트(208)는 동의어들(210)을 수신할 수 있으며, 그러한 동의어들을 고려하도록 언어 모델(206)을 갱신할 수 있다. 예를 들어, 전술한 바와 같이, "overtime"은 두문자어 "0T"에 대한 공지된 동의어일 수 있으며; 따라서 갱신기 컴포넌트(208)는 표 데이터(114) 내의 텍스트 스트링의 공지된 동의어들에 기초하여 언어 모델(206)을 맞춤화할 수 있다. 더구나, 전술한 바와 같이, 갱신기 컴포넌트(208)는 표 데이터(114) 내의 텍스트 스트링들에 대한 공지된 시맨틱 정보에 기초하여 언어 모델(206)을 맞춤화할 수 있다. 예를 들어, 표 데이터(114)가 "AGE"라는 제목의 열 헤더들을 포함하는 경우, 이 단어에 관한 공지된 시맨틱들 - 예로서, 가장 젊음 대 가장 늙음, 주니어 대 시니어 등 -이 공지될 수 있으며, 단어 시퀀스들에 대한 확률들이 공지된 시맨틱들에 기초하여 계산될 수 있다.
요컨대, 언어 모델(206)은 초기에, (질의들 및 커맨드들이 과거에 관찰된 경우) 애플리케이션(112)에 대해 자주 발부된 질의들 및/또는 애플리케이션(112)에 대해 자주 발부된 커맨드들에 기초하여 구축될 수 있다. 이어서, 갱신기 컴포넌트(208)는 표 데이터(114)의 내용에 기초하여 언어 모델(206)을 맞춤화할 수 있다. 게다가, 갱신기 컴포넌트(208)는 클라이언트 컴퓨팅 장치(102)의 사용자의 관찰된 과거의 액션들에 기초하여 언어 모델(206)을 맞춤화할 수 있다. 예를 들어, 사용자가 처음에 열 헤더에 이름 "overtime pay"를 할당하고, 이어서 이름을 "OTP"로 약칭하는 경우, "0TP"는 "overtime pay"에 대한 두문자어인 것으로 추정될 수 있으며, 갱신기 컴포넌트(208)는 그에 따라 언어 모델(206)을 갱신할 수 있다.
이제, ASR 시스템(122)의 동작이 설명된다. ASR 시스템(122)은 음성 신호를 수신하는 수신기 컴포넌트(212)를 포함한다. 전술한 바와 같이, 음성 신호는 애플리케이션(112)의 사용자에 의해 제시되는 음성 입력의 전자적 표현이다. 인식기 컴포넌트(214)가 수신기 컴포넌트(212)와 통신하고, 모델들(202-206)에 액세스하여 음성 입력 내의 가장 확률 높은 문구를 출력한다. 일례에서, 이러한 가장 확률 높은 문구는 자연 언어 질의일 수 있다. 동작시에, 인식기 컴포넌트(214)는 음성 신호를 샘플링하고, 음소들에 대한 확률 분포들을 획득할 수 있으며, 이들은 잠재적 요소들(단어들)에 대한 확률 분포들을 생성하는 데 사용될 수 있고, 이어서 이들은 잠재적 요소 시퀀스들에 대한 확률 분포들을 생성하는 데 사용될 수 있다. 언어 모델(206)이 다소 제한됨에 따라, 인식기 컴포넌트(214)는 요소 시퀀스들에 대한 확률 분포들을 비교적 효율적으로 계산할 수 있다.
ASR 시스템(122)은 옵션으로서, 인식기 컴포넌트(214)가 음성 신호의 내용들을 언어 모델(206)에 의해 모델링되는 요소 시퀀스로 적절히 맵핑할 수 없을 때 사용자에게 피드백 요청을 출력할 수 있는 피드백 컴포넌트(216)도 포함할 수 있다. 그러한 예에서, 피드백 컴포넌트(216)는 복수의 잠재적 문구를 출력하고, 클라이언트 컴퓨팅 장치(102)의 사용자가 (예로서, 음성 커맨드, 터치 등을 통해) 적절한 문구를 식별할 것을 요청할 수 있다. 일례에서, 피드백 컴포넌트(216)는 사용자로부터의 피드백에 기초하여 언어 모델(206)을 더 갱신할 수 있다.
이제, 도 3을 참조하면, 표 조작 시스템(124)의 예시적인 도면이 도시된다. 표 조작 시스템(124)은 ASR 시스템(122)에 의해 출력되는 텍스트를 수신하고, 애플리케이션(112) 내로 로딩되는 표 데이터(114)를 더 수신한다. 표 데이터(114)는 텍스트에 기초하여 표 조작 시스템(124)에 의해 조작될 데이터를 포함한다. 표 데이터(114)의 조작은 추가 데이터를 이용하여 표 데이터(114)를 증대시키는 것, 표 데이터(114)를 가시화하는 것 등을 포함한다. 일례에서, 표 데이터(114)는 텍스트 내에서 명확히 식별될 수 있다. 다른 예에서, 표 데이터(114)는 디스플레이(116) 상에 현재 표시되고 있을 수 있다. 또 다른 예에서, 표 데이터(114)는 복수의 셀을 복사하여 붙이기, 하위 표를 복사하여 붙이기 등과 같은 소정의 다른 방식으로 사용자에 의해 식별될 수 있다.
표 조작 시스템(124)은 (ASR 시스템(122)에 의해 출력되는 텍스트 내에 구현되는 바와 같은) 자연 언어 질의에 기초하여 사용자의 의도를 결정하도록 구성되는 질의 프로세서 컴포넌트(302)를 포함한다. 일 실시예에서, 그러한 의도의 결정과 관련하여, 질의 프로세서 컴포넌트(302)는 자연 언어 질의 내의 텍스트와, 표 데이터(114) 내의 또는 표 데이터(114)에 대응하는 것으로 알려진, 행 헤더들, 열 헤더들, 표 데이터(114)의 메타데이터 설명, 표 데이터(114)의 제목, 사용자의 이전의 액션들, 표 데이터(114) 내의 텍스트 스트링들에 대한 공지된 동의어들, 표 데이터(114) 내의 텍스트 스트링들에 대한 공지된 약어들 등을 포함하지만 이에 한정되지 않는 속성들을 비교할 수 있다. 일례에서, 표 조작 시스템(124)에 의해 수신되는 표 데이터(114)는 3개의 열; "COMPANY"의 헤더 제목을 갖는 제1 열, "PROFIT"의 헤더 제목을 갖는 제2 열 및 "EMPLOYEES"의 헤더 제목을 갖는 제3 열을 포함할 수 있다. 일례에서, 자연 언어 질의는 "sort by number of employees"일 수 있다. 질의 프로세서 컴포넌트(302)는 문맥을 고려하여, 자연 언어 질의가 디스플레이(116) 상에 현재 표시된 표 데이터(114)와 관련되는 것으로 결정할 수 있다. 이어서, 질의 프로세서 컴포넌트(302)는 자연 언어 질의 내의 용어 "employees"가 표 데이터(114) 내의 열에 대한 헤더 제목이기도 하다는 것을 식별할 수 있다. 질의 프로세서 컴포넌트(302)는 자연 언어 질의 내의 단어 "sort"를 더 식별할 수 있으며, 그러한 단어가 표 데이터(114)의 내용들이 특정 속성의 함수로서 배열되어야 한다는 사용자의 소망을 지시하는 것으로 결정할 수 있고, 이 경우에 속성 "employees"는 자연 언어 질의 내에서 식별된다.
표 조작 시스템(124)은 질의 프로세서 컴포넌트(302)에 의해 자연 언어 질의에 대해 수행되는 처리에 기초하여 복수의 상이한 프로그램을 구성할 수 있는 프로그램 구성기 컴포넌트(304)를 더 포함할 수 있다. 예를 들어, 질의 프로세서 컴포넌트(302)는 자연 언어 질의의 여러 상이한 해석을 생성할 수 있으며, 프로그램 구성기 컴포넌트(304)는 상이한 해석들에 대응하는 각각의 복수의 상이한 프로그램을 구성할 수 있다.
표 조작 시스템(124)은 프로그램 구성기 컴포넌트(304)에 의해 생성되는 프로그램들을 순위화할 수 있는 프로그램 순위화기 컴포넌트(306)를 더 포함할 수 있다. 프로그램 순위화기 컴포넌트(306)는 프로그램들이 표 데이터(114)에 대해 실행될 때 생성될 무효 값들의 각각의 수, 프로그램들이 표 데이터(114)에 대해 실행될 때 생성될 널(null) 값들의 각각의 수, 애플리케이션(112)의 사용자들에 의해 사용되는 프로그램들 내의 연산들의 전체 빈도 등을 포함하는 복수의 상이한 파라미터에 기초하여 프로그램들을 순위화할 수 있다.
실행기 컴포넌트(308)가 가장 높게 순위화된 프로그램을 표 데이터(114)에 대해 실행할 수 있으며, 따라서 자연 언어 질의에 따라 표 조작을 수행할 수 있다. 본 명세서에서 도시되고 설명되는 바와 같이, 애플리케이션(112)의 그래픽 사용자 인터페이스는 자연 언어 질의에 기초하여 표 조작 시스템(124)에 의해 수행되는 연산들의 설명들을 표시하는 대화 필드를 포함할 수 있으며, 따라서 클라이언트 컴퓨팅 장치(102)의 사용자는 그러한 연산들을 검사할 수 있다. 더욱이, 결과적인 표 데이터가 스프레드시트 애플리케이션 내에서 사용자에게 제공될 수 있으며, 따라서 사용자는 표 조작 시스템(124)에 의해 행해지는 연산들을 검토할 수 있다.
도 4를 참조하면, 표 인덱스(314)의 생성을 용이하게 하는 예시적인 시스템(400)이 도시된다. 시스템(400)은 인덱스 생성기 컴포넌트(402)를 포함한다. 인덱스 생성기 컴포넌트(402)는 복수의 상이한 네트워크 액세스 가능 데이터 소스(406-408)로부터 표 데이터를 회수하도록 구성되는 크롤러 컴포넌트(404)를 포함한다. 예를 들어, 그러한 네트워크 액세스 가능 데이터 소스들은 웹페이지들일 수 있다. 일 실시예에서, 크롤러 컴포넌트(404)는 신뢰성 있고 정확한 표들을 포함하는 것으로 알려진 복수의 사전 정의된 데이터 소스들의 내용들을 주기적으로(또는 가끔) 크롤링하도록 구성될 수 있다. 따라서, 크롤러 컴포넌트(404)는 큐레이션된 데이터 소스들에 액세스하여 그 안의 표들을 회수할 수 있다. 다른 실시예에서, 크롤러 컴포넌트(404)는 범용 검색 엔진의 검색 로그들에 액세스하고, 예를 들어 웹페이지들의 HTML 태그들을 검토함으로써 웹페이지들 내의 표들을 식별할 수 있다. 또 다른 예에서, 하나 이상의 표가 사용자의 개인 데이터 내에 포함될 수 있다(예로서, 클라이언트 컴퓨팅 장치 상에 또는 사용자에 대한 데이터를 저장하는 네트워크 액세스 가능 저장 장치 내에 저장될 수 있다). 인덱스 생성기 컴포넌트(402)는 중요한 내용을 갖지 않거나 부정확한 내용을 갖는 표들을 필터링하는 필터 컴포넌트(409)를 더 포함할 수 있다.
더 구체적으로, 크롤러 컴포넌트(404)는 데이터 소스들(406-408)을 크롤링하고, <table>및 </table> 태그들 내에서 텍스트 조각들을 추출하도록 구성될 수 있다. 그러한 태그들 내에는 여러 타입의 표들이 존재한다. 예를 들어, 포맷팅 및 레이아웃 목적을 위해 사용되는 포맷팅 표들이 그러한 태그들 내에 포함된다. 포맷팅 표들은 통상적으로 유용한 내용을 갖지 않으며, 따라서 필터 컴포넌트(409)는 인덱스(134) 내의 포함으로부터 그러한 표들을 필터링할 수 있다. 전술한 태그들 내에 포함될 수 있는 다른 타입의 표는 단일 엔티티의 속성들 및 값들을 설명하는 속성-값(AV) 표들이다. 그러한 표들의 일례는 엔티티의 이름을 포함하는 제목 행에 이어서 엔티티에 대한 다양한 속성들 및 속성들의 각각의 값을 설명하는 행들의 세트를 통상적으로 포함하는 위키(wiki) 페이지들에서 발견되는 정보 박스들을 포함한다. 예를 들어, AV 표에 대응하는 엔티티는 영화일 수 있고, 영화에 대한 속성들은 "release date", "actors", "actresses", "rating" 등일 수 있다. AV 표들은 종종 유용한 정보를 포함하며, 필터 컴포넌트(409)는 그러한 표들을 식별하고, 그들을 AV 표들로서 라벨링할 수 있다.
다른 타입의 표는 토픽과 통상적으로 관련된 엔티티들의 세트에 대한 정보를 포함하는 관계형 표를 포함한다. 관계형 표의 행들은 각각의 엔티티에 대한 정보를 포함한다. 관계형 표의 열들은 각각의 엔티티의 각각의 속성을 나타낸다. 예시적인 관계형 표가 아래에 설명의 목적으로 제공된다.
Figure pct00001
예시적인 관계형 표에서, 엔티티들은 도시들이고, 토픽은 시간에 대한 그러한 도시들의 인구이다. 관계형 표들은 통상적으로 유용한 정보를 포함하지만, AV 표들과 바람직하게 구별된다. 관계형 표들과 AV 표들 간의 구별은 이러한 상이한 타입의 표들 내에 포함된 정보를 이해하는 데 유용할 수 있다. 또한, 엔티티 열 및 속성 열들을 표들 내에 랩어라운딩하는 랩어라운드 표(wraparound table)들을 포함하는 여러 상이한 타입의 관계형 표들이 존재한다. 예시적인 랩어라운드 표가 아래에 제공된다.
Figure pct00002
필터 컴포넌트는 상이한 타입의 관계형 표들을 자동으로 구별하도록 구성될 수 있다. 예를 들어, 필터 컴포넌트(409)는 검토시에 표의 특징들을 식별할 수 있고, 그러한 특징들에 기초하여 표 타입들을 구별하도록 훈련되는 분류기를 포함할 수 있다. 필터 컴포넌트(409)에 의해 표들을 구별하는 데 사용될 수 있는 예시적인 특징들은 표를 포함하는 웹페이지에 대한 표의 분율 크기, 표를 시작하는 웹페이지의 라인 번호, 표의 행들의 수, 표의 본문 행들의 수, 표의 헤더 행들의 수 등을 포함하지만 이에 한정되지 않는다.
인덱스 생성기 컴포넌트(402)는 소스들(406-408) 중 하나로부터 크롤러 컴포넌트에 의해 회수되는 표의 다양한 속성들을 검토하는 표 이해기 컴포넌트(410)를 더 포함할 수 있다. 예를 들어, 표 이해기 컴포넌트(410)는 "주제 열"을 식별하도록 구성될 수 있으며, 주제 열은 표의 각각의 행 내의 엔티티들을 식별한다. 주제 열을 식별하는 문제는 데이터베이스에서의 키 열 식별과 관련되지만 동일하지는 않다. 예를 들어, 열 내의 값들의 차이는 주제 열의 지시자들 중 하나이지만, 유일한 지시자는 아니다. 표 이해기 컴포넌트(410)는 관계형 표들 내의 주제 열들의 식별과 관련하여 다양한 특징들을 이용할 수 있다. 예를 들어, 표 내의 열의 위치(예로서, 열이 표 내에서 얼마나 멀리 왼쪽에 있는지; 더 왼쪽에 있을수록 열이 주제 열일 가능성이 더 높음)는 물론, 비수치적인 특성들도 표의 주제 열의 식별과 관련하여 이용될 수 있다. 또한, 표 이해기 컴포넌트(410)는 데이터 소스들(406-408)로부터의 표들에 걸치는 공지 엔티티들 및 열 이름들의 공동 발생을 계산할 수 있으며, 공동 발생들의 수가 표의 주제 열들의 식별과 관련하여 유용할 수 있다. 예를 들어, 특정 열 이름 내의 엔티티의 (여러 표에서의) 공동 발생들의 수가 클수록, 그 열 이름을 가진 열이 주제 열을 나타낼 가능성이 더 크다.
표 이해기 컴포넌트(410)는 열 이름들을 식별하도록 구성될 수도 있다. 일부 예들에서는, HTML 태그들이 열들의 이름들을 명확히 지정하는 데 사용될 수 있다. 그러나, 실제로는, 비교적 많은 수의 표가 그러한 태그들을 사용하지 않는다. 예를 들어, 웹페이지들 상의 일부 표들은 표 내에 데이터 행(예로서, 표 내에 제1 데이터 행)으로서 포함된 열 이름들을 갖는다. 다른 표들은 열 이름들을 지정하지 않는다. 표 이해기 컴포넌트(410)는 표들의 제1 데이터 행들 내에 지정된 열 이름들을 갖는 그러한 표들을 데이터 소스들(406-408)로부터 식별할 수 있다. 더 구체적으로, 표 이해기 컴포넌트(410)는 데이터 소스들(406-408)로부터 다수의 표를 검토할 수 있고, 특정 스트링에 대해, (예로서, HTML 태그들에 의해 식별되는) 명확히 식별되는 열 이름으로서의 특정 스트링의 발생 빈도, 다수의 표의 첫 번째 행들 내의 특정 스트링의 발생 빈도, 및 다수의 표의 첫 번째가 아닌 행들 내의 특정 스트링의 발생 빈도를 계산할 수 있다. 표 이해기 컴포넌트(410)는 잠재적인 열 이름들인 것으로 생각되는 여러 스트링에 대해 그러한 빈도들을 계산할 수 있다. 표 이해기 컴포넌트(410)는 명확히 식별되는 열 이름들을 갖지 않는 표에 대해서는 표의 제1 행 내의 스트링들에 대응하는 빈도들을 이용하여 그러한 제1 행이 열 이름들을 포함하는지를 결정할 수 있다. 이어서, 표 이해기 컴포넌트(410)는 제1 행이 열 이름들을 포함하는 행인 것으로 분류할 수 있다.
더구나, 표 이해기 컴포넌트(410)는 표들의 내용들의 신뢰성은 물론, 표들의 속성들의 신뢰성을 지시하는 값들을 계산할 수 있다. 그러한 값들을 계산하기 위해, 크롤러 컴포넌트(404)는 데이터 소스들(406-408)에 걸친 엔티티 속성 이진(EAB) 표들의 엔트리들에 대한 (엔티티 속성 이름 값) 삼중쌍들을 출력할 수 있다. 표 이해기 컴포넌트(410)는 데이터 소스들(406-408)에 걸친 값들 간의 일치의 양을 검토할 수 있고, 일치의 양에 기초하여 EAB 표 내의 각각의 행에 스코어가 할당될 수 있다. 표 이해기 컴포넌트(410)는 스코어들을 표의 열 레벨로 롤업(집계)하여, 속성의 인기도(신뢰성)를 계산할 수 있다. 스코어들은 표 값들의 신뢰성을 계산하기 위해 표 레벨로 집계될 수도 있다.
결과적인 인덱스(314)의 질의를 용이하게 하기 위해, 표 이해기 컴포넌트(410)는 크롤러 컴포넌트(404)에 의해 회수된 표들에 주석을 첨부하도록 더 구성될 수 있다. 종종, 웹페이지들 상의 표 헤딩들, 캡션들 및 서라운딩 텍스트는 표의 풍부한 설명을 갖지 않거나, 표 또는 그의 내용들을 설명하는 대안 방식들을 제공하지 않는다. 따라서, 표 이해기 컴포넌트(410)는 자동으로 표에 설명들을 주석으로 첨부할 수 있으며, 설명들은 검색 엔진 클릭 로그들의 내용들의 함수일 수 있다. 예를 들어, 표에는 검색 엔진으로부터 제출되는 질의로부터의 텍스트가 주석으로 첨부될 수 있으며, 질의의 발부자는 표를 포함하는 웹페이지를 클릭할 수 있다.
인덱스 생성기 컴포넌트(402)는 인덱스(134)를 형성하고 인덱스(134)가 데이터 저장소(132) 내에 유지되게 하는 인덱서 컴포넌트(411)를 더 포함한다. 일 실시예에서, 인덱서 컴포넌트(411)는 크롤러 컴포넌트(404)에 의해 회수된 표들 상에 복수의 인덱스를 형성할 수 있다. 더 구체적으로, 인덱서 컴포넌트(411)는 키워드 인덱스를 생성할 수 있으며, 이는 키워드들로부터 표 내의 다양한 필드들로의 맵핑을 포함하는 반전 인덱스이다. 예를 들어, 반전 인덱스는 아래의 맵핑을 포함할 수 있다.
Keyword -> (WebTableId, FieldCode, ColIndex, RowIndex, #totalTokensInField, sumLogFrequency)
여기서, WebTableId는 표의 식별자이고; FieldCode는 필드의 타입이고, 다음 값들: ATTRNAMEINBODY, HEADER, CAPTION, FOOTER, PAGETITLE, PAGEHEADING, PAGEANCHORTEXT; SURROUNDINGTEXT, TABLECELL, URL 중 임의의 값을 가질 수 있고; ColIndex는 열의 인덱스이고, FieldCode 값이 ATTRNAMEINHEADER, ATTRNAMEINBODY 또는 TABLECELL일 때 채워질 수 있고(그렇지 않을 경우에는 널 값 또는 -1 을 할당받을 수 있고); RowIndex는 행의 인덱스이고, FieldCODE 값이 TABLECELL일 때 채워질 수 있고(그렇지 않을 경우에는 널 값 또는 -1 을 할당받을 수 있고); #totalTokensInField는 필드 내의 토큰들의 총 수이고; sumLogFrequency는 필드 내의 토큰들의 빈도들의 로그의 합이다.
이 인덱스(134)와 문서들에 대한 전통적인 반전 인덱스들의 차이는 인덱스(134)가 문서들과 관련하여 관련성이 없는 구조적 정보를 저장한다는 것이다. 마지막 2개의 정보는 질의와 필드의 내용의 매치가 완전한 또는 부분적인 매치인지에 대한 계산을 가능하게 한다.
또한, 인덱서 컴포넌트(411)는 WF 및 TF 인덱스들을 형성할 수 있다. 그러한 인덱스들은 크롤러 컴포넌트(404)에 의해 크롤링된 표들 및 그러한 표들로부터 도출된 EAB 표들에 대한 정적 특징들을 포함한다. 예를 들어, 특정 표에 대한 WF 인덱스는 표의 행들의 수, 표의 열들의 수, 웹페이지 내의 표의 위치, 페이지에 대한 표의 크기, (예로서, 검색 엔진 로그들로부터의) 표를 포함하는 페이지의 정적 순위, (예로서, 검색 엔진 로그들로부터의) 표를 포함하는 페이지의 도메인 순위 등을 포함한다. 특정 표에 대한 TF 인덱스는 표 내의 상이한 값들의 수, 널 이름들의 분율 및 속성 인기도 번호들을 포함할 수 있다.
인덱서 컴포넌트(411)는 WC 인덱스를 더 형성할 수 있다. 그러한 인덱스는 표의 내용 자체를 포함하며, 표에 대한 발췌를 생성하고, 요청시에 실제 표를 표시하거나 가져오는 데 사용될 수 있다. 예를 들어, WC 인덱스는 본래의 HTML, 파싱된 HTML, URL, 캡션, 열 이름들, 헤더 행들, 풋터 행들, 페이지 제목, 페이지 헤딩, 앵커 텍스트, 서라운딩 텍스트, 메타 키워드들, 메타 설명 및 ODP 카테고리들을 포함할 수 있다.
더욱이, 인덱서 컴포넌트(411)는 스트링 맵핑 인덱스 및 스트링 빈도 인덱스를 형성할 수 있다. 스트링 맵핑 인덱스는 모든 표들 및 필드들에 걸친 맵핑을 식별하기 위한 전역 스트링을 포함한다. 스트링 빈도 인덱스는 스트링 ID를 다양한 거친 입자의 필드 타입들에 대한 빈도에 맵핑한다. 필드들과 무관한 전체 빈도가 존재한다.
게다가, 인덱서 컴포넌트(411)는 엔티티 이름을, (키 열 내의) 해당 엔티티 및 그에 대응하는 값을 포함하는 EAB 표들에 맵핑하는 ETV 인덱스를 형성할 수 있다. 키워드 인덱스, ETV 인덱스 및 WF/TF 인덱스들은 질의 처리를 순위화를 위해 사용된다. 스트링 맵핑 및 스트링 빈도 인덱스들은 질의 대 ID 맵핑을 위해 사용되며, WC 인덱스는 질의의 수신에 응답하여 발췌를 생성하고 표로부터의 값들을 반환하는 것과 관련하여 사용된다.
이제, 도 5를 참조하면, 검색 시스템(130)이 도시된다. 검색 시스템(130)은 옵션으로서 질의 프로세서 컴포넌트(302)를 포함할 수 있다. 다른 실시예에서, 질의 프로세서 컴포넌트(302)에 의해 수행되는 질의 처리는 표 조작 시스템(124)에서 수행되거나, 검색 시스템(130)과 표 조작 시스템(124) 사이에 분산될 수 있다.
전술한 바와 같이, 사용자는 발언 내에서 자연 언어 질의를 제시할 수 있으며, 질의는 데이터 소스들(406-408) 중 적어도 하나로부터 표 데이터(예로서, 표)를 회수하기 위한 요청을 나타내고, 인덱스(134)는 데이터 소스들(406-408)로부터의 표들로부터 형성되었다. 질의 프로세서 컴포넌트(302)는 수신된 자연 언어 질의를 질의의 발부자의 의도의 식별과 관련하여 처리할 수 있다.
검색 시스템(130)은 질의 프로세서 컴포넌트(302)가 수신된 자연 언어 질의를 처리하는 것에 응답하여 인덱스(134)를 검색하는 검색 컴포넌트(502)를 더 포함한다. 아래에서 더 상세히 설명되는 바와 같이, 검색 컴포넌트(502)는 자연 언어 질의와 잠재적으로 관련된 여러 개의 표 또는 그의 부분을 식별할 수 있다. 순위화기 컴포넌트(504)가 검색 컴포넌트(502)에 의해 인덱스(134)로부터 회수된 표들을 순위화할 수 있고, 그러한 표들을 순위화할 수 있다. 검색 시스템(130)은 가장 높은 순위의 표를 반환할 수 있으며, 따라서 가장 높은 순위의 표는 애플리케이션(112) 내에 로딩될 수 있다(그리고 그 안에 로딩된 표 데이터(114)를 증대시킬 수 있다).
이제, 시스템(130)의 액션들에 관한 추가 상세가 제공된다. 일 실시예에서, 자연 언어 질의는 검색 엔진들의 사용자들에 의해 제시되는 질의의 타입들과 유사한 키워드 검색의 형태일 수 있다. 그러한 검색 타입들의 예는 예를 들어 "GDP of African countries", "cities in Washington" 등을 포함한다. 검색 시스템(130)은 사용자의 의도와 매칭되는 표들을 찾도록 구성된다. 다른 예에서, 자연 언어 질의는 데이터 발견 데이터(DFD) 질의이거나 이를 포함할 수 있다. 표 데이터(114)는 클라이언트 컴퓨팅 장치(102)의 사용자에 의해 지정될 수 있으며, 애플리케이션(112)은 그 안에 로딩된 표 데이터(114)를 갖는 스프레드시트 애플리케이션일 수 있다. 그러한 예에서, 검색 시스템(130)은 1) 애플리케이션(112) 내에 로딩된 표 데이터(114)를 풍부하게 하는 데 사용될 수 있거나 2) 표 데이터(114)와 소정 방식으로 관련된 표들을 데이터 소스들(406-408)로부터 찾도록 구성될 수 있다. 검색 시스템(130)은 2개의 상이한 타입의 DFD 검색들: 1) 엔티티-속성 표 검색; 및 2) 엔티티 전용 표 검색을 지원할 수 있다. 엔티티-속성 표 검색은 (예로서, 애플리케이션(112) 내에 로딩된) 검색 시스템(130)에 의해 수신된 표가 그 안에 표현된 엔티티들의 세트를 가지며, 엔티티들의 세트가 바람직하게 풍부해지는 경우를 지칭한다. 예를 들어, 애플리케이션(112) 내에 로딩된 표 데이터(114)는 도시들의 리스트를 포함할 수 있다. 자연 언어 질의는 표 데이터(114)를 증대시키는 데 사용될 수 있는 속성을 지정할 수 있다. 예를 들어, 자연 언어 질의는 특정 속성(예로서, 인구)을 지정할 수 있다. 검색 시스템(130)은 표 데이터(114) 내의 엔티티들과 관련된 그러한 속성들에 대한 정보를 포함하는 표들을 잦도록 구성될 수 있다.
엔티티 전용 표 검색은 (예로서, 애플리케이션(112) 내에 로딩된) 검색 시스템(130)에 의해 수신된 표 데이터(114)가 바람직하게 풍부해지는 엔티티들을 포함하지만, 자연 언어 질의 내에서 속성이 지정되지 않는(예를 들어, 속성이 사용자에게 알려지지 않을 수 있는) 경우를 지칭한다. 그러한 경우, 검색 시스템(130)은 인덱스(134)를 검색하고, 그러한 엔티티들과 관련된 것으로 알려진 하나 이상의 속성을 포함하는 표들을 찾도록 구성될 수 있다(예로서, 엔티티들이 도시들인 경우, 엔티티들과 관련된 것으로 알려진 속성들은 인구, 범죄율, 평균 온도 등을 포함할 수 있다). 일 실시예에서, 표 데이터(114) 내의 엔티티들과 관련된 것으로 생각되는 속성들이 검색 시스템(130)에 의해 발견되는 것에 응답하여, 그러한 속성들(예로서, 임계 수의 가장 높은 순위의 속성들의 리스트)이 표면화될 수 있고, 사용자는 원하는 속성들을 선택할 수 있다. 이어서, 검색 시스템(130)은 애플리케이션(112) 내에 로딩된 표 데이터(114)를 표 내의 엔티티들에 대한 그러한 속성들에 대한 값들을 이용하여 풍부하게 할 수 있다.
일 실시예에서, 검색 컴포넌트(502)는 전역 집계기 서비스(GAS) 및 복수의 국지 집계기 서비스(LAS)를 포함할 수 있다. LAS는 인덱스(134) 내에 표현되는 데이터 소스들(406-408)로부터의 표들의 서브세트를 담당한다. GAS는 사용자에 의해 제시된 DFD 또는 키워드 검색 질의를 수신할 수 있다. GAS는 중지 단어 제거 및 스테밍(stemming)과 같은 간단한 변경들을 질의에 대해 수행할 수 있다. 이어서, 스트링 맵핑 서비스를 호출함으로써 키워드들이 식별자들(예로서, 표 식별자들)로 맵핑될 수 있으며, IDF 서비스를 호출함으로써 빈도들 및/또는 역 문서 빈도들(IDF들)이 수집될 수 있다. 스트링 ID들 및 IDF들은 다양한 LAS들로 전송될 수 있다. LAS는 발췌 행들의 선택을 돕기 위해 상위 k개의 표 식별자를 스코어 및 키워드 히트 정보와 함께 반환할 수 있다. GAS는 결과들을 통합하고, 중복들을 제거하고, 결과들을 다양화하고, 동적 질의 종속 발췌들을 생성할 수 있다.
LAS는 소스들(406-408)로부터의 표들의 특정 서브세트에 대한 키워드 인덱스, 특징 인덱스 및 ETV 인덱스를 호스팅할 수 있다. 키워드 질의들과 관련하여, 각각의 질의 토큰에 대해, LAS는 키워드 인덱스 내의 포스팅 리스트를 워킹하여 키워드 히트를 갖는 표들의 리스트를 컴파일링한다. 키워드 히트들을 갖는 그러한 표들은 후보 표들로서 식별된다. 순위화기 컴포넌트(504)는 질의 내의 모든 토큰들의 IDF들의 합에 대한 후보 표에 히트하는 토큰들의 IDF들의 합의 비율을 계산함으로써 각각의 후보 표의 순위 스코어를 추정할 수 있다. 이어서, 후보 표들은 그들의 추정된 스코어들의 내림차순으로 처리될 수 있다. 먼저, 순위화기 컴포넌트(504)는 후보 표에 대한 히트 행렬(예로서, 후보 표의 각각의 필드에서의 상세한 키워드 히트 위치들)을 계산할 수 있다. 이어서, 후보 표에 대한 정적 특징들, 예로서 표를 회수한 페이지의 페이지 순위, 어느 열들이 엔티티 열들인지, 어느 열들이 속성 열들인지, 얼마나 많은 널 값이 각각의 열 내에 있는지, 얼마나 많은 상이한 값이 각각의 열 내에 있는지 등이 WF 및 TF 인덱스들로부터 회수될 수 있다. 이어서, 히트 행렬은 열 타입 정보와 개념적으로 오버레이되어 키워드 히트들을 논리 영역 내에 배치할 수 있다. 이어서, 순위화기 컴포넌트(504) 내로 공급할 순위 특징들을 계산하여 최종 순위 스코어를 생성할 수 있다. 예시적인 특징들은 BM25F 표, BM25F 설명, 페이지 순위, 도메인 순위, 모든 속성들의 속성 인기도, 키워드가 히트하는 속성들의 속성 인기도 등일 수 있다.
이제, 표 조작 시스템(124) 및 검색 시스템(130)에 의해 지원되는 예시적인 연산들이 설명된다. 일례에서, 표 조작 시스템(124)은 자연 언어 질의를 해석할 때, 애플리케이션(112) 내에 로딩된 표들 및/또는 인덱스(134) 내에 표현된 데이터 소스들(406-408) 중 하나 이상으로부터의 표들로부터의 데이터를 이용할 수 있다. 따라서, 프로그램 순위화기 컴포넌트(306)는 프로그램 구성기 컴포넌트(304)에 의해 구성된 프로그램들을 고유 및 외부 표들은 물론, 소정의 엔티티 또는 엔티티 타입에 대한 특정 속성의 확률, 신뢰성 및 밀도를 지시하는 데이터에 기초하여 순위화할 수 있다. 또한, 이전의 사용자 요청들도 순위화와 관련하여 이용될 수 있다.
일례에서, 검색 시스템(130)은 소스들(406-408) 중 하나 이상의 소스로부터의 표로부터 단일 열을 가져올 수 있다. 예를 들어, 다음의 예시적인 고유 언어 질의들: "what industry is each company in", "Import 2012 revenue for these companies from SOURCE ONE" 또는 "import a list of the 50 U.S. states"의 수신에 응답하여 단일 열 가져오기가 바람직하게 수행될 수 있다. 질의 프로세서 컴포넌트(302)는 질의를 (예로서, 임계치 이상의 가능성을 갖는) 특정 데이터 소스로부터의 특정 데이터 열로 맵핑하는 질의의 해석이 존재하는지를 결정할 수 있다. 비교적 많은 양의 불확실성이 존재하는 경우, 검색 시스템(130)은 사용자의 그의 의도를 명확히 할 것을 요청할 수 있다. 예를 들어, 검색 시스템(130)은 사용자에게 다음과 같은 정보: 데이터 소스들의 리스트; 잠재적 질의 정밀화; 잠재적 속성 등을 제공할 수 있다. 그러한 정보는 드롭다운 메뉴들 내에서, 선택 가능 링크들로서, 팝업 필드들 내에서, 기타 등등에 의해 제공될 수 있다. 다른 예에서, 비교적 많은 양의 불확실성이 존재하는 경우, 실패 통지가 사용자에게 제공될 수 있거나, 자연 언어 질의의 다른 해석이 시도될 수 있다. 다른 예에서는, 가장 최근의 데이터를 제공하거나, 다른 데이터, 예로서 속성 인기도를 지시하는 데이터를 사용하는 것이 디폴트일 수 있다.
또한, 검색 시스템(130)은 단일 자연 언어 질의에 기초하여 다수의 속성에 관한 데이터의 가져오기를 지원할 수 있다. 따라서, 검색 시스템(130)은 "show me account managers for these companies"와 같은 자연 언어 질의들을 지원할 수 있으며, 따라서 검색 시스템(130)은 애플리케이션 내에 로딩된 표가 계정 관리자들의 이름들, 계정 관리자들의 이메일 주소들 및 계정 관리자들의 전화 번호들에 대응하는 열들을 이용하여 풍부화되게 할 수 있다. 검색 시스템은 예를 들어 속성들의 인기도에 기초하여 어느 속성들을 애플리케이션(112)에 제공할지를 결정할 수 있다.
더구나, 검색 시스템(130)은 인덱스(134)로부터 회수된 데이터를 특정 액션/메타데이터와 링크할 수 있고/있거나, 애플리케이션(112)이 그러한 링킹을 수행할 수 있다. 예를 들어, 이메일 주소들을 가져오는 경우, 검색 시스템(130)은 그들에 대해 하이퍼링크들을 할당할 수 있으며, 따라서 하이퍼링크된 이메일 주소들의 사용자 선택시에 이메일 애플리케이션이 개시된다. 다른 예에서, 표 엔트리는 전화 번호를 나타내는 숫자를 가질 수 있다. 검색 시스템(130)은 메타데이터를 표 엔트리에 할당하여, 표 엔트리가 전화 번호라는 것을 지시할 수 있다. 이것은 전화 번호가 사용자의 연락처 리스트에 추가되게 할 수 있다. 다른 예에서, 사용자는 엔티티 John Doe에 대응하는 전화 번호로서 식별된 표 엔트리가 다이얼링되게 할 수 있는 음성 커맨드(예로서, "call John Doe")를 제시할 수 있다.
시스템(100)은 암시적인 집계 및 드릴 다운을 더 지원한다. 예를 들어, 애플리케이션(204) 내에 로딩된 표는 2개의 열: "Company" 및 "Sales"를 포함할 수 있다. 검색 시스템(130) 및/또는 표 조작 시스템(124)은 "group sales by industry"와 같은 질의들을 지원하며, 따라서 표 엔트리들이 암시적인 속성 "industry"에 의해 집계된다. 다른 예시적인 지원되는 질의는 "show me companies in Cleveland" 이며, 검색 시스템(130)은 암시적인 값 "Cleveland"에 의해 표 엔트리들을 필터링한다. 또 다른 예에서, 질의 "show me companies in King County"가 지원되며, 시스템은 그러한 질의의 수신에 응답하여 속성 문맥 "Country"를 갖는 암시적인 값 "King"에 의해 표 엔트리들을 필터링한다. 또 다른 예에서, 시스템(100)은 질의 "show me average population for states in the U.S."를 지원할 수 있다. 예를 들어, 시스템(100)은 암시적인 속성들을 통해 그러한 질의에 완전히 응답할 수 있다. 또한, 시스템(100)은 외부 데이터 소스로부터 주들 및 인구들을 인출한 후에 그들을 통해 암시적인 필터링을 수행할 수 있다. 더욱이, 시스템(100)은 "compute the maximum county population for each state"와 같은 질의들을 지원할 수 있으며, 따라서 시스템은 다수의 표(예로서, 각각의 주에 대한 표)로부터의 엔트리들을 연결한 후에 집계 연산을 수행할 수 있다.
시스템(100)은 다음의 질의 시퀀스: "show me the population for each state"에 이어지는 "break it down by county"에 나타난 바와 같은 중첩 질의들을 더 지원한다. 이것은 드릴-다운 예이다. 시스템(100)에 의해 지원되는 다른 예시적인 질의는 "show me total sales for companies in the Pacific Northwest grouped by state"에 이어지는 "break it down by County"를 포함한다. 이것은 다단계 중첩/문맥 드릴 다운 질의이다. 시스템(100)은 먼저 태평양 북서부 주들 내의 회사들에 대해서만 필터링된 전체 판매들의 새로운 표를 생성한 후에 판매들을 주에 의해 그룹화할 수 있다. 제2 질의는 그러한 표에 대해 작용하며, 카운티에 의한 판매들로 드릴 다운되는 피벗 표가 생성되는 것을 가능하게 한다. "show me profit for 2012"에 이어지는 "how about for 2011"과 같은 다른 예시적인 질의들이 시스템에 의해 지원될 수 있다. 이러한 예시적인 질의들은 다단계 문맥 인식 외부 데이터 검색을 나타낸다. 가장 최근의 연산이 외부 데이터 검색인 경우, 시스템(100)은 가능한 정밀화를 검출하고, 그에 따라 외부 데이터 순위를 변경할 수 있다.
더구나, 시스템(100)은 시간 직렬 데이터의 가져오기를 지원할 수 있다. 예를 들어, 질의 "Plot a line graph of China GDP from 2000 to 2012"의 수신에 응답하여, 시스템(100)은 적절한 데이터를 회수하고, 지정된 차트를 스프레드시트 애플리케이션 내에 플로팅할 수 있다.
전술한 바와 같이, 본 발명의 특징들은 스프레드시트 애플리케이션으로 한정되지 않는다. 예를 들어, 사용자는 스프레드시트 애플리케이션의 문맥 밖의 커맨드들을 요청 또는 제시할 수 있다. 즉, 사용자는 전화를 통해 질의들을 제시할 수 있고, 질의는 사용자가 액세스하는 모든 스프레드시트들 및 데이터에 걸쳐 해석될 수 있다. 이것은 열려 있고 연산들을 지원하는 (많은 가상 외부 데이터 열을 갖는) 가상 스프레드시트로서 간주될 수 있다.
더구나, 시스템(100)은 맵핑 및/또는 차팅 애플리케이션과 통합될 수 있다. 예를 들어, 데이터를 특정 차트 또는 맵 타입들로 표시하는 것과 관련된 많은 양태가 존재한다. 따라서, 질의 "show me a map of the number of companies in each state"가 수신되는 경우, 시스템(100)은 외부 데이터 서비스에 대한 호출을 행하여, 각각의 회사에 대한 주를 인출할 수 있다. 다른 예시적인 질의들은 "zoom in at the county level" 및 "show 2012 profit instead"를 포함하며, 시스템(100)은 그러한 질의들의 수신에 응답하여 맵 또는 차트를 갱신하기 위해 외부 데이터를 회수한다.
더구나, 음성-인에이블드 데이터 클리닝이 시스템(100)에 의해 지원될 수 있으며, 따라서 사용자는 인-플레이스(in-place) 데이터 갱신을 지칭하는 커맨드 "change the state column to its abbreviation"을 제시할 수 있다. 시스템(100)은 음성 커맨드의 수신에 응답하여 요청된 데이터 클리닝을 수행할 수 있다. 사용자에 의해 제시되는 다른 예시적인 질의는 "prepend the area code to each phone number"를 포함할 수 있다.
더구나, 시스템(100)은 문맥 스피치 교정을 지원할 수 있다. 일 실시예에서, 사용자는 속성 "incarcerations"에 관한 열을 특정 표에 추가하기를 원할 수 있으며, 따라서 발화된 질의 "add incarcerations"를 제시할 수 있다. 그러한 질의의 수신에 응답하여, 시스템(100)은 속성 "cancer rate"에 대응하는 열을 (잘못) 추가할 수 있다. 사용자는 이러한 잘못된 해석의 검토시에 "no, incarcerations"라고 말할 수 있다. 시스템(100)은 사용자에 의해 제시된 이전의 커맨드들/질의들에 대한 문맥을 유지하여, 사용자가 "add"를 요청했다는 것을 기억할 수 있다. 이어서, 시스템(100)은 "incarcerations" 열을 포함하도록 표를 교정할 수 있다. 다른 예에서, 사용자는 커맨드 "show me a list of states with population greater than 1,000"을 제시할 수 있고, 시스템(100)은 미국 내의 주들의 리스트를 포함하는 표를 사용자에게 제공할 수 있다. 그러나, 사용자는 1,000명보다 많은 인구를 갖는 러시아 주들의 검토를 의도했을 수 있으며, "no, Russian states"라고 말할 수 있다. 다시, 시스템(100)은 대화에 대한 문맥을 유지하고, 적절한 교정들을 수행할 수 있다.
더구나, 시스템(100)은 검색 시스템(130)에 의해 회수되는 데이터의 발화되는 교정을 지원할 수 있다. 예를 들어, 검색 시스템(130)은 퍼지 연결을 이용하여, 애플리케이션(112) 내에 로딩된 스프레드시트 내의 엔티티 이름들을 외부 소스 내에 로딩된 것들과 매칭시킬 수 있다. 예를 들어, 애플리케이션(112) 내에 로딩된 스프레드시트는 열 "CMPNY"를 포함할 수 있는 반면, 외부 데이터 소스로부터 회수된 표는 "COMPANY"로 라벨링될 수 있다. 검색 시스템(130)은 그러한 열들을 오정렬할 수 있으며(예로서, 결과적인 표가 양 열을 포함하게 할 수 있으며), 사용자는 커맨드 "match 'CMPNY' with 'COMPANY'"를 제시함으로써 그러한 정렬을 교정할 수 있다. 표 조작 시스템(124)은 그러한 열들을 병합하고, "COMPANY" 열을 제거하고, 기타 등등을 행할 수 있다. 또한, 텍스트 대 스피치의 발화되는 교정이 지원될 수 있다. 예를 들어, 시스템(100)은 시스템(100)에 의해 수행되는 처리에 관한 정보를 들을 수 있게 출력하도록 구성될 수 있다. 일례에서, 시스템(100)은 "showing total sales in Missouri"를 들을 수 있게 출력할 수 있다. 사용자는 Missouri를 상이하게 발화할 수 있으며, "it's pronounced Missoura"를 말할 수 있다. 시스템(100)은 그에 따라 갱신될 수 있다. 더구나, 시스템(100)은 애플리케이션(112)과의 양방향 스피치 상호작용을 지원한다.
도 6-7은 스피치 입력에 기초하는 표 데이터에 대한 연산들의 수행과 관련된 예시적인 방법들을 나타낸다. 방법들은 하나의 시퀀스에서 수행되는 일련의 액트들로서 도시되고 설명되지만, 방법들은 시퀀스의 순서에 의해 한정되지 않는다는 것을 이해하고 인식해야 한다. 예를 들어, 일부 액트들은 본 명세서에서 설명되는 것과 다른 순서로 발생할 수 있다. 게다가, 하나의 액트가 다른 액트와 동시에 발생할 수 있다. 또한, 일부 예들에서는, 본 명세서에서 설명되는 방법을 구현하기 위해 모든 액트들이 필요하지는 않을 수 있다.
더욱이, 본 명세서에서 설명되는 액트들은 하나 이상의 프로세서에 의해 구현되고/되거나 컴퓨터 판독 가능 매체 또는 매체들 상에 저장될 수 있는 컴퓨터 실행 가능 명령어들일 수 있다. 컴퓨터 실행 가능 명령어들은 루틴, 서브루틴, 프로그램, 실행 스레드 등을 포함할 수 있다. 더구나, 방법들의 액트들의 결과들은 컴퓨터 판독 가능 매체 내에 저장되고, 디스플레이 장치 상에 표시되고/되거나 기타 등등일 수 있다.
이제, 도 6을 참조하면, 애플리케이션 내에 로딩된 표 데이터에 대해 연산을 수행하기 위한 예시적인 방법(600)이 도시된다. 방법(600)은 602에서 시작되며, 604에서, 컴퓨터 실행 가능 애플리케이션 내로 로딩되는 표 데이터가 수신된다. 전술한 바와 같이, 애플리케이션은 스프레드시트 애플리케이션, 워드 프로세싱 애플리케이션, (예로서, 서버 기반 스프레드시트 애플리케이션과 통신하는) 웹 브라우저 등일 수 있다. 606에서, 자동 음성 인식 시스템의 언어 모델이 604에서 수신된 표 데이터에 기초하여 갱신(맞춤화)된다. 예를 들어, 언어 모델은 표 데이터 내에 포함된 두문자어, 텍스트 등을 포함하도록 갱신될 수 있다.
608에서, 표 데이터에 대해 수행될 연산을 지시하는 음성 신호가 수신된다. 예를 들어, 음성 신호는 애플리케이션에 의해 지원되는 특정 커맨드를 지시하는 음성 입력을 나타낼 수 있으며, 604에서 수신된 표 데이터의 일부에 대한 참조를 포함할 수 있다. 다른 예에서, 음성 신호는 사용자의 음성 입력 내에서 제시된 자연 언어 질의를 나타낼 수 있다.
610에서, 음성 신호가 언어 모델에 기초하여 디코딩된다. 즉, 갱신된 언어 모델을 이용하여 음성 입력의 필사본을 생성한다. 612에서, 음성 신호의 디코딩에 기초하여 표 데이터에 대한 연산이 수행된다. 전술한 바와 같이, ASR 시스템에 의해 인식된 텍스트는 애플리케이션 내에 로딩된 표 데이터에 관한 사용자의 의도를 구별하도록 구성되는 시스템에 제공될 수 있다. 방법(600)은 614에 종료된다.
이제, 도 7을 참조하면, 예시적인 방법(700)이 도시된다. 방법(700)은 702에서 시작되며, 704에서, 컴퓨터 실행 가능 애플리케이션 내로 로딩되는 표 데이터가 수신된다. 706에서, 그들 각각의 열들 및/또는 행들 내의 엔트리들의 내용에 기초하여 열 및/또는 행 라벨들에 타입들이 할당된다. 예를 들어, 타입들은 열들 및/또는 행들이 엔티티들을 포함하는지는 물론, 그러한 엔티티들의 타입들도 식별할 수 있다. 이것은 그러한 타입들과 통상적으로 관련된 속성들을 식별하는 데에도 사용될 수 있다. 708에서, 애플리케이션에 대한 ASR 시스템 내의 언어 모델이 표 데이터의 내용 및 706에서 할당된 타입들에 기초하여 갱신된다. 방법(700)은 710에서 종료된다.
이제, 도 8을 참조하면, 스프레드시트 애플리케이션에 대응하는 예시적인 그래픽 사용자 인터페이스(800)가 도시된다. 그래픽 사용자 인터페이스(800)는 표 데이터(114)(예로서, 스프레드시트)를 표시할 수 있는 표 필드(802)를 포함한다. 일반적으로, 표 필드(802)는 복수의 셀을 포함할 수 있으며, 그러한 셀들의 값들은 정의된 값들이거나, 상기 스프레드시트 또는 다른 스프레드시트들 내의 값들에 기초할 수 있다. 그래픽 사용자 인터페이스(800)는 스프레드시트 애플리케이션에 의해 지원되는 기능을 수행하기 위해 사용자에 의해 선택될 수 있는 버튼, 풀다운, 메뉴, 탭 등을 포함하는 툴바(804)를 더 포함할 수 있다.
그래픽 사용자 인터페이스(800)는 옵션으로서 사용자로부터 텍스트 질의들을 수신할 수 있는 질의 필드(806)를 포함할 수 있다. 예를 들어, 사용자는 질의 필드(806) 내에 커서를 배치할 수 있고, 질의 필드(806) 내에 자연 언어 질의를 제시할 수 있다. 버튼(808)이 사용자에 의해 선택될 수 있으며, 이는 질의 필드(806) 내에 제공된 질의가 검색 시스템(130) 및/또는 표 조작 시스템(124)으로 전송되게 할 수 있다. 리셋 버튼(810)은 사용자에 의해 선택될 때 표 필드(802) 내에 표시된 내용을 이전 상태로 리셋할 수 있다.
그래픽 사용자 인터페이스(800)는 스프레드시트 애플리케이션의 사용자와 예를 들어 실행기 시스템(120) 및/또는 검색 시스템(130) 간의 상호작용의 검사 가능 로그들을 제공하는 대화 필드(812)도 포함할 수 있다. 대화 필드(812)는 사용자에 의해 제시된 자연 언어 질의들을 검출할 수 있으며, 자연 언어 질의들의 수신에 응답하여 실행기 시스템(120)에 의해 수행된 액션들을 더 표시할 수 있다.
그래픽 사용자 인터페이스(800)는 사용자에 의해 선택될 때 사용자가 표 데이터(114)에 대해 수행될 연산에 대한 참조를 포함하는 발언을 제시하기를 원한다는 것을 컴퓨팅 장치 및/또는 스프레드시트 애플리케이션에 지시하는 버튼(814)도 포함할 수 있다. 예를 들어, 사용자는 버튼(814) 위로 커서를 호버링하는 동안 좌측 클릭하고 유지함으로써 버튼(814)을 선택할 수 있다. 다른 예에서, 그래픽 사용자 인터페이스(800)가 터치 감지 디스플레이 상에 표시되는 경우, 사용자는 사용자가 음성 입력의 제시를 시작하고 끝낼 때 이를 지시하기 위해 그의 손가락으로 버튼(814) 위를 누를 수 있다(그리고 유지할 수 있다). 다른 예에서, ASR 시스템(122)은 배경에서 특정 음성 커맨드를 듣고, 음성 커맨드의 검출에 응답하여 음성 신호의 디코딩을 개시할 수 있다.
이제, 도 9를 참조하면, 예시적인 그래픽 사용자 인터페이스(900)가 도시된다. 그래픽 사용자 인터페이스(900)는 열 헤더 "COMPANY", "RANK", "PC COUNT" 및 "OFFICE SEATS"를 갖는 열들을 포함하는 표 필드(802) 내에 표시된 특정 표를 도시한다. 따라서, 스프레드시트 애플리케이션은 그 안에 로딩된 그러한 표를 갖는다. 태브(902)는 "TABLE 1"이 그래픽 사용자 인터페이스(900) 내에 현재 표시되고 있다는 것을 지시한다. 태브(904)는 사용자에 의해 선택되는 경우에 새로운(빈) 워크시트가 표시되게 할 수 있다.
이제, 도 10을 참조하면, 다른 예시적인 그래픽 사용자 인터페이스(1000)가 도시된다. 그래픽 사용자 인터페이스(1000)에서, 대화 필드(812)는 사용자에 의해 제시되는 자연 언어 질의를 나타내는 대화 버블(1002)을 포함한다. 이 경우, 그러한 자연 언어 질의는 "how many employees does each company have?"이다. 그러한 질의의 수신에 응답하여, 검색 시스템(130)은 표 필드(802) 내에 표시된 표의 "COMPANY" 열 내에 열거된 회사들에 대응하는 종업원들을 식별하는 표 데이터를 외부 소스로부터 회수할 수 있다. 대화 버블(1004)은 검색 시스템(130) 및/또는 표 조작 시스템(124)에 의해 수행된 액션을 - 예로서, 특정 소스(SOURCE 1)로부터 데이터를 가져왔다는 것을 - 사용자에게 알린다. 따라서, 자연 언어(예로서, 발화된) 질의를 통해 표 필드(802) 내에 표시된 표는 헤더 "EMPLOYEES" 및 그에 대응하는 값들을 갖는 열을 포함하도록 갱신되었으며, 값들은 "COMPANY" 열 내에 열거된 각각의 회사에 대한 종업원들의 수를 나타낸다.
이제, 도 11을 참조하면, 다른 예시적인 그래픽 사용자 인터페이스(1100)가 도시된다. 그러한 그래픽 사용자 인터페이스에서, 사용자는 자연 언어 질의 "show me companies that have 25% more employees than office seats"를 제시하였다. 이것은 대화 필드(812) 내에서 대화 버블(1102) 내에 표시된다.
이제, 도 12를 참조하면, 다른 예시적인 그래픽 사용자 인터페이스(1200)가 도시된다. 이 예시적인 그래픽 사용자 인터페이스(1200)에서, 실행기 시스템(120)은 자연 언어 질의 "show me companies that have 25% more employees than office seats"에 기초하여 새로운 표(TABLE 2)가 사용자에게 제공되게 한다. 구체적으로, 표 조작 시스템(124)은 사용자에 의해 제시된 자연 언어 질의에 기초하여 프로그램을 생성하며, 프로그램이 실행될 때 수행되는 연산들이 대화 필드(812) 내에 표시된다. 예를 들어, 대화 버블(1202) 내에 표시된 바와 같이, 종업원들의 수가 사무실 의자들의 수와 1.25를 곱한 값보다 크도록 필터가 설정된다. 또한, 대화 버블(1204)은 새로운 표가 표시되었다는 것을 사용자에게 알린다. 새로운 표(TABLE 2)는 사무실 의자들보다 25% 더 많은 종업원을 갖는 회사들을 포함한다(예로서, TABLE 2는 TABLE 1의 필터링된 버전이다).
이어서, 사용자는 질의의 코스를 변경하기를 원할 수 있다. 도 13을 참조하면, 다른 그래픽 사용자 인터페이스(1300)가 도시되며, 대화 필드(812)의 대화 버블(1302) 내에 표시된 바와 같이 사용자가 질의 "show me the industries that are most profitable"을 제시했다는 것이 도시된다. 그러한 질의는 DFD 질의일 수 있는데, 이는 검색 시스템(130)이 표 데이터에 대해 인덱스(134)를 검색할 때 TABLE 1 및 TABLE 2를 고려하기 때문이다. 검색 시스템(130)은 자연 언어 질의를 수신하고, 외부 데이터 소스에 액세스하고, 2개의 열; "INDUSTRY"의 열 헤더를 갖는 제1 열 및 "PROFIT"의 열 헤더를 갖는 제2 열을 포함하는 새로운 표(TABLE 3)를 생성할 수 있다.
이제, 도 14를 참조하면, 예시적인 그래픽 사용자 인터페이스(1400)가 도시된다. 그래픽 사용자 인터페이스(1400) 내의 대화 필드(812)는 대화 버블(1302) 내에 표시된 질의의 수신에 응답하여 검색 시스템(130) 및/또는 표 조작 시스템(124)에 의해 취해지는 액션들을 나타낸다. 예를 들어, 검색 시스템(130)은 열거된 소스(SOURCE 2)로부터 TABLE 1에 열거된 회사들에 대응하는 수익에 관한 정보를 회수했을 수 있다. 그러한 액션은 대화 버블(1402) 내에 표시된다. 전술한 바와 같이, 질의는 DFD 질의일 수 있으며, 따라서 질의는 TABLE 1과 관련하여 제시된다. 따라서, TABLE 1 내에 열거된 각각의 회사에 대응하는 수익이 획득될 수 있다. 이어서, SOURCE 2로부터 회수된 수익 값들이 합산될 수 있다. 대화 필드(812)는 표 필드(802) 내에 표시된, TABLE 3을 생성할 때 수행된 합산 액션을 사용자에게 알리는 대화 버블(1404)을 포함한다. 이제, 도 15를 참조하면, 예시적인 그래픽 사용자 인터페이스(1500)가 도시되며, 대화 필드(812)는 속성 PROFIT에 의해 암시적인 엔티티들 "INDUSTRY"를 분류함으로써 TABLE 3이 생성되었다는 것을 사용자에게 알리는 대화 버블(1502)을 포함한다.
이제, 도 16을 참조하면, 또 다른 예시적인 그래픽 사용자 인터페이스(1600)가 도시된다. 그래픽 사용자 인터페이스(1600)에서, 표 조작 시스템(124)은 대화 필드(812) 내의 대화 버블(1602)에 의해 입증되는 바와 같이 질의 "put this in a pie chart"를 수신했다. 그러한 자연 언어 질의의 수신에 응답하여, 표 조작 시스템(124)은 (표 필드(802) 내에 표시된) TABLE 3 내의 데이터를 나타내는 파이 차트(1604)가 사용자에게 제공되게 할 수 있다. 대화 버블(1604)은 파이 차트(1604)가 생성되었다는 것을 사용자에게 지시한다.
이제, 도 17을 참조하면, 또 다른 예시적인 그래픽 사용자 인터페이스(1700)가 도시된다. 대화 필드(812)는 사용자가 자연 언어 질의 "show me the industries with the highest spend"를 제시했다는 것을 지시하는 대화 버블(1702)을 포함한다. 그러한 자연 언어 질의의 수신에 응답하여, 검색 시스템(130)은 인덱스(134)에 액세스하고, 질의에 응답하는 데 사용될 수 있는 표의 발췌를 회수할 수 있다. 대화 버블(1704)은 검색 시스템(130)이 "SOURCE 3"으로부터 "SPEND" 열 내의 데이터를 회수하였다는 것을 사용자에게 지시한다. 도 18은 또 다른 예시적인 그래픽 사용자 인터페이스(1800)를 나타내며, 대화 필드(812)는 표 조작 시스템(124)에 의해 수행된 액션들을 각각 설명하는 대화 버블들(1802, 1804)을 포함한다. 구체적으로, 표 조작 시스템(124)은 피벗 표(TABLE 4)를 생성할 수 있으며, TABLE 3 내에 표시된 산업들이 제1 열 내에 유지되고, 그러한 산업들에 대응하는 지출이 합산된다. 이어서, 표 조작기 컴포넌트(106)는 "SPEND" 열 내의 값들에 의해 분류할 수 있다.
이제, 도 19를 참조하면, 또 다른 예시적인 그래픽 사용자 인터페이스(1900)가 도시된다. 예시적인 그래픽 사용자 인터페이스(1900)에서, 대화 필드(812)는 사용자가 자연 언어 질의 "show me companies in oil and gas that have the highest spend"를 제시했다는 것을 지시하는 대화 버블(1902)을 포함한다. 이제, 도 20을 참조하면, 대화 버블(1902) 내에 표시된 자연 언어 질의의 수신에 응답하여 검색 시스템(130) 및/또는 표 조작 시스템(124)에 의해 수행된 액션들을 나타내는 예시적인 그래픽 사용자 인터페이스(2000)가 도시된다. 구체적으로, 표 조작기 컴포넌트(106)는 필터를 설정하며, 대화 버블(2002) 내에 표시된 바와 같이, 값 "Oil, Gas, & Mining"에 의해 "INDUSTRY" 열이 필터링된다. 이어서, 표 조작기 컴포넌트(106)는 새로운 표(TABLE 5)가 표시되게 하며, 그러한 액션은 대화 필드(812) 내의 대화 버블(2004) 내에 표시된다. 이어서, 표 조작 시스템(124)은 대화 버블(2006) 내에 표시된 바와 같이 SPEND 열 내의 값들에 의해 표를 분류한다. 따라서, 표 필드(802) 내에 표시된 표는 다수의 열: "COMPANY", "RANK", "PC COUNT", "OFFICE SEATS", "EMPLOYEES", "INDUSTRY" 및 "SPEND"를 가지며, TABLE 5 내에 표시된 각각의 회사는 Oil, Gas, & Mining인 INDUSTRY 속성의 값을 갖고, 회사들은 SPEND 속성의 값들에 기초하여 배열된다.
이제, 도 21을 참조하면, 또 다른 예시적인 그래픽 사용자 인터페이스(2100)가 도시된다. 사용자는 대화 버블(2102) 내에 표시된 바와 같이 질의 "who are the purchasing managers for these companies"를 제시하며, 질의는 TABLE 5와 관련하여 행해진다. 따라서, 그러한 질의는 DFD 질의이다. 질의의 수신에 응답하여, 검색 시스템(130)은 연락처 정보를 회수하고, 그러한 연락처 정보가 TABLE 5 내의 표 데이터에 첨부되게 할 수 있다. 대화 필드(812)의 대화 버블(2104) 내에 표시된 바와 같이, TABLE 5 내에 표시된 각각의 회사에 대한 CONTACTNAME, PHONE 및 EMAIL에 대한 값들이 특정 소스(SOURCE 4)로부터 회수되었다.
이제, 도 22를 참조하면, 다른 예시적인 그래픽 사용자 인터페이스(2200)가 도시되며, 사용자는 TABLE 5를 보고, 대화 필드(812) 내의 대화 버블(2202) 내에 표시된 바와 같이 자연 언어 질의 "estimate my commission for closing deals with these companies"를 제시한다.
도 23을 참조하면, 다른 예시적인 그래픽 사용자 인터페이스(2300)가 도시된다. 대화 필드(812)는 (예로서, 대화 버블(2302) 내에 표시된 바와 같이) 제5 소스로부터 "COMISSION"을 가져왔다는 것을 지시한다. 그러한 값은 데이터 소스 내에 직접 포함되지 않을 수 있는 대신, 소정의 함수를 통해 계산될 수 있다는 것을 이해할 수 있다. 도 23에 도시된 예에서, 커미션을 계산하기 위한 함수를 외부 데이터 소스(예로서, 웹 서비스)로부터 가져와서, 스프레드시트 내의 값들 및/또는 인덱스(134)를 통한 검색을 통해 회수된 값들에 대해 실행할 수 있다. 도 23은 실행기 시스템(120)이 표 데이터를 회수할 뿐만 아니라, 표 데이터에 대해 실행될 수 있는 함수들을 회수하도록 구성될 수 있다는 것을 지시하기 위해 제공된다.
본 명세서에서 제공되는 예들로부터, 대화 필드(812)는 사용자에게 가청 로그를 제공하며, 따라서 사용자는 그의 자연 언어 질의들이 어떻게 해석되었는지 그리고 자연 언어 질의들의 수신에 응답하여 실행기 시스템(120)에 의해 취해진 액션들을 볼 수 있다는 것을 확인할 수 있다. 사용자는 잘못된 경우에 소정 함수들이 롤백되게 할 수 있다. 더구나, 일 실시예에서, 사용자는 대화 로그에서 실행기 시스템(120)에 의해 수행된 소정 액션을 선택할 수 있으며, 선택은 수행될 수 있는 다른 옵션들(예로서, 다음으로 가장 높은 순위의 함수 리스트)의 (예로서, 드롭다운 또는 풀다운 메뉴 내의) 표시를 유발할 수 있다. 사용자는 실행기 시스템(120)의 연산이 롤백되고, 원하는 함수를 선택함으로써 수정되게 할 수 있다. 또 다른 예에서, 사용자는 일련의 자연 언어 질의들 및 대응하는 응답들로 하여금, 특히 사용자가 그러한 일련의 질의들이 반복될 것으로 믿는 경우에, 매크로로서 저장되게 할 수 있다. 이것은 사용자가 표 데이터들의 상이한 세트들(예로서, 상이한 스프레드시트들) 또는 심지어는 소정의 갱신된 내용을 갖는 동일한 스프레드시트에 대해 동일한 액션들의 시퀀스를 수행하게 할 수 있다.
스프레드시트 애플리케이션에 대해 질의들을 제시하기 위한 다른 예시적인 메커니즘들도 고려된다. 예를 들어, 전술한 바와 같이, DFD 검색이 시스템(100)에 의해 지원될 수 있으며, 스프레드시트 내의 하나 이상의 열 내에 존재할 수 있는 엔티티들의 리스트가 시스템(100)에 제공될 수 있다. 다른 예에서, 엔티티들의 리스트는 소정의 다른 방식으로, 예로서 이메일 메시지 내에서, 문서로부터, 웹페이지로부터, 기타 등등으로부터 엔티티들을 추출함으로써 제공될 수 있다. 사용자는 옵션으로서 엔티티들의 리스트 내의 엔티티들과 관련된 하나 이상의 관심 있는 속성을 지정할 수 있다. 엔티티들 및 (옵션으로서) 속성들을 포함할 수 있는 질의는 검색 시스템(130)에 제공될 수 있으며, 검색 시스템은 엔티티들(그리고 옵션으로서 속성들)과 관련된 표들의 순위화된 리스트를 반환할 수 있고, 따라서 사용자가 관심 있는 속성들에 대한 속성 값들을 수신하는 것을 가능하게 할 수 있다. 예를 들어, 일 실시예에서, 검색 시스템(130)은 도 24에 도시된 예시적인 그래픽 사용자 인터페이스(2400) 내에 표시된 바와 같이 브라우저 기반 인터페이스를 통해 액세스될 수 있다. 그래픽 사용자 인터페이스(2400)는 자연 언어 질의를 수신하도록 구성되는 검색 필드(2402), 및 옵션으로서 기존의 관심 있는 표 데이터 및 관심 있는 속성들의 사양을 포함한다. 검색 시스템(130)은 질의(예로서, "African countries by GDP")의 수신에 응답하여 사용자가 관심을 갖는 엔티티들(예로서, African Nations) 및 속성들의 리스트를 포함하는 표(2404)를 제공할 수 있다. 그래픽 사용자 인터페이스(2400)는 표(2404)에 대한 소스에 대한 하이퍼링크(2406)도 포함할 수 있다. 그래픽 사용자 인터페이스(2400)는 표가 다수의 소스로부터 구성되는 경우에 다수의 하이퍼링크를 포함할 수 있다는 것을 이해해야 한다. 하이퍼링크(2406)의 선택은 표(2404)의 전체가 예를 들어 팝업 윈도 내에 표시되게 할 수 있다.
옵션으로서, 도시되지는 않지만, 사용자(210)가 관심을 가질 수 있는 다른 속성들은 인기 있는 속성들, 인기 있는 속성들을 나타내는 하이퍼링크들 등을 표시하는 풀다운 메뉴와 같은 그래픽 사용자 인터페이스(2400) 내에 제공될 수 있다. 또한, 사용자는 드롭다운들로부터 엔티티들의 리스트를 지정하여, 표 및 표 열을 지정할 수 있거나, 열들/셀들을 선택하고, 우측 클릭 또는 드래그 및 드롭하여 검색을 개시하고/하거나 질의를 채울 수 있다. 사용자는 셀들의 범위도 지정할 수 있다. 사용자는 예를 들어 "group my table by region"을 입력함으로써 더 자연스런 언어 인터페이스를 통해 속성을 잠재적으로 더 지시할 수 있으며, 이 경우에 표 조작 시스템(124) 및/또는 검색 시스템(130)은 검색 속성 영역 내의 사용자 표 엔티티들을 이용하여 엔티티-속성 질의를 발부할 수 있다. 이어서, 사용자는 표를 지정할 수 있고, 그룹화 연산이 수행될 수 있다.
다양한 사용자 인터페이스 요소들이 지원된다. 예를 들어, 사용자가 제1 검색 박스에서 단일 엔티티 이름, 다수의 엔티티 이름 또는 개념 이름을 제공할 수 있고, 제2 검색 박스를 이용하여, 제1 박스 내에 설명된 엔티티들에 속하는 하나 이상의 관심 속성을 제공할 수 있는 질의 인터페이스가 제공될 수 있다. 속성 스트링은 높이, 무게 및 길이를 포함할 수 있는 치수들과 같은 속성 이름들의 개념 세트일 수도 있다. 예를 들어, 제1 박스에서, 엔티티 "Seattle"에 제공될 수 있고, 제2 박스는 속성 "temperature"를 포함할 수 있다.
이제, 도 25를 참조하면, 본 명세서에서 개시되는 시스템들 및 방법들에 따라 사용될 수 있는 예시적인 컴퓨팅 장치(2500)의 하이 레벨 도면이 도시된다. 예를 들어, 컴퓨팅 장치(2500)는 발언의 요소들의 인식을 지원하는 시스템 내에서 사용될 수 있다. 다른 예로서, 컴퓨팅 장치(2500)는 자연 언어 질의들에 기초하는 프로그램들의 구성을 지원하는 시스템에서 사용될 수 있다. 컴퓨팅 장치(2500)는 메모리(2504) 내에 저장되는 명령어들을 실행하는 적어도 하나의 프로세서(2502)를 포함한다. 명령어들은 예를 들어 전술한 하나 이상의 컴포넌트에 의해 실행되는 것으로 설명되는 기능을 구현하기 위한 명령어들 또는 전술한 방법들 중 하나 이상의 방법을 구현하기 위한 명령어들일 수 있다. 프로세서(2502)는 시스템 버스(2506)를 통해 메모리(2504)에 액세스할 수 있다. 실행 가능 명령어들을 저장하는 것에 더하여, 메모리(2504)는 음향 모델, 어휘 모델, 언어 모델, 표 데이터, 표 인덱스 등도 저장할 수 있다.
컴퓨팅 장치(2500)는 시스템 버스(2506)를 통해 프로세서(2502)에 의해 액세스될 수 있는 데이터 저장소(2508)를 더 포함한다. 데이터 저장소(2508)는 실행 가능 명령어들, ASR 시스템에서 사용되는 모델들, 표 데이터, 표 인덱스 등을 포함할 수 있다. 컴퓨팅 장치(2500)는 외부 장치들이 컴퓨팅 장치(2500)와 통신하는 것을 가능하게 하는 입력 인터페이스(2510)도 포함한다. 예를 들어, 입력 인터페이스(2510)는 외부 컴퓨팅 장치로부터, 사용자로부터, 기타 등등으로부터 명령어들을 수신하는 데 사용될 수 있다. 컴퓨팅 장치(2500)는 컴퓨팅 장치(2500)와 하나 이상의 외부 장치를 인터페이스하는 출력 인터페이스(2512)도 포함한다. 예를 들어, 컴퓨팅 장치(2500)는 출력 인터페이스(2512)를 통해 텍스트, 이미지 등을 표시할 수 있다.
입력 인터페이스(2510) 및 출력 인터페이스(2512)를 통해 컴퓨팅 장치(2500)와 통신하는 외부 장치들은 사용자가 상호작용할 수 있는 사실상 임의 타입의 사용자 인터페이스를 제공하는 환경 내에 포함될 수 있다는 것이 고려된다. 사용자 인터페이스 타입들의 예는 그래픽 사용자 인터페이스, 자연 사용자 인터페이스 등을 포함한다. 예를 들어, 그래픽 사용자 인터페이스는 키보드, 마우스, 원격 제어 등과 같은 입력 장치(들)를 이용하여 사용자로부터 입력을 수신하고, 디스플레이와 같은 출력 장치 상에서 출력을 제공할 수 있다. 또한, 자연 사용자 인터페이스는 키보드, 마우스, 원격 제어 등과 같은 입력 장치에 의해 부과되는 제약들을 갖지 않는 방식으로 사용자가 컴퓨팅 장치(2500)와 상호작용하는 것을 가능하게 할 수 있다. 오히려, 자연 사용자 인터페이스는 스피치 인식, 터치 및 스타일러스 인식, 스크린 상에서뿐만 아니라 스크린 근처에서의 제스처 인식, 에어 제스처, 머리 및 눈 추적, 음성 및 스피치, 비전, 터치, 제스처, 기계 지능 등에 의존할 수 있다.
게다가, 단일 시스템으로 도시되지만, 컴퓨팅 장치(2500)는 분산 시스템일 수 있다는 것을 이해해야 한다. 따라서, 예를 들어, 여러 장치가 네트워크 접속을 통해 통신할 수 있으며, 컴퓨팅 장치(2500)에 의해 수행되는 것으로 설명되는 작업들을 공동으로 수행할 수 있다.
본 명세서에서 설명되는 다양한 기능들은 하드웨어, 소프트웨어 또는 이들의 임의 조합에서 구현될 수 있다. 소프트웨어에서 구현되는 경우, 기능들은 컴퓨터 판독 가능 매체 상에 저장되거나, 컴퓨터 판독 가능 매체 상에서 하나 이상의 명령어 또는 코드로서 전달될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터 판독 가능 저장 매체를 포함한다. 컴퓨터 판독 가능 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 저장 매체일 수 있다. 한정이 아니라 예로서, 그러한 컴퓨터 판독 가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 장치, 또는 원하는 프로그램 코드를 명령어들 또는 데이터 구조들의 형태로 보유 또는 저장하는 데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 본 명세서에서 사용되는 바와 같은 디스크(disk 및 disc)는 컴팩트 디스크(compact disc: CD), 레이저 디스크(laser disc), 광 디스크(optical disc), 디지털 다기능 디스크(digital versatile disc: DVD), 플로피 디스크(floppy disk) 및 블루레이 디스크(Blu-ray disc: BD)를 포함하며, 디스크(disk)는 통상적으로 자기적으로 데이터를 재생하고, 디스크(disc)는 통상적으로 레이저를 이용하여 광학적으로 데이터를 재생한다. 또한, 전파 신호는 컴퓨터 판독 가능 저장 매체의 범위 내에 포함되지 않는다. 컴퓨터 판독 가능 매체는 하나의 장소로부터 다른 장소로의 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체를 포함하는 통신 매체도 포함한다. 예를 들어, 접속은 통신 매체일 수 있다. 예를 들어, 소프트웨어가 웹사이트, 서버 또는 다른 원격 소스로부터 동축 케이블, 광섬유 케이블, 트위스트 쌍, 디지털 가입자 라인(DSL) 또는 무선 기술, 예로서 적외선, 라디오 및 마이크로파를 이용하여 전송되는 경우, 동축 케이블, 광섬유 케이블, 트위스트 쌍, DSL 또는 무선 기술, 예로서 적외선, 라디오 및 마이크로파는 통신 매체의 정의 내에 포함된다. 위의 것들의 조합들도 컴퓨터 판독 가능 매체의 범위 내에 포함되어야 한다.
대안으로서 또는 추가로, 본 명세서에서 설명되는 기능은 적어도 부분적으로는 하나 이상의 하드웨어 논리 컴포넌트에 의해 수행될 수 있다. 한정이 아니라 예로서, 사용될 수 있는 하드웨어 논리 컴포넌트들의 예시적인 타입들은 필드 프로그래머블 게이트 어레이(FPGA), 프로그램 고유 집적 회로(ASIC), 프로그램 고유 표준 제품(ASSP), 시스템-온-칩 시스템(SOC), 복합 프로그램 가능 논리 장치(CPLD) 등을 포함한다.
전술한 것은 하나 이상의 실시예의 예들을 포함한다. 물론, 전술한 양태들을 설명하는 목적을 위해 위의 장치들 및 방법들의 모든 구상 가능한 수정들 및 변경들을 설명하는 것은 가능하지 않지만, 이 분야의 통상의 기술자는 다양한 양태들의 많은 추가적인 수정 및 치환이 가능하다는 것을 인식할 수 있다. 따라서, 설명된 양태들은 첨부된 청구항들의 사상 및 범위 내에 속하는 모든 그러한 변경들, 수정들 및 변형들을 포함하는 것을 의도한다. 더구나, "포함하다(includes)"라는 용어가 상세한 설명 및 청구항들에서 사용되는 한, 그 용어는 "포함하는(comprising)"이라는 용어가 청구항에서 전이어로서 사용될 때 해석되는 바와 같이 "포함하는(comprising)"과 유사한 방식으로 포괄적인 것을 의도한다.

Claims (15)

  1. 컴퓨팅 장치로서,
    프로세서와,
    상기 프로세서에 의해 실행되는 애플리케이션을 포함하는 메모리
    를 포함하고,
    상기 애플리케이션은
    상기 애플리케이션 내에 로딩되는 표 데이터 - 상기 표 데이터는 텍스트 스트링을 포함함 - 와,
    상기 표 데이터에 대해 컴퓨팅 연산을 실행하는 실행기 시스템
    을 포함하고,
    상기 실행기 시스템은
    상기 표 데이터 내에 포함되는 상기 텍스트 스트링에 기초하여 맞춤화되는 자동 음성 인식(automatic speech recognition(ASR)) 시스템 - 상기 ASR 시스템은 상기 애플리케이션에 대한 음성 입력을 나타내는 음성 신호를 수신하고, 상기 음성 입력은 상기 텍스트 스트링에 대한 참조를 포함하고, 상기 ASR 시스템은 상기 음성 신호의 필사본을 생성함 - 과,
    상기 ASR 시스템과 통신하는 표 조작 시스템 - 상기 표 조작 시스템은 상기 ASR 시스템으로부터 상기 음성 신호의 상기 필사본을 수신하고, 상기 음성 신호의 상기 필사본에 기초하여 상기 표 데이터에 대해 상기 컴퓨팅 연산을 수행함 -
    을 포함하는 컴퓨팅 장치.
  2. 제1항에 있어서,
    상기 컴퓨팅 장치는 클라이언트 컴퓨팅 장치이고, 상기 클라이언트 컴퓨팅 장치는 태블릿 컴퓨팅 장치 및 이동 전화 중 하나인
    컴퓨팅 장치.
  3. 제1항에 있어서,
    상기 컴퓨팅 장치는 서버 컴퓨팅 장치이고, 상기 애플리케이션의 상기 ASR 시스템은 상기 서버 컴퓨팅 장치와 네트워크 통신하는 클라이언트 컴퓨팅 장치로부터 상기 음성 신호를 수신하는
    컴퓨팅 장치.
  4. 제1항에 있어서,
    상기 ASR 시스템은 상기 음성 입력의 잠재적 해석을 제한하도록 맞춤화되는
    컴퓨팅 장치.
  5. 제1항에 있어서,
    상기 음성 입력은 자연 언어 질의이며, 상기 표 조작 시스템은 상기 자연 언어 질의에 기초하여 상기 컴퓨팅 연산을 수행하는
    컴퓨팅 장치.
  6. 제1항에 있어서,
    상기 컴퓨팅 연산은 상기 표 데이터의 분류, 상기 표 데이터의 필터, 상기 표 데이터 내의 엔트리에 대해 수행되는 수학적 연산, 상기 표 데이터의 가시화(visualization) 및 상기 표 데이터의 증대(augmentation) 중 하나인
    컴퓨팅 장치.
  7. 제6항에 있어서,
    상기 컴퓨팅 연산은 상기 표 데이터의 증대이고, 상기 표 조작 시스템은 상기 필사본에 기초하여 질의를 생성하고, 검색 시스템은 질의에 기초하여 표의 네트워크 액세스 가능 인덱스에 대한 검색을 실행하고, 표의 상기 인덱스 내에 포함된 추가적인 표 데이터를 이용하여 상기 애플리케이션 내에 로딩되는 상기 표 데이터를 증대시키는
    컴퓨팅 장치.
  8. 컴퓨터 실행 가능 애플리케이션 내에 로딩된 표 데이터를 수신하는 단계와,
    상기 표 데이터의 수신에 응답하여, 상기 표 데이터에 기초하여 자동 음성 인식(ASR) 시스템의 언어 모델을 갱신하는 단계와,
    상기 표 데이터에 대해 수행될 연산을 나타내는 음성 신호를 수신하는 단계와,
    상기 ASR 시스템의 상기 언어 모델의 상기 갱신에 기초하여 상기 음성 신호를 디코딩하는 단계와,
    상기 음성 신호의 상기 디코딩에 기초하여 상기 연산을 수행하는 단계
    를 포함하는 방법.
  9. 제8항에 있어서,
    상기 방법은 클라이언트 컴퓨팅 장치에 의해 실행되고, 상기 음성 신호는 질의를 나타내고,
    상기 연산은
    네트워크를 통해 상기 클라이언트 컴퓨팅 장치에 의해 액세스될 수 있는 데이터 소스로부터 회수되는 추가 데이터를 이용하여 상기 표 데이터를 증대시키는 단계 - 상기 증대는 상기 질의에 기초함 - 와,
    상기 질의에 기초하여 상기 표 데이터 및 상기 추가 데이터에 대해 후속 연산을 수행하는 단계를 포함하는
    방법.
  10. 제8항에 있어서,
    상기 컴퓨터 실행 가능 애플리케이션은 웹 브라우저인
    방법.
  11. 제8항에 있어서,
    상기 표 데이터는 엔트리를 포함하고, 상기 엔트리는 글자 시퀀스를 포함하고, 상기 언어 모델을 갱신하는 단계는 상기 언어 모델 내에 상기 글자 시퀀스를 포함시키는 단계를 포함하는
    방법.
  12. 제11항에 있어서,
    상기 언어 모델은 과거에 관찰된 커맨드를 나타내는 부분적으로 완성된 문구를 포함하고, 상기 언어 모델을 갱신하는 단계는 상기 언어 모델 내에 상기 글자 시퀀스를 포함시켜 상기 부분적으로 완성된 문구를 완성시키는 단계를 포함하는
    방법.
  13. 제12항에 있어서,
    상기 언어 모델을 갱신하는 단계는
    상기 표 데이터에 기초하여 상기 글자 시퀀스에 타입을 할당하는 단계 - 상기 타입은 상기 글자 시퀀스가 상기 표 데이터 내의 사람, 장소 및 물건 중 하나를 나타낸다는 것을 지시함 - 와,
    상기 글자 시퀀스에 할당된 상기 타입에 기초하여 상기 완성된 문구에 확률 값을 할당하는 단계
    를 더 포함하는 방법.
  14. 제8항에 있어서,
    상기 음성 신호는 질의를 나타내고, 상기 연산의 상기 수행은 갱신된 표 데이터가 생성되게 하고, 상기 방법은
    상기 질의에 기초하여 상기 연산을 수행한 후에, 제2 질의를 나타내는 제2 음성 신호를 수신하는 단계와,
    상기 ASR 시스템의 상기 언어 모델의 상기 갱신에 기초하여 상기 제2 음성 신호를 디코딩하는 단계와,
    상기 갱신된 표 데이터에 대해 제2 연산을 수행하는 단계 - 상기 제2 연산은 상기 질의 및 상기 제2 질의에 기초하여 수행됨 -
    를 더 포함하는 방법.
  15. 프로세서에 의해 실행될 때, 상기 프로세서가
    스프레드시트 애플리케이션 내에 로딩되는 표 데이터를 수신하는 액트 - 상기 표 데이터는 엔트리를 포함하고, 상기 엔트리는 글자 시퀀스를 포함함 - 와,
    상기 표 데이터의 수신에 응답하여, 상기 글자 시퀀스 및 상기 글자 시퀀스의 공지된 동의어를 포함하도록 자동 음성 인식(ASR) 시스템의 언어 모델을 갱신하는 액트와,
    발언(spoken utterance)을 나타내는 음성 신호를 수신하는 액트 - 상기 발언은 상기 글자 시퀀스 또는 상기 글자 시퀀스의 상기 공지된 동의어를 포함함 - 와,
    상기 음성 신호를 디코딩하는 액트 - 상기 음성 신호를 디코딩하는 액트는 상기 발언이 상기 글자 시퀀스 또는 상기 글자 시퀀스의 상기 공지된 동의어를 포함한다는 것을 식별하는 액트를 포함함 - 와,
    상기 음성 신호의 상기 디코딩에 기초하여 상기 표 데이터에 대해 연산을 수행하는 액트
    를 포함하는 액트를 수행하게 하는 명령어를 포함하는
    컴퓨터 판독 가능 저장 매체.
KR1020167001093A 2013-07-15 2014-07-14 음성 입력에 기초한 테이블형 데이터에 관한 연산의 수행 기법 KR102334064B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361846574P 2013-07-15 2013-07-15
US61/846,574 2013-07-15
US14/283,254 US10956433B2 (en) 2013-07-15 2014-05-21 Performing an operation relative to tabular data based upon voice input
US14/283,254 2014-05-21
PCT/US2014/046457 WO2015009586A2 (en) 2013-07-15 2014-07-14 Performing an operation relative to tabular data based upon voice input

Publications (2)

Publication Number Publication Date
KR20160030943A true KR20160030943A (ko) 2016-03-21
KR102334064B1 KR102334064B1 (ko) 2021-12-01

Family

ID=52277802

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167001063A KR102254979B1 (ko) 2013-07-15 2014-07-14 식별된 개체에 기반한 속성 값의 인출 기법
KR1020167001093A KR102334064B1 (ko) 2013-07-15 2014-07-14 음성 입력에 기초한 테이블형 데이터에 관한 연산의 수행 기법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020167001063A KR102254979B1 (ko) 2013-07-15 2014-07-14 식별된 개체에 기반한 속성 값의 인출 기법

Country Status (17)

Country Link
US (2) US10776375B2 (ko)
EP (2) EP3022660A2 (ko)
JP (1) JP6480925B2 (ko)
KR (2) KR102254979B1 (ko)
CN (2) CN105493075B (ko)
AU (1) AU2014290354B2 (ko)
CA (1) CA2917471C (ko)
CL (1) CL2016000074A1 (ko)
HK (1) HK1217782A1 (ko)
IL (1) IL243379B (ko)
MX (1) MX2016000687A (ko)
MY (1) MY183509A (ko)
PH (1) PH12016500048A1 (ko)
RU (1) RU2683507C2 (ko)
SG (2) SG10201800225YA (ko)
WO (2) WO2015009587A2 (ko)
ZA (1) ZA201600278B (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190003355A (ko) * 2017-06-30 2019-01-09 일렉트로닉 아트 아이엔씨. 비디오 게임을 위한 인터랙티브 음성-제어 컴패니언 애플리케이션
US10926173B2 (en) 2019-06-10 2021-02-23 Electronic Arts Inc. Custom voice control of video game character
US11120113B2 (en) 2017-09-14 2021-09-14 Electronic Arts Inc. Audio-based device authentication system

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10185477B1 (en) 2013-03-15 2019-01-22 Narrative Science Inc. Method and system for configuring automatic generation of narratives from data
US10630751B2 (en) * 2016-12-30 2020-04-21 Google Llc Sequence dependent data message consolidation in a voice activated computer network environment
US10776375B2 (en) 2013-07-15 2020-09-15 Microsoft Technology Licensing, Llc Retrieval of attribute values based upon identified entities
US20190065502A1 (en) * 2014-08-13 2019-02-28 Google Inc. Providing information related to a table of a document in response to a search query
US11314760B2 (en) 2014-09-24 2022-04-26 Oracle International Corporation Uploading external files and associating them with existing data models
US9875246B2 (en) * 2014-10-02 2018-01-23 Liquid Presentation LLC System and method for generating and displaying a cocktail recipe presentation
US20160162582A1 (en) * 2014-12-09 2016-06-09 Moodwire, Inc. Method and system for conducting an opinion search engine and a display thereof
CN104809102B (zh) * 2015-04-01 2018-10-16 北京奇虎科技有限公司 一种基于输入的显示候选词的方法和装置
US10198471B2 (en) 2015-05-31 2019-02-05 Microsoft Technology Licensing, Llc Joining semantically-related data using big table corpora
US11423023B2 (en) 2015-06-05 2022-08-23 Apple Inc. Systems and methods for providing improved search functionality on a client device
US10360902B2 (en) 2015-06-05 2019-07-23 Apple Inc. Systems and methods for providing improved search functionality on a client device
US10769184B2 (en) 2015-06-05 2020-09-08 Apple Inc. Systems and methods for providing improved search functionality on a client device
US9911001B2 (en) 2015-06-12 2018-03-06 Pearson Education, Inc. Automatic SQL query modification for data restriction
US10148808B2 (en) * 2015-10-09 2018-12-04 Microsoft Technology Licensing, Llc Directed personal communication for speech generating devices
US9679497B2 (en) 2015-10-09 2017-06-13 Microsoft Technology Licensing, Llc Proxies for speech generating devices
US10262555B2 (en) 2015-10-09 2019-04-16 Microsoft Technology Licensing, Llc Facilitating awareness and conversation throughput in an augmentative and alternative communication system
US20170116194A1 (en) 2015-10-23 2017-04-27 International Business Machines Corporation Ingestion planning for complex tables
US11023668B2 (en) 2015-11-02 2021-06-01 Microsoft Technology Licensing, Llc Enriched compound data objects
US10963635B2 (en) 2015-11-02 2021-03-30 Microsoft Technology Licensing, Llc Extensibility of compound data objects
US10599764B2 (en) 2015-11-02 2020-03-24 Microsoft Technology Licensing, Llc Operations on images associated with cells in spreadsheets
US10318528B2 (en) 2016-02-25 2019-06-11 Microsoft Technology Licensing, Llc Query response using mapping to parameterized report
US11475026B2 (en) * 2016-02-26 2022-10-18 Douglas Schiller Value discrepancy visualization apparatus and method thereof
JP6455466B2 (ja) * 2016-03-02 2019-01-23 京セラドキュメントソリューションズ株式会社 表示操作装置およびプログラム
US10482132B2 (en) * 2016-03-16 2019-11-19 Microsoft Technology Licensing, Llc Contact creation and utilization
US9818406B1 (en) 2016-06-23 2017-11-14 Intuit Inc. Adjusting user experience based on paralinguistic information
KR20180024927A (ko) * 2016-08-31 2018-03-08 삼성전자주식회사 디스플레이 장치 및 디스플레이 장치의 제어 방법
US10659398B2 (en) 2016-10-03 2020-05-19 Nohold, Inc. Interactive virtual conversation interface systems and methods
CN107977381B (zh) * 2016-10-24 2021-08-27 华为技术有限公司 数据配置方法、索引管理方法、相关装置以及计算设备
US10135989B1 (en) 2016-10-27 2018-11-20 Intuit Inc. Personalized support routing based on paralinguistic information
US10515632B2 (en) * 2016-11-15 2019-12-24 At&T Intellectual Property I, L.P. Asynchronous virtual assistant
US11093494B2 (en) * 2016-12-06 2021-08-17 Microsoft Technology Licensing, Llc Joining tables by leveraging transformations
US10997227B2 (en) 2017-01-18 2021-05-04 Google Llc Systems and methods for processing a natural language query in data tables
US10572606B1 (en) * 2017-02-17 2020-02-25 Narrative Science Inc. Applied artificial intelligence technology for runtime computation of story outlines to support natural language generation (NLG)
US10983853B2 (en) * 2017-03-31 2021-04-20 Microsoft Technology Licensing, Llc Machine learning for input fuzzing
KR102068182B1 (ko) * 2017-04-21 2020-01-20 엘지전자 주식회사 음성 인식 장치, 및 음성 인식 시스템
US10366690B1 (en) * 2017-05-15 2019-07-30 Amazon Technologies, Inc. Speech recognition entity resolution
US10331402B1 (en) * 2017-05-30 2019-06-25 Amazon Technologies, Inc. Search and knowledge base question answering for a voice user interface
US10496363B2 (en) * 2017-06-16 2019-12-03 T-Mobile Usa, Inc. Voice user interface for data access control
US10334415B2 (en) 2017-06-16 2019-06-25 T-Mobile Usa, Inc. Voice user interface for device and component control
US20190103111A1 (en) * 2017-10-03 2019-04-04 Rupert Labs Inc. ( DBA Passage AI) Natural Language Processing Systems and Methods
US11574287B2 (en) 2017-10-10 2023-02-07 Text IQ, Inc. Automatic document classification
US11372862B2 (en) * 2017-10-16 2022-06-28 Nuance Communications, Inc. System and method for intelligent knowledge access
US11132503B2 (en) * 2017-10-30 2021-09-28 Nohold, Inc. Query a system via natural language NLP2X
JP6954821B2 (ja) * 2017-12-11 2021-10-27 トヨタ自動車株式会社 対話管理装置及びプログラム
WO2019133701A1 (en) 2017-12-27 2019-07-04 Allfast Fastening Systems Tacking fastener
US10445422B2 (en) * 2018-02-09 2019-10-15 Microsoft Technology Licensing, Llc Identification of sets and manipulation of set data in productivity applications
CN108520745B (zh) * 2018-03-16 2020-10-02 北京云知声信息技术有限公司 设备画像信息的操作方法及装置
KR102508863B1 (ko) 2018-03-19 2023-03-10 삼성전자 주식회사 전자 장치 및 상기 전자 장치로부터 수신된 데이터를 처리하는 서버
CA3111511C (en) * 2018-09-18 2023-04-11 Tableau Software, Inc. Analyzing natural language expressions in a data visualization user interface
US11048871B2 (en) * 2018-09-18 2021-06-29 Tableau Software, Inc. Analyzing natural language expressions in a data visualization user interface
US10902045B2 (en) * 2018-09-18 2021-01-26 Tableau Software, Inc. Natural language interface for building data visualizations, including cascading edits to filter expressions
WO2020086722A1 (en) * 2018-10-23 2020-04-30 Yext, Inc. Knowledge search system
US11914659B2 (en) * 2018-12-10 2024-02-27 Trent Zimmer Data shaping system
KR102121975B1 (ko) * 2018-12-26 2020-06-11 주식회사 엘지씨엔에스 동기화 테이블을 통한 실제 데이터 제공 방법 및 데이터 관리 시스템
CN109783651B (zh) * 2019-01-29 2022-03-04 北京百度网讯科技有限公司 提取实体相关信息的方法、装置、电子设备和存储介质
CN110060674B (zh) * 2019-03-15 2022-02-01 重庆小雨点小额贷款有限公司 表格管理方法、装置、终端和存储介质
CN110347690B (zh) * 2019-07-18 2022-08-09 网易(杭州)网络有限公司 一种计分板的数据索引方法和装置
US11176147B2 (en) * 2019-07-25 2021-11-16 Microsoft Technology Licensing, Llc Querying a relational knowledgebase that provides data extracted from plural sources
US11455339B1 (en) 2019-09-06 2022-09-27 Tableau Software, LLC Incremental updates to natural language expressions in a data visualization user interface
CN110555015B (zh) * 2019-09-09 2023-11-03 腾讯科技(深圳)有限公司 数据库实体管理方法、装置、电子设备及存储介质
US11074048B1 (en) 2020-04-28 2021-07-27 Microsoft Technology Licensing, Llc Autosynthesized sublanguage snippet presentation
KR20210133588A (ko) * 2020-04-29 2021-11-08 엘지전자 주식회사 디스플레이 장치 및 그의 동작 방법
US11327728B2 (en) 2020-05-07 2022-05-10 Microsoft Technology Licensing, Llc Source code text replacement by example
US11481195B2 (en) 2020-06-09 2022-10-25 Google Llc Synthesizing programs in a spreadsheet programming language
US11900080B2 (en) 2020-07-09 2024-02-13 Microsoft Technology Licensing, Llc Software development autocreated suggestion provenance
US11698933B1 (en) 2020-09-18 2023-07-11 Tableau Software, LLC Using dynamic entity search during entry of natural language commands for visual data analysis
US11301631B1 (en) 2020-10-05 2022-04-12 Tableau Software, LLC Visually correlating individual terms in natural language input to respective structured phrases representing the natural language input
EP4200841A4 (en) * 2020-12-18 2024-02-21 Samsung Electronics Co Ltd METHOD AND SYSTEMS FOR DECODING AN AUDIO INTERROGATION
CA3208517A1 (en) * 2021-02-26 2022-09-01 Cesar LEE Apparatus and method for forming pivot tables from pivot frames
CN113205805B (zh) * 2021-03-18 2024-02-20 福建马恒达信息科技有限公司 一种语音插件辅助的表格便捷操作方法
US11941372B2 (en) 2021-04-01 2024-03-26 Microsoft Technology Licensing, Llc Edit automation using an anchor target list
US11875136B2 (en) 2021-04-01 2024-01-16 Microsoft Technology Licensing, Llc Edit automation using a temporal edit pattern
US20220358910A1 (en) * 2021-05-06 2022-11-10 Microsoft Technology Licensing, Llc Scalable entities and patterns mining pipeline to improve automatic speech recognition
CN113221543B (zh) * 2021-05-07 2023-10-10 中国医学科学院医学信息研究所 一种医学术语整合方法及系统
US20230106058A1 (en) * 2021-09-24 2023-04-06 Google Llc Autonomous spreadsheet creation
US20230094042A1 (en) * 2021-09-24 2023-03-30 Google Llc Personalized autonomous spreadsheets
US11734365B1 (en) 2022-02-28 2023-08-22 Unlimidata Limited Knowledge-enriched item set expansion system and method
EP4303716A1 (en) * 2022-07-05 2024-01-10 Continental Automotive Technologies GmbH Method for generating data input, data input system and computer program

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6125347A (en) * 1993-09-29 2000-09-26 L&H Applications Usa, Inc. System for controlling multiple user application programs by spoken input
KR20060043741A (ko) * 2004-03-18 2006-05-15 마이크로소프트 코포레이션 자연 언어 커맨드에 따른 표 렌더링
US20070038449A1 (en) * 2004-03-01 2007-02-15 Coifman Robert E Method and apparatus for improving the transcription accuracy of speech recognition software
US20120059655A1 (en) * 2010-09-08 2012-03-08 Nuance Communications, Inc. Methods and apparatus for providing input to a speech-enabled application program

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701469A (en) 1995-06-07 1997-12-23 Microsoft Corporation Method and system for generating accurate search results using a content-index
WO1998009228A1 (en) 1996-08-29 1998-03-05 Bcl Computers, Inc. Natural-language speech control
US5926822A (en) * 1996-09-06 1999-07-20 Financial Engineering Associates, Inc. Transformation of real time data into times series and filtered real time data within a spreadsheet application
US6094635A (en) 1997-09-17 2000-07-25 Unisys Corporation System and method for speech enabled application
US6134563A (en) * 1997-09-19 2000-10-17 Modernsoft, Inc. Creating and editing documents
US5950167A (en) * 1998-01-26 1999-09-07 Lucent Technologies Inc. Screen-less remote voice or tone-controlled computer program operations via telephone set
DE19837102A1 (de) 1998-08-17 2000-02-24 Philips Corp Intellectual Pty Verfahren und Anordnung zum Durchführen einer Datenbankanfrage
EP1133734A4 (en) * 1998-10-02 2005-12-14 Ibm INTERACTIVE NAVIGATOR AND INTERACTIVE SYSTEMS
US6816837B1 (en) * 1999-05-06 2004-11-09 Hewlett-Packard Development Company, L.P. Voice macros for scanner control
EP1238348B1 (en) 1999-07-15 2004-01-28 Richard B. Himmelstein Communication device for efficiently accessing internet resources
KR20010095401A (ko) 2000-03-30 2001-11-07 정일봉 인터넷 웹사이트의 검색 및 출력방법
JP2001319046A (ja) 2000-05-08 2001-11-16 Ogaki Kyoritsu Bank Ltd 不動産担保物件管理方法、及び不動産担保物件管理装置、並びに不動産担保物件管理プログラムを記録した記録媒体。
GB2368929B (en) 2000-10-06 2004-12-01 Andrew Mather An improved system for storing and retrieving data
DE10060654C1 (de) 2000-12-06 2002-06-20 Varetis Ag Verfahren und Vorrichtung zur automatischen Auskunfterteilung mittels einer Suchmaschine
US6714939B2 (en) 2001-01-08 2004-03-30 Softface, Inc. Creation of structured data from plain text
US6832196B2 (en) 2001-03-30 2004-12-14 International Business Machines Corporation Speech driven data selection in a voice-enabled program
US6732090B2 (en) 2001-08-13 2004-05-04 Xerox Corporation Meta-document management system with user definable personalities
US6820075B2 (en) 2001-08-13 2004-11-16 Xerox Corporation Document-centric system with auto-completion
US20030110040A1 (en) * 2001-12-07 2003-06-12 Creative Logic Solutions Inc. System and method for dynamically changing software programs by voice commands
US20030120493A1 (en) * 2001-12-21 2003-06-26 Gupta Sunil K. Method and system for updating and customizing recognition vocabulary
RU2273879C2 (ru) 2002-05-28 2006-04-10 Владимир Владимирович Насыпный Способ синтеза самообучающейся системы извлечения знаний из текстовых документов для поисковых систем
KR100490406B1 (ko) 2002-07-11 2005-05-17 삼성전자주식회사 음성 명령어 처리 장치 및 방법
USH2189H1 (en) * 2002-10-21 2007-05-01 Oracle International Corporation SQL enhancements to support text queries on speech recognition results of audio data
US7350187B1 (en) 2003-04-30 2008-03-25 Google Inc. System and methods for automatically creating lists
US7127505B2 (en) 2003-08-15 2006-10-24 Internet Associates, Llc Methods, computer systems, and computer readable media for generating displays of sets of network addresses with status indicators
US20050050042A1 (en) * 2003-08-20 2005-03-03 Marvin Elder Natural language database querying
EP1569135A1 (en) 2004-01-19 2005-08-31 Sap Ag A database management system and a method of managing a database
US7613676B2 (en) * 2004-07-27 2009-11-03 Microsoft Corporation Generating a database model from natural language expressions of business rules
US20070055556A1 (en) * 2005-07-06 2007-03-08 Frank-Backman Elizabeth G Spreadsheet Generator
US7899258B2 (en) 2005-08-12 2011-03-01 Seiko Epson Corporation Systems and methods to convert images into high-quality compressed documents
US8234293B2 (en) 2005-09-08 2012-07-31 Microsoft Corporation Autocompleting with queries to a database
US7813942B2 (en) * 2005-10-04 2010-10-12 Rose Radiology, Llc After-hours radiology system
US20070219956A1 (en) 2006-03-16 2007-09-20 Milton Michael L Excel spreadsheet parsing to share cells, formulas, tables, etc.
US20070220415A1 (en) 2006-03-16 2007-09-20 Morgan Mao Cheng Excel spreadsheet parsing to share cells, formulas, tables or entire spreadsheets across an enterprise with other users
US7730060B2 (en) 2006-06-09 2010-06-01 Microsoft Corporation Efficient evaluation of object finder queries
US20080016041A1 (en) 2006-07-14 2008-01-17 Frost Brandon H Spreadsheet-based relational database interface
US20080153465A1 (en) 2006-12-26 2008-06-26 Voice Signal Technologies, Inc. Voice search-enabled mobile device
US8886540B2 (en) * 2007-03-07 2014-11-11 Vlingo Corporation Using speech recognition results based on an unstructured language model in a mobile communication facility application
US8260809B2 (en) 2007-06-28 2012-09-04 Microsoft Corporation Voice-based search processing
ATE479983T1 (de) 2007-10-24 2010-09-15 Harman Becker Automotive Sys Verfahren und system zur spracherkennung zum durchsuchen einer datenbank
US20090319542A1 (en) 2008-06-19 2009-12-24 Pierre Jean Le Brazidec Systems and methods to automatically replace content in a range of spreadsheet cells with information from a database
US20150363478A1 (en) 2008-07-11 2015-12-17 Michael N. Haynes Systems, Devices, and/or Methods for Managing Data
CN103488681A (zh) 2009-06-19 2014-01-01 布雷克公司 斜线标签
US8015172B1 (en) 2009-07-03 2011-09-06 eBridge, Inc. Method of conducting searches on the internet to obtain selected information on local entities and provide for searching the data in a way that lists local businesses at the top of the results
CN102640145B (zh) * 2009-08-31 2015-09-23 达索系统公司 可信查询系统和方法
US8972930B2 (en) * 2010-06-04 2015-03-03 Microsoft Corporation Generating text manipulation programs using input-output examples
US8812298B1 (en) * 2010-07-28 2014-08-19 Wolfram Alpha Llc Macro replacement of natural language input
CN103229162B (zh) * 2010-09-28 2016-08-10 国际商业机器公司 使用候选答案逻辑综合提供问题答案
CN103229223A (zh) * 2010-09-28 2013-07-31 国际商业机器公司 使用多个候选答案评分模型提供问题答案
KR101172487B1 (ko) 2010-11-29 2012-08-14 엔에이치엔(주) 검색 결과 내에 첨부된 정보 데이터베이스에 기초한 검색 리스트 및 검색어 순위 제공 방법 및 시스템
US20120185787A1 (en) 2011-01-13 2012-07-19 Microsoft Corporation User interface interaction behavior based on insertion point
US8972387B2 (en) 2011-07-28 2015-03-03 International Business Machines Corporation Smarter search
JP5698203B2 (ja) 2011-09-30 2015-04-08 アップル インコーポレイテッド バーチャルアシスタントのコマンド処理を容易にするためのコンテクスト情報の使用
WO2013071305A2 (en) 2011-11-10 2013-05-16 Inventime Usa, Inc. Systems and methods for manipulating data using natural language commands
US9443021B2 (en) 2011-12-30 2016-09-13 Microsoft Technology Licensing, Llc Entity based search and resolution
US9171081B2 (en) 2012-03-06 2015-10-27 Microsoft Technology Licensing, Llc Entity augmentation service from latent relational data
US8972324B2 (en) * 2012-07-25 2015-03-03 Toytalk, Inc. Systems and methods for artificial intelligence script modification
US20140052480A1 (en) * 2012-08-17 2014-02-20 Pilot Catastrophe Services, Inc. Voice activated database management via wireless handset
US9330090B2 (en) * 2013-01-29 2016-05-03 Microsoft Technology Licensing, Llc. Translating natural language descriptions to programs in a domain-specific language for spreadsheets
US20140358964A1 (en) * 2013-05-28 2014-12-04 International Business Machines Corporation Natural language processing (NLP) query formulation engine for a computing device
US10776375B2 (en) 2013-07-15 2020-09-15 Microsoft Technology Licensing, Llc Retrieval of attribute values based upon identified entities
JP6549563B2 (ja) * 2013-09-30 2019-07-24 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 内容ベースの医療マクロのソート及び検索システムのためのシステム及び方法
CN105934791B (zh) * 2014-01-31 2019-11-22 惠普发展公司,有限责任合伙企业 语音输入命令

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6125347A (en) * 1993-09-29 2000-09-26 L&H Applications Usa, Inc. System for controlling multiple user application programs by spoken input
US20070038449A1 (en) * 2004-03-01 2007-02-15 Coifman Robert E Method and apparatus for improving the transcription accuracy of speech recognition software
KR20060043741A (ko) * 2004-03-18 2006-05-15 마이크로소프트 코포레이션 자연 언어 커맨드에 따른 표 렌더링
US20120059655A1 (en) * 2010-09-08 2012-03-08 Nuance Communications, Inc. Methods and apparatus for providing input to a speech-enabled application program

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190003355A (ko) * 2017-06-30 2019-01-09 일렉트로닉 아트 아이엔씨. 비디오 게임을 위한 인터랙티브 음성-제어 컴패니언 애플리케이션
US11077361B2 (en) 2017-06-30 2021-08-03 Electronic Arts Inc. Interactive voice-controlled companion application for a video game
US11120113B2 (en) 2017-09-14 2021-09-14 Electronic Arts Inc. Audio-based device authentication system
US10926173B2 (en) 2019-06-10 2021-02-23 Electronic Arts Inc. Custom voice control of video game character

Also Published As

Publication number Publication date
WO2015009587A3 (en) 2015-07-09
KR102334064B1 (ko) 2021-12-01
CL2016000074A1 (es) 2016-10-07
KR102254979B1 (ko) 2021-05-21
EP3022660A2 (en) 2016-05-25
JP2016525253A (ja) 2016-08-22
AU2014290354A1 (en) 2016-01-28
US10956433B2 (en) 2021-03-23
CN105408890A (zh) 2016-03-16
CN105408890B (zh) 2021-07-13
JP6480925B2 (ja) 2019-03-13
RU2016100989A (ru) 2017-07-18
MY183509A (en) 2021-02-23
HK1217782A1 (zh) 2017-01-20
WO2015009586A2 (en) 2015-01-22
CA2917471A1 (en) 2015-01-22
MX2016000687A (es) 2016-04-15
EP3022661A2 (en) 2016-05-25
SG11201600105QA (en) 2016-02-26
KR20160030942A (ko) 2016-03-21
RU2016100989A3 (ko) 2018-05-17
RU2683507C2 (ru) 2019-03-28
US20150019540A1 (en) 2015-01-15
CA2917471C (en) 2021-01-19
AU2014290354B2 (en) 2019-08-01
IL243379A0 (en) 2016-02-29
SG10201800225YA (en) 2018-02-27
IL243379B (en) 2019-07-31
CN105493075B (zh) 2020-09-25
US10776375B2 (en) 2020-09-15
WO2015009587A2 (en) 2015-01-22
US20150019216A1 (en) 2015-01-15
WO2015009586A3 (en) 2015-06-18
PH12016500048A1 (en) 2016-03-28
ZA201600278B (en) 2017-05-31
CN105493075A (zh) 2016-04-13

Similar Documents

Publication Publication Date Title
KR102334064B1 (ko) 음성 입력에 기초한 테이블형 데이터에 관한 연산의 수행 기법
US10698977B1 (en) System and methods for processing fuzzy expressions in search engines and for information extraction
US10628472B2 (en) Answering questions via a persona-based natural language processing (NLP) system
US11645317B2 (en) Recommending topic clusters for unstructured text documents
US20190384762A1 (en) Computer-implemented method of querying a dataset
US8346795B2 (en) System and method for guiding entity-based searching
US9483730B2 (en) Hybrid review synthesis
US9201868B1 (en) System, methods and user interface for identifying and presenting sentiment information
US9684741B2 (en) Presenting search results according to query domains
US10140333B2 (en) Trusted query system and method
KR101524889B1 (ko) 간접 화법 내에서의 시맨틱 관계의 식별
US10552467B2 (en) System and method for language sensitive contextual searching
US20130060769A1 (en) System and method for identifying social media interactions
US20120323905A1 (en) Ranking data utilizing attributes associated with semantic sub-keys
US10073828B2 (en) Updating language databases using crowd-sourced input
CN109508441B (zh) 通过自然语言实现数据统计分析的方法、装置及电子设备
CN112262382A (zh) 上下文深层书签的注释和检索
US20120317141A1 (en) System and method for ordering of semantic sub-keys
US9875298B2 (en) Automatic generation of a search query
WO2022271440A1 (en) Visual autocompletion for geospatial queries
US20120317103A1 (en) Ranking data utilizing multiple semantic keys in a search query
EP4328764A1 (en) Artificial intelligence-based system and method for improving speed and quality of work on literature reviews
US11494061B1 (en) Using a natural language interface to generate dashboards corresponding to selected data sources

Legal Events

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