KR20080085165A - 입력 데이터 확장 시스템 및 방법, 및 와일드카드 삽입 및입력 데이터 확장 시스템 - Google Patents
입력 데이터 확장 시스템 및 방법, 및 와일드카드 삽입 및입력 데이터 확장 시스템 Download PDFInfo
- Publication number
- KR20080085165A KR20080085165A KR1020087017050A KR20087017050A KR20080085165A KR 20080085165 A KR20080085165 A KR 20080085165A KR 1020087017050 A KR1020087017050 A KR 1020087017050A KR 20087017050 A KR20087017050 A KR 20087017050A KR 20080085165 A KR20080085165 A KR 20080085165A
- Authority
- KR
- South Korea
- Prior art keywords
- input data
- component
- data
- wildcard
- candidate list
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/274—Converting codes to words; Guess-ahead of partial word inputs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Machine Translation (AREA)
- Input From Keyboards Or The Like (AREA)
- Stored Programmes (AREA)
- Document Processing Apparatus (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 청구되는 내용은 입력 데이터를 확장하는 시스템 및/또는 방법을 제공한다. 인터페이스는 입력 데이터를 획득할 수 있으며, 와일드카드 삽입 컴포넌트는 각 의도된 단어의 끝에 삽입되는 적어도 하나의 암시적인 와일드카드를 포함하도록 입력 데이터를 수정할 수 있다. 또한, 확장 컴포넌트는, 와일드카드의 유망한 확장을 제공하는 언어 모델을 이용하여 적어도 하나의 암시적인 와일드카드를 포함하는 입력 데이터에 적어도 부분적으로 기초하여 확장된 데이터의 후보 리스트를 생성할 수 있다. 또한, 확장 컴포넌트는 서버측에서 입력 데이터를 평가할 수 있다.
확장, 와일드카드, 언어 모델, 자동 검색, 후보 리스트
Description
컴퓨터 하드웨어, 소프트웨어 및 네트워킹에서의 기술적 진보로 인해, 본질적으로 전 세계의 어디에서나 정보 교환을 위해 서로 통신을 행할 수 있는 효율적이고 가격면에서 효과적인 컴퓨팅 시스템(예를 들면, 데스크탑 컴퓨터, 랩탑, 핸드헬드, 셀룰라 전화, 서버,...)이 도출되었다. 이들 시스템은 계속해서 보다 신뢰성있고 견고하며 사용자에게 친숙한 시스템으로 발전하고 있다. 진보로 인해, 인터넷에 액세스하고 브라우징하며 검색하고, 이메일 메시지를 작성, 송신 및 수신하고, 문서를 보고 편집하며, 텍스트 메시지 및/또는 인스턴트 메시지를 전송하고 얻으며, 또한 기타 수많은 액션들을 수행하는 데에, 이들 컴퓨팅 시스템이 이용될 수 있게 되었다. 예를 들면, 사용자는, 영화 시간에 대해 인터넷을 검색하고 이메일, 텍스트 메시지, 또는 인스턴트 메시지를 전송함으로써 특정 전시회에 친구를 초대하기 위해 셀룰라 전화 및/또는 PDA(personal digital assistant)를 이용할 수 있다.
이들 시스템들이 계속해서 발전함에 따라, 정보의 입력과 연관하여 다양한 기술들이 이용되어 왔다. 초기의 컴퓨팅 시스템들의 일부는 펀치 카드 및 종이 테이프를 이용하여 입력을 수신하였다. 보다 최근의 개선에서는, 키보드, 마우스, 터치 감응 스크린, 펜 장치, 광학 문자 인식, 음성 인식 등을 이용하여 이러한 장치에 정보를 제공하는 것이 가능하게 되었다. 예를 들면, 통상의 시스템들에서는 종종 장치의 유형에 따라 크기가 변동될 수 있는 키보드를 채용한다. 예를 들면, 퍼스널 컴퓨터 또는 랩탑 컴퓨터는, 각 문자숫자식의(alphanumeric) 문자가 각각의 키와 연관될 수 있는 QWERTY 레이아웃에 기초한 키보드를 이용할 수 있고, 셀룰라 전화는, 다수의 알파벳 문자가 하나의 키를 숫자 문자와 공유하도록 더 적은 수의 키를 포함할 수 있다. 예를 들면, 셀룰라 전화 키패드 상의 "2" 키는 통상적으로 문자 "A", "B", 및 "C"와 연관된다.
현재, 제한된 키보드를 이용하여 텍스트를 입력하는 데에 다수의 기술이 이용될 수 있는데, 여기서 둘 이상의 문자숫자식의 문자가 특정 키와 연관됨으로 인해 모호성이 존재할 수 있다. 예를 들면, 사용자가 원하는 글자 또는 숫자를 입력하기 위해 숫자 키를 여러 번 누르는 다중 탭(multiple-tap) 방안이 이용될 수 있다. 예를 들어, 숫자 2를 입력하기 위해서는 "2" 키가 한번 눌러질 수 있으며, 글자 A를 입력하기 위해서는 두 번 눌러질 수 있으며, 글자 B를 입력하기 위해서는 세 번 눌러질 수 있으며, 글자 C를 입력하기 위해서는 네 번 눌러질 수 있다. 포즈(pause) 및/또는 화살표 키 등의, 커서를 움직이는 키를 누름으로써 별개의 문자숫자식의 문자들 간을 구별하는 것을 도울 수 있다. 그러나, 이러한 기술은 사용자에게 있어 통상적으로 시간 소모적인 것이며 효과적이지 않은데, 그 이유는 하나의 문자숫자식의 문자를 입력하기 위해 하나의 키가 여러 번 눌러질 수 있기 때문이다.
숫자 키를 이용하여 텍스트를 입력하는 다른 통상적인 방안은, 사용자가 원하는 글자와 연관된 숫자 키를 한번 누르는 싱글 탭(single-tap) 방안이다. 그 후, 예를 들어 단어에 대응하는 문자 시퀀스를 메모리에 저장된 시퀀스와 매칭시킴으로써 입력된 문자를 명확하게 한다. 예를 들면, "cell"이라는 단어를 입력하기 위해 사용자는 시퀀스 2-3-5-5를 누를 수 있는데, 이는 메모리 내에 저장된 시퀀스와 비교될 수 있다. 이러한 싱글 탭 방안은 텍스트를 입력하는 데에 있어 보다 효과적인 방식을 제공하지만, 이는 다수의 문제점과 연관되어 있다. 특히, 싱글 탭 방안에서의 입력에는 모호성이 남아 있을 수 있으며, 이에 따라 이러한 모호성을 해결하기 위해 추가적인 사용자 입력이 통상적으로 요구된다. 전술한 예에 의하면, 입력되는 시퀀스 2-3-5-5는 전술한 바와 같이 단어 "cell"과 연관된 시퀀스와 매칭될 뿐만 아니라 단어 "bell"과 관련된 키 시퀀스와도 매칭될 수 있다. 따라서, 이러한 모호한 가능 단어들 간을 구별하기 위해 추가적인 입력이 통상적으로 요구된다.
따라서, 풀(full) 키보드를 가지지 않은 통상의 시스템들은 데이터를 입력하는 데에 있어 종종 비효율적이고 시간 소모적인 기술과 연관된다. 제한된 키보드와 연관된 전술한 어려움 이외에도, PDA와 같은 장치는 통상적으로, 데이터 입력이 비효율적이고/이거나 느릴 수 있는 핸드라이팅(handwriting)의 형태를 이용한다. 또한, 키보드가 이용가능할 때에도, 사용자는 철자법을 잘 모를 수 있으며/있거나 적절하고/하거나 인기있는 입력과 친숙하지 않을 수 있다.
<요약>
이하에서는, 본원에서 설명되는 몇몇 양태들에 대한 기본적인 이해를 제공하기 위해 간략한 요약을 제공한다. 이 요약은, 본 청구되는 내용의 광범위한 개요는 아니다. 본 청구되는 내용의 핵심적이거나 중요한 구성요소를 식별하기 위한 것도 아니며 본 청구되는 내용의 범위를 묘사하기 위한 것도 아니다. 본 요약의 유일한 목적은, 나중에 제시되는 보다 상세한 설명에 대한 서두로서 간략화된 형태로 일부 개념들을 제공하는 것이다.
본 청구되는 내용은 입력 데이터를 확장시키는 것을 용이하게 해주는 시스템 및/또는 방법에 관한 것이다. 입력 데이터는 그 내에 삽입되는 명시적인 와일드카드(들)을 포함할 수 있으며/있거나 암시적인 와일드카드(들)을 가질 수 있다. 와일드카드(들)는 그 후 언어 모델을 이용하여 확장될 수 있다. 예를 들면, k-베스트(k-best) 확장이 제안들로서 제공될 수 있다. 예를 들면, 검색을 수행하고, 문서 및/또는 메시지(예를 들면, 텍스트 메시지, 인스턴트 메시지, 이메일,...)에 텍스트를 입력하는 등을 행하기 위해 상기 제안들 중 하나 이상이 선택될 수 있다. 예를 들면, 입력 데이터는 임의의 수의 의도된 단어들과 연관될 수 있다. 의도된 단어들 각각은, 후보 리스트가 생성되어 이 후보 리스트로부터 선택이 행해질 수 있도록 언어 모델에 적어도 부분적으로 기초하여 확장될 수 있다.
본 청구되는 내용의 각종 양태에 따르면, 확장 컴포넌트는, 획득되는 입력 데이터에 적어도 부분적으로 기초하여 확장 데이터의 후보 리스트를 발생시킬 수 있다. 확장 컴포넌트는 입력 데이터와 연관된 와일드카드들의 유망한 확장을 제공하기 위해 언어 모델을 이용할 수 있다. 입력 데이터는 어떠한 유형의 입력 장치에 의해서도 생성될 수 있음을 알아야 한다. 예를 들면, 데스크탑 컴퓨터, 랩탑, 핸드헬드, 셀룰라 전화, 서버 등이 입력 데이터를 제공할 수 있다. 또한, 입력 데이터는 알파벳 데이터, 숫자 데이터(예를 들면 셀룰라 전화의 키패드를 이용한 입력), 음성 데이터, 핸드라이팅 데이터, 이들의 조합 등을 포함할 수 있다. 또한, 입력 데이터는 (예를 들어 알파벳 문자를 포함하기 위해) 적절한 형태로 변환될 수 있다.
본 청구되는 내용의 하나 이상의 양태에 따르면, 암시적인 와일드카드(들)가, 획득될 수 있는 입력 데이터에 삽입될 수 있다. 암시적인 와일드카드(들)는 입력 데이터 내의 어떠한 위치에도 배치될 수 있다. 예를 들면, 암시적인 와일드카드(들)는 입력 데이터의 시작 부분 및/또는 끝에 삽입될 수 있다. 또한, 혹은 대안적으로, 암시적인 와일드카드(들)는, 입력 데이터 내의 의도된 단어들의 앞 및/또는 뒤에 포함될 수 있다.
본 청구되는 내용의 각종 양태에 따르면, (예를 들면, 명시적 및/또는 암시적인) 와일드카드(들)의 확장은 서버측에서 이루어질 수 있다. 서버측 애플리케이션은, 와일드카드 완성에 대한 적은 계산과 빠른 검색을 가능하게 할 수 있다. 또한, 위치 데이터를 고려하는 확장이 실시될 수 있다. 예를 들면, 위치 관련 확장이 더 높은 관련성과 연관될 수 있도록 언어 모델이 이용될 수 있다.
이하의 설명 및 첨부된 도면은 본 청구되는 내용의 소정의 예시적인 양태에서 상세하게 제시된다. 그러나, 이들 양태는 이러한 내용의 원리가 이용될 수 있는 몇몇 각종 방식을 나타낸 것이며, 본 청구되는 내용은 이러한 모든 양태들 및 이들의 등가물을 포함하는 것이다. 다른 이점들 및 신규한 특성들은 도면과 결부되어 고려될 때 이하의 상세한 설명으로부터 명확하게 될 것이다.
도 1은 입력 데이터를 확장하는 예시적인 시스템의 블럭도.
도 2는 암시적인 와일드카드들을 입력 데이터에 삽입하는 예시적인 시스템의 블럭도.
도 3은 입력 데이터의 서버측 확장을 수행하는 예시적인 시스템의 블럭도.
도 4는 입력 데이터와 연관된 와일드카드(들)를 완성시키는 예시적인 시스템의 블럭도.
도 5는 입력 데이터를 확장시키는 데에 이용되는 언어 모델을 트레이닝시키는 예시적인 시스템의 블럭도.
도 6은 입력 데이터로부터 생성된 후보 리스트를 수정 및/또는 이용하는 예시적인 시스템의 블럭도.
도 7은 위치 고려 사항에 적어도 부분적으로 기초하여 입력 데이터를 확장시키는 예시적인 시스템의 블럭도.
도 8은 확장된 데이터의 후보 리스트를 생성 및/또는 이용하는 것을 용이하게 해주는 예시적인 시스템의 블럭도.
도 9는 입력 데이터의 확장을 용이하게 해주는 예시적인 방법을 나타낸 도면.
도 10은 입력 데이터와 연관된 와일드카드(들)를 평가하는 것을 용이하게 해주는 예시적인 방법을 나타낸 도면.
도 11-23은 와일드카드들의 확장과 연관된 각종 양태들을 묘사하는 예시적인 스크린 샷을 나타낸 도면.
도 24는 본 청구되는 내용의 신규한 양태들이 이용될 수 있는 예시적인 네트워킹 환경을 나타낸 도면.
도 25는 본 청구되는 내용에 따라 이용될 수 있는 예시적인 동작 환경을 나타낸 도면.
본 청구되는 내용은, 도면 전체를 통해 동일한 참조 부호는 동일한 구성요소를 가리키는 데에 이용되는 도면을 참조하여 설명된다. 이하의 설명에서, 설명을 위해, 수많은 특정 상세사항이 제시되어 본 혁신적인 발명에 대한 철저한 이해를 제공한다. 그러나, 본 청구되는 내용은 이들 특정 상세사항 없이도 실시될 수 있음은 명백할 수 있다. 다른 예에서, 본 혁신적인 발명을 설명하는 것을 용이하게 해주기 위해 널리 공지된 구조 및 장치가 블럭도의 형태로 도시된다.
본원에서 이용되는 용어 "컴포넌트", "시스템", "인터페이스" 등은 컴퓨터 관련 엔티티, 하드웨어, (예를 들면 실행중인) 소프트웨어, 및/또는 펌웨어를 칭하는 것을 의도한 것이다. 예를 들면, 컴포넌트는, 프로세서 상에서 실행되는 프로세스, 프로세서, 개체, 실행파일, 프로그램, 및/또는 컴퓨터일 수 있다. 예를 들면, 서버 상에서 실행되는 애플리케이션 및 서버 양쪽 모두가 컴포넌트일 수 있다. 하나 이상의 컴포넌트가 프로세스 내에 존재할 수 있으며 컴포넌트는 하나의 컴퓨터 상에서 로컬화될 수 있고/있거나 두 개 이상의 컴퓨터들 사이에 분산될 수 있다.
또한, 본 청구되는 내용은, 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 임의의 조합을 생성하여 개시된 본 내용을 구현하도록 컴퓨터를 제어하기 위해 표준 프로그래밍 및/또는 엔지니어링 기술을 이용하여 방법, 장치, 또는 제품으로서 구현될 수 있다. 본원에서 사용되는 "제품"이라는 용어는, 임의의 컴퓨터 판독가능 장치, 캐리어, 매체로부터 액세스가능한 컴퓨터 프로그램을 포함하는 것을 의도한다. 예를 들면, 컴퓨터 판독가능 매체는, 자기 저장 장치(예를 들면, 하드 디스크, 플로피 디스크, 자기 스트립,...), 광 디스크(예를 들면, 컴팩트 디스크(CD), DVD(digital versatile disk), ...), 스마트 카드, 및 플래시 메모리 장치(예를 들면, 카드, 스틱, 키 드라이브, ...)를 포함할 수 있지만, 이에 제한되는 것은 아니다. 또한, 전자 메일을 송신 및 수신하거나 인터넷 또는 LAN 등의 네트워크에 액세스하는 데에 이용되는 것과 같은 컴퓨터 판독가능 전자 데이터를 전달하는 데에 반송파가 이용될 수 있음을 알아야 한다. 물론, 본 기술분야에 통상의 지식을 가진 자라면, 본 청구되는 내용의 범주 또는 정신으로부터 벗어나지 않고 이러한 구성에 대해 많은 변경이 행해질 수 있음을 알 것이다. 또한, "예시"라는 단어는 본원에서는 예, 실례, 또는 예증을 의미하는 데에 이용된다. "예시"로서 본원에서 설명되는 임의의 양태 또는 설계는, 다른 양태 또는 설계에 비해 바람직하거나 이로운 것으로 해석될 필요는 없다.
이제 도면을 참조하면, 도 1은 입력 데이터를 확장시키는 시스템(100)을 도시하고 있다. 시스템(100)은 입력 데이터를 획득하는 인터페이스(102)와, 입력 데이터를 이용하여 확장된 데이터의 후보 리스트를 생성하는 확장 컴포넌트(104)를 포함할 수 있다. 인터페이스(102)는 어떠한 유형의 입력 장치(도시하지 않음)로부터도 입력 데이터를 수신할 수 있다. 예를 들면, 입력 데이터는 퍼스널 컴퓨터, 랩탑, 핸드헬드, 셀룰라 전화, 서버 등에 의해 생성될 수 있다. 인터페이스(102) 및/또는 확장 컴포넌트(104)는 입력 장치에 결합될 수 있으며, 입력 장치 내에 완전히 혹은 부분적으로 포함될 수 있으며/있거나 독립형 컴포넌트일 수 있음을 알아야 한다.
임의의 유형의 입력 데이터가 인터페이스(102)에 의해 수신될 수 있다. 예를 들면, 사용자가 퍼스널 컴퓨터를 이용할 때, 인터페이스(102)는 사용자에 의해 눌러진 키와 연관된 문자숫자식의 문자를 얻을 수 있다. 또한, 사용자가 말한(spoken) 입력을 분석하기 위해 음성 인식이 이용될 수 있으며/있거나 필기된 데이터를 식별하기 위해 핸드라이팅 인식이 이용될 수 있으며, 이에 따라 인터페이스(102)는 청취가능 및/또는 눈에 보이는 데이터를 수신할 수 있다. 또다른 예에서는, 인터페이스(102)는 셀룰라 전화 키패드와 연관된 숫자 문자들을 수신할 수 있으며, 여기서 숫자 문자들 각각은 다수의 문자숫자식의 문자와 관련될 수 있다.
입력 데이터는 하나 이상의 명시적인 와일드카드들을 포함할 수 있다. 와일드카드(들)는 "*"으로 표시될 수 있지만, 임의의 다른 와이드카드들의 표시도 본 청구되는 내용의 범주 내에 포함된다(예를 들면, * 대신에 사운드, 마크 등과 같은 임의의 다른 문자도 와일드카드로서 이용될 수 있다). 명시적인 와일드카드들은 입력 데이터 내의 어느 곳에나 포함될 수 있다. 따라서, 예를 들면, 사용자가 "Lincoln"이라는 단어를 입력하기를 원할 경우, 입력 "Linc*n"이 퍼스널 컴퓨터와 연관된 키보드로 타이핑되어, 인터페이스(102)에 제공될 수 있다. 다른 예에 따르면, 사용자는 "m-star-t"를 발음할 수 있으며 이 입력 데이터는 확장 컴포넌트(104)로 제공될 수 있으며 이 확장 컴포넌트(104)는 이 입력 데이터를 "m*t"로서 식별하기 위해 음성 인식을 이용할 수 있다. 본 청구되는 내용은 이러한 예에 한정되지 않음을 알아야 한다.
입력 데이터를 획득한 후, 인터페이스(102)는 입력 데이터를 확장 컴포넌트(104)에 제공할 수 있다. 확장 컴포넌트(104)는, 입력 데이터와 연관된 와일드카드들의 유망한 확장을 제공하는 언어 모델의 이용을 가능케 해주는 언어 모델 컴포넌트(106)를 포함할 수 있다. 이에 따라, 언어 모델을 이용함으로써, 확장 컴포넌트(104)는 입력 데이터와 연관된 명시적인 와일드카드들을 확장시켜 확장된 데이터의 후보 리스트를 생성할 수 있게 된다. 또한, 혹은 대안적으로, 확장 컴포넌트(104)는 암시적인 와일드카드들을 입력 데이터에 삽입할 수 있으며, 이들 암시적인 와일드카드들은 언어 모델의 이용을 통해 마찬가지로 확장될 수 있다. 언어 모델은 k-베스트 확장을 찾는 데에 이용될 수 있다.
종래의 시스템들은 사용자가 제한된 키패드를 이용하여 텍스트를 입력할 수 있게 해줄 수 있다. 사용자가 셀 폰을 이용하여 "MSN"을 검색하기를 원하는 것으로 가정해보자. 다중 탭을 이용하는 표준 방안은, 6<포즈(pause)>777<포즈>66을 타이핑하는 것이며, 여기서 6은 M을 생성하며, 777은 S를 생성하며, 66은 N을 나타낸다. 다른 다중 탭 방안에서는 66<포즈>7777<포즈>666을 타이핑하는 것을 이용할 수 있으며 66은 M을 나타낼 수 있으며 7777은 S와 연관될 수 있으며 666은 N과 관련될 수 있다. 다중 탭 방안에서 포즈가 포함되지 않았는 경우에는, 입력 데이터는 모호하게 될 수 있다. 싱글 탭 기술이 대안적으로 이용될 수 있다. 이에 따라, (MSN에 대한) 676의 입력은 k-베스트 매치들을 찾는 데에 이용될 수 있으며, 그 후 사용자는 이 리스트로부터 MSN을 선택할 수 있다. 이 예에 따르면, 676은 [6MNOmno][7PRSprs][6MNOmno]를 나타낼 수 있다. 그러나, 종래의 시스템들은, 언어 모델을 이용하여 입력 데이터 내의 어느 곳에나 위치될 수 있는 암시적 및/또는 명시적 와일드카드들을 확장시키는 것은 실패하였다.
언어 모델 컴포넌트(106)는 임의의 언어 모델을 이용할 수 있다. 예를 들면, 트라이그램(trigram) 언어 모델이 이용될 수 있다. 또한, 제한된 언어 모델이 이용될 수 있다. 예를 들면, 웹 질문에 대해 이용되는 언어 모델은, 질문들 및 이와 연관된 가능한 질문들의 리스트에 기초할 수 있다. 다른 예에 따르면, 음절 요소에 대해 구축된 언어 모델이, 암시적 및/또는 명시적 와일드카드(들)를 확장시키는 것과 연관되어 이용될 수 있다. 또다른 예에 따르면, 언어 모델 컴포넌트(106)에 의해 이용되는 언어 모델은, 보도 기사를 전하는 데에 있어 시기 적절한 식별을 가능케하도록 빈번하게 업데이트될 수 있다.
인터페이스(102)가 확장 컴포넌트(104)와 분리되어 있는 것으로 도시되어 있지만, 확장 컴포넌트(104)가 인터페이스(102) 또는 그 일부를 포함할 수 있는 것이 고려된다. 또한, 인터페이스(102)는 각종 어댑터, 커넥터, 채널, 통신 경로 등을 제공하여 확장 컴포넌트(104)와의 상호작용을 가능케해준다.
확장 컴포넌트(104)는, 그 후 이용될 수 있는 확장된 데이터의 후보 리스트를 생성한다. 예를 들면, 후보 리스트는 (인터페이스(102)를 통해) 사용자에게 디스플레이될 수 있고/있거나 사용자는 후보 리스트로부터 선택을 행할 수 있다. 후보 리스트로부터 선택된 확장은, 검색을 수행하는 것과 결부되어 이용될 수 있으며, 작성중인 문서 또는 메시지 내에 입력될 수 있으며, 어드레스 바(bar) 내에 삽입되는 등이 행해질 수 있다. 인터페이스(102)는 도시된 바와 같은 확장된 데이터의 후보 리스트를 (예를 들면 사용자, 입력 장치 등에게) 제공할 수 있다. 또한, 혹은 대안적으로, 확장 컴포넌트(104) 또는 별개의 컴포넌트(도시하지 않음)가 후보 리스트를 출력할 수 있다. 예를 들면, 후보 리스트는 k-베스트 확장들을 포함할 수 있다. 다른 예에 따르면, 후보 리스트는 5개의 가장 친숙하게 사용되는 확장들, 세 개의 가장 친숙하게 이용되는 확장들과 가장 많이 이용되는 확장들의 상위 10개 중 2개의 혼합, 및/또는 지지되는(sponsored) 추천(들)을 포함할 수 있지만, 본 청구되는 내용은 이들 예에 제한되는 것은 아니다.
도 2를 참조하면, 암시적인 와일드카드들을 입력 데이터에 삽입하는 시스템(200)이 도시되어 있다. 시스템(200)은, 입력 데이터를 수신하며 입력 데이터를 확장 컴포넌트(204)에 제공하는 인터페이스(202)를 포함한다. 확장 컴포넌트(204)는 확장된 데이터의 후보 리스트를 생성하기 위해 입력 데이터를 확장시킨다. 예를 들면, k-베스트 확장들이 확장 컴포넌트(204)를 이용하여 생성될 수 있다. 확 장은, 언어 모델 컴포넌트(206)에 의해 제공되는 언어 모델을 이용하여 적어도 부분적으로 실시될 수 있다.
확장 컴포넌트(204)는, 하나 이상의 암시적인 와일드카드들을 입력 데이터에 삽입할 수 있는 와일드카드 삽입 컴포넌트(208)를 추가적으로 포함할 수 있다. 와일드카드 삽입 컴포넌트(208)는 입력 데이터 내의 어느 곳에라도 암시적인 와일드카드들을 배치시킬 수 있음을 알아야 한다. 암시적인 와일드카드들의 삽입에 이어서, 입력 데이터 내의 암시적인 와일드카드들과 임의의 명시적인 와일드카드들이 언어 모델에 기초하여 확장될 수 있다.
일례에 따르면, 와일드카드 삽입 컴포넌트(208)는 입력 데이터 내의 의도된 단어의 끝을 식별할 수 있다. 이 예에 따르면, 와일드카드 삽입 컴포넌트(208)는 이 식별된 위치에 와일드카드를 삽입할 수 있다. 다수의 이러한 위치가 판정될 수 있으며 이에 따라 임의의 적절한 수의 암시적인 와일드카드들이 입력 데이터 내에 포함될 수 있음을 알아야 한다. 예를 들면, 와일드카드 삽입 컴포넌트(208)는, 스페이스를 식별하여 의도된 단어들의 끝을 찾아내어 입력 데이터 내의 각 스페이스의 앞에 암시적인 와일드카드를 삽입할 수 있다. 또한, 혹은 대안적으로, 와일드카드 삽입 컴포넌트(208)는 입력 데이터의 끝에 암시적인 와일드카드를 배치시킬 수 있다.
와일드카드 삽입 컴포넌트(208)는 또한 입력 데이터 내의 다른 위치에 암시적인 와일드카드들을 삽입할 수 있다. 예를 들면, 암시적인 와일드카드는, 와일드카드 삽입 컴포넌트(208)를 이용하여 입력 데이터의 시작 부분에 포함될 수 있다. 또한, 혹은 대안적으로, 와일드카드 삽입 컴포넌트(208)는 암시적인 와일드카드를, 입력 데이터의 의도된 단어들 각각의 시작 부분에 배치할 수 있다.
이하에서는, 예시적인 입력 데이터(좌측), 및 확장 컴포넌트(204), 언어 모델 컴포넌트(206) 및/또는 와일드카드 삽입 컴포넌트(208)를 이용하여 생성될 수 있는 대응하는 확장된 데이터(우측)에 대해 예시한다:
n y c →New York City
Cin OH → Cincinnati Ohio
Arn S*w*g → Arnold Schwarzenegger
첫 번째 예에 따르면, 와일드카드 삽입 컴포넌트(208)는 "n", "y", 및 "c"의 뒤에 암시적인 와일드카드들을 삽입할 수 있다. 이들 와일드카드들의 유망한 확장을 제공하는 데에 언어 모델이 이용되어서 확장된 출력으로서 "New York City"를 생성할 수 있다. 세 번째 예에서는, 명시적인 와일드카드들이 입력 데이터 내에 포함될 수 있는 것을 설명한다. 이에 따라, "n"의 뒤와 "g"의 뒤에 위치된 암시적인 와일드카드들과 함께 이들 명시적인 와일드카드들은 확장된 출력으로서 "Arnold Schwarzenegger"를 생성하도록 확장될 수 있다.
(확장 컴포넌트(204) 뿐만 아니라) 와일드카드 삽입 컴포넌트(208)의 이용으로 인해, 종래의 기술에 비한 다수의 이점을 제공할 수 있게 된다. 특히, 와일드카드 삽입 컴포넌트(208) 및/또는 확장 컴포넌트(204)는 단어 휠링(wheeling)을 가능케해 줄 수 있다. 이에 따라, 사용자는, 문자숫자식의 문자의 비효율적 및/또는 시간 소모적인 입력과 연관될 수 있는 제한된 키보드 기능을 이용하여 셀룰라 전화 또는 PDA와 같은 모바일 장치 상에 데이터를 입력할 수 있지만, 본 청구되는 내용은 이에 제한되지 않는다. 또한, 단어 휠링은 사용자가 의도된 입력의 정확한 스펠링을 모르는 것을 보충해줄 수 있다. 또한, 단어 휠링은, (예를 들어 웹 검색 컨텍스트에서) 입력할 질문에 대한 모호한 생각만을 가지고 있거나 무엇이 현재 인기가 있는지에 대해 호기심을 가지며 이에 따라 부분적 입력을 매칭하는 사용자를 도울 수 있다.
도 3을 참조하면, 입력 데이터의 서버측 확장을 수행하는 시스템(300)이 도시되어 있다. 시스템(300)은, 입력 데이터를 수신하고/하거나 확장된 데이터의 후보 리스트를 송신하는 인터페이스(302)를 포함할 수 있다. 인터페이스(302)는, 명시적 및/또는 암시적 와일드카드들을 확장시키는 확장 컴포넌트(304)에 입력 데이터를 제공할 수 있다. 확장 컴포넌트(304)는, 언어 모델 컴포넌트(306)를 이용하여 입력 데이터와 연관된 k-베스트 확장들을 생성할 수 있다. 도시되어 있지는 않지만, 와일드카드 삽입 컴포넌트(예를 들면, 도 2의 와일드카드 삽입 컴포넌트(208))가 시스템(300)과 연관되어 추가적으로 이용될 수 있음을 알아야 한다.
시스템(300)은 또한 인터페이스(302)와 통신하는 클라이언트 컴포넌트(308)를 포함한다. 클라이언트 컴포넌트(308) 및 인터페이스(302)는 임의의 유형의 접속을 통해 결합될 수 있다. 예를 들면, 입력 데이터 및/또는 확장된 데이터의 후보 리스트는 유선 접속, 무선 접속, 이들의 조합, 또는 임의의 다른 유형의 접속을 통해 전달될 수 있지만, 이에 제한되는 것은 아니다. 클라이언트 컴포넌트(308)는 예를 들면, 데스크탑 컴퓨터, 랩탑, 핸드헬드, 셀룰라 전화 등일 수 있다.
예를 들면, 클라이언트 컴포넌트(308)는 셀룰라 전화 등의 모바일 장치일 수 있다. 셀룰라 전화와 연관된 키패드를 이용하여, 입력 데이터가 입력될 수 있으며 그 후 인터페이스(302)에 전달될 수 있다. 입력 데이터의 k-베스트 확장들이 확장 컴포넌트(304)에 의해 생성될 수 있다. 확장 컴포넌트(304)는 언어 모델을 이용하여 입력 데이터를 평가하여 확장된 데이터 세트를 생성할 수 있는데, 이 확장된 데이터 세트에서는, 입력 데이터와 연관된 (예를 들면 암시적 및/또는 명시적) 와일드카드가 상기 세트 내의 확장들 중 적어도 하나에 대한 적어도 하나의 문자숫자식의 문자와 교체될 수 있다. 그 후, 확장된 데이터에 대한 생성된 후보 리스트가 클라이언트 컴포넌트(308)에 제공될 수 있다.
시스템(300)과 연관된 서버측 구현에서는 와일드카드(및/또는 전화 숫자 키)에 대해 계산을 적게하고/하거나 빠르게 검색하는 것을 이용할 수 있는 반면에, 작은 메모리 풋프린트가 필요하지 않을 수 있다. 와일드카드 완성의 빠른 검색을 달성하기 위해, 서픽스(suffix)가 인기도 및 알파벳 순서 양쪽 모두에 따라 소팅되어 트리 내에 짝수 및 홀수 깊이가 번갈아 나타나는 서픽스 트리가 확장 컴포넌트(304)에 의해 이용될 수 있다. 또한, 혹은 대안적으로, 빠른 검색이 이슈가 되지 않을 경우(예를 들면, 와일드카드들을 완성시키는 데에 많은 서버들이 이용가능한 경우), 언어 모델에 이용되는 실제의 데이터 구조는 덜 중요할 수 있다. 이에 따라, 충분한 컴퓨팅 파워가 이용가능한 경우, 와일드카드 완성은, 가능한 엔트리들의 순서화된 리스트에 대해 매칭되는 단순한 통상의 표현을 이용하는 것에 의해 달성될 수 있다.
이하에서는, 확장된 데이터의 후보 리스트의 생성과 관련하여 인덱싱 및/또는 압축을 이용하는 확장 컴포넌트(304)의 예에 대해 설명한다. k-베스트 스트링 매칭과 연관하여, 각종 유형의 언어 모델이 이용될 수 있다. 예를 들면, 트라이그램 언어 모델 및/또는 (예를 들어 7백만 개의 가장 인기있는 웹 질문과 같은 유한한 언어에 대한) 긴(long) 리스트들이 이용될 수 있다. 이 긴 리스트들은 서픽스 어레이로 인덱싱될 수 있다. 서픽스 어레이는 전화 모드로 생성될 수 있다. 웹 질문의 리스트는 N 바이트의 텍스트로 취급될 수 있다. (새로운 라인들이 엔드-오브-스트링(end-of-string) 구획문자(delimiters)로 교체될 수 있다.) 서픽스 어레이 S는 N개의 정수의 시퀀스일 수 있다. 어레이는 0에서 N-1까지의 숫자로 초기화될 수 있다. 이에 따라, S[i]=i(0≤i≤N)이다. 이들 정수 각각은 스트링을 나타낼 수 있는 것으로, 텍스트 내의 i 위치에서 시작되어 스트링의 끝으로 연장된다. 그 후 S는 알파벳순으로 소팅될 수 있다.
서픽스 어레이는, 임의의 엔그램(ngram)(서브스트링)의 빈도 및 위치를 찾아내는 것을 용이하게 해줄 수 있다. 예를 들면, "mail"과 같은 서브스트링이 주어진 경우, "mail"로 시작되는 첫 번째 및 마지막 서픽스가 찾아질 수 있으며 이들 두 개 간의 갭이 빈도일 수 있다. 또한, 갭 내의 각 서픽스는 "mail"의 수퍼-스트링을 가리킬 수 있다.
전화 모드의 서픽스 어레이를 일반화하기 위해, 예를 들면 알파벳 순서(strcmp)가 전화 순서(phone-strcmp)와 교체될 수 있다. strcmp 및 phone-strcmp 양쪽 모두는 각 문자를 한번에 하나씩 고려할 수 있다. 표준 알파벳 순서 에서는 'a' < 'b' < 'c'이지만, phone-strcmp에서는 전화 키패드 상의 동일한 키에 맵핑되는 문자들은 동등한 것으로 취급될 수 있다.
서픽스 어레이는 인기도를 이용하도록 일반화될 수 있다. 이에 따라, 서브스트링 "mail"을 포함하는 모든 질문을 찾는 대신에, (예를 들면 가장 인기있는) k-베스트가 식별될 수 있다. 표준 서픽스 어레이 방법에서는, k-베스트에 대한 결과에 대해 검색하기 위해 출력에 대해 필터를 추가하도록 작동될 수 있다. 그러나, 이 필터는 많은 수의 매치들이 존재하는 경우에는 O(N) 타임을 취할 수 있다.
개선 사항으로서, 서픽스 어레이는, 트리 내에서 짝수 및 홀수 깊이가 교대로 되도록 인기도 및 알파벳 순서 양쪽 모두에 의해 소팅될 수 있다. 제1 레벨에서, 서픽스 어레이는 제1 순서에 의해 소팅될 수 있으며, 그 후 제2 순서에 의해 소팅될 수 있으며, 계속해서 이렇게 진행될 수 있다. 알파벳 순서로 순서화된 노드를 검색할 때, 표준 서픽스 어레이 기술이 이용될 수 있다. 또한, 인기도에 의해 순서화된 노드를 검색할 때, 더 많이 인기 있는 절반이, 나머지 절반 전에 검색될 수 있다. 많은 수의 매치들이 존재하는 경우, 짧은 스트링에서 일반적인 바와 같이, 인덱스가 상위-k를 신속하게 찾는 것을 용이하게 해줄 수 있으며, 이에 따라 나머지 절반은 검색될 필요가 없을 수 있다. 프리픽스(prefix)가 거의 없는 경우, 절반들 양쪽 모두가 검색될 수 있으며, 이에 따라 절반으로 나누는 것(예를 들면, 인기도에 의해 나누는 것들)은, 입력 서브스트링이 테이블 내의 어느 것과도 매칭되지 않는 나쁜 상황에서는 소용이 없을 수 있다. 룩업은 O(sqrt N)이다.
와일드카드 매칭은 서브스트링 매칭과 다를 수 있다. 유한한 상태 머신은 와일드카드에 대한 k-베스트 스트링 매칭 문제를 고려하기 위한 좋은 방안이다. 예를 들면, 입력 스트링은 종종 일정불변한 것(constants)의 긴 앵커(예를 들면, 와일드카드가 없는 서브스트링)를 포함한다. 서픽스 어레이는 이들 앵커를 이용하여 후보 리스트를 생성할 수 있는데, 이 후보 리스트는 그 후 통상의 표현 패키지에 의해 필터링된다.
메모리는 많은 실제 응용, 특히 모바일 컨텍스트에서 제한될 수 있다. 트라이그램 모델의 경우, 손실(lossy) 방법이 이용될 수 있다. 각 트라이그램 <x,y,z>가 해시 코드 h=(V2x + Vy +z)%P로 맵핑될 수 있으며, 여기서 V는 어휘(vocabulary)의 사이즈이며 P는 적절한 프라임(prime)이다. P는 손실에 대해 메모리와 트레이드오프 관계를 갖는다. N 트라이그램을 저장하기 위한 비용은 N[1/loge2 + log2(P/N)] 비트일 수 있다. 손실, 즉 잘못된 입력의 확률은 1/P이다. N 트라이그램은 h 해시 코드들로 해싱될 수 있으며 이 코드들은 소팅될 수 있다. 차이 x는, 최적 허프만 코드인 골롬브(Golomb) 코드로 인코딩될 수 있으며, 해시가 포아송(Poisson)인 경우일 수 있는 이 차이는 지수적으로 분포하는 것으로 가정한다.
도 4를 참조하면, 입력 데이터와 연관된 와일드카드(들)를 완성시키는 시스템(400)이 도시되어 있다. 시스템(400)은, 입력 데이터를 수신하며, 입력 데이터와 연관된 와일드카드들(예를 들면, 암시적 및/또는 명시적 와일드카드들)을 완성시킬 수 있는 확장 컴포넌트(404)에 입력 데이터를 제공하는 인터페이스(402)를 포함한다. 인터페이스(402) 및/또는 확장 컴포넌트(404)는 서버측 및/또는 클라이언 트측에 배치될 수 있음을 알아야 한다. 또한, 확장 컴포넌트(404)는, 확장된 데이터를 생성하기 위해, 입력 데이터와 결부되어 이용될 수 있는 언어 모델 컴포넌트(406)를 이용할 수 있다.
확장 컴포넌트(404)는, 인터페이스(402)에 의해 수신되는 입력 데이터를 대응하는 알파벳 문자 데이터로 변환하는 변환 컴포넌트(408)를 추가적으로 포함할 수 있다. 그 후 알파벳 문자 데이터는, 확장된 데이터의 후보 리스트를 생성하도록 확장될 수 있다. 또한, 혹은 대안적으로, 변환 컴포넌트(408)는, 확장 컴포넌트(404)에 의한 와일드카드들의 완성에 후속하는 데이터에 대해 동작할 수 있지만, 본 청구되는 내용은 이에 제한되지는 않는다. 일례에 따르면, 수신되는 입력 데이터는, 셀룰라 전화를 이용하여 입력될 수 있는 숫자 데이터일 수 있다. 변환 컴포넌트(408)는, 수신된 데이터가 셀룰라 전화를 이용하여 생성되었음을 인식할 수 있으며 데이터를 대응하는 알파벳 문자 데이터로 변환할 수 있다. 변환 컴포넌트(408)는, 의도적으로 숫자 문자(예를 들면, 입력이 예를 들어 "T1"일 경우)를 포함하는 입력 데이터와, 숫자 문자가 알파벳 문자를 나타내는 입력 데이터(예를 들어 이는 입력 데이터가 셀룰라 전화를 이용하여 생성되는 경우일 수 있음)를 구별할 수 있다. 다른 예에 따르면, 변환 컴포넌트(408)는 음성 데이터의 수신을 식별하고 음성 인식이 수행될 수 있게 해줄 수 있다. 또다른 예에 따르면, 변환 컴포넌트(408)는, 핸드라이팅된 입력이 인터페이스(402)에 의해 얻어졌음을 판정하고 핸드라이팅 인식을 행하여 입력 데이터를 수정할 수 있다. 본 청구되는 내용은 전술한 예들에 제한되지 않음을 알아야 한다.
확장 컴포넌트(404)는 또한 스펠링 정정 컴포넌트(410)를 포함할 수 있다. 스펠링 정정 컴포넌트(410)는 스펠링 에러의 잠재적인 원인으로 되는 입력 데이터의 일부 또는 전체를 수정할 수 있다. 이에 따라, 후보 리스트 내의 와일드카드(들)의 완성들 중 적어도 하나가 수정된 입력 데이터와 연관될 수 있다. 스펠링 정정 컴포넌트(410)는 입력 데이터에 대한 하나 이상의 스펠링 정정을 표시하는 데에 이용될 수 있다. 이에 따라, 예를 들면 입력 데이터가 "mon search"인 경우, 스펠링 정정 컴포넌트(410)는 후보 리스트 내의 "msn search"를 제공할 수 있다.
확장 컴포넌트(404)는 또한, 입력 데이터의 문자 각각의 입력시에 후보 리스트를 동적으로 갱신할 수 있는 갱신 컴포넌트(412)를 포함할 수 있다. 갱신 컴포넌트(412)를 이용하여 새로운 문자가 입력될 때마다 변경 및/또는 개선되는 제안들을 이용하여, 제안된 와일드카드 완성들이 동적으로 표시될 수 있다. 이러한 경우, 사용자는 후보 리스트를 얻기 위해 "Suggest" 버튼을 누르지 않아도 될 수 있다. 예를 들면, 사용자는 "7"을 입력할 수 있으며 갱신 컴포넌트(412) 및/또는 확장 컴포넌트(404)는 후보 리스트의 일부로서 "Shopping"을 제공할 수 있다. 이어서, 사용자는 스페이스를 입력하고 그 후 또한 "7"을 입력할 수 있으며, 갱신 컴포넌트(412)는, "Shopping"이 더 이상 포함되지 않고 "Space Needle"이 제공되도록 확장된 데이터의 후보 리스트를 수정할 수 있다(본 청구된 내용은 이러한 예에 제한되는 것은 아님).
도 5는 입력 데이터를 확장시키는 데에 이용되는 언어 모델을 트레이닝하는 시스템(500)을 나타낸다. 시스템(500)은 인터페이스(502) 및 확장 컴포넌트(504) 를 포함한다. 인터페이스(502)는 입력 데이터를 수신하고, 확장 컴포넌트(504)에 의해 수행되는 확장에 기초하여 확장된 데이터의 후보 리스트를 제공할 수 있다. 확장 컴포넌트(504)는 또한, 확장된 데이터의 생성과 연관되어 영향을 받을 수 있는 언어 모델을 제공할 수 있는 언어 모델 컴포넌트(506)를 포함할 수 있다. 임의의 유형의 언어 모델이 본 청구된 내용과 연관되어 이용될 수 있음을 알아야 한다.
시스템(500)은 또한, 트레이닝 데이터 저장소(510)에 저장될 수 있는 트레이닝 데이터 세트에 기초하여 언어 모델을 트레이닝하는 모델 트레이닝 컴포넌트(508)를 포함할 수 있다. 다른 애플리케이션의 경우, 모델 트레이닝 컴포넌트(508)는 별개의 트레이닝 세트를 이용할 수 있다. 예를 들면, 웹 검색의 경우, 모델 트레이닝 컴포넌트(508)에 의해 이용되는 트레이닝 세트는 질문 로그와 웹 문서의 조합을 포함할 수 있다. 다른 예에 따르면, 트레이닝 세트는, 텍스트 에디터 애플리케이션이 이용될 때 언어 모델을 트레이닝시키기 위한 전형적인 문서를 포함할 수 있다. 또다른 예에서는, 모델 트레이닝 컴포넌트(508)는, 인스턴트 메시징 애플리케이션과 관련되어 이용될 수 있는 언어 모델을 트레이닝시키기 위해 인스턴트 메시징 로그를 이용할 수 있다. 모델 트레이닝 컴포넌트(508)는, 이용되고 있는 애플리케이션에 기초하여 특정 트레이닝 데이터 세트를 선택할 수 있는 트레이닝 세트 선택 컴포넌트(512)를 포함할 수 있다.
트레이닝 데이터 저장소(510)는 다양한 트레이닝 세트를 포함할 수 있으며, 트레이닝 세트 선택 컴포넌트(512)에 의해 적절한 세트가 식별되고 이용될 수 있다. 트레이닝 데이터 저장소(510)는, 예를 들면 휘발성 메모리 또는 비휘발성 메 모리일 수 있으며, 혹은 휘발성 및 비휘발성 메모리 양쪽 모두를 포함할 수 있다. 예를 들면, 비휘발성 메모리는, ROM, PROM(programmable ROM), EPROM(electrically programmable ROM), EEPROM(electrically erasable programmable ROM), 또는 플래시 메모리를 포함할 수 있지만, 이에 제한되는 것은 아니다. 휘발성 메모리는, 외부 캐시 메모리로서 기능하는 RAM을 포함할 수 있다. 예를 들면, RAM은, SRAM(static RAM), DRAM(dynamic RAM), SDRAM(synchronous DRAM), DDR SDRAM(double data rate SDRAM), ESDRAM(enhanced SDRAM), SLDRAM(Synchlink DRAM), RDRAM(Rambus direct RAM), DRDRAM(direct Rambus dynamic RAM), 및 RDRAM(Rambus dynamic RAM)과 같은 많은 형태로 이용가능하지만, 이에 제한되는 것은 아니다. 본 시스템 및 방법의 트레이닝 데이터 저장소(510)는, 이들 및 다른 임의의 적절한 유형의 메모리를 포함하는 것을 의도하지만 이에 제한되는 것은 아니다. 또한, 트레이닝 데이터 저장소(510)는 서버, 데이타베이스, 하드 드라이브 등일 수 있음을 알아야 한다.
도 6을 참조하면, 입력 데이터로부터 생성된 후보 리스트를 수정 및/또는 이용하는 시스템(600)이 도시되어 있다. 시스템(600)은, 입력 데이터를 획득할 수 있는 인터페이스(602)와, 입력 데이터와 연관된 (예를 들어 암시적 및/또는 명시적) 와일드카드(들)을 식별, 삽입 및/또는 확장하는 확장 컴포넌트(604)를 포함할 수 있다. 와일드카드들을 확장시키는 것을 용이하게 해주는 언어 모델을 제공하는 언어 모델 컴포넌트(606)도 또한 확장 컴포넌트(604)의 일부로서 포함될 수 있다.
시스템(600)은 또한, 확장 컴포넌트(604)에 결합될 수 있는 검색 컴포넌 트(608)를 포함할 수 있다. 예를 들면, 확장 컴포넌트(604)는 입력 데이터와 관련된 확장의 후보 리스트를 제공할 수 있다. 그 후, 후보 리스트로부터의 특정 확장이 (예를 들어 사용자, 다른 컴포넌트 등에 의해) 선택될 수 있으며, 이 선택에 기초하여 검색 컴포넌트(608)에 의해 검색이 수행될 수 있다. 예를 들면, 검색 컴포넌트(608)는, 선택이 검색 질문으로서 이용될 수 있고 이와 관련된 내용이 검색될 수 있도록 검색 엔진(도시하지 않음)과 연관될 수 있다. 또한, 혹은 대안적으로, 검색 컴포넌트(608)는 검색 엔진일 수 있다. 검색 컴포넌트(608)는 검색과 관련된 결과를 (예를 들면 디스플레이 컴포넌트, 사용자, 입력 컴포넌트 등에게) 출력할 수 있다.
시스템(600)은 또한 필터 컴포넌트(610) 및/또는 개인화 컴포넌트(612)를 포함할 수 있다. 이들은 확장 컴포넌트(604)에 결합되는 것으로 도시되어 있지만, 이들 중 하나 또는 양쪽 모두가 검색 컴포넌트(608)에 결합될 수 있는 것도 고려된다. 필터 컴포넌트(610)는 각종 확장들을 후보 리스트로부터 제거하는 데에 이용될 수 있다. 예를 들면, 속성상 성인용이며, 저속성, 공격성 등을 갖는 확장은, 필터 컴포넌트(610)에 의해 k-베스트 제안들의 후보 리스트로부터 필터링될 수 있으며 이에 따라 사용자에게 보여지지 않을 수 있다. 또한, 혹은 대안적으로, 속성상 성인용이며, 저속성, 공격성 등을 갖는 검색 결과를 생성할 가능성이 있는 확장은 필터 컴포넌트(610)를 통해 제거될 수 있다. 필터 컴포넌트(610)는 사용자에 의해 스위치 온 또는 오프될 수 있으며, 항상 동작하거나 전혀 동작하지 않을 수 있으며, 입력 데이터 및/또는 입력 장치에 기초하여 필터링을 실시하는 등을 행할 수 있다.
개인화 컴포넌트(612)는 특정 사용자에 대해 시스템(600)을 커스터마이징하는 것을 용이하게 해줄 수 있다. 예를 들면, 개인화 컴포넌트(612)는 (예를 들어 패스워드, 바이오메트릭 지시자, 카드, 키, 위치 등에 의해) 사용자를 식별할 수 있다. 개인화 컴포넌트(612)는, 특정 사용자에 대한 후보 리스트를 생성하는 것과 연관되어 언어 모델 컴포넌트(606)에 의해 이용되는 언어 모델을 변경할 수 있다. 또한, 혹은 대안적으로, 개인화 컴포넌트(612)는, 필터 컴포넌트(610)가 사용자의 아이덴티티에 기초하여 특정 확장을 디스플레이 및/또는 제거하게 할 수 있다. 개인화 컴포넌트(612)는 사용자의 선호 및/또는 이력 데이터를 추적 및/또는 이용할 수 있다. 또한, 개인화 컴포넌트(612)는, 특정 사용자와 연관된 데스크탑 검색 인덱스에 적어도 부분적으로 기초하여 (예를 들어 도 5의 모델 트레이닝 컴포넌트(508)를 통해) 언어 모델을 트레이닝할 수 있다.
도 7을 참조하면, 위치의 고려사항에 적어도 부분적으로 기초하여 입력 데이터를 확장시키는 시스템(700)이 도시되어 있다. 시스템(700)은, 확장 컴포넌트(704)에 제공될 수 있는 질문 및/또는 위치 데이터를 얻을 수 있는 인터페이스(702)를 포함할 수 있다. 확장 컴포넌트(704)는 언어 모델 컴포넌트(706)와, 위치 데이터의 견지에서 관련 확장을 제공할 수 있는 로컬 컨텍스트 컴포넌트(708)를 더 포함할 수 있다. 위치 데이터를 이용할 때, 언어 모델 컴포넌트(706)는, 위치 데이터가 이용되지 않는 경우와는 다른 언어 모델을 이용할 수 있다. 예를 들면, 위치 관련 언어 모델은, 사람들(예를 들면, 유명 인사 등)이 덜 중요할 수 있을 때 장소(예를 들면, 호텔, 관광 명소, 레스토랑 등)와 관련된 확장이 보다 유력한 것으로 만들 수 있다. 로컬 컨텍스트 컴포넌트(708)는 위치에 의존하는 완성을 행하는 것을 가능하게 해줄 수 있다.
클라이언트 컴포넌트(710)는 입력 데이터 및/또는 위치 데이터를 인터페이스(702)에 제공할 수 있다. 클라이언트 컴포넌트(710)는 또한, 클라이언트 컴포넌트(712)와 연관된 위치를 식별할 수 있는 위치 컴포넌트(712)를 포함할 수 있다. 예를 들면, 위치 컴포넌트(712)는 클라이언트 컴포넌트(710)의 위치를 판정하기 위해 GPS(global positioning system)를 이용할 수 있다. 사용자가 클라이언트 컴포넌트(710)에 위치를 입력할 수 있고 이 데이터가 그 후 서버측에 전송될 수 있는 것이 또한 고려된다. 시스템(700)은, 위치 정보를 이용하여 와일드카드들을 확장시키는 서버측 구현에 대해 예시하지만, 위치 기반 시스템은 클라이언트측에서 이용될 수 있는 것도 고려된다.
시스템(700)은 추가적으로, 후보 리스트 내의 확장들 중 하나 이상에 기초하여 검색을 행할 수 있는 검색 컴포넌트(714)를 포함할 수 있다. 예를 들면, 사용자는 (예를 들어, 클라이언트 컴포넌트(710)를 이용하여 선택을 행함으로써) 후보 리스트로부터 확장을 선택할 수 있으며, 검색 컴포넌트(714)는 선택된 확장과 관련된 검색을 수행할 수 있다. 이에 따라, 검색 컴포넌트(714)를 이용하여 질문 결과를 얻기 전에 추가의 입력(예를 들면, 사용자 선택)이 제공될 수 있도록 중간 질문 세분화가 이용될 수 있다. 그러나, 본 청구되는 내용은 이에 제한되지 않음을 알아야 한다.
검색 컴포넌트(714)는 또한, 확장들의 등급을 매길 수 있는 랭크 컴포넌트(716)를 포함할 수 있다. 예를 들면, 리스트의 앞 부분, 풀-다운 리스트의 상부, 보다 눈에 띄는 위치 등에 보다 가능성이 있는 확장이 디스플레이될 수 있다. 랭크 컴포넌트(716)는, 검색 컴포넌트(714)의 일부로서 포함되는 것으로 도시되어 있지만, 검색 컴포넌트(714)로부터 분리될 수 있다.
또한, 검색 컴포넌트(714)는, 확장들의 후보 리스트와 함께 임의의 수의 확장들과 연관된 검색 결과를 포함할 수 있는 삽입 컴포넌트(718)를 포함할 수 있다. 예를 들면, 확장 컴포넌트(704)는 후보 리스트를 생성하기 위해 입력 데이터를 확장시킬 수 있으며, 이 후보 리스트는 삽입 컴포넌트(718)에 제공될 수 있다. 삽입 컴포넌트(718)는, 그 리스트 내에서 가장 가능성이 있는 후보와 관련된 검색을 검색 컴포넌트(714)를 통해 수행할 수 있다. 그 후 검색과 관련된 결과들이 후보 리스트와 함께 클라이언트 컴포넌트(710)에 포함될 수 있다. 이에 따라, 클라이언트 컴포넌트(710)의 사용자는, 결과들이 자동적으로 제공될 수 있기 때문에 이 검색을 수행하기 위해 특정 확장을 선택할 필요가 없다. 삽입 컴포넌트(718)는 예를 들면, 확장들의 후보 리스트를 포함할 수 있는 제안된 질문 패널과 함께 상위 질문 추천들(예를 들면, 확장(들))에 대한 검색 결과를 제공하는 것을 가능하게 할 수 있다.
일례에 따르면, 클라이언트 컴포넌트(710)는 단문 메시지 서비스(SMS) 텍스트 메시지를 인터페이스(702)에 전송할 수 있다. SMS 텍스트 메시지는 명시적인 와일드카드(들)을 포함할 수 있으며/있거나 (예를 들어 확장 컴포넌트(704), 도 2 의 와일드 삽입 컴포넌트(208) 등에 의해) 삽입된 암시적인 와일드카드(들)을 가질 수 있다. 서버는 (예를 들어 인터페이스(702)를 통해) 리턴 SMS 텍스트 메시지를 도로 전송할 수 있다. 리턴 SMS 텍스트 메시지는, 예를 들면 상위 제안된 완성에 대한 상위 검색 결과가 지시하는 페이지(또는 페이지의 일부 또는 페이지의 개요)를 포함할 수 있다. 또한, 혹은 대안적으로, m-베스트 제안된 완성들에 대한 n-베스트 검색 결과들이, 리턴 SMS 텍스트 메시지의 일부로서 제공될 수 있다. 본 청구된 내용은 이 예에 제한되는 것이 아님을 알아야 한다.
도 8을 참조하면, 확장된 데이터의 후보 리스트를 생성 및/또는 이용하는 것을 용이하게 해주는 시스템(800)이 도시되어 있다. 시스템(800)은, 인터페이스(802), 확장 컴포넌트(804), 및 언어 모델 컴포넌트(806)를 포함할 수 있으며, 이들 각각은 전술한 각 컴포넌트와 실질적으로 유사할 수 있다. 시스템(800)은 또한 지능적(intelligent) 컴포넌트(808)를 포함할 수 있다. 지능적 컴포넌트(808)는, 입력 데이터와 연관된 (예를 들면, 암시적 및/또는 명시적) 와일드카드들을 완성시키는 것을 용이하게 하기 위해 확장 컴포넌트(804)에 의해 이용될 수 있다. 예를 들면, 지능적 컴포넌트(808)는, 특정 확장들이 통상적으로 선택되는 것을 판정할 수 있으며 이에 따라 차후의 확장들을 생성하는 데에 이용되는 언어 모델을 갱신할 수 있다. 다른 예에 따르면, 지능적 컴포넌트(808)는, (예를 들면 보도 기사와 관련된 시기적절한 확장 및/또는 결과)가 디스플레이될 때 특정 확장이 (예를 들어 사용자에 의해) 선택될 가능성이 높은 것으로 판단할 수 있으며, 이에 따라 지능적 컴포넌트(808)는 (이러한 확장이 입력 데이터와 매치되지 않는 경우에도) 후보 리스트와 함께 확장 및/또는 삽입된 결과를 제공할 수 있다.
지능적 컴포넌트(808)는, 이벤트 및/또는 데이터를 통해 포착된 관찰 세트로부터 시스템, 환경, 및/또는 사용자의 상태에 대한 추리를 제공할 수 있으며, 혹은 이에 대해 추론할 수 있음을 이해해야 한다. 추론은, 특정 컨텍스트 또는 액션을 식별하는 데에 이용될 수 있거나, 혹은 예를 들어 상태에 대한 확률 분포를 생성할 수 있다. 추론은 확률일 수 있는데, 즉 데이터 및 이벤트의 고려 사항에 기초한, 관심이 있는 상태에 대한 확률 분포의 계산일 수 있다. 추론은 또한 한 세트의 이벤트 및/또는 데이터로부터 높은 레벨의 이벤트를 구성하기 위해 이용되는 기술을 칭할 수 있다. 이러한 추론은, 이벤트가 시간적으로 근접하게 상관되어 있는지 여부에 관계없이, 그리고 이벤트 및 데이터가 하나 이상의 이벤트 및 데이터 소스로부터 오는지에 따라 한 세트의 관찰된 이벤트 및/또는 저장된 이벤트 데이터로부터 새로운 이벤트 또는 액션을 구성할 수 있게 해준다. (명시적으로 및/또는 암시적으로 트레이닝된) 각종 분류 스킴 및/또는 시스템(예를 들면 지원 벡터 머신, 뉴럴 네트워크, 전문 시스템, 베이지안 신뢰 네트워크, 퍼지 로직, 데이터 퓨전 엔진 등)이, 본 청구되는 내용과 연관된 자동적 및/또는 추론되는 액션을 수행하는 것과 결부되어 이용될 수 있다.
분류자는, 입력 속성 벡터, x=(x1, x2, x3, x4, xn)를, 입력이 클래스에 속한 신뢰(confidence), 즉 f(x)=confidence ( class )로 맵핑하는 펑션이다. 이러한 분류는, 사용자가 자동적으로 수행되길 원하는 액션을 예측하거나 추론하기 위해 확률 및/또는 통계 기반 분석(예를 들어 분석 유틸리티 및 코스트로 팩토 링(factoring)함)을 이용할 수 있다. 지원 벡터 머신(SVM)은, 이용될 수 있는 분류자의 예이다. SVM은, 가능한 입력의 스페이스 내에서 초곡면(hypersurface)을 찾아냄으로써 동작하며, 이 초곡면은 트리거링 표준을 논-트리거링 이벤트로부터 분리하려고 시도한다. 직관적으로, 이는, 트레이닝 데이터에 가깝지만 동일하지는 않은 데이터를 테스트하기 위해 분류를 정확하게 만든다. 다른 지시된 모델 분류 방안 및 지시되지 않은 모델 분류 방안은, 예를 들면 나이브 베이즈, 베이지안 네트워크, 결정 트리, 뉴럴 네트워크, 퍼지 로직 모델을 포함하며, 서로 다른 독립 패턴들을 제공하는 확률 분류 모델이 이용될 수 있다. 본원에서 사용되는 분류는 또한, 우선순위 모델을 개발하는 데에 이용되는 통계학적 회귀를 포함한다.
프리젠테이션 컴포넌트(810)는, 사용자와, 확장 컴포넌트(804)에 결합된 임의의 컴포넌트 간의 상호작용을 용이하게 하기 위해 다양한 유형의 사용자 인터페이스를 제공할 수 있다. 도시된 바와 같이, 프리젠테이션 컴포넌트(810)는, 확장 컴포넌트(804)와 함께 이용될 수 있는 개별적인 엔티티이다. 그러나, 프리젠테이션 컴포넌트(810) 및/또는 유사한 뷰(view) 컴포넌트가 확장 컴포넌트(804)(및/또는 인터페이스(802)) 및/또는 독립형 유닛에 포함될 수 있음을 알아야 한다. 프리젠테이션 컴포넌트(810)는 하나 이상의 그래픽 사용자 인터페이스(GUI), 커맨드 라인 인터페이스 등을 제공할 수 있다. 예를 들면, 사용자에게, 데이터를 로드, 임포트(import), 판독 등을 행하기 위한 영역 또는 수단을 제공하고 이러한 결과를 제공하기 위한 영역을 포함할 수 있는 GUI가 렌더링될 수 있다. 이들 영역은, 공지된 텍스트 및/또는 대화 상자, 정적 컨트롤, 드롭 다운 메뉴, 리스트 박스, 팝업 메뉴, 편집 컨트롤, 콤보 박스, 라디오 버튼, 체크 박스, 푸시 버튼, 및 그래픽 박스를 포함하는 그래픽 영역을 포함할 수 있다. 또한, 영역이 보여질 수 있는 것인지를 판정하기 위해 네비게이션을 위한 이러한 수직 및/또는 수평 스크롤 바, 및 툴바 버튼과 같은 프리젠테이션을 용이하게 하기 위한 유틸리티가 이용될 수 있다. 예를 들면, 사용자는 확장 컴포넌트(804)에 결합된 컴포넌트들 중 하나 이상과 상호작용할 수 있다.
사용자는 또한, 예를 들어 마우스, 롤러 볼, 키패드, 키보드, 펜 및/또는 음성 액티베이션과 같은 각종 장치들을 통해 정보를 선택하고 제공하기 위해 상기 영역과 상호작용할 수 있다. 통상적으로, 키보드 상의 엔터 키 또는 푸시 버튼과 같은 메카니즘이, 검색을 개시하기 위해 후속 정보 입력을 위해 이용될 수 있다. 그러나, 본 청구되는 내용은 이에 제한되지 않음을 알아야 한다. 예를 들면, 체크 박스를 단지 하이라이팅함으로써 정보 전달을 개시할 수 있다. 다른 예에서는, 커맨드 라인 인터페이스가 이용될 수 있다. 예를 들면, 커맨드 라인 인터페이스는, 텍스트 메시지를 제공하는 것을 통해 (예를 들면 디스플레이 상의 텍스트 메시지 및 오디오 톤을 통해) 정보에 대해 사용자에게 프롬프트할 수 있다. 그러면 사용자는, 인터페이스 프롬프트에서 제공되는 옵션, 또는 프롬프트에서 제출된 질문에 대한 답변에 대응하는 문자숫자식의 입력 등의 적절한 정보를 제공할 수 있다. 커맨드 라인 인터페이스는 GUI 및/또는 API와 관련하여 이용될 수 있음을 알아야 한다. 또한, 커맨드 라인 인터페이스는, 제한된 그래픽 지원, 및/또는 낮은 대역폭 통신 채널을 갖는 하드웨어(예를 들면, 비디오 카드) 및/또는 디스플레이(예를 들 면, 흑백, 및 EGA)와 연관되어 이용될 수 있다.
도 9-10은 본 청구되는 내용에 따른 방법을 나타낸 도면이다. 설명의 간략화를 위해, 본 방법은 일련의 행위로서 묘사되고 설명된다. 본 혁신적인 발명은 예시된 행위들 및/또는 행위들의 순서에 제한되지 않으며, 예를 들면 행위들은 다양한 순서로 및/또는 동시에 발생될 수 있으며 여기에 제시되거나 설명되지 않은 다른 행위들이 존재함을 이해해야 한다. 또한, 본 청구되는 내용에 따라 본 방법을 구현하는 데에, 예시된 모든 행위들이 구현될 필요가 있는 것은 아닐 수 있다. 또한, 본 기술 분야에 통상의 지식을 가진 자라면, 본 방법은 상태도 또는 이벤트를 통해 일련의 상호관련된 상태로서 대안적으로 표현될 수 있음을 이해할 것이다.
도 9를 참조하면, 입력 데이터를 확장하는 것을 용이하게 해주는 방법(900)이 예시되어 있다. 단계(902)에서, 입력 데이터가 얻어진다. 예를 들면, 입력 데이터는 임의의 유형의 입력 장치(예를 들면, 데스크탑 컴퓨터, 랩탑, 핸드헬드, 셀룰라 전화, 서버, 등)에 수신될 수 있다. 또한, 입력 데이터는, 검색 질문, 텍스트 메시지(예를 들면 단문 메시지 서비스(SMS) 메시지), 인스턴트 메시지, 작성 및/또는 편집되는 문서 등과 관련될 수 있다. 또한, 입력 데이터는 알파벳 문자, 숫자 문자, 핸드라이팅 데이터, 구두(spoken) 데이터, 이들의 조합 등을 포함할 수 있다. 단계(904)에서, 하나 이상의 암시적인 와일드카드들이 입력 데이터에 삽입될 수 있다. 예를 들면, 암시적인 와일드카드들은 입력 데이터의 끝에 삽입될 수 있다. 또한, 혹은 대안적으로, 암시적인 와일드카드들은 입력 데이터 내의 하나 이상의 의도된 단어들의 끝에 삽입될 수 있다. 예를 들면, 암시적인 와일드카드는 입력 데이터 내의 각 스페이스 앞에 삽입될 수 있다. 단계(906)에서, 확장된 데이터의 후보 리스트가, 유망한 확장들을 제공하는 언어 모델을 이용하여 생성된다. 예를 들면, 입력 데이터와 연관된 (암시적 및/또는 명시적) 와일드카드들의 k-베스트 확장들이 생성될 수 있다. 본 청구되는 내용과 연관되어 어떠한 언어 모델이라도 이용될 수 있음을 알아야 한다. 또한, 후보 리스트는 임의의 방식으로 순서매겨질 수 있다. 예를 들면, 이러한 순서는, 인기도, 알파벳 순 등에 적어도 부분적으로 기초할 수 있다. 생성되는 후보 리스트는, 검색 결과 등의 생성을 위해 사용자에게 제공, 디스플레이, 활용될 수 있다.
도 10을 참조하면, 입력 데이터와 연관된 와일드카드(들)를 평가하는 것을 용이하게 해주는 방법(1000)이 예시되어 있다. 단계(1002)에서, 입력 데이터(예를 들면, 입력 텍스트 등)이 얻어진다. 예를 들면, 사용자는 의도된 검색 질문의 일부분(들)을 입력할 수 있다. 입력 데이터는 사용자에 의해 제공되는 명시적 와일드카드(들)를 포함할 수 있다. 또한, 혹은 대안적으로, 암시적 와일드카드(들)가 입력 데이터(예를 들면, 입력 데이터 내의 각 의도된 단어의 끝)에 삽입될 수 있다. 단계(1004)에서, 입력 데이터와 연관된 와일드카드(들)의 확장들이 언어 모델을 이용하여 생성된다. 예를 들면, 사용자는, 입력 데이터와 연관된 암시적 및/또는 명시적 와일드카드들의 k-베스트 확장들의 생성을 개시하는 것을 용이하게 해주기 위해 "Suggest" 버튼을 누를 수 있다. 단계(1006)에서, 후보 리스트 내의 확장들에 대한 순서가 생성된다. 예를 들면, 확장들은 인기도 및/또는 알파벳 순에 따라 순서화될 수 있다. 다른 예에 따르면, 후보 리스트가 디스플레이될 수 있다. 일례에 따르면, 실제 입력 문자들과 매칭되는(혹은 전화-숫자 문자로부터 명확하게 된) 문자들은 하이라이팅(예를 들면, 볼드체 표시, 이탤릭체 표시, 폰트 변경, 컬러 변경, 스타일 변경 등)될 수 있다. 단계(1008)에서, 선택된 확장에 기초하여 검색이 수행될 수 있다. 예를 들면, 제안된 검색 질문은 삽입된 하이퍼링크를 가질 수 있다. 이에 따라 사용자가 제안된 검색 질문을 클릭하는 것에 의해 검색이 개시될 수 있으며, 이는 사용자를, 선택된 제안된 검색 질문이 검색에 이용된 검색 페이지로 바로 데려갈 수 있다. 예를 들면, 검색 결과를 디스플레이하는 데에, 임의의 검색 브라우저가 이용될 수 있다.
도 11-23은 와일드 카드들을 확장시키는 것과 연관된 각종 양태들을 설명하는 예시적인 스크린 샷을 나타낸 도면이다. 이들 스크린 샷은 예로서 제공된 것이며 본 청구되는 내용이 이에 제한되지는 않음을 알아야 한다. 도 11-15를 참조하면, 입력 데이터로부터 확장된 데이터를 생성하는 것을 예시하는 스크린 샷이 도시되어 있다. 도 11은, 입력 데이터 필드(1102) 및 제안(Suggest) 버튼(1104)을 포함하는 스크린 샷을 나타낸 도면이다. 도 12에는, 입력 데이터(1202)(예를 들면, "cin oh")가 입력 데이터 필드 내에 입력될 수 있는 것을 나타내는 스크린 샷이 도시되어 있다. 도 13은, 제안 버튼을 누를 때 얻어질 수 있는, 입력 데이터와 연관된 확장된 데이터(1302)의 후보 리스트를 도시하고 있다. 또한, 대안적인 스펠링(1304)이 후보 리스트(1302)의 일부로서 제공될 수 있다. 도 14는 후보 리스트로부터의 선택된 확장과 관련된 검색 결과와 연관된 스크린 샷을 나타낸 도면이다. 도 15는, 숫자 문자가, (예를 들어 셀룰라 전화 키패드를 이용하여) 입력 데이 터(1502)로서 이용될 수 있음을 나타내고 있다. 숫자 데이터는, 숫자 입력과 관련된 알파벳 후보 리스트(1504)를 생성하도록 명확하게 되고/되거나 확장될 수 있다. 도 15에 도시된 예에 묘사된 바와 같이, 후보들(1504) 중 두 개가 이하의 명확성과 연관될 수 있는데, 즉 "2"는 "C"를 나타낼 수 있으며, 첫 번째 "4"는 "I"를 나타낼 수 있으며, 첫 번째 "6"은 "N"을 나타낼 수 있으며, 두 번째 "6"은 "O"를 나타낼 수 있으며, 두 번째 "4"는 "H"를 나타낼 수 있다. 입력 데이터와 매칭되는, 후보 리스트(1504) 내의 확장들 내의 문자는, 확장의 일부로서 생성되는 문자와 시각적으로 구별가능하다(예를 들면, 볼드체 등으로 표시됨).
도 16-23을 참조하면, 위치에 적어도 부분적으로 기초하여 확장된 데이터를 생성하는 것과 관련된 예시적인 스크린 샷이 도시되어 있다. 도 16은, 입력 데이터 필드(1602), 위치 필드(1604), 및 제안 버튼(1606)을 포함하는 스크린 샷을 나타낸다. 도 17은, 디스플레이 헬프(Display help) 버튼(1702)이 눌러질 때(예를 들면, 예시적인 입력 신택스가 디스플레이될 수 있을 때)발생되는 결과를 나타내는 스크린 샷이다. 도 18은, 입력 데이터(1802)(예를 들면, "po"), 위치 데이터(1804)(예를 들면, "solon"), 및 위치 데이터를 고려하는, 입력 데이터의 확장과 관련된 후보 리스트(1806)를 포함하는 스크린 샷이다. 도 19는 도 18의 "post office" 하이퍼링크를 선택하는 것과 연관된 검색 결과(1902)를 나타낸 스크린 샷이다. 특히, 도 19는, 입력된 위치 데이터와 연관된 장소에 대한 거리(distance)에 의해 순서가 매겨지는 로컬 결과를 포함한다. 도 20을 참조하면, 위치 데이터(2004) 뿐만 아니라 숫자 데이터(2002)(예를 들면, "7 6")가 입력되는 스크린 샷 을 나타내고 있다. "post office"에 대한 하이퍼링크를 선택하는 것과 연관된 검색 결과가 도 21의 스크린 샷에 나타나 있다. 도 22는, 명시적인 와일드카드들(예를 들면, "s*g m*l)을 포함하는 입력 데이터(2202)를 포함하는 스크린 샷을 나타낸다. 도 23은, 도 22의 입력 데이터(2202)와 관련된 명시적 및 암시적 와일드카드들의 확장들과 연관된 후보 리스트(2302)를 나타낸 도면이다.
본 청구되는 내용의 각종 양태를 구현하기 위한 추가의 컨텍스트를 제공하기 위해, 도 24-25 및 이하의 설명은, 본 혁신적인 발명의 각종 양태들이 구현될 수 있는 적절한 컴퓨팅 환경의 간략하고 일반적인 설명을 제공하기 위한 것이다. 본 청구되는 내용은 상기에서 로컬 컴퓨터 및/또는 원격 컴퓨터 상에서 실행되는 컴퓨터 프로그램의 컴퓨터-실행가능 명령어의 일반적인 문맥으로 기술되었지만, 본 기술 분야에 통상의 지식을 가진 자라면, 본 혁신적인 발명은 또한 다른 프로그램 모듈과의 조합으로 구현될 수 있음을 알 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하고/수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조 등을 포함한다.
또한, 본 기술 분야에 통상의 지식을 가진 자라면, 본 발명의 방법은, 단일 프로세서 또는 멀티프로세서 컴퓨터 시스템, 미니컴퓨터, 메인프레임 컴퓨터와, 퍼스널 컴퓨터, 핸드헬드 컴퓨팅 장치, 마이크로프로세서 기반 및/또는 프로그램가능한 가전 제품 등을 비롯한 다른 컴퓨터 시스템에서도 실시될 수 있으며, 이들 각각은 하나 이상의 연관 장치들과 동작면에서 통신할 수 있음을 알 것이다. 본 청구되는 내용의 예시적인 양태들은 또한, 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 소정의 태스크가 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 그러나, 본 발명의 모든 양태는 아니더라도 일부 양태는 독립형 컴퓨터 상에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및/또는 원격 메모리 저장 장치에 위치될 수 있다.
도 24는 본 청구되는 대상과 상호작용할 수 있는 샘플-컴퓨팅 환경(2400)을 개략적으로 나타낸 블럭도이다. 시스템(2400)은 하나 이상의 클라이언트(들)(2410)를 포함한다. 클라이언트(들)(2410)는 하드웨어 및/또는 소프트웨어(예를 들면, 쓰레드, 프로세스, 컴퓨팅 장치)일 수 있다. 시스템(2400)은 또한 하나 이상의 서버(들)(2420)를 포함한다. 서버(들)(2420)는 하드웨어 및/또는 소프트웨어(예를 들면, 쓰레드, 프로세스, 컴퓨팅 장치)일 수 있다. 서버(2420)는, 예를 들면 본 혁신적인 발명을 이용하여 변환을 행할 수 있도록 쓰레드를 하우징할 수 있다.
클라이언트(2410)와 서버(2420) 간의 하나의 가능한 통신은 두 개 이상의 컴퓨터 프로세스들 간에 전송되도록 적응되는 데이터 패킷의 형태를 가질 수 있다. 시스템(2400)은, 클라이언트(들)(2410)와 서버(들)(2420) 간의 통신을 용이하게 하도록 이용될 수 있는 통신 프레임워크(2440)를 포함한다. 클라이언트(들)(2410)는, 클라이언트(들)(2410)에 대해 로컬인 정보를 저장하는 데에 이용될 수 있는 하나 이상의 클라이언트 데이터 저장소(들)(2450)에 동작적으로 연결되어 있다. 마찬가지로, 서버(들)(2420)는, 서버들(2420)에 대해 로컬인 정보를 저장하는 데에 이용될 수 있는 하나 이상의 서버 데이터 저장소(들)(2430)에 동작적으로 연결되어 있다.
도 25를 참조하면, 본 청구되는 대상의 각종 양태들을 구현하기 위한 예시적인 환경(2500)은 컴퓨터(2512)를 포함한다. 컴퓨터(2512)는 처리 장치(2514), 시스템 메모리(2516), 및 시스템 버스(2518)를 포함한다. 시스템 버스(2518)는 시스템 메모리(2516)(이에 제한되지는 않음)를 포함하는 시스템 컴포넌트들을 처리 장치(2514)에 연결시킨다. 처리 장치(2514)는 임의의 각종 이용가능한 프로세서일 수 있다. 듀얼 마이크로프로세서 및 다른 멀티프로세서 아키텍처가 또한 처리 장치(2514)로서 이용될 수 있다.
시스템 버스(2518)는, 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스 또는 외부 버스 및/또는, ISA(Industry Standard Architecture), MSA(Micro- Channel Architecture), EISA(Enhanced ISA), IDE(Intelligent Drive Electronics), VLB(VESA Local Bus), PCI(Peripheral Component Interconnect), 카드 버스, USB(Universal Serial Bus), AGP(Advanced Graphics Port), PCMCIA(Personal Computer Memory Card International Association bus), Firewire(IEEE 1394), 및 SCSI(Small Computer Systems Interface)를 포함하는(이에 제한되지는 않음) 각종 이용가능한 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조(들) 중 어느 것이라도 될 수 있다.
시스템 메모리(2516)는 휘발성 메모리(2520) 및 비휘발성 메모리(2522)를 포함한다. 시동 중과 같은 때에, 컴퓨터(2512) 내의 구성요소들 사이의 정보 전송을 위한 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)은 비휘발성 메모리(2522)에 저장되어 있다. 예를 들면, 비휘발성 메모리(2522)는, ROM, PROM(programmable ROM), EPROM(electrically programmable ROM), EEPROM(electrically erasable programmable ROM), 또는 플래시 메모리를 포함할 수 있지만, 이에 제한되는 것은 아니다. 휘발성 메모리(2520)는, 외부 캐시 메모리로서 기능하는 RAM을 포함한다. 예를 들면, RAM은, SRAM(static RAM), DRAM(dynamic RAM), SDRAM(synchronous DRAM), DDR SDRAM(double data rate SDRAM), ESDRAM(enhanced SDRAM), SLDRAM(Synchlink DRAM), RDRAM(Rambus direct RAM), DRDRAM(direct Rambus dynamic RAM), 및 RDRAM(Rambus dynamic RAM)과 같은 많은 형태로 이용가능하지만, 이에 제한되는 것은 아니다.
컴퓨터(2512)는 또한 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체를 포함한다. 도 25는 예를 들어 디스크 저장 장치(2524)를 도시하고 있다. 디스크 저장 장치(2524)는, 자기 디스크 드라이브, 플로피 디스크 드라이브, 테이프 드라이브, Jaz 드라이브, Zip 드라이브, LS-100 드라이브, 플래시 메모리 카드, 또는 메모리 스틱과 같은 장치들을 포함하지만, 이에 제한되는 것은 아니다. 또한 디스크 저장 장치(2524)는, CD-ROM(compact disk ROM device), CD-R Drive(CD recordable drive), CD-RW Drive(CD rewritable drive) 또는 DVD-ROM(digital versatile disk ROM drive) 등(이에 제한되지는 않음)의 광 디스크 드라이브를 비롯한 다른 저장 매체와는 개별적이거나 혹은 이와 결합되는 저장 매체를 포함할 수 있다. 디스크 저장 장치(2524)의 시스템 버스(2518)로의 연결을 용이하게 하기 위해 인터페이스(2526) 등의 이동식 또는 비이동식 인터페이스가 통상적으로 이용된 다.
도 25는 적절한 동작 환경(2500)에서 묘사되는, 사용자와 기본 컴퓨터 자원 간의 매개로서 동작하는 소프트웨어를 설명하고 있음을 알아야 한다. 이러한 소프트웨어는 운영 체제(2528)를 포함한다. 디스크 저장 장치(2524) 상에 저장될 수 있는 운영 체제(2528)는 컴퓨터 시스템(2512)의 자원을 제어하고 이를 할당하도록 동작한다. 시스템 애플리케이션(2530)은, 시스템 메모리(2516) 또는 디스크 저장 장치(2524)에 저장된 프로그램 모듈(2532) 및 프로그램 데이터(2534)를 통한, 운영 체제(2528)에 의한 자원의 관리를 이용한다. 본 청구되는 대상은 각종 운영 체제 또는 운영 체제들의 조합으로 구현될 수 있음을 알아야 한다.
사용자는 입력 장치(들)(2536)를 통해 컴퓨터(2512)에 명령 또는 정보를 입력한다. 입력 장치(2536)는, 마우스, 트랙볼, 스타일러스, 터치 패드, 키보드, 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너, TV 튜너 카드, 디지털 카메라, 디지털 비디오 카메라, 웹 카메라 등과 같은 지시 장치를 포함하지만, 이에 제한되는 것은 아니다. 이들 및 기타 입력 장치들은 인터페이스 포트(들)(2538)를 통해 시스템 버스(2518)를 통해 처리 장치(2514)에 연결된다. 인터페이스 포트(들)(2538)는 예를 들면, 시리얼 포트, 패러렐 포트, 게임 포트, 및 USB(universal serial bus)를 포함한다. 출력 장치(들)(2540)는 입력 장치(들)(2536)과 동일한 몇몇 유형의 포트들을 이용한다. 이에 따라, 예를 들면, 컴퓨터(2512)에 입력을 제공하고 컴퓨터(2512)로부터의 정보를 출력 장치(2540)에 출력하는 데에 USB 포트가 이용될 수 있다. 다른 출력 장치(2540) 중에서 특수 어댑터를 필요로 하는 모니터, 스피커, 및 프린터와 같은 몇몇 출력 장치(2540)가 존재함을 예시하도록 출력 어댑터(2542)가 제공된다. 출력 어댑터(2542)는, 예를 들면 출력 장치(2540)와 시스템 버스(2518) 간의 접속 수단을 제공하는 비디오 및 사운드 카드를 포함하지만, 이에 제한되는 것은 아니다. 다른 장치들 및/또는 장치들의 시스템들은 원격 컴퓨터(들)(2544)와 같이 입력 및 출력 능력 양쪽 모두를 제공함에 주목해야 한다.
컴퓨터(2512)는, 원격 컴퓨터(들)(2544)과 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용하여 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(들)(2544)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 워크스테이션, 마이크로프로세서 기반 기기, 피어 장치 또는 기타 공통 네트워크 노드 등일 수 있으며, 통상적으로 컴퓨터(2512)에 대해 전술한 구성요소들 중 많은 구성 요소 혹은 그 전부를 포함한다. 간결성을 위해, 원격 컴퓨터(들)(2544)와 함께 메모리 저장 장치(2546)만이 예시되어 있다. 원격 컴퓨터(들)(2544)는 네트워크 인터페이스(2548)를 통해 컴퓨터(2512)에 논리적으로 접속되며 그 후 통신 접속(2550)을 통해 물리적으로 접속된다. 네트워크 인터페이스(2548)는, LAN 및 WAN 등의 유선 및/또는 무선 통신 네트워크를 포함한다. LAN 기술은 FDDI(Fiber Distributed Data Interface), CDDI(Copper Distributed Data Interface), 이더넷, 토큰 링 등을 포함한다. WAN 기술은, 포인트-투-포인트(point-to-point) 링크, ISDN(Integrated Services Digital Networks)과 같은 회로 스위칭 네트워크, 및 그에 대한 변형, 패킷 스위칭 네트워크, 및 DSL(Digital Subscriber Lines)을 포함하지만, 이에 제한 되는 것은 아니다.
통신 접속(들)(2550)은, 네트워크 인터페이스(2548)를 버스(2518)에 접속시키는 데에 이용되는 하드웨어/소프트웨어를 칭한다. 통신 접속(2550)이, 명확한 예시를 위해 컴퓨터(2512) 내에 있는 것으로 도시되어 있지만, 이는 컴퓨터(2512)의 외부에 있을 수도 있다. 네트워크 인터페이스(2548)로의 접속에 필요한 하드웨어/소프트웨어는, 통상의 전화 그레이드 모뎀, 케이블 모뎀 및 DSL 모뎀을 비롯한 모뎀과, ISDN 어댑터, 및 이더넷 카드와 같은 내장형 및 외장형 기술들을 포함하지만, 이는 오직 예시용일 뿐이다.
상술한 설명은 본 혁신적인 발명의 예를 포함한다. 물론, 본 청구되는 내용을 설명하기 위해 컴포넌트 또는 방법의 모든 인식가능한 조합을 설명하는 것은 가능하지 않지만, 당업자라면 본 혁신적인 발명에 대한 많은 또다른 조합 및 변경이 가능함을 인식할 수 있다. 따라서, 본 청구되는 내용은 첨부된 특허청구범위의 정신 및 범주 내에 있는 이러한 모든 변경, 수정 및 변형을 포함하는 것을 의도한다.
특히, 그리고 전술한 컴포넌트, 장치, 회로, 시스템 등에 의해 수행되는 각종 기능과 관련하여, 이러한 컴포넌트들을 설명하는 데에 이용되는 용어들("수단"에 대한 레퍼런스를 포함함)은, 다르게 지시되지 않는 한, 개시된 구조와 구조적으로 등가이지는 않더라도, 본원에서 예시된 본 청구되는 내용의 예시적인 양태에서의 기능을 수행하는 설명된 컴포넌트(예를 들면 기능적 등가물)의 지정된 기능을 수행하는 임의의 컴포넌트에 대응함을 의도하는 것이다. 이와 관련하여, 본 발명은 시스템 뿐만 아니라, 본 청구되는 내용의 각종 방법의 행위 및/또는 이벤트를 수행하기 위한 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 매체를 포함함을 또한 알 것이다.
또한, 본 발명의 특정 특성이 몇몇 구현들 중 하나에 대해서만 기술되었지만, 이러한 특성은, 임의의 지정되거나 특정한 애플리케이션에 대해 소망되고 이로울 경우, 다른 구현들의 하나 이상의 특성들과 결합될 수 있다. 또한, "포함한다(includes)" 및 "포함하는(including)"이라는 용어와 이의 변형 용어가 상세한 설명 또는 특허청구범위에서 사용되고 있는 한, 이들 용어들은 "구비하는(comprising)"이라는 용어와 마찬가지의 방식으로 포함됨을 의도한 것이다.
Claims (20)
- 입력 데이터를 확장(expand)시키기 위한 시스템으로서,입력 데이터를 획득하는 인터페이스(102, 202, 302, 402, 502, 602, 702, 802);의도된 단어의 각각의 끝에 삽입되는 적어도 하나의 암시적인 와일드카드를 포함하도록 상기 입력 데이터를 수정하는 와일드카드 삽입 컴포넌트(208); 및와일드카드들의 유망한 확장들(likely expansions)을 제공하는 언어 모델을 이용하여 상기 적어도 하나의 암시적인 와일드카드를 포함하는 상기 입력 데이터에 적어도 부분적으로 기초하는 확장된 데이터의 후보 리스트를 생성하는 확장 컴포넌트(104, 204, 304, 404, 504, 604, 704, 804)를 포함하는 입력 데이터 확장 시스템.
- 제1항에 있어서,상기 와일드카드 삽입 컴포넌트는, 상기 입력 데이터 내의 각 의도된 단어에 대응하는 끝을 식별하는 입력 데이터 확장 시스템.
- 제1항에 있어서,상기 와일드카드 삽입 컴포넌트는, 상기 입력 데이터 내의 각 스페이스(space)의 앞에 상기 적어도 하나의 암시적인 와일드카드를 삽입하는 입력 데이 터 확장 시스템.
- 제1항에 있어서,상기 와일드카드 삽입 컴포넌트는, 상기 입력 데이터의 시작 부분에 있는 암시적인 와일드카드와, 상기 입력 데이터 내의 각 의도된 단어의 시작 부분에 있는 암시적 와일드카드 중 적어도 하나를 제공하는 입력 데이터 확장 시스템.
- 제1항에 있어서,상기 입력 데이터는, 상기 언어 모델의 이용을 통해 상기 확장 컴포넌트에 의해 확장되는 명시적인 와일드카드를 포함하는 입력 데이터 확장 시스템.
- 제1항에 있어서,상기 입력 데이터를, 상기 확장된 데이터의 후보 리스트를 생성하도록 확장되는 대응 알파벳 문자 데이터로 변환하는 변환 컴포넌트를 더 포함하는 입력 데이터 확장 시스템.
- 제6항에 있어서,상기 변환 컴포넌트는, 음성 데이터, 핸드라이팅(handwriting) 데이터, 및 숫자 데이터 중 적어도 하나를 포함하는 입력 데이터를 변환하는 입력 데이터 확장 시스템.
- 제1항에 있어서,잠재적인 스펠링 에러에 대한 원인으로 되는, 입력 데이터의 적어도 일부를 수정하여 상기 확장 컴포넌트가 상기 후보 리스트 내에 상기 수정된 입력 데이터에 대응하는 확장된 데이터를 포함시키도록 하는 스펠링 정정 컴포넌트를 더 포함하는 입력 데이터 확장 시스템.
- 제1항에 있어서,상기 확장된 데이터의 후보 리스트로부터의 선택에 기초하여 검색을 수행하는 검색 컴포넌트를 더 포함하는 입력 데이터 확장 시스템.
- 제1항에 있어서,트레이닝 데이터 세트에 기초하여 상기 언어 모델을 트레이닝하는 모델 트레이닝 컴포넌트를 더 포함하는 입력 데이터 확장 시스템.
- 제10항에 있어서,상기 모델 트레이닝 컴포넌트는, 상기 입력 데이터와 연관된 애플리케이션에 기초하여 특정 트레이닝 데이터 세트를 선택하는 트레이닝 세트 선택 컴포넌트를 더 포함하는 입력 데이터 확장 시스템.
- 제11항에 있어서,상기 트레이닝 세트 선택 컴포넌트는, 웹 검색 애플리케이션의 이용에 기초한 웹 문서 및 질문 로그, 텍스트 에디터 애플리케이션의 이용에 기초한 문서, 및 인스턴트 메시징 애플리케이션의 이용에 기초한 인스턴트 메시징 로그 중 적어도 하나를 선택하는 입력 데이터 확장 시스템.
- 제1항에 있어서,상기 입력 데이터의 문자 각각의 입력시에 상기 확장된 데이터의 후보 리스트를 동적으로 갱신하는 갱신 컴포넌트를 더 포함하는 입력 데이터 확장 시스템.
- 입력 데이터의 확장을 용이하게 해주는 방법으로서,암시적인 와일드카드를, 각 의도된 단어의 끝에 있는 입력 데이터에 삽입하는 단계; 및유망한 와일드카드 확장들을 제공하는 언어 모델의 이용을 통해 확장들의 후보 리스트를 생성하는 단계를 포함하는 입력 데이터 확장 방법.
- 제14항에 이어서,트레이닝 데이터 세트에 기초하여 상기 언어 모델을 트레이닝하는 단계를 더 포함하는 입력 데이터 확장 방법.
- 제14항에 있어서,상기 입력 데이터가 획득될 때 상기 확장들의 후보 리스트를 동적으로 갱신하는 단계를 더 포함하는 입력 데이터 확장 방법.
- 제14항에 있어서,상기 후보 리스트로부터의 확장들 중 특정한 하나를 이용하여 검색을 수행하는 단계를 더 포함하는 입력 데이터 확장 방법.
- 제14항에 있어서,가장 유망한 확장을 자동으로 검색하고 그 검색과 연관된 결과를 상기 확장들의 후보 리스트와 함께 삽입하는 단계를 더 포함하는 입력 데이터 확장 방법.
- 제14항에 있어서,얻어진 위치 데이터에 적어도 부분적으로 기초하여 상기 확장들의 후보 리스트를 생성하는 단계를 더 포함하는 입력 데이터 확장 방법.
- 와일드카드들을 삽입하고 입력 데이터를 확장시키는 시스템으로서,입력 데이터를 획득하기 위한 수단(102, 202, 302, 402, 502, 602, 702, 802);각 의도된 단어의 확장을 용이하게 하기 위해 암시적인 와일드카드들을 상기입력 데이터에 삽입하기 위한 수단(208); 및유망한 와일드카드 확장들을 제공하는 언어 모델을 이용하여 확장들의 후보 리스트를 생성하기 위한 수단(104, 204, 304, 404, 504, 604, 704, 804)을 포함하는 와일드카드 삽입 및 입력 데이터 확장 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/332,954 | 2006-01-17 | ||
US11/332,954 US20070164782A1 (en) | 2006-01-17 | 2006-01-17 | Multi-word word wheeling |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20080085165A true KR20080085165A (ko) | 2008-09-23 |
Family
ID=38262605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020087017050A KR20080085165A (ko) | 2006-01-17 | 2007-01-04 | 입력 데이터 확장 시스템 및 방법, 및 와일드카드 삽입 및입력 데이터 확장 시스템 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20070164782A1 (ko) |
KR (1) | KR20080085165A (ko) |
CN (1) | CN101375279A (ko) |
WO (1) | WO2007087137A2 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101279759B1 (ko) * | 2006-12-05 | 2013-07-04 | 마이크로소프트 코포레이션 | 컴퓨터 시스템에 의해 구현가능한 방법, 컴퓨팅 시스템에 의해 실행가능한 명령어들을 포함하는 매체 및 컴퓨팅 시스템 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7769804B2 (en) * | 2006-01-17 | 2010-08-03 | Microsoft Corporation | Server side search with multi-word word wheeling and wildcard expansion |
US20080140519A1 (en) * | 2006-12-08 | 2008-06-12 | Microsoft Corporation | Advertising based on simplified input expansion |
GB2453366B (en) * | 2007-10-04 | 2011-04-06 | Toshiba Res Europ Ltd | Automatic speech recognition method and apparatus |
US8015129B2 (en) * | 2008-04-14 | 2011-09-06 | Microsoft Corporation | Parsimonious multi-resolution value-item lists |
US8090738B2 (en) * | 2008-05-14 | 2012-01-03 | Microsoft Corporation | Multi-modal search wildcards |
DE102008040169A1 (de) * | 2008-07-04 | 2010-01-07 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Überprüfen, ob eine Datenbasis eine Zeichenkette enthält, die eine vorgegebene Teilzeichenkette enthält |
US8712989B2 (en) | 2010-12-03 | 2014-04-29 | Microsoft Corporation | Wild card auto completion |
CN104428734A (zh) | 2012-06-25 | 2015-03-18 | 微软公司 | 输入法编辑器应用平台 |
US9378741B2 (en) * | 2013-03-12 | 2016-06-28 | Microsoft Technology Licensing, Llc | Search results using intonation nuances |
US9672818B2 (en) * | 2013-04-18 | 2017-06-06 | Nuance Communications, Inc. | Updating population language models based on changes made by user clusters |
US10387576B2 (en) * | 2017-11-30 | 2019-08-20 | International Business Machines Corporation | Document preparation with argumentation support from a deep question answering system |
Family Cites Families (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE466029B (sv) * | 1989-03-06 | 1991-12-02 | Ibm Svenska Ab | Anordning och foerfarande foer analys av naturligt spraak i ett datorbaserat informationsbehandlingssystem |
JPH03185561A (ja) * | 1989-12-15 | 1991-08-13 | Ricoh Co Ltd | 欧文単語入力方法 |
US5963671A (en) * | 1991-11-27 | 1999-10-05 | International Business Machines Corporation | Enhancement of soft keyboard operations using trigram prediction |
US5734749A (en) * | 1993-12-27 | 1998-03-31 | Nec Corporation | Character string input system for completing an input character string with an incomplete input indicative sign |
JP2683870B2 (ja) * | 1994-05-23 | 1997-12-03 | 日本アイ・ビー・エム株式会社 | 文字列検索システム及び方法 |
US5485372A (en) * | 1994-06-01 | 1996-01-16 | Mitsubishi Electric Research Laboratories, Inc. | System for underlying spelling recovery |
US5778361A (en) * | 1995-09-29 | 1998-07-07 | Microsoft Corporation | Method and system for fast indexing and searching of text in compound-word languages |
US5787422A (en) * | 1996-01-11 | 1998-07-28 | Xerox Corporation | Method and apparatus for information accesss employing overlapping clusters |
US5926652A (en) * | 1996-12-20 | 1999-07-20 | International Business Machines Corporation | Matching of wild card patterns to wild card strings associated with named computer objects |
US5832478A (en) * | 1997-03-13 | 1998-11-03 | The United States Of America As Represented By The National Security Agency | Method of searching an on-line dictionary using syllables and syllable count |
US6408266B1 (en) * | 1997-04-01 | 2002-06-18 | Yeong Kaung Oon | Didactic and content oriented word processing method with incrementally changed belief system |
US6377965B1 (en) * | 1997-11-07 | 2002-04-23 | Microsoft Corporation | Automatic word completion system for partially entered data |
US5896321A (en) * | 1997-11-14 | 1999-04-20 | Microsoft Corporation | Text completion system for a miniature computer |
US6490563B2 (en) * | 1998-08-17 | 2002-12-03 | Microsoft Corporation | Proofreading with text to speech feedback |
US6424358B1 (en) * | 1998-12-03 | 2002-07-23 | Lockheed Martin Corporation | Method and system for importing database information |
CA2392446C (en) * | 1999-05-27 | 2009-07-14 | America Online Incorporated | Keyboard system with automatic correction |
US6360252B1 (en) * | 1999-09-20 | 2002-03-19 | Fusionone, Inc. | Managing the transfer of e-mail attachments to rendering devices other than an original e-mail recipient |
US6658404B1 (en) * | 1999-09-20 | 2003-12-02 | Libera, Inc. | Single graphical approach for representing and merging boolean logic and mathematical relationship operators |
US6654733B1 (en) * | 2000-01-18 | 2003-11-25 | Microsoft Corporation | Fuzzy keyboard |
US6573844B1 (en) * | 2000-01-18 | 2003-06-03 | Microsoft Corporation | Predictive keyboard |
AU2001234771A1 (en) * | 2000-02-02 | 2001-08-14 | Searchlogic.Com Corporation | Combinatorial query generating system and method |
AU2001245447A1 (en) * | 2000-03-06 | 2001-09-17 | Kanisa Inc. | A system and method for providing an intelligent multi-step dialog with a user |
US6922810B1 (en) * | 2000-03-07 | 2005-07-26 | Microsoft Corporation | Grammar-based automatic data completion and suggestion for user input |
US6687734B1 (en) * | 2000-03-21 | 2004-02-03 | America Online, Incorporated | System and method for determining if one web site has the same information as another web site |
US6564213B1 (en) * | 2000-04-18 | 2003-05-13 | Amazon.Com, Inc. | Search query autocompletion |
US7107204B1 (en) * | 2000-04-24 | 2006-09-12 | Microsoft Corporation | Computer-aided writing system and method with cross-language writing wizard |
US20020123994A1 (en) * | 2000-04-26 | 2002-09-05 | Yves Schabes | System for fulfilling an information need using extended matching techniques |
US7383299B1 (en) * | 2000-05-05 | 2008-06-03 | International Business Machines Corporation | System and method for providing service for searching web site addresses |
US6556990B1 (en) * | 2000-05-16 | 2003-04-29 | Sun Microsystems, Inc. | Method and apparatus for facilitating wildcard searches within a relational database |
US7392326B2 (en) * | 2001-02-16 | 2008-06-24 | Microsoft Corporation | Method for text entry in an electronic device |
US6850934B2 (en) * | 2001-03-26 | 2005-02-01 | International Business Machines Corporation | Adaptive search engine query |
US6785677B1 (en) * | 2001-05-02 | 2004-08-31 | Unisys Corporation | Method for execution of query to search strings of characters that match pattern with a target string utilizing bit vector |
US6985851B2 (en) * | 2001-07-17 | 2006-01-10 | Microsoft Corporation | Method and apparatus for providing improved HMM POS tagger for multi-word entries and factoids |
US7047183B2 (en) * | 2001-08-21 | 2006-05-16 | Microsoft Corporation | Method and apparatus for using wildcards in semantic parsing |
US20020156779A1 (en) * | 2001-09-28 | 2002-10-24 | Elliott Margaret E. | Internet search engine |
US7111248B2 (en) * | 2002-01-15 | 2006-09-19 | Openwave Systems Inc. | Alphanumeric information input method |
US7174344B2 (en) * | 2002-05-10 | 2007-02-06 | Oracle International Corporation | Orthogonal partitioning clustering |
WO2004003721A2 (en) * | 2002-07-01 | 2004-01-08 | Sony Ericsson Mobile Communications Ab | Entering text into an electronic communications device |
US7236923B1 (en) * | 2002-08-07 | 2007-06-26 | Itt Manufacturing Enterprises, Inc. | Acronym extraction system and method of identifying acronyms and extracting corresponding expansions from text |
US7409336B2 (en) * | 2003-06-19 | 2008-08-05 | Siebel Systems, Inc. | Method and system for searching data based on identified subset of categories and relevance-scored text representation-category combinations |
JP4502114B2 (ja) * | 2003-06-24 | 2010-07-14 | セイコーインスツル株式会社 | データベース検索装置 |
US7395203B2 (en) * | 2003-07-30 | 2008-07-01 | Tegic Communications, Inc. | System and method for disambiguating phonetic input |
US7349981B2 (en) * | 2003-12-18 | 2008-03-25 | Intel Corporation | System, apparatus, and method for string matching |
US20050144064A1 (en) * | 2003-12-19 | 2005-06-30 | Palo Alto Research Center Incorporated | Keyword advertisement management |
US7386542B2 (en) * | 2004-08-30 | 2008-06-10 | The Mitre Corporation | Personalized broadcast news navigator |
US20060085392A1 (en) * | 2004-09-30 | 2006-04-20 | Microsoft Corporation | System and method for automatic generation of search results based on local intention |
US7478081B2 (en) * | 2004-11-05 | 2009-01-13 | International Business Machines Corporation | Selection of a set of optimal n-grams for indexing string data in a DBMS system under space constraints introduced by the system |
US7549119B2 (en) * | 2004-11-18 | 2009-06-16 | Neopets, Inc. | Method and system for filtering website content |
US7505985B2 (en) * | 2005-02-25 | 2009-03-17 | International Business Machines Corporation | System and method of generating string-based search expressions using templates |
US7788248B2 (en) * | 2005-03-08 | 2010-08-31 | Apple Inc. | Immediate search feedback |
EP1875336A2 (en) * | 2005-04-11 | 2008-01-09 | Textdigger, Inc. | System and method for searching for a query |
US7277029B2 (en) * | 2005-06-23 | 2007-10-02 | Microsoft Corporation | Using language models to expand wildcards |
US7580926B2 (en) * | 2005-12-01 | 2009-08-25 | Adchemy, Inc. | Method and apparatus for representing text using search engine, document collection, and hierarchal taxonomy |
GB2433675B (en) * | 2005-12-22 | 2008-05-07 | Cramer Systems Ltd | Communications circuit design |
US7769804B2 (en) * | 2006-01-17 | 2010-08-03 | Microsoft Corporation | Server side search with multi-word word wheeling and wildcard expansion |
US7778837B2 (en) * | 2006-05-01 | 2010-08-17 | Microsoft Corporation | Demographic based classification for local word wheeling/web search |
US7831472B2 (en) * | 2006-08-22 | 2010-11-09 | Yufik Yan M | Methods and system for search engine revenue maximization in internet advertising |
US20080140519A1 (en) * | 2006-12-08 | 2008-06-12 | Microsoft Corporation | Advertising based on simplified input expansion |
US20090055386A1 (en) * | 2007-08-24 | 2009-02-26 | Boss Gregory J | System and Method for Enhanced In-Document Searching for Text Applications in a Data Processing System |
-
2006
- 2006-01-17 US US11/332,954 patent/US20070164782A1/en not_active Abandoned
-
2007
- 2007-01-04 KR KR1020087017050A patent/KR20080085165A/ko not_active Application Discontinuation
- 2007-01-04 WO PCT/US2007/000242 patent/WO2007087137A2/en active Application Filing
- 2007-01-04 CN CNA2007800032119A patent/CN101375279A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101279759B1 (ko) * | 2006-12-05 | 2013-07-04 | 마이크로소프트 코포레이션 | 컴퓨터 시스템에 의해 구현가능한 방법, 컴퓨팅 시스템에 의해 실행가능한 명령어들을 포함하는 매체 및 컴퓨팅 시스템 |
Also Published As
Publication number | Publication date |
---|---|
WO2007087137A2 (en) | 2007-08-02 |
WO2007087137A3 (en) | 2007-10-11 |
CN101375279A (zh) | 2009-02-25 |
US20070164782A1 (en) | 2007-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7769804B2 (en) | Server side search with multi-word word wheeling and wildcard expansion | |
KR20080085165A (ko) | 입력 데이터 확장 시스템 및 방법, 및 와일드카드 삽입 및입력 데이터 확장 시스템 | |
KR101203352B1 (ko) | 언어 모델을 이용한 와일드카드 확장 | |
US10402493B2 (en) | System and method for inputting text into electronic devices | |
CN106537370B (zh) | 在存在来源和翻译错误的情况下对命名实体鲁棒标记的方法和*** | |
JP5171813B2 (ja) | ローカルなワードホイーリング/Webサーチのための人口統計に基づく分類 | |
KR101389148B1 (ko) | 오리지널 유저 입력에 기초한 유저 입력의 제안 및 정제 | |
US8731901B2 (en) | Context aware back-transliteration and translation of names and common phrases using web resources | |
KR101465770B1 (ko) | 단어 확률 결정 | |
US8914275B2 (en) | Text prediction | |
CN101816000B (zh) | 用于部分输入的搜索查询的自动完成和自动输入法校正 | |
US7912700B2 (en) | Context based word prediction | |
JP5241828B2 (ja) | 辞書の単語及び熟語の判定 | |
US20090249198A1 (en) | Techniques for input recogniton and completion | |
CN101815996A (zh) | 检测名称实体和新词 | |
US20070050352A1 (en) | System and method for providing autocomplete query using automatic query transform | |
JPH10162008A (ja) | 情報検索方法及び装置 | |
CN117216179A (zh) | 一种基于语言模型的英文词语搭配查询方法 | |
Casanovas Martín | Approximate string matching algorithms in art media archives | |
Hindmarsh | Investigating the effects of corpus and configuration on assistive input methods | |
JPH07319864A (ja) | かな漢字変換装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |