KR101520455B1 - 자동 수정을 갖는 키보드 시스템용 맞춤법 검사 - Google Patents

자동 수정을 갖는 키보드 시스템용 맞춤법 검사 Download PDF

Info

Publication number
KR101520455B1
KR101520455B1 KR1020137014217A KR20137014217A KR101520455B1 KR 101520455 B1 KR101520455 B1 KR 101520455B1 KR 1020137014217 A KR1020137014217 A KR 1020137014217A KR 20137014217 A KR20137014217 A KR 20137014217A KR 101520455 B1 KR101520455 B1 KR 101520455B1
Authority
KR
South Korea
Prior art keywords
edit
distance
keys
key
input
Prior art date
Application number
KR1020137014217A
Other languages
English (en)
Other versions
KR20130107325A (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
Priority claimed from US12/939,918 external-priority patent/US8225203B2/en
Application filed by 뉘앙스 커뮤니케이션즈, 인코포레이티드 filed Critical 뉘앙스 커뮤니케이션즈, 인코포레이티드
Publication of KR20130107325A publication Critical patent/KR20130107325A/ko
Application granted granted Critical
Publication of KR101520455B1 publication Critical patent/KR101520455B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/232Orthographic correction, e.g. spell checking or vowelisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus

Abstract

터치 감응 디스플레이 상에 표현되는 키보드를 가로질러 연속적으로 추적되는 경로를 지정하는, 사용자 입력이 수신된다. 규정된 기준에 의해 추적된 키 및 추적된 키에 근접한 보조 키들을 포함하는, 입력 시퀀스가 해결된다. 규정된 어휘의 하나 또는 그 이상의 후보 엔트리들을 위하여, 상기 입력 시퀀스 및 각각의 상기 후보 엔트리들 사이에 세트-편집-거리 메트릭이 계산된다. 세트-편집-거리 메트릭을 계산하는데 페널티를 부과하거나 또는 부과하지 않을 때, 다양한 룰들이 지정된다. 후보 엔트리들은 계산된 메트릭에 따라 순위가 매겨지고 디스플레이된다. 여기에 설명된 특징들은 장치, 프로그래밍된 제품, 방법, 회로, 또는 이들의 조합으로서 구현될 수 있다.

Description

자동 수정을 갖는 키보드 시스템용 맞춤법 검사{SPELL-CHECK FOR A KEYBOARD SYSTEM WITH AUTOMATIC CORRECTION}
관련 특허의 교차 참조
본 발명은 2010년 11월 4일에 출원된 미국특허 제 12/939,918의 우선권을 주장하며, 여기에 전체 내용이 참조로써 통합된다.
본 발명은 데이터 입력 장치들에 관한 것이다. 더 구체적으로, 본 발명은 자동 수정 능력을 갖는 키보드 시스템용 맞춤법 검사(spell-check) 메커니즘에 관한 것이다.
치환된/첨가된/빠뜨린 글자들을 위한 고전적인 맞춤법 검사("편집 거리(edit distance)") 기술들은 상대적으로 긴 역사를 갖는다. 예를 들면, K. Kukich의 Techniques for Automatically Correcting Words, ACM Computing Surveys, Vol 24, No. 4(1992년 12월); J.L. Peterson의 Computer Programs for Detecting and Correcting Spelling Errors, The Communicators of the ACM, Volume 23, No. 12(1980년 12월); 및 J. Daciuk의 International Construction of Finite-State Automate and Transducers, and their Use in the Natural Language Progressing (1988)라는 문헌에서의 맞춤법 수정이 참조된다.
그러나 고전적인 맞춤법 검사 기술들은 타이핑된(typed) 단어 및 의도하는 정확한 단어 사이의 특정 수의 차이만을 처리할 수 있다. 최상의 수정 후보는 최소한의 변경들을 갖는 것으로 추정되기 때문에, 맞춤법 검사 알고리즘들은 예를 들면, 키보드 상의 타이피스트(typist)의 손가락의 이동, 또는 터치 스크린 키보드 상에서의 다급하고 부정확한 태핑(tapping), 및 따라서 거의 모든 글자를 틀리게 타이핑함으로써 당황하게 된다.
특히 저성능 모바일 장치들 상의 전산 처리의 양을 한정하기 위하여, 고전적인 알고리즘의 구현들은 애매성(ambiguity) 및 따라서 고려되는 후보 단어들의 수를 감소시키도록 가정하거나 제약을 가한다. 예를 들면, 그것들은 수정되려는 단어의 첫 글자들에 의존할 수 있거나 또는 어휘의 크기를 엄격하게 한정할 수 있다.
접촉 감응 표면들 상의 키보드들 및 전화기 키패드 모두에 유용한, 자동 오류 수정의 또 다른 형태는 각각의 입력 위치 및 가까운 글자 사이의 거리를 계산하고 가능한 단어들에 대하여 전체 입력 순서를 비교한다. 단어 사용의 가장 높은 빈도 및/또는 신근성(recency)과 결합되는, 글자들이 입력 위치들에 가까운 단어가 최선의 수정 후보이다. 이러한 기술은 이동된 손가락들 및 다급한 태핑 모두를 쉽게 수정한다. 또한 초기 글자들이 모두 정확하게 입력되지 않더라도 합리적인 단어 완성을 제공할 수 있다.
다음의 특허들은 명확성과 자동 수정 애매한 키들, 소프트 키보드들, 필기 인식 시스템들을 위한 "슬로피 타이프(Sloppy Type)" 엔진의 사용을 설명한다: "Keyboard System With Automatic Correction"이라는 발명의 명칭으로 B. Alex Robinsom, Michael R. Longe에 의해 출원된 미국특허 6,801,190(2004년 10월 5일); 미국특허 7,088,345(2006년 8월 8일)과 미국특허 7,277,088(2007년 10월 2일), 및 Robinson 들에 의해 "Handwriting And Voice Input With Automatic Correction"이라는 발명의 명칭으로 출원된 미국특허 7,319,957(2008년 1월 15일)과 미국특허 제 11/043,525(2005년 1월 25일에 출원). 또한 "Adjusting keyboard"라는 발명이 명칭으로 출원된 Garrett R. Vargas의 미국특허 제 5,748,512(1998년 5월 5일)가 참조된다.
게다가, 다음의 특허들은 텍스트 명확화를 위한 수동 및 음성 입력의 조합들을 포함한다: "Multimodal Disambiguation of Speech Recognition"이라는 발명의 명칭으로 Longe 등에 의해 2006년 6월 1일에 출원된 미국특허 제 11/143/408; 및 "Method and Apparatus Utilizing Voice Input to Resolve Ambiguous Manually Entered Text Input"이라는 발명의 명칭으로 Stephanick 등에 의해 2006년 7월 2일에 출원된 미국특허 제 11/350,234.
위에서 설명된 "슬로피 타이프" 기술은 전체 단어 상의 거리 기반 오류 수정을 사용한다. 입력 시퀀스의 길이는 의도되는 단어의 길이와 동일하고 각각의 입력 위치가 적절한 순서 내에 존재한다고 가정하면 이는 각각의 입력을 위하여 다중의 인근 글자들을 고려함으로써 도입되는 증가된 애매성을 보상하는데 도움을 준다. 그러나 작은 대상 오류에 더하여, 사람들은 또한 타이핑할 때 키를 바꾸거나, 키를 이중 태핑하거나, 키를 완전히 놓치거나, 또는 단어를 잘못 쓴다.
정확한 수정 및 허용가능한 실행 모두를 제공하는 것과 같은 방법으로 모든 형태의 타이핑 오류를 처리하기 위한 메커니즘을 제공하는 것이 바람직할 수 있다.
터치 감응 디스플레이(touch sensitive display) 상에 표현되는 키보드를 가로질러 연속적으로 추적되는(taced) 경로를 지정하는, 사용자 입력이 수신된다. 규정된 기준에 의해 추적된 키 및 추적된 키에 근접한 보조 키들을 포함하는, 입력 시퀀스가 해결된다. 규정된 어휘의 하나 또는 그 이상의 후보 엔트리(entry)들을 위하여, 상기 입력 시퀀스 및 각각의 상기 후보 엔트리들 사이에 세트-편집-거리 메트릭(set-edit-distance metric)이 계산된다. 세트-편집-거리 메트릭을 계산하는데 페널티(penalty)를 부과하거나 또는 부과하지 않을 때, 다양한 룰(rule)들이 지정된다. 후보 엔트리들은 계산된 메트릭에 따라 순위가 매겨지고(ranked) 디스플레이된다.
여기에 설명된 특징들은 장치, 프로그래밍된 제품, 방법, 회로, 또는 이들의 조합으로서 구현될 수 있다.
도 1은 본 발명의 일 실시 예에 따른 자동 수정을 갖는 키보드용 맞춤법 검사 방법의 플로 다이어그램이다.
도 2는 본 발명의 일 실시 예에 따른 맞춤법 검사 및 자동 수정을 갖는 입력 시스템의 하드웨어 블록 다이어그램이다.
도 2a는 본 발명의 일 실시 예에 따른 디지털 데이터 처리 기계의 블록 다이어그램이다.
도 2b는 본 발명의 일 실시 예에 따른 바람직한 기억 매체를 도시한다.
도 2c는 본 발명의 일 실시 예에 따른 바람직한 논리 회로의 배경도이다.
도 3은 본 발명의 일 실시 예에 따라, 툴(tool)로서 매트릭스(matrix)를 사용하는 입력 단어 및 대상 단어 사이의 표준 편집-거리 계산을 도시한 테이블이다.
도 4는 본 발명의 일 실시 예에 따른 12-키 휴대폰상의 입력을 위한 세트-편집-거리 계산을 나타내는 테이블이다.
도 5a-5c는 본 발명의 일 실시 예에 따른 스템(stem) 편집-거리 및 스템 세트-편집-거리를 설명하기 위한 도면들이다.
도 6은 본 발명의 일 실시 예에 따른 후보 단어를 식별하기 위하여 스템-편집-거리 계산들 및 증가 필터링(incremental filtering)을 실행하기 위한 단계들을 나타내는 플로 다이어그램이다.
도 7은 본 발명의 일 실시 예에 따른 표준 편집-거리를 사용하는 단어 "misspell"을 위한 일례를 도시한 매트릭스이다.
도 8은 본 발명의 일 실시 예에 따라 계산되는 셀을 기초로 하여 표준 편집-거리 값들을 찾기 위한 방법을 나타내는 매트릭스이다.
도 9는 본 발명의 일 실시 예에 따라 비교되는 단어들이 완전히 매치할 때를 나타내는 매트릭스이다.
도 10a-10b는 본 발명의 일시 예에 따라 비교되는 단어들 사이에 미스매치(mismatch)가 존재할 때를 나타내는 일련의 매트릭스들이다.
도 11은 본 발명의 일 실시 예에 따른 회전된/변환된 매트릭스 공간을 도시한다.
도 12는 본 발명의 일 실시 예에 따라 도 11의 회전된 매트릭스를 위한 표준 편집-거리 값들을 찾기 위한 방법을 도시한다.
도 13은 본 발명의 일 실시 예에 따른 언어 데이터베이스 검색 스크린 기능을 위한 인접한 입력 설정들의 조합을 나타내는 테이블이다.
도 14는 본 발명의 일 실시 예에 따른 입력 길이 9를 위한 길이 독립 스크리닝 맵이다.
도 15는 본 발명의 일 실시 예에 따른 길이 6의 대상 단어 및 입력 길이 9를 위한 길이 의존 스크리닝 맵이다.
도 16은 본 발명의 일 실시 예에 따른 영역 내 자동 수정을 갖는 세트-편집-거리 맞춤법 수정을 도시한 일련의 스크린이다.
도 17은 본 발명의 일 실시 예에 따른 추적(trace)을 도시한 키보드이다.
도 18은 본 발명의 일 실시 예에 따라 추적된 입력을 위하여 계산되는 세트-편집-거리 매트릭스를 위한 레이아웃을 도시한다.
도 19-23은 본 발명의 일 실시 예에 따른 세트 편집 거리 매트릭스 및 다양한 그림자 매트릭스를 도시한다.
도 24는 본 발명의 일 실시 예에 따른 추적 기술을 거쳐 입력된 사용자 입력을 해결하기 위한 바람직한 운용 순서를 도시한 플로차트이다.
도 25-26은 본 발명의 일 실시 예에 따른 보조 키들을 결정하기 위한 다양한 접근법을 나타내는 키보드의 스크린 샷들이다.
도 27-30은 본 발명의 일 실시 예에 따른 세트-편집-거리 및 다양한 그림자 매트릭스를 도시한다.
용어 해설( Glossary )
여기에 논의의 목적을 위하여, 다음의 용어들은 그것과 함께 관련된 의미를 갖는다.
편집 거리(또한 "표준" 편집 거리) - 두 개의 스트링(string)를 비교하고 하나를 다른 하나와 동일하게 하는데 필요한 변경들의 최소한의 수를 결정하기 위하여 충분히 입증된 알고리즘.
다음의 약어들이 여기서 그리고 도면에서 사용될 수 있다:
T - 치환된 (Transposed, 두 개의 연속적인 글자가 교환됨)
I - 삽입된 (Inserted, 다른 스트링 내에 없던 글자를 추가)
D - 삭제된 (Deleted, 하나의 스트링으로부터 추가 글자를 빠뜨림)
S - 대체된 (substituted, 동일한 위치에서 글자를 다른 글자로 대체)
X - 계산되려는 대상 셀
개량된 편집 거리, 또는 세트-편집-거리 (또는 "퍼지 비교(fuzzy compare)") - 본 특허의 주제; 표준 편집 거리에서와 같은 단일 글자보다는 각각의 입력을 표현하기 위한 글자들의 세트(각각에 대한 선택적인 확률을 갖는), 및 다른 최적화들을 사용하는 향상된 편집 거리.
모드 - 운용 상태, 이러한 예를 위하여, 두 가지 중의 하나가 지정되는데, "정확한(exact)"(표준 편집 거리와 마찬가지로, 각각의 후보 단어를 일치시키기 위하여 각각의 입력 이벤트로부터 단지 정확한-탭 글자/값을 사용하는) 또는 "영역 내(regional)" "세트-기반"(입력 당 다중 글자/값들을 사용하는); 모드는 사용자 또는 시스템 지정일 수 있다.
영역 내 입력 - 실제로 태핑되거나/눌려지는(pressed) 글자/키에 더하여 인근/주변의 글자들(선택적 확률들을 갖는)을 포함하는 방법(또는 이벤트).
세트-기반 - 각각의 입력을 표현하기 위하여 단지 하나보다는, 다중 글자 값들의 사용; 각각의 세트 구성원은 서로 다른 상대 확률을 가질 수 있다; 세트는 또한 예를 들면, 키 상에 나타나는 기본 글자의 악센트 표시가 있는 변형들을 포함할 수 있다.
"고전적 비교", "고전적 매치(classic match)", 슬로피 형태, 또는 "영역 내 수정" - 위의 인근 글자들을 고려하는 자동 수정을 사용하는 전 단어(full word) 매칭; 일반적으로, 입력들의 수는 각각의 후보 단어(또는 완성된 단어의 단어 스템) 내의 글자들의 수와 동일하다.
필터 또는 스크린 - 결과적으로 선택 리스트에 더해지지 않는 단어를 식별하고 제거함으로써 전체 비교 또는 검색을 간단히 하기 위한 룰.
KDB - 키보드 데이터베이스(Keyboard Database); 키보드 레이아웃, 각각의 글자를 둘러싸는 애매성의 레벨, 및 각각의 글자를 위한 인근 글자들에 관한 정보.
LDB - 언어 데이터베이스(Linguistic Database), 즉, 언어를 위한 주된 어휘(vocabulary).
"단어 탭 빈도" - 눌려진 키들로부터 단어가 대상 단어(target word)일 가능성까지의 물리적 거리의 기여.
논의
본 발명의 일 실시 예는 애매한 키패드들 및 다른 예측 텍스트 입력 시스템(predictive text input system)들을 위하여 확률 기반 자동 수정 알고리즘들 및 데이터 구조들과 함께 운용하는 표준 편집 거리 맞춤법 검사 알고리즘들을 제공한다. 본 발명의 실시 예들은 또한 서로 다른 형태의 결과들을 최적화하고 배치하기 위한 전략들을 제공한다.
도 1은 자동 수정을 갖는 키패드를 위한 맞춤법 검사 방법의 플로 다이어그램이다. 도 1은 데이터 입력 장치(data entry device, 105)를 거쳐 사용자에 의해 입력되는 입력 시퀀스를 포함하는 사용자/입력을 도시하는데, 사용자의 입력은 애매할 수 있다. 사용자의 입력을 위한 대상 의미들의 소스로서 적어도 하나의 사전(dictionary, 115)이 또한 제공된다. 각각의 사용자 입력 이벤트(100) 상에서 본 발명의 시스템에 사용자 입력 시퀀스가 제공된다. 위에서 논의된 사전(115)과 같은, 각각의 소스(source, 110)가 쿼리된다(queried). 잠재적으로 각각의 사용자 입력 이벤트 상에서 본 발명의 시스템에 대한 입력으로서, 각각의 사전 내의 모든 단어(120)가 차례로 제공된다.
이러한 입력들을 수신하면서, 시스템은 증가된 필터링과 편집 거리 및 영역 내/확률 계산들을 실행하는데(140), 입력들과의 유사성을 위한 최대 한계(threshold)를 충족하지 못하는 어떠한 단어도 버린다(discard). 그리고 나서 시스템은 입력 시퀀스와 사전 입력들에 대한 결과를 단어 선택 리스트 내의 다른 최상 매치들과 비교하고 만일 리스트 상에 너무 낮게 순위가 매겨지면 단어를 버린다(140). 만일 리스트가 가득 차면, 리스트 내의 가장 낮은 순위의 단어가 떨어지고(dropped), 단어는 순위를 기초로 하여 리스트 내에 삽입된다(150). 그리고 나서 리스트는 사용자에 표현된다.
도 2는 맞춤법 검사 및 자동 수정을 갖는 입력 시스템(200)의 하드웨어 블록 다이어그램이다. 입력 장치(202) 및 디스플레이(203)가 적절한 인터페이스 회로를 통하여 프로세서(201)에 결합된다. 선택적으로, 스피커(204)가 또한 프로세서에 결합된다. 프로세서(201)는 입력 장치로부터 입력을 수신하고, 디스플레이 및 스피커로의 모든 출력을 관리한다. 프로세서(201)는 메모리(210)에 결합된다. 메모리는 랜덤 액세스 메모리(RAM)와 같은, 임시 저장 매체 및 판독-전용메모리(ROM), 플로피 디스크, 하드 디스크, 또는 CD-ROM과 같은, 영구 저장 매체의 조합을 포함한다. 메모리(210)는 시스템 작동을 통제하기 위하여 모든 소프트웨어 루틴(software routine)을 포함한다. 바람직하게는, 메모리는 운용 시스템(211), 편집 거리를 계산하고 특히 맞춤법 검사를 실행하기 위한 수정 소프트웨어(212), 및 아래에 상세히 논의되는 관련 어휘 모듈(vocabulary module, 213)들을 포함한다. 선택적으로, 메모리는 하나 또는 그 이상의 응용 프로그램(214, 215, 216)을 포함할 수 있다. 응용 프로그램의 예들은 워드 프로세서(word processor), 소프트웨어 딕셔너리(software dictionaries), 및 외국어 번역기(foreign language translators)를 포함한다. 통신 지원으로서 기능을 하기 위하여 통신 입력 시스템이 모든 수정 능력을 갖도록 허용하는, 응용 프로그램으로서 음성 합성 소프트웨어가 또한 제공될 수 있다.
바람직한 디지털 데이터 처리 장치
중앙처리장치(CPU, 201)와 같은 데이터 처리 개체들이 다양한 형태로 구현될 수 있다. 일부 실시 예들은 일반적인 목적의 프로세서, 디지털 신호 프로세서(DSP), 주문형 반도체(ASIC), 현장 프로그램가능 게이트 어레이(FPGA) 또는 다른 프로그램가능 논리 장치, 이산 게이트 또는 트랜지스터 논리, 이산 하드웨어 부품들, 혹은 여기에 설명되는 기능들을 실행하도록 디자인된 그것들의 어떤 조합을 포함한다. 일반적인 목적의 프로세서는 마이크로프로세서일 수 있으나, 대안으로서, 프로세서는 종래의 어떠한 프로세서, 컨트롤러, 마이크로컨트롤러, 또는 상태 기계(state machine)일 수 있다. 프로세서는 또한 계산 장치들의 조합, 예를 들면, 디지털 신호 프로세서와 마이크로프로세서, 복수의 마이크로프로세서, 디지털 신호 프로세서 코어와 함께 하나 또는 그 이상의 마이크로프로세서, 또는 다른 그러한 구성의 조합으로서 구현될 수 있다.
더 구체적인 예로서, 도 2a는 디지털 데이터 처리 장치(220)를 도시한다. 장치(220)는 디지털 데이터 기억장치(224)에 결합되는, 마이크로프로세서, 개인용 컴퓨터, 워크스테이션(workstation), 컨트롤러, 마이크로컨트롤러, 상태 기계와 같은 프로세서(222)를 포함한다. 본 실시 예에서, 기억장치(224)는 비휘발성 기억장치뿐만 아니라, 속성 액세스(fast-access) 기억장치를 포함한다. 속성-액세스 기억장치(226)는 예를 들면, 프로세서(222)에 의해 실행되는 프로그래밍 명령들을 기억하도록 사용될 수 있다. 기억장치(226 및 228)는 도 2b-2c와 함께 상세히 설명되는 것과 같은, 다양한 장치들에 의해 구현될 수 있다. 많은 대안들이 가능하다. 예를 들면, 부품들(226, 228) 중의 하나가 제거될 수 있으며, 또한 탑재된 프로세서(222)에 기억장치(224, 226 및/또는 228)가 제공될 수 있거나, 또는 장치(220) 외부에 제공될 수 있다.
장치(220)는 또한 데이터를 장치(220) 외부의 다른 하드웨어와 교환하기 위한 커넥터, 라인, 버스, 버퍼, 전자기 링크, 네트워크, 모뎀, 변환기, 적외선 포트, 안테나, 또는 프로세스를 위한 다른 수단들과 같은, 입력/출력(221)을 포함한다.
기억 매체( Storage Media )
디지털 데이터 기억장치의 다양한 인스턴스(instance)들은 기억장치(24 및 228, 도 2a) 등을 구현하기 위하여 메모리(210)와 같은, 기억장치를 제공하도록 사용될 수 있다. 그것의 적용에 따라, 이러한 디지털 데이터 기억장치는 데이터를 기억하거나 또는 기계-판독가능한 명령들을 기억하기 위한 것과 같이 다양한 기능들을 위하여 사용될 수 있다. 이러한 명령들은 스스로 다양한 처리 기능을 수행하는데 도움을 줄 수 있거나, 또는 컴퓨터상에 소프트웨어 프로그램들을 설치하는데 도움을 줄 수 있는데, 그러한 소프트웨어 프로그램은 그리고 나서 본 발명과 관련된 다른 기능들을 실행하도록 실행가능하다.
어쨌든, 기억 매체는 기계-판독가능한 신호들을 디지털 방식으로 기억하기 위하여 거의 모든 메커니즘에 의해 구현될 수 있다. 일례가 CD-ROM, WORM, DVD, 디지털 광학 테이프, 디스크 기억장치(230, 도 2b), 또는 다른 광학 기억장치와 같은, 광학 기억장치이다. 또 다른 예는 종래의 "하드 드라이브", 종래의 레이드(redundant array of inexpensive disks, RAID), 또는 다른 직접 액세스 기억 장치(DASD)와 같은, 직접 액세스 기억장치이다. 디지털 데이터 기억장치의 또 다른 예는 ROM, EPROM, 플래시 ROM, EEPROM, 메모리 레지스터, 배터리 백-업 RAM 등과 같은 전자 메모리를 포함한다.
바람직한 기억 매체는 프로세서가 기억 매체로부터 정보를 판독하고 기억 매체로 정보를 기록하도록 프로세서에 결합된다. 대안으로서, 기억 매체는 프로세서에 통합될 수 있다. 또 다른 실시 예에서, 프로세서 및 기억 매체는 ASIC 또는 다른 집적 회로에 존재할 수 있다.
논리 회로
위에서 설명된 것과 같은, 기계-실행가능 명령들을 포함하는 기억 매체와 대조적으로, 여기서 설명되는 처리 특징들을 구현하기 위하여 다른 실시 예는 논리 회로를 사용한다. 속도, 비용, 장비 비용 등의 분야에서의 적용의 특정 요건에 따라, 이러한 논리는 수천의 작은 통합 트랜지스터를 갖는 주문형 반도체를 구성함으로써 구현될 수 있다. 그러한 주문형 반도체는 CMOS, TTL, VLSI, 또는 다른 적절한 구성과 함께 구현될 수 있다. 다른 대안들은 디지털 신호 처리 칩(DSP), 이산 회로(저항기, 커패시터, 다이오드, 인덕터, 및 트랜지스터와 같은), 현장 프로그램가능 게이트 어레이, 프로그램가능 논리 어레이(PLA), 프로그램가능 논리 장치(PLD) 등을 포함한다. 도 2c는 집적 회로(240) 형태의 논리 회로의 일 실시 예를 도시한다.
영역 내 수정과 결합된 편집 거리
편집-거리는 하나의 스트링을 다른 스트링으로 바꾸기 위하여 필요한 작업의 수이다. 본질적으로, 이는 철자가 틀린 단어를 고치기 위하여, 펜으로 수동으로 만들어야만 하는 편집의 수이다. 예를 들면, 입력 단어 "ressumt"를 대상 단어 "result"로 고치기 위하여, 두 개의 편집이 만들어져야 하는데, "s"가 제어되어야 하며, "m"이 "l"로 변경되어야 한다. 따라서, "result"는 "ressumt"로부터 편집 거리 2이다.
입력 단어 및 대상 단어 사이의 편집-거리를 결정하기 위한 일반적인 기술은 툴로서 매트릭스를 사용한다(도 3 참조). 접근법은 입력 단어 내의 글자를 대상 단어 내의 글자와 비교하고, 매트릭스의 하부 맨 오른쪽 구성요소에서의 단어들 사이의 전체 편집-거리를 준다. 계산의 상세 내용은 복잡하나, 일반적으로 편집-거리(대각선의 구성요소 내의 수에 의해 나타나는)는 단어들의 부들이 다르게 보이기 시작할 때마다 증가한다(그리고 작은 값은 더 유사한 것을 의미한다). 상부 오른쪽으로부터 하부 왼쪽으로 매트릭스를 작업할 때, 만일 대상 단어 내의 글자가 입력 단어 내의 글자와 동일하면, 편집-거리는 증가하지 않는다. 만일 대상 단어 내의 글자가 동일하지 않으면, 편집-거리는 표준 룰에 따라 증가한다. 최종 결과, 전체 편집 거리는 하부 맨 오른쪽 요소(굵은 윤곽선)이다.
그러한 개념은 이제 각각의 입력이 단일 글자들보다 글자들의 세트와 상응하는 애매한 입력으로 확장된다. 이러한 일례가 사용자에게 사용자가 입력하기를 원하는 글자들과 상응하는 키들을 누르도록 허용하는 휴대폰상의 텍스트 입력 시스템인데, 시스템은 키들이 그것들과 관련된 다중 글자를 갖는다는 사실에 내재하는 애매함을 해결한다. 새로운 용어 "세트-편집-거리"는 애매한 입력에 대한 편집-거리 개념의 확장을 언급한다. 세트-편집-거리를 설명하기 위하여, 휴대폰의 텍스트 입력 시스템의 사용자는 단어 "result"를 입력하려고 시도하는 동안에 키(7,3,7,7,8,6,8)를 누르는 것으로 가정한다. 이러한 애매한 시스템상의 맞춤법 수정은 입력 키 시퀀스에 대하여 가장 작은 세트-편집-거리를 갖는 단어들을 찾는다. 본 기술은 편집-거리의 그것과 유사하나, 대상 단어 내의 글자를 입력 시퀀스 내의 글자와 비교하는 대신에, 대상 내의 글자는 입력 키에 의해 표현되는 글자들 세트에 대하여 비교된다. 만일 대상 글자가 입력 세트 내에 존재하면, 세트-편집-거리는 증가하지 않는다. 만일 대상 글자가 입력 세트 내에 존재하지 않으면, 세트-편집-거리는 표준 룰에 따라 증가한다. 세트-편집-거리와 상응하는 매트릭스가 도 4에 도시되는데, 그 결과는 하부 맨 오른쪽(굵은 윤곽선)에 존재한다.
도 4의 실시 예는 세트-편집-거리의 개념을 설명하기 위하여 휴대폰상의 키 입력을 사용하나, 이러한 개념은 또한 쿼티 키보드 상에 눌려진 키를 둘러싸는 글자들의 세트, 또는 글자 인식 엔진으로부터 복귀되는 글자들의 세트와 같은, 다른 애매한 시스템들에 적용된다. 또한, 위의 실시 예는 세트 내의 글자들이 모두 동일한 가능성인 것으로 가정하나, 시스템은 최종 세트-편집-거리 스코어(score) 내의 글자 확률들을 통합하도록 확장될 수 있다.
그러한 확장된 시스템에서, 입력 시퀀스는 하나 또는 그 이상의 그 이상의 글자 + 확률 쌍들의 어레이로서 나타낼 수 있다. 확률은 시스템에 의해 확인되는 글자가 사용자가 의도한 글자라는 가능성을 반영한다. "Handwriting And Voice Input With Automatic Correction"이라는 발명의 명칭으로 Robinson 등에 의한 미국특허 7,319,957(2008년 1월 15일) 및 "Handwriting And Voice Input With Automatic Correction"이라는 발명의 명칭으로 Robinson 등에 의해 2005년 1월 25일에 출원된 미국특허 제 11/043,525에서 설명된 것과 같이, 이들 각각은 여기에 참조로써 통합된다. 확률은 하나 또는 그 이상의 다음을 기초로 할 수 있다:
Figure 112013049138249-pct00001
스타일러스(stylus) 또는 손가락 탭 위치로부터 터치 스크린상에 표시되는 키보드 상의 각각의 인접한 글자까지의 데카르트 거리(Cartesian distance), 인접한 글자들의 빈도, 및/또는 각각의 글자 주위의 탭들의 분포;
Figure 112013049138249-pct00002
알파벳의 인접 글자들의 지정된 파이 슬라이스(pie slice)들에 대한 조이스틱 틸트 방향 사이의 방사상 거리;
Figure 112013049138249-pct00003
손으로 쓴 글자 및 가능한 글자 형태들/템플레이트들 사이의 유사성 정도, 예를 들면, "ink trail"은 글자 'c'(60% 확률)가 가장 유사한 것으로 보이나, 또한 'o'(20%), 'e'(10%), 'a'(10%)와 같은, 다른 글자들일 수 있다; 및
Figure 112013049138249-pct00004
글자/문자소(grapheme)가 음성 인식 전위(front-end)에 의해 처리되는 음소(phoneme) 또는 전체 단어 발음(utterance)에서 표현되는 확률
따라서, 세트-편집-거리는 애매한 세트들에 적용되는 표준 편집 거리인데, 입력된 어휘 단어 및 대상 어휘 단어 사이의 각각의 차이에 페널티들이 할당된다. "이 글자가 다른가?"라는 질문 대신에 "이 글자가 확률 세트 내의 가능한 후보 중의 하나인가?"라는 질문이 요구된다.
따라서, 일 실시 예는 다음의 알고리즘을 적용한다:
Figure 112013049138249-pct00005
만일 매치를 야기하는 두 개의 확률 변환이 존재하면, 가장 낮은 편집 거리를 갖는 하나를 선택한다.
Figure 112013049138249-pct00006
만일 글자가 입력의 확률 세트 내에 존재하면, 또한 그러한 글자를 위한 영역-수정 확률 스코어를 계산한다..
Figure 112013049138249-pct00007
맞춤법 수정 탭 빈도를 계산하기 위하여 단어 내의 모든 글자를 위한 모든 영역-수정 확률 스코어를 누적한다.
Figure 112013049138249-pct00008
제로-세트-편집-거리 단어, 즉 어휘 단어 내에 동일한 단어 길이 및 각각의 단어가 입력 확률 세트들 내에 존재하는 단어들을 위하여, 탭 빈도만이 사용된다.
매칭 및 단어 리스트 배치 단계들 위하여 다수의 값들이 계산되거나 누적된다:
1. 세트-편집-거리;
2. 비교의, 탭 빈도;
3. 스템 편집-거리;
4. 단어 빈도; 및
5. 소스, 예를 들면, 사전.
단어의 탭 빈도(TF) 또는 스템은 다음과 같이 계산될 수 있다:
TF = 글자 1의 확률 * 글자 2의 확률 * ... (1)
이는 표준 확률 세트 자동-수정 계산들과 유사하나, 편집 거리 알고리즘은 대안들을 생성하고 그리고 나서 이러한 대안들 중에서 가장 크게 계산된 빈도가 선택된다.
도 4의 실시 예는 세트-기반 입력 시퀀스 및 전체 대상 단어 사이의 비교를 사용한다. 이러한 개념은 또한 대상 단어의 시작(스템)에 대하여 입력들의 세트들을 비교하도록 적용될 수 있다. 이는 사용자가 전체 입력 시퀀스를 입력하기 전에 시스템이 맞춤법 수정들을 예측하기 시작하도록 허용한다. 이는 스템-편집-거리라고 불린다. 도 5a-5b는 부분적인 입력 시퀀스들을 도시한다. 이러한 도면들에서, 글자 'a' 및 'c'는 터치 스크린 쿼티 키보드 상의 물리적 근접성을 기초로 하는 동일한 세트의 구성원들일 수 있으며, 's' 및 'g'는 그렇지 않다. 대상 단어의 세 번째 위치에서의 글자 's'는 도 5a에서의 세 번째 입력을 위한 세트 내에 존재하기 때문에, 입력 및 대상 단어 사이의 스템 세트-편집-거리는 제로이다. 세 번째 글자 's'는 도 5b에서의 세 번째 입력을 위한 동일한 세트 내에 존재하지 않기 때문에, 입력 및 대상 단어 사이의 스템 세트-편집-거리는 1이다.
스템 편집-거리는 분명하게 입력되거나 가장 개연성 있는 글자들을 위한 편집 거리 값, 주로 긴 대상 단어의 상응하는 글자들과 비교하여, 각각의 입력 확률 세트로부터의 추출-탭 값이다. 이 경우에 있어서, 터치 스크린 쿼티 키보드를 위하여 각각의 입력으로부터 가장 개연성 있는 글자는 추출-탭 글자이다. 대상 단어의 세 번째 위치에서의 글자 's'는 도 5a에서의 세 번째 입력을 위한 추출-탭 값과 동일하지 않기 때문에, 입력 및 대상 단어 사이의 스템 편집-거리는 1이다. 유사하게, 도 5에서의 입력 대상 단어 사이의 스템 편집-거리는 또한 1이다.
스템 세트-편집-거리를 위한 세트들은 또한 언어 특이적일 수 있다. 예를 들면, 프랑스어에서의 글자의 악센트가 드러나는 변형들이 동일한 세트의 구성원들일 수 있다. 도 5c는 'e'의 변형이 동일한 키에 대하여 매핑하는 일 실시 예를 도시하는데, 이는 입력 및 대상 단어 사이에 제로의 스템 세트-편집-거리를 야기한다.
본 발명의 일 실시 예는 또한 사용자의 의도 또는 입력 스타일을 반영하도록 선택 리스트 내의 단어들의 배치를 조정하기 위한 다수의 혁신적인 전략을 제공한다. 예를 들면, 결과들은 다음의 두 가지 방법 중의 하나로 편향될 수 있다:
Figure 112013049138249-pct00009
전 단어 우선권 - 예를 들면, 복잡하거나 또는 낮은 촉각 피드백을 갖는 좋지 못한 키보드, 및/또는 빠르거나 슬로피 타이피스트를 위하여, 결과들은 영역 내, 즉, 니어-미스(near-miss), 모든 입력의 수정 및 소수의 단어 완성들을 강조한다; 및
Figure 112013049138249-pct00010
완성들의 촉진 - 뛰어난/정확한 키보드, 및/또는 완전히 신장시키기 위한 완성들을 원하는 느린, 세심한 타이피스트를 위하여, 결과들은 즉, 어느 정도는 정확한 탭, 입력 시퀀스 등을 기초로 하는 단어 완성들을 강조한다
본 발명의 일 실시 예는 비-데스크톱 장치상에서, 특히 타이핑 오류 및 모든 타이피스트에 더 유용하도록 위에서 설명된 "슬로피 타이프" 기술과 협력하는 그러한 시스템들을 허용하는 맞춤법 검사 특징들을 제공한다. "슬로피 타이프" 시스템은 사용자 키스트로크 엔트리(keystroke entry)에서 자동으로 부정확성을 수정하기 위하여 단어 레벨의 명확성을 사용하는 향상된 텍스트 입력 시스템을 제공한다. 구체적으로, "슬로피 타이프" 시스템은 (a) 알파벳의 복수의 글자들을 포함하는 자동-수정 키보드 영역을 포함하는 터치 감응 표면을 구비하고, 각각의 복수의 글자들은 자동-수정 키보드 영역 내의 알려진 좌표를 갖는 위치와 상응하고, 사용자가 자동-수정 키보드 영역 내의 사용자 입력 장치를 접촉할 때마다, 사용자 접촉과 관련된 위치가 결정되고 결정된 접촉 위치는 접촉 위치들의 현재 입력 시퀀스에 더해지며; (b) 복수의 대상과 접촉하는 메모리를 구비하고, 각각의 대상은 단어 또는 단어의 일부를 형성하는 하나 또는 복수의 글자의 스트링이며, 각각의 대상은 또한 사용의 빈도와 관련되며; (c) 텍스트 디스플레이 영역을 갖는 출력 장치; 및 (d) 사용자 입력 장치, 메모리, 및 출력 장치에 결합되는 프로세서;를 포함하며, 상기 프로세서는 (ⅰ) 접촉들의 입력 시퀀스 내의 각각의 결정된 접촉 위치를 위하여, 접촉 위치들 및 자동-수정 키보드 영역 내의 하나 또는 복수의 글자와 상응하는 알려진 좌표 위치들 사이의 거리 값들의 세트를 계산하는, 거리 값 계산 부품(distance value calculation component); (ⅱ) 각각의 발생된 입력 시퀀스를 위하여, 메모리 내의 하나 또는 복수의 글자를 식별하고, 하나 또는 복수의 식별된 후보 대상 각각을 위하여, 계산된 거리 값들 및 대상과 관련된 사용의 빈도를 기초로 하여 매칭 메트릭(matching metric)을 계산함으로써 각각의 식별된 후보 대상을 평가하며, 계산된 매칭 메트릭 값들을 기초로 하여 평가된 후보 대상들에 순위를 매기는, 단어 평가 부품(word evaluation component); 및 (ⅲ) (a)그것들의 평가된 순위에 따라, 하나 또는 복수의 후보 대상을 식별하고, (b) 식별된 대상들을 사용자에게 보여주고, 출력 장치상의 텍스트 디스플레이 영역으로의 출력을 위하여 사용자가 보여준 대상들 중 하나를 선택할 수 있도록 하기 위한 선택 부품;을 포함한다.
최적화들
이론적으로, 충분히 큰 편집 거리 스코어가 주어진다면, 어휘 내의 모든 단어는 수정으로 고려될 수 있다. 그러나, 데이터베이스 처리는 사용자가 타이핑할 때마다 실시간으로 발생하여야만 하며, 특히 모바일 기기를 위하여, 이용가능한 처리 능력 및 작동 메모리에 대한 제한이 존재한다. 따라서, 결합된 편집 거리 알고리즘들의 모든 부분을 최적화하고 가능할 때 처리 단계들을 제거하는 것이 중요하다. 예를 들면, 가능한 단어 매치를 버리기 위한 최고 레벨 기준은 비교되는 어떠한 단어에 대하여 최대 세 개의 편집까지, 매 세 개의 실제 입력들에 대하여 단지 하나의 편집/수정을 허용하는 것이다.
다른 성능 개량들은 예를 들면 다음을 포함(제한 없이)할 수 있다:
Figure 112013049138249-pct00011
편집 거리 계산들을 최소화하기 위한 전략들, 예들 들면, 비교가 전부 거부되도록 허용할 수 있는 셀들을 계산하는 첫 번째 통과(first pass).
Figure 112013049138249-pct00012
시스템은 사용자가 또 다른 글자를 입력할 때와 같이, 이전 통과의 결과들로부터 시작하거나; 또는 임시로 예를 들면, 사용자가 엔트리를 멈출 때까지, 단축되거나, 부분적인, 또는 흐릿한 선택 리스트를 나타내는, 이전 단어들을 줄인다,
Figure 112013049138249-pct00013
예를 들면, 덜 엄격한 대부분에서, 필터링의 레벨들은 편집 거리 매트릭스 계산들이 완료되기 전에, 동안에, 또는 이후에 적용되는데, 예를 들면:
Figure 112013049138249-pct00014
정확한 첫 번째 단어, 그렇지 않으면 고려로부터 대상 단어를 철회;
Figure 112013049138249-pct00015
확률 세트 내의 첫 번째 단어 니어-미스, 영역 내;
Figure 112013049138249-pct00016
어휘 단어의 첫 번째 글자는 반드시 첫 번째 두 입력들 중의 하나와 매치하여야 하는데, 예를 들면, 하나의 첨가, 하나의 드롭(drop), 또는 하나의 치환된 쌍을 허용한다;
Figure 112013049138249-pct00017
어휘 단어의 첫 번째 글자는 반드시 첫 번째 두 입력들 중의 하나의 세트 내에 존재하여야 한다;
Figure 112013049138249-pct00018
다른 필터링 개념들 및 변형들이 적용될 수 있다; 및
Figure 112013049138249-pct00019
비 필터링
단어 빈도는 지프의 법칙(Zipf's Law)을 기초로 하여 근사치가 계산될 수 있는데, 이는 자연 언어 발음의 주어진 일부 코퍼스(corpus), 어떤 단어의 빈도는 빈도 테이블 내의 그것의 순위에 반비례한다는 것을 설명한다..따라서, 가장 빈번한 단어는 대략 두 번째 빈번한 단어의 두 배로 발생하고, 두 번째 빈번한 단어는 네 번째 빈번한 단어의 두 배로 발생한다. 일 실시 예에서, 어휘 데이터베이스 내의 각각의 단어를 위하여 저장된 값보다는, 근사치가 사용된다:
Fn = F1/n (N번째 단어의 빈도는 단어 위치에 의해 분할되는 첫 번째 단어의 빈도이다) (2)
다른 조정가능한 구성 파라미터들은 다음을 포함할 수 있다:
Figure 112013049138249-pct00020
니어-미스 섹션 당 단어 완성들의 수;
Figure 112013049138249-pct00021
맞춤법 수정의 수; 및
Figure 112013049138249-pct00022
맞춤법 수정 모드, 표준 편집 거리 또는 세트-편집-거리(글자 확률들을 갖거나 혹은 갖지 않는).
맞춤법 수정 실행
큰 단어 리스트 상의 맞춤법 수정은 중앙처리장치 집중적인 작업이고 메모리가 제한될 때 훨씬 더하다. 따라서, 수용가능한 성능에 도달하기 위하여, 전체 시스템은 선택된 맞춤법 수정 특징들을 기초로 하여 최적화되어야만 한다. 결과로서 생기는 시스템은 따라서 특징 관점으로부터 상당히 경직될 수 있다. 특정 최적화 없이 성능은 한 등급 또는 두 등급 더 나빠질 수 있다.
맞춤법 수정 실행은 대부분 다음에 의존한다:
Figure 112013049138249-pct00023
허용된 편집들, 모드들, 및 필터들과 같은, 맞춤법 수정 특성들
Figure 112013049138249-pct00024
"퍼지 비교" 기능(단어가 입력과 일치하는지를 결정하는)
Figure 112013049138249-pct00025
낮은 레벨 언어 데이터베이스 검색 기능
Figure 112013049138249-pct00026
언어 데이터베이스 포맷(구조 및 행동)
Figure 112013049138249-pct00027
언어 데이터베이스 내의 단어들의 수 및 그것들의 길이 분포
Figure 112013049138249-pct00028
언어 데이터베이스에 대하여 키보드 데이터베이스는 얼마나 애매한가.
각각의 이러한 요소들은 다음 섹션에서 더 상세히 설명된다.
맞춤법 수정 특성들
허용된 편집들
허용된 편집들의 수는 매우 중요한 성능 계수이다. 편집들이 많을수록 비교 내에 더 많은 애매성이 존재하며 따라서 더 많은 단어들이 매치하고 우선순위화를 위하여 선택 리스트 내로 들어간다. 만일 비교가 너무 관대하면 영향은 원치않는 너무 많은 단어들이 리스트 내로 들어간다는 것이다.
바람직한 실시 예에서, 허용된 편집들의 수는 입력 길이와 관련되고 하나의 편집은 최대 세 개까지 매 세 번째 입력을 위하여 주어진다. 아래의 실시 예들에 걸쳐 세 개의 입력 당 하나의 입력의 파라미터가 가정된다.
모드들 및 필터들
모드들 및 필터들은 결과 세트뿐만 아니라 성능을 실행을 제어하도록 사용된다. 모드의 두 가지 예는 정확한 입력 및 영역 내이다. 예를 들면, 터치 스크린 소프트 키보드 상에서, 사용자는 원하는 글자 상에 정확하게 태핑할 수 있을 뿐만 아니라 글자들의 거의 정확한 영역을 나타낸다. 정확한 입력 모드에서, 각각의 사용자 입력으로부터의 정확한 탭 글자만이 고려된다. 영역 내 모드에서, 각각의 사용자 입력에 의해 표시되는 인근 글자들의 일부 또는 모두가 고려된다.
정확한 입력에 대한 맞춤법 수정은 애매성을 감소시키고 후보들을 더 입력된 것과 같이 보이게 한다(비록 입력된 것이 부정확하더라도). 이는 터치 스크린 소프트 키보드와 같은, 정확한 탭 값들을 특징으로 하는 키보드 데이터베이스에 효율적이다. 12 키 시스템들(표준 전화 키패드용)은 어떤 유용한 정확한 탭 값도 가질 수 없다; 각각의 키 누름은 글자들 중의 하나 대신에 키의 숫자(digit)에 의해 표현될 수 있으며, 각각의 키 상의 하나의 글자가 의도되는 글자인 다른 것보다 더 많을 것으로 직감할 수가 없다.
불행히도 12 키 시스템들을 위하여, 키보드 데이터베이스들은 일반적인 영역 내 모드 레이아웃으로서 행동하는데, 즉, 각각의 입력은 세트 당 적어도 3개의 글자를 생산하고, 악센트가 있는 단어들이 포함될 때 더 많은 글자들이 생산되나, 정확한 입력 모드와 필터링을 위하여 사용될 수 있는 정확한 탭 값을 갖지는 않는다.
필터는 만일 달성된 최소 기준을 충족시키지 못하면 후보 단어의 또 다른 고려를 종료하는 스크리닝 기능이다. 예를 들면, ONE/TWO 필터들은 대부분 단어 내의 첫 번째 글자가 첫 번째 또는 두 번째 입력과 밀접하게 연관되게 하고 매치하지 않는 어떤 후보 단어도 거부하는, 성능 개량을 위한 것이다.
"퍼지 비교" 기능
퍼지 비교 기능은 입력 및 비교되는 단어 사이의 특정 차이, 편집 거리를 허용한다. 개념은 편집 거리를 계산하고 그 값을 기초로 하여 단어를 통과시키거나 또는 거부하는 것이다
정확한 편집 거리의 계산은 비싼 실행 방법이다. 그 해결책은 실제 계산 이전에 스크리닝 메커니즘을 위치시키는 것이다. 온당한 범위 내에서 "아래로" 거부하는 것이 수용가능하나, 만일 가능하다면 "위로" 거부는 방지되어야 한다. "아래로 거부" 때문에 스크리닝을 통과한 단어들은 실제 거리 계산 이후에, 뒤에 제거된다.
빠른 스크리닝은 각각의 키 프레스 상의 수용가능한 실행을 유지하는데 중요하다. 잠재적으로, 많은 양의 단어들이 스크리닝을 위하여 들어올 수 있으며 정상적으로 소수만이 전달된다. 따라서, 뛰어난 성능을 위하여 스크리닝의 모든 것들은 또한 매우 효율적이다. 스크리닝 이후에 수행된 것들은 덜 중요한 실행 방법이나, 특히 수천 단어들이 선택 리스트 삽입 기능 내로 들어오는 특정 입력 조합들을 위하여, 여전히 들어오는 상당한 양의 데이터가 존재한다.
하나 또는 그 이상의 실시 예들에서, 맞춤법 수정은 영역 내 자동 수정의 확률 세트 비교 논리와 함께 작동한다. 맞춤법 수정 계산을 기초로 하여 수용되지 않는 세트 비교들에 의해 수용되는 단어들이 존재한다. 이는 맞춤법 수정이 정확한 입력 모드에서 설정될 때 또는 정확한 필터들을 사용할 때 영역 내 입력을 위한 경우이다. 단어 완성은 또한 고전적인 비교를 위하여 더 단순하나 맞춤법 수정에서 편집들의 비용이 든다.
바람직한 실시 예에서, 퍼지 비교 단계들은 다음과 같다:
1. 너무 짧은 단어들을 위한 스크린
2. 세트 기반 매치를 위한 스크린
3. 스템 편집-거리 계산
4. ONE/TWO를 위한 스크린
5. 세트-편집 거리를 위한 스크린
6. 위치-잠금 글자들을 위한 스크린
7. 세트-편집--거리 및 빈도 계산
8. 스템 편집-거리 계산
이러한 단계들은 도 1의 계산들(130)의 일 구현을 나타내는, 도 6의 플로 다이어그램으로서 도시된다.
고전 비교를 위한 스크리닝 및 단어 완성들의 처리 등은 추후의 맞춤법 수정 계산들 이전에 단계 2에 위치된다. 이는 모든 "고전의" 복잡성을 그 다음의 코드에서 제외한다. 또한 이는 맞춤법 수정이 꺼지면, 다른 모든 계산들이 건너뛸 수 있다는 것을 의미한다.
알고리즘은 서로에 대하여 두 단어를 비교하는 것과 같이 그려진다. 대부분의 실시 예들에서, 이는 일반화되며 따라서 하나의 단어는 입력 부호들과 상응한다. 아래에 참조되는 도면들에서의 샘플 매트릭스들에서, 입력 시퀀스는 수직으로 도시된다. 따라서, 각각의 입력 단어 위치가 표준 편집 거리와 마찬가지로 단일 글자라기보다는 오히려, 이는 실제로 애매하거나 또는 영역 내 입력과 상응하는 글자들의 세트이다. 비교는 만일 세트 내의 어떠한 글자라도 매치하면 매치를 생산한다.
1. 너무 짧은 단어들을 위한 스크린
만일 단어가 맞춤법 수정을 위하여 너무 짧으면, 즉, 입력 길이 - 이용가능한 편집 거리보다 짧으면, 즉시 거부될 수 있다.
2. 세트 기반 매치를 위한 스크린
이는 비교되는 단어 내의 상응하는 위치에 매치하는 것을 입증하는, 입력 시퀀스에 대한 반복인데, 즉, 후보 단어 내의 각각의 글자는 각각의 입력 세트 내에 존재하여만 한다.
만일 비-매치가 존재하고 단어가 맞춤법 수정을 위하여 너무 길면, 즉, 만일 입력 길이 + 이용가능한 편집 거리보다 길면, 그것은 즉시 거부될 수 있다.
3. 스템 편집-거리 계산
이는 입력 시퀀스 내의 모든 부호들에 대한 반복이고, 세트 기반 매치가 존재할 때만 실행된다. 정확한 탭 값으로부터의 모든 차이는 스템 거리를 증가시키는데, 예를 들면, 후보 단어 "tomorrow"는 "tom"의 정확한 탭 입력을 위한 0의 스템 거리 및 "tpm"을 위한 1의 스템 거리를 가질 수 있다. 단어 탭 빈도는 또한 반복 동안에 계산된다.
만일 그것이 유효한 고전적인 매치라면, 후보 단어의 "퍼지 비교"는 이 시점에서 완성된다. 후보 단어는 선택 리스트 내에 삽입된다.
4. ONE/TWO를 위한 스크린
이는 단어 내의 첫 번째 글자가 첫 번째 ONE 또는 TWO 입력 부호들과 매치하는지를 알기 위한 빠른 검사이다. 만일 그렇지 않으면, 단어는 거부된다.
5. 세트-편집 거리를 위한 스크린
개념적으로 이는 매우 간단한 작업인데 그 이유는 개량된 편집 거리가 삽입, 삭제, 및 대체와 치환(후자는 주로 텍스트 엔트리 수정을 위하여 포함된다)을 사용하는 종래의 정의를 따르기 때문이다. 효율적인 방법으로 이를 시행하는 것은 매우 어렵다.
편집 거리를 계산하는 종래의 방법은 매트릭스를 사용한다. 일 실시 예가 도 7에 도시된다. 모든 모서리(회색 숫자(기울임꼴))는 미리 정의되고 항상 동일하다. 나머지는 행(column)들을 먼저, 왼쪽에서 오른쪽으로 그리고 상부에서 하부로 가로질러 계산된다. 삽입, 삭제, 대체, 및 치환과 상응하는 최소 값을 취함으로써 각각의 개별 위치가 계산된다,. 대체 및 치환 값들은 그러한 위치들을 위하여 매치가 존재하는지의 조건으로 한다. 결과로서 생긴 편집 거리가 하부 오른쪽 모서리, 본 경우에서는 "2"로 알려진다.
계산되는 셀, 즉, 도 8에서 "X"로 표시된 셀을 기초로 하여 값들을 찾기 위하여: 대체('S') 셀을 취하기 위한 비용은 매치가 존재하는가에 따라 0 또는 1이다. 치환('T') 셀은 두 글자 모두, 즉, 현재 및 이전 글자들 모두 매치하고 비용이 1일 때만 취해질 수 있다. 삽입('I') 및 삭제('D')는 또한 각각 하나의 비용이다. 따라서, 셀의 비용은 그러한 셀 뿐만 아니라 방금 언급된 추가 비용을 위하여 이미 계산된 비용이다.
이는 특히 긴 단어들의 거리를 계산하는데 계산적으로 매우 비싼 방법이다. 일 실시 예에서, 최대 허용가능한 편집 거리가 설정되고 따라서 단어들의 1% 이하가 그러한 한계를 통과한다. 만일 허용된 거리가 너무 높으면 전체 단어 리스트는 그것을 선택 리스트 내로 만들 수 있으며 맞춤법 수정의 전체 개념은 상실된다. 따라서, 초기에 정확한 거리는 중요하지 않으며, 오히려 결과가 거부 제한의 아래 또는 위에 위치되는가가 중요하다. 이러한 테스트를 통과하는 소수의 단어들을 위하여 정확한 거리, 빈도 등을 계산하는데 더 많은 노력이 소모될 수 있다.
스크리닝 단계의 목적은 가능한 한 빨리, 결과로서 생기는 거리가 거부 제한 위에 존재하는지를 입증하는 것이다.
도 9에 도시된 것과 같이, 길이를 제외하고는, 비교되는 단어들이 매치할 때를 고려한다. 셀들 중의 어떠한 것도 낮은 값을 갖는 것은 불가능하다. 길이 6 및 길이 9 단어들의 비교는 기대되는 것과 같이, 3의 편집 거리를 야기한다.
이러한 초기 매트릭스는 어떠한 두 개의 단어를 계산할 때 사용될 수 있다. 실제로 비교를 위하여 선택되는 셀들 내의 값들만이 그 방법을 따라 업데이트될 필요가 있다. 목적은 낮은 오른쪽 셀을 그것의 거부 한계 위로 미는 것이다. 그렇게 하기 위하여, 이러한 값을 얻기 위하여 의존하는 셀들 중 어떤 것이 실제로 높은 값을 가지며, 따라서 재귀적인 것이 입증되어야만 한다.
길이 차이가 3이고 첫 번째 글자가 매치하지 않는(도 10a에서 첫 번째 'x'를 'y'로 변경), 이러한 실시 예를 위하여, 거부는 4개의 셀을 계산함으로써 입증될 수 있다; 관련된 셀 업데이트들의 나머지가 포함된다. 도 10b에서의 반복은 재계산된 셀들(굵은 윤곽선) 및 각각의 반복에서 다른 의존 셀들 상의 효과를 나타낸다.
그 결과 중앙 대각선(center diagonal) 및 결과 값을 갖는 대각선을 향하는 것은 증가된 값들을 얻는다. 이는 또 다른 셀에서 가장 낮은 값을 제공하는, 마지막 셀이 완성된 비교 불일치의 결과로 증가될 때마다 발생한다.
도시된 매트릭스들은 단어 길이 차이가 존재할 때 발생하는 것만을 설명한다. 만일 길이 차이가 제로이면, 중앙 대각선이 주 매트릭스가 되고 지원, 즉, 계산에 영향을 미치는데 충분히 큰 값은 거부를 입증하기 위하여 결과 대각선의 두 측면 모두로부터 나와야만 한다.
계산들에서의 대각선은 데이터 액세스 패턴들을 최적화하는데 더 어렵게 만든다(위치들과 상응하는 실제 메모리를 액세스하는). 회전/변환된 매트릭스 공간 내의 운용은 또 다른 최적화이다; 도 11이 참조된다. 중앙 대각선(굵은 윤곽선) 내의 셀들은 단일 열이 된다. 모서리 셀들을 위한 디폴트 값들, 만일 참조되면 그것이 최대 가능한 편집-거리를 즉시 초과하는, 충분히 큰 값을 제공하기 위하여 새로운 "9"들(회색, 기울임꼴로 도시)이 첨가된다. 이러한 변형된 공간에서 셀 계산 관계들은 도 12에 도시된 것과 같이 변한다.
6. 위치-잠금 글자들을 위한 스크린
맞춤법 수정 후보 상에서 실행되지 않기 때문에, 잠긴(locked) 위치들, 즉, 값의 이동 또는 변경을 허용하지 않는 위치들을 갖는 입력 부호들을 확인하기 위한 필요성이 존재한다. 이는 단지 그것들이 매치하는지를 검사하는, 잠긴 위치들을 갖는 입력 부호들에 대한 반복이다. 만일 그렇지 않으면, 단어는 거부된다.
7. 세트-편집--거리 및 빈도 계산
편집 거리를 위하여 스크리닝하기 위한 알고리즘은 편집 거리 및 단어 빈도와 같은 다른 것들을 계산하도록 변형될 수 있다. 그러나, 스크리닝 코드 내로 병합되어서는 안 된다. 그러한 코드는 순수한 스크리닝을 위하여 분리되어 유지되고 최적화되어야 한다. 서로 다른 버전(version)이 더 철저한, 스크리닝을 통과하는 단어들에 적용되는데, 그 이유는 그것이 서로 다른 셀들을 평가하고 낮은 거리와 높은 빈도를 위한 최선의 선택을 골라야만 하기 때문이다. 그것들은 또한 가능한 잠긴 부호 값들(위치가 아닌, 값)과 같은, 것을 처리해야만 한다.
만일 세트-편집-거리 값이 특정 한계를 초과하면 후보는 거부된다.
8. 스템 편집-거리 계산
이는 또한 다음의 두 가지 이유로 인한 스크리닝 알고리즘이 변형된 모방이다:
첫 번째로, 스템 거리가 매우 다를 수 있는데 그 이유는 그것이 항상 정확한 매치를 기초로 하기 때문이다. 따라서, 값은 거리를 위한 의도되는 최대보다 더 높을 수 있다. 최대보다 높은 거리 값들은 알고리즘 최적화들 때문에 완전히 정확하지 않으나 여전히 충분히 뛰어나다.
두 번째로, 스템 거리는 또한 그것이 후보 단어의 전체 길이를 고려하지 않을 수 있다는 점에서 다르다. 비 맞춤법 수정 단어들에 호환되기 위하여, 스템 거리 계산은 입력의 길이에서 멈출 것이다. 삽입들 및 삭제들에 따라 최소 값을 얻기 위하여 종료 셀 주위에 일부 부가적인 검사가 필요하다.
낮은 레벨 언어 데이터베이스 검색 기능
퍼지 비교 기능은 스크리닝 및 계산에서 매우 효율적으로 만들어질 수 있으나, 특히 내장된 플랫폼들 상의, 뛰어난 성능을 위하여 단독으로는 충분하지 않다. 입력에 따라, 어휘 내의 거의 모든 단어는 잠재적인 맞춤법 수정 후보들일 수 있다. 이는 일반적으로 세 개의 입력 당 하나의 편집이 허용될 때, 대부분의 언어들에서 9번째 또는 10번째 입력을 입력할 때 발생한다.
입력 길이 9에서 길이 6-12를 갖는 모든 단어는 잠재적인 맞춤법 수정 후보들이고 12보다 긴 모든 단어는 잠재적인 완성 후보들이다. 예를 들면, 입력 길이 9에서, 핀란드 어휘의 70% 이상은 맞춤법 수정을 기초로 하는 비교를 위하여 고려될 수 있으며 또 다른 20%는 단어 완성을 기초로 한다. 이는 상당한 효율성 문제를 생성하는데 그 이유는 맞춤법 수정이 가장 계산적인 수고를 필요로 하기 때문이다. 다음의 전략들은 이전에 설명된 하나 또는 그 이상의 스크리닝 기능을 통합함으로써 데이터베이스 검색 과정의 효율성을 증가시키도록 추구한다.
비 맞춤법 수정을 위한 검색 전략
여기에 참조로써 통합되는. Unruh; Erland, Kay; David Jon에 의해 "Efficient Storage and Search Of Word Lists and Other Text"라는 발명의 명칭으로 출원된 미국특허 제 11/379,354(2006년 4월 19일에 출원)에서 설명되는 것과 같은, 어휘 데이터베이스의 바람직한 실시 예가 맞춤법 수정 없이 디자인되고 최적화된다. 전체 입력 길이는 간격 스트림(interval stream)들에 직접 매핑되고 단어 리스트 내의 빠른 점핑(jumping)에 도움을 주기 위하여 가장 희박한 스트림들이 우선 방문된다. 일단 매치가 존재하면, 완성 글자들은 입력에 매칭되지 않은 스트림들로부터 선택될 수 있다.
이러한 전략으로 너무 짧은 단어들은 자동으로 건너뛰는데 그 이유는 그것들이 상응하는 입력과 매치하는 글자들을 갖지 않기 때문이다.
맞춤법 수정을 위한 검색 전략
맞춤법 수정과 함께, 언어 데이터베이스 내의 단어들은 입력 길이에 따라 다음과 같이 세 개의 범주에 포함된다:
Figure 112013049138249-pct00029
너무 짧은 단어들
Figure 112013049138249-pct00030
완성들이 될 수 있는 긴 단어들
Figure 112013049138249-pct00031
맞춤법 수정을 위하여 적용가능한 단어들(입력 길이와의 특정 길이 차이)
이러한 범주들 각각이 다음의 섹션에서 설명된다.
너무 짧은 단어들
이것들은 가장 짧게 허용된 단어에서의 마지막 글자와 상응하는 간격 스트림을 검사함으로써 쉽게 건너뛸 수 있다. 예를 들면, 만일 최소 길이가 6이면, 6번째 간격 스트림은 비어 있어서는 안 된다(종결 제로를 갖는다); 만일 비어 있으면, 직접 간격의 종료로 점프하는 것이 가능하다.
긴 단어들
특별한 간격 스트림이 너무 짧은 단어들을 검사하는데 사용될 수 있는 것과 같이 또 다른 스트림이 긴 단어를 위하여 검사하는데 사용될 수 있다. 예를 들면, 만일 최대 길이가 12이면, 13번째 스트림은 단어가 긴지 아닌지를 결정한다.
긴 단어들은 마치 맞춤법 수정이 꺼진 것처럼 동일한 방법으로 정확하게 처리될 수 있다. 입력에 매핑된 스트림들은 점핑을 위하여 사용될 수 있으며 완성 부분이 스트림들의 나머지로부터 획득된다.
맞춤법 수정 단어들
효율적으로 검색될 수 있는 이전의 두 카테고리와 달리, 이 카테고리에 속하는 모든 단어는 기본적으로 편집 거리 계산을 위하여 보내져야만 한다. 이는 비록 언어 데이터베이스 검색 레벨에서 스크리닝이 필요하나, 실현 가능하지 않은, 성능이다. 성능 이득을 제공하는 한, 이러한 스크리닝은 상당히 아래로 거부될 수 있다.
복잡한 요인은 맞춤법 수정 모드들 및 필터들이 정확한 모드에서 작동할 수 있으나 입력은 여전히 세트 기반이고, 따라서 비-맞춤법 수정 후보들이 세트 성향의 매치들일 수 있으나 맞춤법 수정은 세트 성향 정보를 사용할 수 없다는 것이다. 그 결과 어떤 스크리닝 과정도 마찬가지로 세트 성향 비교 논리를 고수하여야만 한다.
바람직한 실시 예를 위한 언어 데이터베이스 감색 스크리닝 기능의 양상이 도 13에 도시된다. 세트 성향 비교 논리와 함께, 대상 단어는 입력 시퀀스와 매치하지 않는데 그 이유는 4GHI 키가 그것의 세트 내의 'd'를 포함하지 않기 때문이다. 그러나 세트-편집-거리 비교 논리는 어떤 입력도 삽입되거나, 삭제되거나, 또는 치환되는 것을 허용한다. 따라서, 각각이 입력에 의해 표현되는 세트는 인접한 키들을 포함하는 세트들의 조합으로 확장한다. 포함되는 인접한 키들의 수는 허용된 편집들의 수와 같은 제약 파라미터들에 의존한다.
다음의 문단들에서 설명되는 것과 같이, 퍼지 비교 기능으로부터의 많은 스크리닝 기능들이 적용될 수 있고 데이터베이스 검색 과정 내로 통합될 수 있다.
필터 ONE/TWO
필터 ONE/TWO는 점핑을 위하여 사용될 수 있다. 만일 간격 스트림 제로(단어 내의 첫 번째 글자)가 상응하는 입력(필터에 따른, 첫 번째 또는 두 번째 입력)과 매치하지 않으면, 점프가 발생할 수 있다.
만일 필터 설정이 세트 기반 비교 논리와 매치하지 않으면, 떨어지는 스트림에 의해 동반되어야만 한다. 결과로서 생기는 점프는 두 개 중의 짧은 것에 한정된다(두 개의 스트림 중의 하나 내의 가장 가까운 종료). 이러한 필터는 맞춤법 수정 후보들에만 적용된다.
입력 기반 스크리닝
비록 이용가능한 편집들이 단어들을 매치시키더라도, 이는 입력과 더 달라 보이며, 매치할 수 있는 것에 대한 제한이 여전히 존재한다. 이용가능한 편집들의 제한된 수는 만일 삽입하고 삭제하면 제한된 수만이 적용될 수 있다는 것을 의미하며, 따라서 단어 내의 글자가 입력 관련 스트림으로부터 얼마나 떨어져 있는가에 대한 제한이 존재하고 여전히 매치로서 계산된다.
스크리닝은 필터와 상관없이 적용될 수 있으나, 필터들은 효율적인 방법으로 스크리닝의 일부분으로 만들어질 수 있다. 스크리닝은 반드시 매우 빨라야 하는데, 따라서 복잡도는 낮게 유지되어야 한다.
단어를 거부하기 위하여, 편집들의 이용가능한 수보다 하나 더 많은 누락(miss)이 필요하다. 예를 들면, 편집 거리 3을 위하여, 4개의 누락이 발견되어야 한다. 만일 9개의 입력이 존재하고 비교되는 단어가 길이 6을 가지면, 길이 9까지 비교하는데 그 이유는 위치 7, 8, 및 9가 종료 코드로서 0을 가지며 이는 항상 어떠한 입력 조합과도 비교할 수 없기 때문이다. 만일 단어가 입력보다 길면, 단어의 길이까지 비교한다.
길이-독립 스크리닝
단어 길이가 미리 결정되지 않을 때 스크리닝하기 위한 하나의 해결책은 스크리닝 매칭을 위하여 사용될 수 있는 두 번째의, 제작되는, 입력을 설정하는 것이다. 이는 모든 위치가 주변 원래 위치들의 조합이 되는 것과 같은 방법으로 제작된다.
입력 길이 9를 위하여, 조합 맵은 도 14에 도시된 것과 유사하다. 모든 'lxx' 열은 입력 내의 위치이다. 각각이 행은 비교되는 단어 내의 위치이다. 예를 들면, 단어 내의 4번째 글자는 첫 번째 7 입력들 중 어느 것과 매치할 수 있으며 사용되는 편집으로서 계산될 수 없다. 12번째 글자는 9번째 입력과 매치하며, 따라서 이는 훨씬 더 제한적이다.
만일 단어 내의 어떠한 글자가 조합을 매치시키지 못하면 이는 누락으로서 계산하며 따라서 잠재적인 편집을 호출한다. 충분한 누락과 함께 단어는 이러한 스크리닝에 의해 버려질 수 있다.
만일 단어가 입력보다 짧으면, 그러한 차이는 이용가능한 편집에서 뺄 수 있으며 비교는 이용가능한 위치들의 검사만 필요로 한다. 따라서, 만일 길이 차이가 이용가능한 편집들의 수와 동일하면, 하나의 위치만이 단어를 거부하지 않도록 해야만 한다.
필터를 위하여 적용된 것과 동일한 제한들이 여기에 적용된다. 만일 정확한/영역 내 유의성이 존재하면 세트 기반 간격 스트림의 실패에 의해 거부가 달성되어야만 한다.
가능한 가장 긴 점프는 조합 또는 세트 기반이든지 간에, 떨어지는 간격 스트림의 가장 근접한 종료에 대한 것이다.
점프를 만들기 위하여 존재하는 떨어지는 세트 기반 스트림을 위한 요구사항이 존재하기 때문에, 단어 길이 카테고리 내의 변화와 관련하여 점프를 제한할 필요가 없다.
길이-의존 스크리닝
길이 의존 스크리닝의 바람직한 실시 예에서, 비교되는 단어의 길이의 계산은 그러한 길이를 위하여 적용할 수 있는 조합들을 한정할 수 있다. 예를 들면, 길이 6 및 입력 길이 9를 위하여, 조합 맵은 도 15와 유사하다.
이는 더 한정된 조합들을 특징으로 하나, 조합들을 선택하기 위한 단어 길이를 찾기 위한 비용이 추가된다. 그것은 또한 동일한 길이를 갖는 단어들의 청크(chunk) 내까지 가능한 점프 길이를 한정하는데 그 이유는 길이가 변경되자마자, 조합들도 변경되기 때문이다. 따라서, 이는 또한 언어 데이터베이스를 걸쳐 단어 길이 변경들의 수를 최소화하기 위한 필요조건이다.
길이 의존 패턴들을 갖는 것과 별도로, 독립적인 스크리닝의 설명이 마찬가지로 여기에 적용된다.
선택 리스트 배치 전략들 및 알고리즘들
결합된 알고리즘들이 결과는 아마 순서대로, 만일 입력 시퀀스가 완료되면 사용자가 벌써 타이핑한 단어, 혹은 만일 입력 시퀀스가 단어 또는 구(phrase)의 스템을 표현하면 사용자가 타이핑하기 시작한 단어 중의 하나를 포함하는 선택을 위한 단어 선택들의 리스트이다.
단어 리스트 정렬 순서는 영역 내 확률, 편집 거리, 단어 신근성/빈도(각각의 데이터베이스 내에 저장되는 것과 같이), 단어 길이, 및/또는 스템 편집 거리의 요소들을 기초로 할 수 있다. 단어 리스트 배치는 또한 두 개 또는 그 이상의 서로 다른 리스트 프로파일 또는 전략들 중 어느 것을 사용하는가에 의존할 수 있다. 예를 들면:
전-단어 우선권
1. 전 단어는 항상 단어 완성 이전에 온다;
2. 소스 사전, 예를 들면, 주 어휘, 맥락과 관련된, 사용자 정의된, 최신 배치된, 플러그-인, 매크로 치환;
3. 편집 거리, 예를 들면, 큰 값 앞의 작은 값;
4. 스템 편집 거리, 예를 들면, 가장 작은 첫 번째; 및 만일 편집 거리가 0보다 크고 두 단어 선택들을 위하여 동일할 때만;
5. 빈도, 예를 들면, 가장 큰 첫 번째; 탭 빈도 x 단어 빈도
평가의 순서는 위와 같은데, 예를 들면 기준 3은 기준 2가 비교된 아이템들에 대하여 동일할 때만 고려된다. 이러한 이유 때문에, 예를 들면, 커스텀(custom) 사용자 단어들 상의 맞춤법 수정들은 표준 어휘 단어들을 위한 영역 내 수정 앞에 나타날 수 있다.
단어 완성들
1. 스템 편집 거리;
2. 단어 완성
3. 소스;
4. 편집 거리
5. 빈도.
스템 편집 거리가 첫 번째 표준이고, 완성은 두 번째이기 때문에, 리스트는 다음과 같이 효율적으로 세그먼트화된다:
0개의 오류를 갖는 전 단어, 정확한 탭 입력 시퀀스는 단어와 동일하다
0개의 오류 스템(들)을 갖는 완성(들)
1개의 니어-미스를 갖는 전 단어(들)
1개의 니어-미스 스템을 갖는 완성(들)
...
시스템은 지정된 기본 전략을 허용할 수 있다. 이는 또한 소스 데이터베이스 내에 기록된 빈도/신근성 정보에 덧붙여, 단어 선택의 인식된 패턴들을 기초로 하여 배치를 자동으로 적용할 수 있다. 예를 들면, 시스템은 첫 번째 글자들이 입력과 정확하게 매치하는 단어 완성을 선택하는 그러한 대부분의 시간을 감지할 수 있으며, 따라서 단어 리스트 배치 성향을 "완성들의 촉진" 프로파일 쪽으로 바꿀 수 있다.
도 16은 이 경우에 있어서, 영역 내 자동 수정을 갖는 세트-편집-거리 맞춤법 수정을 나타내는, 본 발명의 운용 동안에 샘플 사용자 인터페이스를 도시한다. 모바일 장치상의 이러한 실시 예에서, 후보 단어들은 각각이 사용자 입력상의 스크린의 하부를 가로질러 나타난다. 이탤릭체로 도시된, 왼쪽에서의 스트링은 이러한 장치를 위하여 그것의 쿼티 엄지 키보드 상에 눌려지는 각각의 키인, 정확한 탭 글자 시퀀스이다. 화살표는 디폴트(가장 높은 순위) 단어 선택을 나타낸다. 두 번째 스크린은 키들 "b"와 "o"가 눌려진 후에 제공되는 세 개의 단어 완성들을 도시한다. 세 번째 스크린은 만일 글자 "w"가 중간에 삽입되고(1의 표준 편집-거리) "i"가 키보드 상의 "k"에 인접하면(영역 내 자동 수정을 사용하여) 입력 시퀀스 "bok"에 가까이 매치하는, 후보로서 "bowl"을 나타낸다. 다섯 번째 스크린은 디폴트 단어 선택으로서 "going"을 나타내는데, 그 이유는 "g"와 "i"가 각각 "b"와 "k"의 입력들에 인접하기 때문인데; 두 번째 단어 선택이 "e"가 "o"로 대체된(1의 편집-거리), "being"인 것과 같이 나타낸다. 수정 파라미터들은 편집-거리 차이들보다 적은 영역 내 자동 수정 차이들에 페널티를 준다.
다른 특징들 및 애플리케이션들
자동-치환, 예를 들면, 매크로들: 비록 단어 완성이 확장된 텍스트에 적용될 수 있더라도, 영역 내 및 맞춤법 수정 모두 단축키에 적용될 수 있다. 따라서, 만일 입력 시퀀스가 확장된 텍스트의 단축키 및 스템과 대략 매치하면, 매크로의 순위는 증가될 수 있다. 매크로들은 미리 정의되거나 또는 사용자-정의가능할 수 있다.
광고 목적을 위한, 키보드 플래깅(keyboard flagging)은 자동 치환 및/또는 맞춤법 수정으로부터 이익을 얻는다. 예를 들면, 만일 모바일 메시지 내의 단어가 속어 또는 철자가 틀린 텍스트이면, 본 발명의 실시 예들은 유용한 스폰서(sponsor)의 키워드를 찾을 수 있다.
본 발명의 일 실시 예는 예를 들면, 다중-탭을 통하여 그것의 텍스트가 원래 애매하게 또는 분명하게 입력되었거나 혹은 또 다른 장치로부터 메시지 또는 파일로서 수신되었든지 간에 전체 메시지 버퍼, 즉, 배치 모드(batch mode)에 적용될 수 있다.
맞춤법이 수정된 단어 선택은 만일 입력 방법이 구두점(punctuation)을 중심으로 만들어진 룰들을 포함하는, 단어 선택의 자동 확장을 허용하면, 또 다른 입력, 단어 완성 등을 위한 기본이 될 수 있다. 일 실시 예에서, 연쇄 메뉴(cascading menu)는 선택된 단어 또는 스템을 위한 단어 완성들의 리스트를 제출한다.
본 발명의 실시 예들은 또한 검색 및 발견을 위한 애매한 엔트리에 적용될 수 있다. 예를 들면, 만일 사용자의 입력 시퀀스가 이동 장치의 콘텐츠 또는 서버 기반 검색 엔진들에 의해 근접하게 매치하지 않으면, 매치를 야기하는 하나 또는 그 이상의 맞춤법의 수정된 해석들이 제공될 수 있다.
위의 실시 예들은 라틴 기반 언어들을 갖는 본 발명의 실시 예들의 사용을 설명하나, 다른 실시 예들은 다른 알파벳들 또는 문자들의 특정 요구를 다룰 수 있다.
입력을 추적하기 위한 애플리케이션
서론( introduction )
위에서 설명된 내용에 대한 개량으로서, 하드웨어, 소프트웨어, 펌웨어, 회로, 및 다른 특징들이 여기서 "추적" 기술을 사용하여 구성될 것이다. 추적 기술로, 사용자는 입력 단어들 내의 원하는 글자들을 통하여(또는 거의 통하여) 단일의, 연속적인 경로를 추적하며, 시스템(200)의 예측 기술은 어떤 단어가 입력되고 스크린(203) 상에 디스플레이하는지를 계산해 낸다. 만일 추적된 경로로부터 예측될 수 있는 다중 단어들이 존재하면, 시스템(200)은 선택들의 리스트를 제공한다.
추적 기술은 또한 Nuance Corporation 또는 자회사에서 출원된 다음의 특허들과 같은 공보에서 설명된다: (1) Levi에 의해 "FAST TYPING SYSTEM AND METHOD"라는 발명의 명칭으로 2007년 2월 13일에 등록된 미국특허 제 7,175,438; (2) Zhai에 의해 "SYSTEM AMD METHOD FOR RECOGNIZING WORD PATTERNS BASED ON A VIRTUAL KEYBOARD LAYOUT"이라는 발명의 명칭으로 2007년 7월 31일에 등록된 미국특허 제 7,251,367; (3) Zhai 등에 의해 "SYSTEM AND METHOD FOR ISSUING COMMANDS BASED ON PEN MOTIONS ON A GRAPHICAL KEYBOARD"라는 발명의 명칭으로 2009년 2원 3일에 등록된 미국특허 제 7,487,461; (4) Kristensson 등에 의해 "SYSTEM AND METHOD FOR RECOGNIZING WORD PATTERNS IN A VERY LARGE VOCABULARY BASED ON A VIRTUAL KEYBOARD LAYOUT"라는 발명이 명칭으로 2010년 3월 27일에 등록된 미국특허 제 7,706,616; (5) Kristensson에 의해 "SYSTEM AND METHOD FOR PREVIEW AND SELECTION OF WORDS"라는 발명이 명칭으로 2008년 10월 30일에 공개된 미국특허 제 2008/0270896; (6) Kristensson 등에 의해 "SYSTEM AND METHOD FOR IMPROVING TEXT INPUT ON A SHORTHAND-ON-KEYBOARD INTERFACE"라는 발명의 명칭으로 2007년 3월 26일에 공개된 미국특허 제 2007/0094024. 상기 특허들 각각은 여기에 전체가 참조로써 통합된다.
도 17은 소프트 키보드(1700)의 부분 스크린 샷이다. 추적된 패턴(1706)은 순서대로 글자들 P-R-E-T-T-Y를 통한 추적을 포함하는, 단어 "pretty"이 사용자의 엔트리를 나타낸다. 추적된 패턴은 또한 어떠한 의도되는 제한 없이, 추적의 추적된 경로로서 언급될 수 있다. 운용에서, 키보드(1700)는 피드백을 나타내는 추적(1706)의 일부 또는 모두를 디스플레이한다. 추적(1706)은 사용자의 손가락 또는 스타일러스를 따른다. 이러한 실시 예에서, 추적은 사용자가 손가락 또는 스타일러스를 올릴 때 사라지거나 희미해진다. 일 실시 예에서, 추적된(1706) 디스플레이의 부분의 길이는 사용자의 손가락 또는 스타일러스의 이동 속도에 따라 다양할 수 있다. 또 다른 실시 예에서, 키보드(1700)는 추적(1706)을 디스플레이하지 않는다. 상부 영역(1702)에서, 키보드(1700)는 PRETTY, PERRY, PETTY, 및 PREY를 포함하는, 사용자의 추적(1706)과 매칭하는 일부 잠재적인 단어들을 디스플레이한다.
위에서 설명된 것과 같은 맞춤법 수정 기술들을 갖는 추적 기술을 사용하기 위하여, 아래에 요약되는 실시 예들에 따라, 다양한 변경 및 추가들이 사용들이 있다.
운용 시퀀스
도 24는 사용자의 추적 입력을 해결하기 위한 작동 시퀀스를 나타낸다. 도 2의 실시 예를 계속 참조하면, 본 실시 예에서 사용되는 디스플레이(203)는 터치 감응 디스플레이를 포함하며, 따라서 입력 장치(202)는 디스플레이(203)와 통합되는 것과 같이 보일 수 있는 부품을 포함한다. 물론, 장치(200) 내에 부가적인 입력 장치들이 존재할 수 있으나, 이러한 시퀀스(2400)의 목적을 위한 관련 입력 장치는 복합 터치 감응 디스플레이이다. 이러한 실시 예의 목적을 위하여, 어휘 모듈(213)은 적어도 다중 엔트리를 갖는 어휘 데이터베이스를 포함한다. 어휘 모듈(213)은 사전 또는 어휘로서 언급될 수 있다.
계속 도 2의 실시 예를 참조하면, 운용들(2400)은 본 실시 예에서 중앙처리장치(201)에 의해 실행된다. 2402 단계에서, 중앙처리장치(201)는 터치 감응 디스플레이(203) 상의 소프트 키보드를 디스플레이한다. 소프트 키보드는 하나 또는 그 이상의 글자를 포함한다. 설명의 목적을 위하여, 키보드(1700)에 의해 예시된 것과 같이, 쿼티 키보드가 논의된다.
단계 2404에서, 장치(200)는 터치 감응 디스플레이 표면을 통하여 사용자의 추적을 수신한다. 추적은 다중의 디스플레이된 키를 접촉하는 단일 연속 추적을 포함한다. 접촉된 키들은 추적이 시작되는 시작 키, 및 추적이 중단되는 종료 키를 포함한다. 설명의 편이를 위하여, 본 실시 예는 도 17에 도시된 것과 같은 "pretty"의 추적을 사용한다. 일 실시 예에서, 중앙처리장치(201)는 추적된 경로의 좌표 또는 다른 기계-판독가능 표현을 저장한다.
2404 단계에서 수신된 추적을 기초로 하여, 단계 2406은 입력 시퀀스를 달성한다. 입력 시퀀스는 위에서 설명된 것과 같은 접촉된 키들을 포함한다. 입력 시퀀스는 추적에 의해 실제로 접촉되지 않았으나, 추적에 근접한, 다양한 다른 '보조' 키들을 더 포함한다.
단계 2406은 보조 키들을 식별하기 위하여 하나 또는 그 이상의 서로 다른 기준을 사용할 수 있다. 예를 들면, 도 25에 도시된 것과 같이, 추적이 키와 접촉할 때, 접촉된 키의 규정된 반경 내의 모든 키는 입력 시퀀스의 일부분이다. 도 26에 도시된 것과 같이, 서로 다른 접근법 하에서, 추적이 주어진 키와 접촉할 때, 주어진 키 상의 중심에 있는 규정된 직사각형 '터치-영역'은 보조 키들, 따라서 입력 시퀀스의 일부분으로 고려된다. 터치 영역의 면적에 따라, 이러한 기준은 보조 키들을 더 제한적으로 정의하는데 유용할 수 있다. 작동 터치 영역의 일 실시 예는 표현가능한 소프트 키의 크기의 두 배의 영역이다. 도 26의 실시 예에서, 접촉된 "G" 키의 보조 키들은 이웃자리들 T, Y, F, H, C, 및 B를 포함한다.
보조 키들을 확인하기 위한 기준의 또 다른 실시 예는 추적의 궤적을 따른 타원이다. 이는 수평 과소이동 및 과대이동 오차들에 대한 추가적인 고려를 주며, 추적에서의 수직 오차를 최소화한다. 이러한 접근법은 따라서 추적 이동의 방향을 따라 키들에 대한 선호도를 갖는다.
선택적으로, 단계 2406은 입력 시퀀스 내의 키들의 변형들을 포함하도록 입력 시퀀스를 확장할 수 있다. 예를 들면, 악센트들, 움라우트들, 조판 변화(typographical change)들, 및 외국어와 알파벳에 상응하는 변형들이 고려될 수 있다. 도 23은 추적(1706)과 상응하는 입력 시퀀스의 목록 및 입력 시퀀스의 각각의 키들의 확률들을 나타낸다.
단계 2406은 (1) 시작 키 및 그것의 보조들, (2) 종료 키 및 그것의 보조들, 및 (3) 미리 결정된 최소 방향 변화가 발생하는 모든 키 및 그러한 키의 보조들을 포함하는 "일차" 또는 키들의 세트를 정의한다. 이러한 일차 키들 사이의 접촉된 키들(및 그것들의 보조들)은 "중개(intervening)" 키들로 불린다. "일차" 키들이 아닌 입력 시퀀스 내의 키들은 "이차" 또는 "선택적" 키들로서 언급된다. 따라서, 이차 키들은 중개 키들 및 그것들의 보조들을 포함한다.
도 17의 실시 예에서, 추적은 P, O, I, U, Y, T, R, E, R, T, 및 Y와 접촉하였다. 여기서, 단계 2406은 다음의 키들을 정의한다: (1) 보조 키 O를 갖는 P와 같은 시작 키를 포함하는 일차 키들, (2) 추적의 속도 또는 방향에 기인하여 보조들이 없는 중개 키들 O, I, U, Y, T, R을 포함하는 이차 키들, (3) 보조 키들 W와 R을 갖는 방향-변화-키 E를 포함하는 일차 키들, (4) 추적의 속도 또는 방향에 기인하여 보조들이 없는 중개 키들 R과 T를 포함하는 이차 키들, 및 (5) 종료 키 Y 및 그것의 보조들 T와 U를 포함하는 일차 키들.
단계 2406 이후에, 입력 시퀀스가 정의된다. 단계 2408에서, 중앙처리장치(201)는 한번에 하나씩, 단계 2406으로부터의 입력 시퀀스를 어휘(213)로부터의 일부 또는 모든 엔트리와 비교한다. 언제든지 고려되는 어휘 엔트리는 "현재" 엔트리로서 언급된다.
어휘(213) 내의 모든 엔트리들의 비교는 너무 소비적 또는 처리 자원들의 소모적일 수 있는데, 따라서 다양한 기술들이 특정 어휘 엔트리만의 비교를 한정하도록 사용될 수 있다. 예를 들면, 단계 2408은 가장 높은 빈도의 사용을 갖는 어휘(213) 내의 엔트리들에 대한 비교를 한정할 수 있다. 선택적으로, 그러한 비교를 한정하는 단계 2408에서의 결정은 실시간으로 만들어질 수 있는데, 예를 들면, 중앙처리장치(201) 상에 주어진 작업부하가 존재할 때, 또는 단계 2408의 처리가 규정된 레벨에 도달할 때, 규정된 기간 동안에 계속되거나, 또는 주어진 수의 매트릭스 운용을 실행한다.
도시된 실시 예에서, 단계 2408은 위에서 설명된 것과 같이 세트-편집-거리를 계산함으로써 입력 시퀀스 및 현재 어휘 엔트리 사이의 비교를 수행한다. 결과는 입력 시퀀스 및 현재 어휘 엔트리 사이의 유사도 정도를 나타내는 메트릭이다. 세트-편집-거리가 도 4와 유사한 방법으로 계산되는데, 각각의 매트릭스 열은 사용자의 행동에 의해 의도될 수 있는 다중 글자를 고려한다. 그러나, 추적 입력에 적용가능한 현재 실시 예에서, 서로 다른 매트릭스 열들은 다음과 함께 그룹을 이루는 서로 다른 키들을 나타낸다: 시작 키와 그것의 보조들을 위한 하나의 열, 추적이 방향의 상당한 변화를 나타내는 각각의 키(및 보조들)를 위한 하나의 열, 중개 키들과 그것들의 보조의 각각의 그룹을 위한 하나의 열, 및 종료 키와 그것의 보조를 위한 하나의 열.
시퀀스 2400에서, 세트-편집-거리의 계산은 또한 다수의 룰(2420)의 적용에 의해 세트-편집-거리의 비-추적 실시 예들과 구별된다. 룰 2421은 일차 키들의 다수의 그룹을 정의한다. 각각의 그룹은 매트릭스(1800) 내의 서로 다른 열 상에 나타난다. 각각의 그룹으로부터 적어도 하나의 키는 세트-편집-거리 내에 고려되거나 또는 페널티가 존재하는지 고려되어야만 한다. 바꾸어 말하면, 현재 어휘 엔트리 내에 표현되지 않은 각각의 그룹을 위하여 페널티가 추정된다. 이러한 그룹들은 (1) 매트릭스(1800) 내의 1802에 의해 도시된 것과 같이, 시작 키 및 그것의 보조들 모두, (2) 1808에 의해 도시된 것과 같이, 종료 키 및 그것의 보조들 모두, (3) 1805에 의해 예시된 것과 같이, 방향 내의 미리 결정된 최소 변화가 발생하는 모든 키 및 이러한 키에 대한 보조들을 포함한다. 따라서, 만일 현재 어휘가 시작 키 및 그것들의 보조 모두를 누락하면, 페널티가 존재하고, 만일 현재 어휘 엔트리가 종료 키 및 그것의 보조 모두를 누락하면, 또 다른 페널티가 존재한다.
룰 2422는 이차 키들에 관한 것이다. 이러한 키들을 위하여, 룰 2422는 만일 현재 어휘 엔트리가 이러한 키들 중 어떤 것 또는 모두를 생략하면 페널티가 존재하지 않는다는 것을 규정한다. 세트-편집-거리 계산에서, 이러한 룰은 이차 키들의 각각을 위하여 무료의 삭제를 허용한다. 이차 키들은 매트릭스(1800) 내의 열들 1804와 1806에 의해 도시된다.
룰 2323은 반복되는 키들(2423)에 관한 룰을 제시한다. 예를 들면, 룰 2423은 만일 현재 어휘 엔트리가 입력 시퀀스 내의 어떠한 키를 연속해서 두 번 또는 그 이상 사용하면 페널티가 존재하지 않는다는 것을 규정한다. 이는 이중 글자(double-leeter)들을 허용하는데, 그 이유는 사용자들이 추적을 사용하여 반복되는 글자를 나타내는 것이 어렵기 때문이다. 따라서, 세트-편집-거리 계산에서, 이러한 룰은 무료의 추가를 허용한다. 추적 기술을 넘어, 이러한 룰은 키보드, 12-키 키패드 등과 같은, 다양한 비-추적 사용자 입력을 해결하는데 구현될 수 있다. 예를 들면, 12-키 키패드의 경우에 있어서, "3" 키를 한 번 누르는 것은 단어 "FED"를 산출할 수 있는데 그 이유는 "3" 키가 글자들 "3EFD"를 표현하기 때문이다.
룰 2425는 구두점, 숫자들, 및 부호들에 관한 것이다. 이러한 룰은 만일 현재 어휘 엔트리가 규정된 그룹(구두점, 숫자들, 부호들, 인사/키릴문자와 같은 알파벳 이외의 글자들과 같은)을 포함하면 세트-편집-거리 계산(2408)이 어떠한 페널티도 부가하지 않는다는 것을 나타낸다. 이것들은 입력하기에 더 어려운 글자들이 예들이다. 이러한 실시 예의 변형으로서, 룰 2425는 그러한 그룹이 추적이 만들어지는 시간에 개별적으로 도시되지 않는 한 규정된 그룹의 글자들을 사용하기 위하여 페널티가 존재하지 않는다는 것을 규정한다. 예를 들면, 만일 소프트 키보드가 추적이 만들어지는 시간에서 구두점 글자들의 팰릿(pallet)의 디스플레이를 포함하지 않으면, 현재 어휘 엔트리가 입력 시퀀스가 없는 하나 또는 그 이상의 이러한 구두점 글자들을 포함하면 페널티가 존재하지 않는다. 따라서, 세트-편집-거리 계산에서, 이러한 룰은 무료의 추가를 허용한다.
룰 2423뿐만 아니라, 룰 2425는 추적 기술보다 광범위한 기술을 갖는다. 예를 들면, 이러한 룰들은 키들이 동시에 다중 글자들을 표현하는 키패드를 통하여 제출되는 본질적으로 애매한 사용자 입력의 해석을 넓히도록 사용될 수 있다. 따라서, 룰 2425의 경우에 있어서, 장치는 사용자가 입력하지 않은 숫자들 또는 구두점 또는 특정 부호들을 포함하는 단어들을 갖는 전화기 키패드 사용자를 제공할 수 있다. 룰 2423의 경우에 있어서, 장치는 반복된 키들("O" 대신에 "OO"와 같은), 또는 반복되는("F" 대신에 "FED"와 같은) 동일한 키의 서로 다른 글자들을 갖는 단어들을 kw동으로 고려할 수 있다. 애매한 12-키 입력의 해결과 관련된 하나의 바람직한 특허가 Grover 등에 의해 "REDUCED KEYBOARD DISAMBIGUATING COMPUTER"라는 발명의 명칭으로 1998년 10월 6일에 공개된 미국특허 제 5,818,437이다. 상기 특허의 전체 내용은 여기에 참조로써 통합된다.
도 20의 매트릭스는 후보 단어 "pretty"를 위한 세트-편집-거리의 계산을 도시한다. 본 실시 예에서, 계산된 세트-편집-거리는 제로이다.
단계 2408의 세트-편집-거리의 계산에 대한 하나의 가능한 변화는 키보드 기하학적 구조를 기초로 한 확률의 고려이다. 주로, 주어진 후보 단어를 위한 계산된 세트-편집-거리 메트릭은 사용자가 후보 단어의 글자들을 의도한 확률에 따라 더 변형될 수 있다. 예를 들면, 만일 도 25의 접근법이 보조 키들을 식별하도록 사용되었으면, 각각의 보조 키는 방정식 1에 따라 계산된 확률과 관련될 수 있다:
확률 = 1-거리/반경 [방정식 1]
여기서 거리는 원형에 중심이 되는 키 및 보조 키 사이의 거리와 동일하고, 반경은 원형의 반경이다.
도 26의 다른 실시 예에서, 각각의 보조 키는 방정식 2에 따라 계산되는 확률과 관련된다:
확률 = 오버랩/터치-영역 [방정식 2]
여기서 오버랩은 터치 영역을 교차하는 대상 보조 키의 영역이고, 터치-영역은 터치-영역 내의 영역이다.
개량되거나 또는 대안의 접근법으로서, 주어진 키를 위한 키 스트라이크는 적어도 부분적으로 주어진 키를 지나 추적된 경로의 속도를 기초로 할 수 있다. 바꾸어 말하면, 키 스트라이크 확률은 추적 속도에 반비례할 수 있다. 따라서, 스타일러스의 사용자의 손가락이 주어진 키를 지나 더 빠르게 이동하면, 그러한 키의 키 스트라이크 확률은 덜하다.
이러한 확률들을 결정하기 위하여 어떤 접근법이 사용되는가에 상관없이, 후보 단어 내의 모든 키의 확률들은 다양한 접근법 중의 하나에 따라 고려된다. 하나의 단순화된 실시 예에서, 후보 단어 내의 모든 키의 확률들은 함께 곱해지고, 세트-편집-거리는 이러한 수에 의해 나뉜다. 따라서, 더 많은 보조 키들을 갖는 후보 단어들은 부풀린 세트-편집-거리를 야기한다.
또 다른 실시 예에서, 확률들은 도 22에 의해 예시되는 것과 같이, 확률 그림자 매트릭스 내로의 입력이다. 이는 예를 들면, 동일한 세트-편집-거리를 갖는 두 개의 후보 단어들 사이의 관계(tie)를 해결하기 위하여 이차 고려로서 사용된다. 본 실시 예에서, 도 22의 그림자 매트릭스에 의해 계산된 확률은 12,642,870이다. 도 22의 매트릭스 내로 입력된 확률들은 도 25-26의 실시 예들과 같이, 위에서 설명된 것과 같이 구현되는 모든 키 스트라이크 확률들로부터 발생한다. 예를 들면, 이러한 확률 계산은 위에서 상세히 논의된 것과 같이, 탭 빈도를 사용하여 실행될 수 있다.
이와 관련하여, 단계 2408은 동일한 세트-편집-거리를 갖는 후보 단어들 사이의 관계들을 해결하는데 사용하기 위하여, 다양한 또 다른 그림자 매트릭스를 계산할 수 있다. 일 실시 예에서, 이러한 그림자 매트릭스들은 후보 단어에 도달하는데 필요한 무료 첨가들의 수를 계산하는 매트릭스를 포함한다. 도 19는 이러한 그림자 매트릭스의 실시 예를 도시한다. 도 19의 매트릭스는 세 개의 무료 첨가를 표시한다. 그림자 매트릭스는 또한 후보 단어를 위한 스템-편집-거리를 계산하는 매트릭스를 포함한다. 도 21은 이러한 그림자 매트릭스의 실시 예에다. 이러한 실시 예에서, 도 21로부터의 스템-편집-거리는 제로이다.
일 실시 예에서, 단계 2408은 도 20에 의해 예시된 것과 같이, 세트-편집-거리를 계산하고 만일 세트-편집-거리 매트릭스가 규정된 한계 크기를 초과하면 하나 또는 모든 그림자 매트릭스의 고려를 누락시킴으로써 능률화될 수 있다. 이는 단계 2408이 더 빠르게 완료하도록 도움을 준다.
단계 2408 이후에, 단계 2410은 세트-편집-거리가 계산되는 어휘 입력들을 취하며, 그것들의 세트-편집-거리 매트릭스에 따라 그것들에 순위를 매긴다. 단계 2410은 주어진 표준에 따라, 디스플레이(203) 상에와 같이, 이러한 가장 높은 순위의 후보 엔트리들의 시각적 입력을 제공한다. 예를 들면, 표준은 상위 10개 엔트리, 상위 20개 엔트리, 디스플레이 스크린상에 맞는 수의 엔트리, 또는 다른 기준을 지정할 수 있다.
비록 루틴(2400)이 다양한 "무료" 첨가 및 삭제들을 설명하나, 시퀀스의 일 실시 예는 여전히 이러한 무료 특징들의 사용을 트래킹(tracking)한다. 이러한 데이터는 주로 어떤 무료 첨가 또는 삭제들을 사용하지 않는 단어들 대 그러한 것을 사용하는 단어들 사이의 관계를 깨뜨리는, 개량된 신뢰도 측정을 제공하는 것과 같은, 다양한 목적을 위하여 사용될 수 있다.
특정 실시 예
시퀀스(2400)를 더 설명하기 위하여, 다음의 실시 예가 주어진다. 단계 2402에서 시스템(200)은 도 17에 도시된 소프트 키보드(1700)를 디스플레이한다. 단계 2404에서 시스템(200)은 도 17에서 참조번호 1706에 의해 도시된, 사용자의 추적을 받는다. 단계 2406에서, 시스템은 사용자의 입력 시퀀스를 정의한다. 여기서, 추적은 키들 P, O, I, U, T, R, E, R, T, 및 Y와 직접 접촉한다. 이러한 키들 및 그것들의 보조들을 포함하는, 전체 입력 시퀀스는 다음을 포함한다:
(1) PO : 접촉된 시작 키 P뿐만 아니라, 보조 O를 포함하는 일차 키들 그 이유는 그것이 직사각형 확률 접근법을 만족시키고 추적 이동의 방향을 따라 키들에 대한 선호도를 만족시키기 때문이다.
(2) OIUYTR : 추적의 속도 또는 방향에 기안하여 보조들이 없는 이차, 중개 키들 O, I, U, Y, T, 및 R.
(3) EWR : 접촉된 방향 변화 키 E뿐만 아니라, W와 R 그 이유는 그것들이 E에 대한 보조들이기 때문이다.
(4) RT : 추적의 속도 또는 방향에 기안하여 보조들이 없는 이차, 중개 키들 R과 T.
(5) YTU : 접촉된 종료 키 Y와 함께 T와 U 그 이유는 그것들이 Y에 대한 보조들이기 때문이다.
그 다음에, 단계 2406은 단계 2406의 입력 시퀀스를 위하여 세트-편집-거리를 계산한다. 일 실시 예에서, 단계 2406은 도 18의 매트릭스(1800)를 사용하여 수행된다(적어도 부분적으로). 이러한 매트릭스는 도 4의 매트릭스와 유사한 개념들을 사용하나, 추적의 사용에 기인하는 일부 새로운 트위스트(twist)들을 갖는다. 이것들은 위에서 설명되었으며, 아래에 더 설명될 것이다.
단어들(1810)은 단계 2406에서의 현재 입력 시퀀스들과 비교되는 입력 엔트리들의 대표적인 일부이다. 설명된 것과 같이, 비교는 어휘 엔트리들의 일부 또는 모두로 만들어질 수 있다. 열 1802는 PO와 상응하고, 열 1804는 OIUYTR과 상응하며, 열 1805는 EWR과 상응하며, 열 1806은 RT와 상응하며, 열 1808은 YTU와 상응한다. 열 1804, 1806에서의 별표는 이러한 열들의 키들이 이차 키들인 것을 나타낸다.
본 실시 예에서 룰 2420은 다음과 같이 적용된다. 룰 2321은 시작 키 P 또는 그것의 보조 O가 열 1802에 고려되고 종료 키 Y 또는 그것의 보조 T 혹은 U가 열 1808에 고려되며, 방향 변화 키 E 또는 그것의 보조 W 혹은 R이 열 1805에 고려되는 것이 필수적인 것을 말한다. 이차 키들 OIUYTR의 열 1804 및 이차 키들 RT의 열 1806이 이차 키들이고, 룰 2422하에서 하며, 그것들은 세트-편집-거리에 대한 손실 없이 무시될 수 있다. 룰 2423은 키들(1802, 1804, 1805, 1806, 및 1808)의 어떤 것도 페널티 없이 수차례 반복될 수 있다는 것을 규정한다. 룰 2425는 이러한 특정 실시 예에 적용되지 않는데 그 이유는 본 실시 예에서 후보 엔트리들(1810) 중 어떠한 것도 구두점 또는 특별한 부호를 포함하지 않기 때문이다.
도 28은 도 18의 어휘 엔트리 'potter'를 위한 세트-편집-거리를 계산하는 매트릭스를 도시한다. 이러한 실시 예에서, 후부 단어 'pretty'는 'potter'를 이기는데, 그 이유는 'pretty'를 위한 세트-편집-거리가 제로이기 때문이다.
만일 관계가 존재하였으면, 단계 2408은 관계를 해결하기 위하여 단어 "potter"를 위한 하나 또는 그 이상의 그림자 매트릭스를 고려할 수 있다. 이와 관련하여, 도 27의 매트릭스는 본 실시 예에서는 세 개인, 후보 엔트리 "potter"에 도달하기 위하여 필요한 자유 첨가들의 수를 계산하는 그림자 매트릭스를 도시한다. 도 29는 스템-편집-거리를 위한 그림자 매트릭스를 도시하고, 도 30은 키 스트라이크 확률을 위한 그림자 매트릭스를 도시한다.
다른 실시 예들
앞선 설명들은 다수의 도시된 실시 예들을 나타내나, 통상의 지식을 가진 자들에게 첨부된 청구항들에 의해 정의되는 본 발명의 범위를 벗어나지 않고 다양한 변경 및 변형들이 만들어질 수 있다는 것은 자명할 것이다. 따라서, 개시된 실시 예들은 본 발명에 의해 광범위하게 고려되는 주제를 나타내고, 본 발명의 범위는 통상의 지식을 가진 자들에게 자명할 수 있는 다른 실시 예들을 포함하며, 따라서 본 발명의 범위는 첨부된 청구항들에 의해서만 한정된다.
105 : 데이터 입력 장치
110 : 소스
115 : 사전
200 : 입력 시스템
201 : 프로세서
202 : 입력 장치
203 : 디스플레이
204 : 스피커
210 : 메모리
211 : 운용 시스템
212 : 수정 소프트웨어
213 : 어휘 모듈
214, 215, 216 : 응용 프로그램
220 : 디지털 데이터 처리 장치
221 : 입력/출력
222 : 프로세서
224 : 디지털 데이터 기억장치
226, 228, 230 : 기억장치
1700 : 소프트 키보드
1706 : 추적

Claims (23)

  1. 터치 감응 디스플레이 표면을 포함하는 디스플레이;
    다중 어휘 엔트리를 포함하는 어휘 데이터베이스를 포함하는 디지털 데이터 기억장치; 및
    상기 디스플레이 및 상기 기억장치에 결합되고,
    각각 하나 또는 그 이상의 글자들을 표현하는, 키들의 배치를 나타내도록 상기 디스플레이를 안내하는 단계,
    상기 디스플레이 표면을 통하여, 단일 터치로부터 상기 디스플레이 표면으로 사용자 입력을 수신하는 단계를 구비하고, 상기 사용자 입력은 시작 키, 종료 키, 및 상기 시작 키와 상기 종료 키 사이의 어떠한 중개 키를 포함하는, 상기 키들을 순서대로 접촉하는 단일의 연속적인 추적을 포함하고, 상기 단일의 연속적인 추적은 상기 단일 터치가 올려질 때 사라지며,
    상기 접촉된 키들을 포함하고 또한 상기 접촉된 키들에 규정된 근접성을 나타내는 키들을 포함하는 어떠한 보조 키들을 포함하는 입력 시퀀스를 정의하는 단계,
    각각의 후보 엔트리를 위하여 상기 입력 시퀀스와 후보 엔트리 사이의 매칭 메트릭을 계산하도록 세트-편집-거리의 메트릭을 계산하는 단계의 운용들을 포함하는, 상기 입력 시퀀스를 상기 어휘로부터 상기 후보 엔트리들을 비교하는 단계를 구비하며,
    상기 세트-편집-거리의 계산은 상기 후보 단어로부터 상기 시작 키 및 상기 시작 키에 대한 보조 키들을 포함하는 첫 번째 그룹으로부터의 모든 키를 제외하는 것에 대하여 페널티를 부과하고,
    상기 세트-편집-거리의 계산은 상기 후보 단어로부터 상기 종료 키 및 상기 종료 키에 대한 보조 키들을 포함하는 두 번째 그룹으로부터의 모든 키를 제외하는 것에 대하여 페널티를 부과하고,
    상기 세트-편집-거리의 계산은 상기 후보 단어로부터 적어도 상기 추적의 방향의 규정된 최소 변화가 발생하는 모든 접촉된 키들 및 그것들의 보조들을 포함하는 세 번째 그룹으로부터의 모든 키를 제외하는 것에 대하여 페널티를 부과하고,
    상기 세트-편집-거리의 계산은 상기 후보 단어로부터 모든 상기 첫 번째, 두 번째, 세 번째 그룹 외부의 상기 입력 시퀀스의 어떠한 키를 제외하는 것에 대하여 어떤 페널티도 부과하지 않으며,
    상기 세트-편집-거리의 계산은 상기 후보 단어에서 연속해서 두 번 또는 그 이상 상기 입력 시퀀스 내의 어떠한 키를 사용하는 것에 대하여 어떤 페널티도 부가하지 않으며, 및
    적어도 상기 계산된 세트-편집-거리의 메트릭을 포함하는 기준에 따라 상기 후보 단어들에 순위를 매기는 단계, 및 상기 순위가 매겨진 후보 단어들의 적어도 일부의 출력을 제공하는 단계,를 포함하는 운용들을 실행하도록 프로그램된 프로세서;를 포함하는 것을 특징으로 하는 텍스트 입력 장치.
  2. 제 1항에 있어서, 상기 세트-편집-거리의 계산은 구두점, 숫자, 부호들 중 어느 것을 포함하는 규정된 그룹의 글자들을 포함하는 후보 단어들에 대하여 어떤 페널티도 부가하지 않은 것을 특징으로 하는 텍스트 입력 장치.
  3. 제 1항에 있어서, 상기 운용들은 각각의 계산된 세트-편집-거리의 메트릭과 공동으로 키보드-지오메트리-기반 확률을 계산하는 단계;
    유사하게 순위가 매겨진 후보 단어들 사이의 관계를 깨기 위하여 계산된 상기 확률을 사용하는 단계;를 더 포함하는 것을 특징으로 하는 텍스트 입력 장치.
  4. 제 3항에 있어서, 각각의 상기 중개 키들을 위하여, 상기 키보드-지오메트리-기반 확률은 상기 추적이 상기 중개 키를 피하는 속도에 따라 감소하는 것을 특징으로 하는 텍스트 입력 장치.
  5. 제 3항에 있어서, 주어진 키의 상기 키보드-지오메트리-기반 확률은 상기 추적 상의 지점으로부터 상기 키의 반경에 따라 변경하는 것을 특징으로 하는 텍스트 입력 장치.
  6. 제 3항에 있어서, 주어진 키의 상기 키보드-지오메트리-기반 확률은 상기 주어진 키에 가장 근접한 접촉된 키를 중심으로 하는 규정된 직사각형 터치 영역을 교차하는 상기 주어진 키의 영역에 따라 변경하는 것을 특징으로 하는 텍스트 입력 장치.
  7. 제 1항에 있어서, 상기 순위를 매기는 단계의 운용은 상기 세트-편집-거리의 메트릭 및 언어-모델-기반 확률을 포함하는 기준에 따라 후보 단어들에 순위를 매기기 위하여 수행되는 것을 특징으로 하는 텍스트 입력 장치.
  8. 제 1항에 있어서, 상기 운용들은 무료의 첨가 및 삭제들을 트래킹하는 단계 및 유사하게 순위가 매겨진 후보 단어들 사이의 관계를 깨기 위하여 상기 트래킹된 무료의 첨가 및 삭제들을 사용하는 단계를 더 포함하는 것을 특징으로 하는 텍스트 입력 장치.
  9. 제 1항에 있어서, 상기 운용들은 스템-편집-거리를 계산하는 단계 및 유사하게 순위가 매겨진 후보 단어들 사이의 관계를 깨기 위하여 상기 계산된 스템-편집-거리를 사용하는 단계를 더 포함하는 것을 특징으로 하는 텍스트 입력 장치.
  10. 각각 하나 또는 그 이상의 글자들을 표현하는, 키들의 배치를 나타내도록 디스플레이를 안내하는 단계;
    상기 디스플레이 표면을 통하여, 단일 터치로부터 상기 디스플레이 표면으로 사용자 입력을 수신하는 단계를 구비하고, 상기 사용자 입력은 시작 키, 종료 키, 및 상기 시작 키와 상기 종료 키 사이의 어떠한 중개 키를 포함하는, 상기 키들을 순서대로 접촉하는 단일의 연속적인 추적을 포함하고, 상기 단일의 연속적인 추적은 상기 단일 터치가 올려질 때 사라지며;
    각각의 후보 엔트리를 위하여 상기 입력 시퀀스와 후보 엔트리 사이의 매칭 메트릭을 계산하도록 세트-편집-거리의 메트릭을 계산하는 단계의 운용들을 포함하는, 상기 입력 시퀀스를 다중 어휘 엔트리를 포함하는 어휘로부터 상기 후보 엔트리들과 비교하는 단계를 구비하며,
    상기 세트-편집-거리의 계산은 상기 후보 단어로부터 상기 시작 키 및 상기 시작 키에 대한 보조 키들을 포함하는 첫 번째 그룹으로부터의 모든 키를 제외하는 것에 대하여 페널티를 부과하고,
    상기 세트-편집-거리의 계산은 상기 후보 단어로부터 상기 종료 키 및 상기 종료 키에 대한 보조 키들을 포함하는 두 번째 그룹으로부터의 모든 키를 제외하는 것에 대하여 페널티를 부과하고,
    상기 세트-편집-거리의 계산은 상기 후보 단어로부터 적어도 상기 추적의 방향의 규정된 최소 변화가 발생하는 모든 접촉된 키들 및 그것들의 보조들을 포함하는 세 번째 그룹으로부터의 모든 키를 제외하는 것에 대하여 페널티를 부과하고,
    상기 세트-편집-거리의 계산은 상기 후보 단어로부터 모든 상기 첫 번째, 두 번째, 세 번째 그룹 외부의 상기 입력 시퀀스의 어떠한 키를 제외하는 것에 대하여 어떤 페널티도 부과하지 않으며,
    상기 세트-편집-거리의 계산은 상기 후보 단어에서 연속해서 두 번 또는 그 이상 상기 입력 시퀀스 내의 어떠한 키를 사용하는 것에 대하여 어떤 페널티도 부가하지 않으며; 및
    적어도 상기 계산된 세트-편집-거리의 메트릭을 포함하는 기준에 따라 상기 후보 단어들에 순위를 매기는 단계, 및 상기 순위가 매겨진 후보 단어들의 적어도 일부의 출력을 제공하는 단계;의 운용들을 포함하되,
    상기 운용들 중 적어도 하나는 프로세서에 의해 실행되는 것을 특징으로 하는 방법.
  11. 제 10항에 있어서, 상기 세트-편집-거리의 계산은 구두점, 숫자, 부호들 중 어느 것을 포함하는 규정된 그룹의 글자들을 포함하는 후보 단어들에 대하여 어떤 페널티도 부가하지 않은 것을 특징으로 하는 방법.
  12. 제 10항에 있어서, 상기 운용들은 각각의 계산된 세트-편집-거리의 메트릭과 공동으로 키보드-지오메트리-기반 확률을 계산하는 단계;
    유사하게 순위가 매겨진 후보 단어들 사이의 관계를 깨기 위하여 계산된 상기 확률을 사용하는 단계;를 더 포함하는 것을 특징으로 하는 방법.
  13. 제 12항에 있어서, 각각의 상기 중개 키들을 위하여, 상기 키보드-지오메트리-기반 확률은 상기 추적이 상기 중개 키를 피하는 속도에 따라 감소하는 것을 특징으로 하는 방법.
  14. 제 12항에 있어서, 주어진 키의 상기 키보드-지오메트리-기반 확률은 상기 추적 상의 지점으로부터 상기 키의 반경에 따라 변경하는 것을 특징으로 하는 방법.
  15. 제 12항에 있어서, 주어진 키의 상기 키보드-지오메트리-기반 확률은 상기 주어진 키에 가장 근접한 접촉된 키를 중심으로 하는 규정된 직사각형 터치 영역을 교차하는 상기 주어진 키의 영역에 따라 변경하는 것을 특징으로 하는 방법.
  16. 제 10항에 있어서, 상기 순위를 매기는 단계의 운용은 상기 세트-편집-거리의 메트릭 및 언어-모델-기반 확률을 포함하는 기준에 따라 후보 단어들에 순위를 매기기 위하여 수행되는 것을 특징으로 하는 방법.
  17. 제 10항에 있어서, 상기 운용들은 무료의 첨가 및 삭제들을 트래킹하는 단계 및 유사하게 순위가 매겨진 후보 단어들 사이의 관계를 깨기 위하여 상기 트래킹된 무료의 첨가 및 삭제들을 사용하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  18. 제 10항에 있어서, 상기 운용들은 스템-편집-거리를 계산하는 단계 및 유사하게 순위가 매겨진 후보 단어들 사이의 관계를 깨기 위하여 상기 계산된 스템-편집-거리를 사용하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  19. 제 10항의 운용들을 실행하기 위하여 프로세서에 의해 실행가능한 프로그램의 비일시적 기억장치를 포함하는 디지털 데이터 저장매체.
  20. 단일 터치로부터 디스플레이 표면으로 사용자 입력을 수신하는 단계를 구비하고, 상기 사용자 입력은 터치 감응 디스플레이 상에 표현되는 키보드를 가로질러 연속적으로 추적되는 경로를 지정하고, 상기 연속적으로 추적된 경로는 상기 단일 터치가 올려질 때 사라지며;
    규정된 기준에 의해 추적된 키들의 입력 시퀀스 및 상기 추적된 키들에 근접한 보조 키들을 해결하는 단계;
    규정된 어휘의 하나 또는 그 이상의 후보 엔트리들 각각을 위하여, 상기 입력 시퀀스 및 상기 후보 엔트리 사이의 세트-편집-거리의 메트릭을 계산하는 단계를 구비하며,
    상기 세트-편집-거리의 계산은 상기 후보 엔트리로부터 상기 경로의 시작 키 및 상기 시작 키에 대한 보조 키들을 포함하는 첫 번째 그룹으로부터의 모든 키를 제외하는 것에 대하여 페널티를 부과하고,
    상기 세트-편집-거리의 계산은 상기 후보 엔트리로부터 상기 경로의 종료 키 및 상기 종료 키에 대한 보조 키들을 포함하는 두 번째 그룹으로부터의 모든 키를 제외하는 것에 대하여 페널티를 부과하고,
    상기 세트-편집-거리의 계산은 상기 후보 엔트리로부터 적어도 상기 경로의 방향의 규정된 최소 변화가 발생하는 모든 접촉된 키들 및 그것들의 보조들을 포함하는 세 번째 그룹으로부터의 모든 키를 제외하는 것에 대하여 페널티를 부과하고,
    상기 세트-편집-거리의 계산은 상기 후보 엔트리로부터 모든 상기 첫 번째, 두 번째, 세 번째 그룹 외부의 상기 입력 시퀀스의 어떠한 키를 제외하는 것에 대하여 어떤 페널티도 부과하지 않으며,
    상기 세트-편집-거리의 계산은 연속해서 두 번 또는 그 이상 상기 입력 시퀀스 내의 어떠한 키를 사용하는 상기 후보 엔트리 대하여 어떤 페널티도 부가하지 않으며; 및
    상기 계산된 세트-편집-거리의 메트릭들에 따라 상기 후보 엔트리들에 순위를 매기는 단계, 및 상기 순위가 매겨진 후보 단어들의 일부 또는 모두의 출력을 제공하는 단계;의 운용들을 포함하되,
    상기 운용들 중 적어도 하나는 프로세서에 의해 실행되는 것을 특징으로 하는 방법.
  21. 제 20항의 운용들을 실행하도록 프로그래밍된 프로세서에 결합된 터치 감응 디스플레이를 포함하는 것을 특징으로 하는 장치.
  22. 제 20항의 운용들을 실행하기 위하여 프로세서에 의해 실행가능한 프로그램의 비일시적 기억장치를 포함하는 디지털 데이터 저장매체.
  23. 디스플레이;
    다중 키들의 키패드, 또는 터치 감응 디스플레이 표면을 포함하는 사용자 입력 장치;
    다중 어휘 엔트리를 포함하는 어휘 데이터베이스를 포함하는 디지털 데이터 기억장치; 및
    상기 디스플레이, 상기 사용자 입력, 및 상기 기억장치에 결합되고,
    상기 디스플레이 표면을 통하여, 단일 터치로부터 상기 디스플레이 표면으로 사용자 입력을 수신하는 단계를 구비하고, 상기 사용자 입력은 상기 단일 터치가 올려질 때 사라지는, 터치 감응 디스플레이 표면을 통하여 입력된 연속적인 추적에 접촉되고 근접한 키들, 또는 하나 또는 그 이상이 공동으로 다중 글자들을 표현하는 눌려진 키패드 키들 중의 하나를 포함하며,
    각각 상기 키들의 시퀀스에 의해 잠재적으로 표현되는 글자들의 조합을 표현하는 서로 다른 후보 단어들을 식별하는 단계,
    상기 사용자 입력의 표현 가능성에 따라 비교된 어휘 엔트리들에 스코어를 매기기 위하여 상기 후보 단어들을 상기 어휘의 입력들과 비교하는 단계,를 포함하는 운용들을 실행하도록 프로그램된 프로세서;를 포함하되,
    상기 비교하는 단계의 운용은 상기 입력 시퀀스 내에 포함되지 않는, 구두점, 부호들, 숫자들, 상기 사용자 입력의 하나의 키 상에 함께 표현되는 어느 글자의 반복, 상기 사용자 입력의 하나의 키 상에 함께 표현되는 다중 글자들의 사용 중의 어느 것을 포함하는 어떤 어휘 엔트리도 페널티를 주는 것을 방지하는 것을 특징으로 하는 장치.
KR1020137014217A 2010-11-04 2011-11-04 자동 수정을 갖는 키보드 시스템용 맞춤법 검사 KR101520455B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/939,918 2010-11-04
US12/939,918 US8225203B2 (en) 2007-02-01 2010-11-04 Spell-check for a keyboard system with automatic correction
PCT/US2011/059319 WO2012061701A1 (en) 2010-11-04 2011-11-04 Spell-check for a keyboard system with automatic correction

Publications (2)

Publication Number Publication Date
KR20130107325A KR20130107325A (ko) 2013-10-01
KR101520455B1 true KR101520455B1 (ko) 2015-05-21

Family

ID=46024844

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137014217A KR101520455B1 (ko) 2010-11-04 2011-11-04 자동 수정을 갖는 키보드 시스템용 맞춤법 검사

Country Status (4)

Country Link
EP (1) EP2636149A4 (ko)
KR (1) KR101520455B1 (ko)
CN (1) CN103299550B (ko)
WO (1) WO2012061701A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2013204311B2 (en) 2012-05-30 2016-09-29 Chomley Consulting Pty. Ltd Methods, Controllers and Devices for Assembling a Word
US8843845B2 (en) 2012-10-16 2014-09-23 Google Inc. Multi-gesture text input prediction
US8832589B2 (en) 2013-01-15 2014-09-09 Google Inc. Touch keyboard using language and spatial models
JP6548358B2 (ja) * 2014-04-04 2019-07-24 タッチタイプ リミテッド マルチ入力ターゲットに関連付けられた1つ又はそれ以上の入力を入力するためのシステム及び方法
US11762989B2 (en) 2015-06-05 2023-09-19 Bottomline Technologies Inc. Securing electronic data by automatically destroying misdirected transmissions
US20170163664A1 (en) 2015-12-04 2017-06-08 Bottomline Technologies (De) Inc. Method to secure protected content on a mobile device
US11163955B2 (en) 2016-06-03 2021-11-02 Bottomline Technologies, Inc. Identifying non-exactly matching text
US10235356B2 (en) 2016-06-03 2019-03-19 Bottomline Technologies (De), Inc. Dual authentication method for identifying non-exactly matching text
KR101858999B1 (ko) * 2016-11-28 2018-05-17 (주)헤르메시스 가상 키보드의 입력 보정 장치, 및 그 방법
CN109725737B (zh) * 2017-10-31 2022-10-25 北京金山安全软件有限公司 一种信息展示方法、装置及系统
CN109033065A (zh) * 2018-06-01 2018-12-18 昆明理工大学 一种英文单词拼写检查方法
US10955934B2 (en) * 2018-09-05 2021-03-23 Apple Inc. Remote capacitive interface
US11416713B1 (en) 2019-03-18 2022-08-16 Bottomline Technologies, Inc. Distributed predictive analytics data set
US11042555B1 (en) 2019-06-28 2021-06-22 Bottomline Technologies, Inc. Two step algorithm for non-exact matching of large datasets
US11269841B1 (en) 2019-10-17 2022-03-08 Bottomline Technologies, Inc. Method and apparatus for non-exact matching of addresses
US11763278B2 (en) 2020-03-13 2023-09-19 Bottomline Technologies, Inc. Deposit token service system, apparatus and method
US11449870B2 (en) 2020-08-05 2022-09-20 Bottomline Technologies Ltd. Fraud detection rule optimization
US11694276B1 (en) 2021-08-27 2023-07-04 Bottomline Technologies, Inc. Process for automatically matching datasets
US11544798B1 (en) 2021-08-27 2023-01-03 Bottomline Technologies, Inc. Interactive animated user interface of a step-wise visual path of circles across a line for invoice management

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040155869A1 (en) * 1999-05-27 2004-08-12 Robinson B. Alex Keyboard system with automatic correction

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050120870A1 (en) * 1998-05-15 2005-06-09 Ludwig Lester F. Envelope-controlled dynamic layering of audio signal processing and synthesis for music applications
US7030863B2 (en) * 2000-05-26 2006-04-18 America Online, Incorporated Virtual keyboard system with automatic correction
US7098896B2 (en) * 2003-01-16 2006-08-29 Forword Input Inc. System and method for continuous stroke word-based text input
US7382358B2 (en) * 2003-01-16 2008-06-03 Forword Input, Inc. System and method for continuous stroke word-based text input
US8201087B2 (en) * 2007-02-01 2012-06-12 Tegic Communications, Inc. Spell-check for a keyboard system with automatic correction
US7911944B2 (en) * 2007-12-26 2011-03-22 Nortel Networks Limited Tie-breaking in shortest path determination
GB0905457D0 (en) * 2009-03-30 2009-05-13 Touchtype Ltd System and method for inputting text into electronic devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040155869A1 (en) * 1999-05-27 2004-08-12 Robinson B. Alex Keyboard system with automatic correction

Also Published As

Publication number Publication date
WO2012061701A8 (en) 2013-06-06
EP2636149A4 (en) 2016-10-05
KR20130107325A (ko) 2013-10-01
WO2012061701A1 (en) 2012-05-10
CN103299550A (zh) 2013-09-11
CN103299550B (zh) 2015-12-09
WO2012061701A4 (en) 2012-07-05
EP2636149A1 (en) 2013-09-11

Similar Documents

Publication Publication Date Title
KR101520455B1 (ko) 자동 수정을 갖는 키보드 시스템용 맞춤법 검사
US8892996B2 (en) Spell-check for a keyboard system with automatic correction
US9092419B2 (en) Spell-check for a keyboard system with automatic correction
US11614862B2 (en) System and method for inputting text into electronic devices
JP4519381B2 (ja) 自動訂正機能を備えたキーボード・システム
JP4527731B2 (ja) 自動訂正機能を備えた仮想キーボードシステム
KR102078785B1 (ko) 세계어들을 위한 가상 키보드 입력
JP5400200B2 (ja) ショートハンド・オン・キーボード・インタフェースにおいてテキスト入力を改善するためのシステム、コンピュータ・プログラムおよび方法(キ
US9557916B2 (en) Keyboard system with automatic correction
US8103499B2 (en) Disambiguation of telephone style key presses to yield Chinese text using segmentation and selective shifting
EP2889729B1 (en) System and method for inputting text into electronic devices
Banovic et al. The limits of expert text entry speed on mobile keyboards with autocorrect

Legal Events

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

Payment date: 20180425

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190509

Year of fee payment: 5