KR101027167B1 - 자동완성 방법 및 시스템 - Google Patents

자동완성 방법 및 시스템 Download PDF

Info

Publication number
KR101027167B1
KR101027167B1 KR1020087014275A KR20087014275A KR101027167B1 KR 101027167 B1 KR101027167 B1 KR 101027167B1 KR 1020087014275 A KR1020087014275 A KR 1020087014275A KR 20087014275 A KR20087014275 A KR 20087014275A KR 101027167 B1 KR101027167 B1 KR 101027167B1
Authority
KR
South Korea
Prior art keywords
data
period
dynamically determined
data symbol
calculated
Prior art date
Application number
KR1020087014275A
Other languages
English (en)
Other versions
KR20080075878A (ko
Inventor
코코 안토니오 디
필리포 칼라
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20080075878A publication Critical patent/KR20080075878A/ko
Application granted granted Critical
Publication of KR101027167B1 publication Critical patent/KR101027167B1/ko

Links

Images

Classifications

    • 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
    • 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
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs

Abstract

키-누름 이벤트와 같은 데이터 입력 이벤트들 사이의 제한 시간의 만료에 의해 입력 리스트 룩 업 사전이 트리거되는 자동-완성 또는 자동-정정 메커니즘이 실시되는데, 여기서 제한 시간 값은 입력 속도의 함수로서 동적으로 결정된다. 제한 시간은, 예를 들어, 평균 입력 속도에 기초하여 계산될 수 있고, 여분의 마진 값을 포함할 수 있다. 따라서, 룩 업 트리거링의 발생은 현재 사용자의 데이터 입력 속도에 대해 최적화될 것이다.

Description

자동완성 방법 및 시스템{AUTOCOMPLETION METHOD AND SYSTEM}
본 발명은 자동-완성 메커니즘에 관한 것이다.
특정 전자 장치 또는 소프트웨어 환경의 휴먼 인터페이스는 자동-완성 기능을 제공하는데, 이 자동-완성 기능의 휴먼 인터페이스는 사용자가 이미 입력한 것을 완성할 수 있는 정보 부분을 식별하려고 시도하여, 사용자가 나머지 부분을 명시적으로 입력하는 번거로움을 피할 수 있게 한다. 이러한 식별 프로세스는 종종, 예컨대, 과거의 입력들을 기초로 가능한 완성 입력들의 리스트를 참조하거나, 또는 표준 라이브러리를 참조하여 수행된다. 이와 같은 메커니즘은 예컨대, 이동 전화기의 인터페이스에서 종종 발견되는데, 여기서 인터페이스는 연락 리스트 및 이전에 다이얼링한 번호들을 참조하여, 부분적으로 입력된 번호 또는 이름을 기초로 완성된 전화 번호를 제안하도록 구성된다. 다른 예는 프로그래밍 환경에서 발견되는데, 여기서 자동-완성 메커니즘은 사용자가 입력한 처음 몇 개의 문자를 기초로 실질적인 표준 코드 부분을 제안할 수 있다.
도 1은 종래 기술의 접근 방법의 예시적 흐름도이다. 이러한 접근 방법에 따라, 키 청취기(key listener)는 지역 변수(local variable) 내에 마지막 키가 눌러졌던 이벤트의 타임 스탬프를 저장한다. 새로운 이벤트가 시작될 때, 새로운 타임 스탬프가 취해지고, 2개의 값 사이의 차이가 주어진 간격보다 작다면, 새로운 문자는 이전 문자의 연장으로 간주되고, 새로운 타임 스탬프가 업데이트된다.
이 방법은, 예컨대, 데이터 입력 시작시에 타임 스탬프가 기록되는 단계(101)에서 시작된다. 단계(103)에서, 키가 눌러졌는지 여부가 판단되는데, 이 단계는 키 누름 이벤트가 실제로 검출될 때까지 반복된다. 단계(105)에서, 이와 같은 이벤트가 검출될 때, 이벤트의 타임 스탬프가 기록되고, 단계(107)에서, 마지막 2개의 타임 스탬프 사이의 간격이 판정된다. 단계(109)에서는, 단계(107)에서 계산된 간격이 미리 결정된 간격을 초과하는지 아닌지 여부가 판단되는데, 미리 결정된 간격이 초과하지 않는다고 판단되는 경우, 단계(103)로 되돌아가기(looping back) 전까지 새로운 데이터 기호가 데이터 기호 입력의 기록에 추가된다. 그러나, 미리 결정된 간격을 초과한다고 판단되는 경우, 방법은, 단계(101) 이후로 눌러진 키의 기록과 가능한 데이터 입력 모음의 비교가 수행되는 단계(113)로 진행되고, 단계(115)에서, 사용자에게 가능한 완성 값이 제시되는데, 이는 수용되거나 수용되지 않을 수 있다. 어떤 경우에든, 제한 시간이 만료되었다는 사실은 데이터 입력 시퀀스의 종료에 도달했다는 것을 나타내는 것으로 이해되므로, 단계(117)에서, 단계(101) 이후로 눌러진 키의 기록은 단계(103)로 되돌아가기 전에 삭제된다.
이하의 의사코드(pseudo code)는 이러한 발명의 예시적인 일부 구현을 제공한다:
if ( (curTime - ivLastKeyTime) > TimeLimit )
{
Carry out search for auto-complete text
Reset the current selection initializing it with the new Key.
}
else
{
add new key to current selection
Carry out search for auto-complete text
}
본 발명에 따르면, 첨부한 독립 청구항 제1항에 따른 데이터 입력을 포뮬레이팅하는 방법, 첨부한 독립 청구항 제11항에 따른 컴퓨터 프로그램, 첨부한 독립 청구항 제12항에 따른 컴퓨터 판독 가능한 매체, 및 첨부한 독립 청구항 제13항에 따른 시스템이 제공된다. 바람직한 실시예들은 종속항들로 정의된다.
본 발명의 추가 이점들은 도면 및 상세한 설명을 통해 당업자들에게 명백해질 것이다. 임의의 추가 이점들도 여기서 병합되도록 의도되었다.
동일한 참조 번호가 유사한 구성 요소들을 표시하는 첨부한 도면들을 참조하여, 예를 통해 본 발명의 실시예들이 설명될 것이다.
도 1은 종래 기술의 접근 방법의 예시적 흐름도;
도 2는 제1 실시예를 도시한 도면;
도 3은 제2 실시예를 도시한 도면;
도 4는 본 발명을 구현하기에 적합한 가능한 하드웨어 구성을 도시한 도면;
도 5는 본 발명의 제1 애플리케이션을 도시한 도면; 및
도 6은 본 발명의 제2 애플리케이션을 도시한 도면이다.
상술한 바와 같은 자동-완성 메커니즘의 문제점은, 시간 간격이 구성 파라미터에 의해 고정되거나 또는 맞춤 설정될 수 있지만, 일단 시간 간격이 판독되면, 사용자에 상관없이 유효하다는 것이다. 그러나, 실제로 여러 사용자들이 서로 다른 데이터 입력 속도를 가지므로, 사용자가 너무 느려 자동-완성 메커니즘을 이용할 수 없거나 또는 사용자의 데이터 입력이 너무 빨라 검색을 재시작하는데 다소 어려움을 가질 수 있는 일이 발생할 수 있다. 특정 실시예에 따라, 예컨대, 실제로 컴포넌트를 이용하고 있는 사용자로부터 학습함으로써, 참조로서 취해진 간격은 변할 수 있다. 즉, 제한 시간은 동적으로 결정된 기간이다. 2 이상의 실제 시간 간격 값 및 키가 눌러진 횟수는 저장되고, 현재 사용자의 실제 데이터 입력 속도에 기초하여 시간 간격을 계산하는데 이용될 수 있다. 즉, 각각의 데이터 기호 입력 후에 동적으로 결정된 기간 동안 대기하는 단계, 및 상기 기간의 만료 이전에 추가 데이터 기호 입력이 수신되는 경우, 수신된 기호와 가능한 데이터 입력 모음을 비교함으로써 상기 데이터 입력을 완성하려고 시도하는 단계, 상기 기간이 만료되기 이전에 추가의 데이터 기호가 수신되지 않는다면, 추가 비교를 위하여 이전에 수신된 모든 기호들을 삭제하는 단계가 제공되는데, 상기 동적으로 결정된 기간은 이전의 데이 터 기호 입력들 사이의 간격의 함수로서 계산된다.
애플리케이션이 종료될 때, 시간 간격 값은 영구적으로 저장될 수 있기 때문에, 애플리케이션이 재시작될 때, 그 저장된 시간 간격 값을 검색하는 것이 가능할 것이다. 이는 이전 세션에서 결정된 최적화된 값이 새로운 세션에 대한 시작 포인트로서 취해질 수 있다는 이점을 제공하는데, 이로 인해 새로운 세션에 대한 제한 시간 값을 조정하는데 요구되는 평균 시간이 단축될 것이다.
바람직하게, 동적으로 결정된 기간은 복수의 이전 데이터 기호 입력들 사이의 시간 간격의 평균을 판정함으로써 계산된다. 평균은 단순한 회로 또는 소프트웨어 루틴을 이용하여 판정될 수 있으므로, 실행 비용 또는 오버헤드를 제한할 수 있다. 더 바람직하게, 동적으로 결정된 기간은 복수의 연속하는 데이터 기호 입력들 사이의 시간 간격의 평균을 판정함으로써 계산된다. 이는, 예컨대, 요구되는 버퍼의 크기 또는 메모리 할당 크기의 면에서 더 단순한 회로 또는 소프트웨어 루틴을 허용하므로, 실행 비용 또는 오버헤드를 더 제한할 수 있다. 더 바람직하게, 동적으로 결정된 기간은 복수의 직전의 연속하는 데이터 기호 입력들 사이의 시간 간격의 평균을 판정함으로써 계산된다. 이는, 예컨대, 요구되는 버퍼 크기 또는 메모리 할당의 크기의 면에서 더 단순한 회로 또는 소프트웨어 루틴을 허용하므로, 실행 비용 또는 오버헤드를 더 제한할 수 있다. 더 바람직하게, 동적으로 결정된 기간은 3개의 직전의 연속하는 데이터 기호 입력들 사이의 시간 간격의 평균을 판정함으로써 계산된다. 이는, 예컨대, 요구되는 버퍼의 크기 또는 메모리 할당의 크기의 면에서 더 단순한 회로 또는 소프트웨어 루틴을 허용하므로, 실행 비용 또는 오버헤 드를 더 제한할 수 있다.
바람직하게, 시간 간격은 사용자 데이터 입력 속도에 대한 소정의 변동을 허용하기 위해 마진 또는 델타량을 포함한다. 예를 들어, 마진 또는 델타 값은 시간 간격의 백분율, 시간 간격의 지수, 임의의 다른 수단에 의해 결정된 고정된 양 또는 값일 수 있다. 퍼센티지 값이 사용되는 경우, 델타 값은 시간 간격의 변동에 따라 변하여, 시간 간격이 증가할 때 증가하고, 시간 간격이 감소할 때 감소할 것이다. 한편, 고정된 델타 값을 채택하면, 시간 간격이 작은 값인 경우에는 큰 변동을 허용하고, 시간 간격이 클 때는 보다 작은 변동을 허용할 것이다. 이러한 방식으로, 동일한 텍스트에 속하는 것으로 간주되는 2개의 키 사이의 시간 간격은 사용자 타이핑 빈도의 함수로서 맞춤 설정될 수 있다.
따라서, 마진 값은, 예컨대, 고정된 값, 가변적인 값, 평균값의 실수배(real multiple)일 수 있다.
도 2는 제1 실시예를 보여준다. 제1 실시예에 따라, 평균 키 누름 시간을 구하는 것이 계속된다. 주어진 마진에 의한 이러한 평균 기간보다 긴 휴지시간(pause)은 새로운 단어의 시작을 나타내는 것으로서 해석된다. 마지막 휴지시간 이후로 행해진 입력은 수집되고, 자동-완성 후보(possibility)를 식별 및 제안을 위하여 각각의 반복마다 사전과 비교된다.
예를 들어, 각각의 반복에서 마지막 2번의 키 누름 지연 시간의 평균을 구하고, 이 평균은 제한 시간 값(Tlimit)을 결정하기 위해 마진 값 Δ과 더해진다.
예를 들어, Tlimit = ((tn + tn-1) /2) + Δ
이하의 의사코드는 간단한 구현을 제공한다.
AverageDelay = ( (PreviousDelay + PrePreviousDelay) /2)
TimeLimit = delta + AverageDelay
if ( (curTime - ivLastKeyTime) > TimeLimit )
{
Carry out search for auto-complete text
Reset the current selection initializing
it with the new Key.
}
else
If keyvalue <> ""
{
add new key to current selection
Carry out search for auto-complete text
}
PrePreviousDelay = PreviousDelay
PreviousDelay = curTime - ivLastKeyTime
도 2에 도시된 바와 같이, 처리가 시작되는 시간이 기록되는 단계(201)에서 방법이 시작된다. 예를 들어, 단계(203)에서, 시간 값이 현재의 시간으로 업데이트되고, 단계(205)에서, 단계(201)에서 기록된 시작 시간과 단계(203)에서 판정된 현재 시간 간의 차이가 제한 시간 값과 비교된다. 제한 시간이 아직 만료되지 않았다고 판단되는 경우, 즉, 단계(201)에서 기록된 시작 시간과 단계(203)에서 판정된 현재 시간 간의 차이가 미리 결정된 제한 시간 값보다 작은 경우, 방법은 단계(207)에서 키가 눌러졌는지 여부를 판단하기 위해 진행된다. 키가 눌러졌다고 정식으로 판단되는 경우, 단계(209)에서, 키의 값은 단계(201) 이후에 눌러진 키의 기록에 추가된다. 단계(205)에서 판정된 간격 값은 단계(210)에서 기록되고, 이 간격 값은 이전의 데이터 기호 입력들 사이의 간격의 함수로서 제한 시간을 수정하기 위해 단계(211)에서 이용된다. 그 다음, 프로세스는 단계(203)로 되돌아간다. 단계(207)에서, 새로운 키가 입력되지 않은 것으로 판단되면, 방법은 간단히 단계(203)로 되돌아간다. 한편, 단계(205)에서, 미리 결정된 제한 시간이 초과되었다고 판단되면, 즉, 단계(201)에서 기록된 시작 시간과 단계(203)에서 판정된 현재 시간 간의 차이가 미리 결정된 제한 시간 값보다 크다면, 방법은, 단계(201) 이후에 눌러진 키의 기록과 가능한 데이터 입력 모음의 비교가 수행되는 단계(213)로 진행되고, 단계(215)에서, 사용자에게 가능한 완성 값이 제안되는데, 이는 수용될 수도 있고 또는 수용되지 않을 수도 있다. 어떤 경우에든, 제한 시간이 종료되었다는 사실은 데이터 입력 시퀀스의 종료에 도달했다는 것을 나타내는 것으로 이해되어, 단계(217)에서, 단계(201) 이후에 눌려진 키의 기록은 단계(201)로 되돌아가기 전에 삭제된다.
도 3은 제2 실시예를 보여준다. 제2 실시예에 따라, 평균 키 누름 시간을 구 하는 것이 계속된다. 주어진 마진에 의한 이러한 평균 기간보다 긴 휴지시간은 검색 단계로의 귀속으로 해석된다. 마지막 휴지시간 이후에 행해진 입력들은 수집된다. 일단 휴지시간이 제한 시간을 초과한 것으로 검출되면, 수집된 입력들은 자동-완성 후보들을 식별 및 제안을 위하여 사전과 비교된다. 이 접근 방법은 사용자가 보다 큰 텍스트 또는 임의적인 입력 시퀀스의 일부를 입력한 다음, 그것을 완성하기 위해 자동-완성 시스템을 대기하는 상황에 특히 적합하다.
예를 들어, 방법은 데이터 입력 시작시의 시간 스탬프가 기록되는 단계(301)에서 시작된다. 단계(303)에서, 키가 눌러졌는지 여부가 판단되는데, 이 단계는 키 누름 이벤트가 실제로 검출될 때까지 반복된다. 단계(305)에서, 이와 같은 이벤트가 검출될 때 이벤트의 시간 스탬프가 기록되고, 마지막 2개의 시간 스탬프들 사이의 간격은 단계(307)에서 판정된다. 단계(307)에서 계산된 간격이 미리 결정된 간격을 초과하는지 아닌지 여부가 단계(309)에서 판단되고, 미리 결정된 간격이 초과되지 않은 것으로 판단되는 경우, 새로운 데이터 기호가 이제까지 입력된 데이터 기호의 기록에 추가된다.
이 단계(319)에서, 단계(309)에 적용된 제한 시간은 이전의 데이터 기호 입력들 사이의 간격의 함수로서 수정된다. 바람직하게, 상술한 바와 같이, 새로운 제한 시간은 시간 스탬프들 사이의 이전 시간 간격들의 평균에 델타 값을 더한 것이다.
일단, 단계(319)에서 제한 시간 값이 수정되면, 방법은 단계(303)로 되돌아간다. 그러나, 미리 결정된 간격이 초과되는 것으로 판단되는 경우, 방법은, 단 계(301) 이후에 눌러진 키의 기록과 가능한 데이터 입력 모음의 비교가 수행되는 단계(313)로 진행되고, 단계(315)에서 가능한 완성 값들이 사용자에게 제안되는데, 이는 수용될 수도 있고 또는 수용되지 않을 수도 있다. 어떤 경우에든, 제한 시간이 만료되었다는 사실은 데이터 입력 시퀀스의 종료에 도달했다는 것을 나타내는 것으로 이해되어, 단계(301) 이후에 눌러진 키의 기록은 단계(303)로 돌아가기 전에 단계(317)에서 삭제된다.
이하는 텍스트 "oldt"가 시스템에 타이핑되는 제2 실시예의 프로세스가 실행된 예이다. 아래의 표 1에서, "n"열은 프로세스의 반복에 관한 것이고, "t" 와 "s" 열은 대응하는 시간 간격 값 및 기호 값을 제공한다.
n t s
1 30 o
2 31 l
3 32 d
4 50 t
이 실행된 예에서, 고정된 델타(Δ) 값 10이 채택된다.
아래의 표 2는, 도 2에서 각각 "a", "b", 및 "c"로 표시된 노드에서의 값들을 나타내는데, 프로세스의 제1 반복이 이 예시적 값들을 갖는다.
제 1 반복, n = 1
노드 tn tn-l Tlimit 데이터 기호 워드
(데이터입력)
a 40 40
b 30 40 40 "o"
c 30 40 45 "o"
데이터 입력 워드 "o"는 메모리에 저장된다. 어떤 경우에도, 시간 간격 Tlimit은 아래의 식처럼 노드 c에 표시된 바와 같이 수정된다.
Tlimit = (tn + tn-l) /2 + Δ
Tlimit = (30 + 40) /2 + 10 = 45
제 2 반복, n = 2
노드 tn tn-1 Tlimit 데이터 기호 워드
(데이터입력)
a 30 45 "o"
b 31 30 45 "1" "o"
c 31 30 40.5 "1" "o"
제한 시간 Tlimit은 아래의 식처럼 노드 c에 표시된 바와 같이 수정된다.
Tlimit = (tn + tn-l) /2 + Δ
Tlimit = (31 + 30) /2 + 10 = 40.5
제 3 반복, n = 3
노드 tn tn-1 Tlimit 데이터 기호 워드
(데이터입력)
a 31 40.5 "ol"
b 32 31 40.5 "d" "ol"
c 32 31 35 "d" "ol"
제한 시간 Tlimit은 아래의 식처럼 노드 c에 표시된 바와 같이 수정된다.
Tlimit = (tn + tn-l) /2 + Δ
Tlimit = (32 + 31) /2 + 10 = 41.5
제 4 반복, n = 4
노드 tn tn-1 Tlimit 데이터 기호 워드
(데이터입력)
a 32 35 "old"
b 50 32 35 "t" "old"
c 32 32 35 "t" ""
41.5의 제한 시간이 초과되는 경우, 워드 "old"가 사전에서 검색된다.
정정 또는 완성이 요구되지 않았다고 가정한다면, 본 명세서의 경우에서와 같이, 워드 "old"는 수용될 것이고, 데이터 입력 버퍼는 다음 워드를 위해 클리어될 것이다. 보는 바와 같이, 제5 반복의 노드 "a"에서, 데이터 입력 버퍼는 이 반복에서 검출된 바와 같이 문자 "t"로 초기화되었다.
이 실시예에 따라, 이러한 반복이 제한 시간의 계획적인 휴지시간에 기인하여 과도하게 큰 값을 포함하기 때문에, 이러한 반복 동안에는 제한 시간이 수정되지 않는다. 한편, 사용자 속도의 변동 정도에 따라, 또는 새로운 사용자가 상당히 낮은 타이핑 속도, 즉, 델타 값에 의해 허용된 마진보다 큰 마진을 갖는 경우, 이 접근 방법은 성능의 열화(deterioration)의 원인이 될 수 있는데, 이러한 경우, 제한 시간 계산에 모든 지연 값들을 포함하는 것이 바람직할 수 있다. 추가의 접근 방법은, 한 글자의 단어와 같은 짧은 단어의 끝에 기록되는 제한 시간을 포함하는 것인데, 이는 제한 시간이 새로운 사용자에 대해 너무 느리게 설정되는 경우, 모든 입력들이 한 글자의 단어로 등록되어, 입력 지연이 제한 시간 평균에 편입되고, 따라서 제한 시간 값의 급격한 상승을 가져온다는 것을 의미한다.
제 5 반복, n = 5
노드 tn tn-1 Tlimit 데이터 기호 워드
(데이터입력)
a 32 35 "t"
b 50 32 35 "t" "t"
c 32 32 35 "t" "t"
상술한 바와 같이, 지연 값의 평균이 구해지는 키 누름의 횟수는 2보다 클 수 있다. 이러한 전개에 따라, 프로세스는 이러한 목적을 위해 제한 시간을 준수하는데 실패한 제1 키 누름은 무시하도록 설계될 것이다. 따라서, 긴 평균은 단어 사이의 휴지시간을 고려함으로써 평균이 인위적으로 보다 길게 만들어지지 않으면서 몇몇 단어들을 연결하는 것으로 판단될 수 있다.
도 4는 본 발명을 구현하는데 적합한 가능한 하드웨어 구성을 보여준다. 이 구성에 따라, 키보드, 마우스, 터치패드, 음성 인식 시스템 등과 같은 휴먼 인터페이스 입력 장치(404), 및 비디오 디스플레이 유닛 또는 확성기와 같은 휴먼 인터페이스 출력 장치(402)를 갖는 종래의 컴퓨터 시스템이 제공된다. 이러한 2개의 인터페이스는 종래의 아키텍처에 따라 CPU(420), 메모리(430), 및 하드 디스크 드라이브와 같은 벌크 저장 장치(430)를 포함하는 컴퓨팅 유닛(400)과 통신한다. 사용자에 의한 데이터 입력을 수신하는 인터페이스 버퍼(410)가 휴먼 인터페이스 입력 장치(404)에 추가로 제공된다.
상술한 실시예들을 구현하기 위해, 프로세서(420)는 인터페이스 버퍼(410)로부터 입력 기호들을 검색하는 입력 처리 모듈(422)을 실행하고, 타임 스탬프 메모리(431)로서 설계된 상기 메모리의 연관된 영역에 추가되는 대응하는 타임 스탬프 값과 함께, 데이터 입력 버퍼(432)로서 설계된 상기 메모리(530) 영역에 검색한 값을 추가한다. 입력 처리 모듈(422)은 또한 마지막 문자 입력 이후의 간격을 결정하기 위해 타임 스탬프 값들을 비교하는 단계를 수행하고, 간격들과의 비교를 위해, 제한 시간 메모리(432)로서 설계된 상기 메모리(530) 일부로부터 제한 시간 값을 검색한다.
최종적으로, 입력 처리 유닛은 고용량 저장 장치(531)에 저장된 가능한 입력 모음(431)을 문의하는(interrogating) 기능을 수행하고, 휴먼 인터페이스 출력 장치(402)에 의해 사용자에게 가능한 정정 또는 자동 완성 값을 제시한다.
본 발명에 따라 제한 시간 값을 다시 구하고, 입력 처리 모듈(422)에 의한 검색을 위해 제한 시간 메모리에 새로운 값을 저장하기 위해, 프로세서(420)는 시간 스탬프 메모리(431)로부터의 시간 스탬프 값, 및 만약 요구된다면, 델타 값 메모리(431)로서 설계된 메모리(430)의 영역으로부터의 델타 값을 검색하는 기능을 수행하는 제한 시간 처리 모듈(421)을 더 구현한다.
분명하게, 각각의 임무가 구현되는 순서, 및 그 임무들이 수행되는 방식은 구현될 실제 실시예의 함수로서 변할 것이다.
임의의 구성 요소는 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 임의의 조합 또는 이들 모두에 의해 실현될 수 있다. 소프트웨어 컴포넌트가 제공되는 경우, 컴포넌트들은 CD 또는 DVD와 같은 광 디스크, 하드 드라이브 또는 플로피 디스크와 같은 자기 디스크, 플래시 메모리 카드, EPROM, 휘발성 메모리 유닛 등과 같은 메모리 장치, 또는 예컨대, 분배 용도의 광학, 전기, 무선 또는 기타의 전송 채널과 같은 캐리어 상에 임시로 또는 영구적으로 위치될 수 있다.
일 실시예에 따라, 시스템은 미리 정의된 훈련기간 후에 종래의 고정된 기간의 인식 시스템으로 복귀할 수 있거나, 또는 특정 지연 값들, 예컨대, 모든 제2, 제3, 또는 제4 등의 지연 값만을 사용할 수 있다. 이런 접근 방법은, 계속하여 제한 시간을 재계산함으로써 발생하는 긴 기간의 오버헤드를 발생시키지 않고 실제 사용자들에게 적응성의 혜택을 제공한다.
본 발명은 에러 검출 또는 정정 메커니즘에도 똑같이 적용되어, 입력된 텍스트가 에러를 검출하기 위해 리스트와 비교되고, 에러들을 사용자에게 표시하고, 및/또는 정정을 제안 또는 강요한다.
도 5는 본 발명의 제1 애플리케이션을 보여준다. 이 도면에 도시된 바와 같이, 윈도우 기반의 그래픽 유저 인터페이스에서, 명령 라인(command line)이라 명명된 윈도우(500)가 열리는데, 이 윈도우는 "입력 참조" 라벨을 갖는 텍스트 박스(501)를 포함한다. 텍스트는 사용자에 의해 입력되고 텍스트 박스(501)에 나타난다. 상기 본 발명에 따라, 텍스트 입력 동안, 일단 제한 시간이 만료되면, 그때까지 입력된 텍스트, 예컨대, 도시된 텍스트 "old"는, 예컨대 이전 입력들에 기초하여 가능한 입력 리스트에서 검색된다. 드롭다운 박스(505)는 사용자가, 예컨대, 포인터(509)를 이용하여 선택할 수 있는 제안들과 함께 나타난다. 도면에 도시된 바와 같이, 제안 "olden"이 강조 표시되는데, 이는 이러한 아이템이 본 GUI에 적당한 수단에 의해, 예컨대, 마우스 클릭에 의해 현재 선택될 수 있다는 것을 나타낸다.
도 6은 본 발명의 제2 애플리케이션을 보여준다. 이 도면에 도시된 바와 같이, 윈도우 기반의 그래픽 사용자 인터페이스에서, "프로그래밍 프로젝트"로 명명된 윈도우(600)가 열리는데, 이 윈도우는 프로그래밍 코드가 사용자에 의해 타이핑되는 텍스트 필드(601)를 포함한다. 시스템은 본 발명에 따라 사용자 입력들을 모니터링하고, 스트링 "curTime"의 끝에서 제한 시간을 초과하는 휴지시간을 등록한다. 이에따라, 입력된 텍스트의 마지막 부분은, 가능한 입력 리스트에서, 예컨대, 공통 코드 모듈 라이브러리에 기초하여 검색된다. "자동완성"이라 명명된 제2 윈도우(603)는 사용자가 시작한 코드 부분의 나머지 부분(607)을 포함하여, 강조 표시된 매칭된 텍스트(605)와 함께 팝업된다. 윈도우(603)는 사용자가 "수용" 버튼(611) 또는 "거절" 버튼(609)을 클릭하여 그 제안된 텍스트를 수용 또는 거절하도록 한다.
추가 실시예에 따라, 키-누름 이벤트와 같은 데이터 입력 이벤트들 사이의 제한 시간의 만료에 의해 입력 리스트 룩-업 사전이 트리거되는 자동-완성 또는 자동-정정 메커니즘의 구현이 제공되는데, 여기서 제한 시간의 값은 입력 속도의 함수로서 동적으로 결정된다. 제한 시간은, 예컨대, 평균의 입력 속도에 기초하여 계산될 수 있고, 여분의 마진 값을 포함할 수 있다. 따라서, 룩 업 트리거링의 발생은 현재 사용자의 데이터 입력 속도에 최적화되도록 의도될 것이다.
당업자들은, 본 발명이 음성 인식을 포함하여, 키보드, 키 패드에 의한 데이터 입력, 접촉 감지 디스플레이에 의한 데이터 입력, 또는 임의의 다른 인터페이스에 의한 데이터 입력의 모든 방법들로 확장된다는 것을 이해할 것이다. 이러한 수단들에 의해 입력된 데이터 기호들은, 로마자 또는 다른 알파벳, 아라비아 숫자, 로마 숫자 또는 다른 숫자, 수학 기호, 기보법, 또는 자동 완성 프로토콜이 정의될 수 있는 실제로 임의의 자의적인 기호 세트로부터 파생된 임의의 문자 세트에 따른 기호들을 포함하여, 자동 완성에 적합한 임의의 유형일 수 있다. 입력은 글자와 같은 개개의 상형문자(glyph), 또는 보다 큰 표의문자(ideogram)의 일부를 형성하는 픽토그램, 또는 전체 또는 부분적인 단어 또는 문구와 같은 보다 큰 그룹을 다루는 이 밖의 것에 관한 것일 수 있다.
이에 따라, 자동 완성 또는 정정 룩-업(look-up)이 만들어지는데 참조되는 한 세트의 가능한 데이터 입력은, 사전, 자주 사용되는 텍스트 편집물, 과거 입력들의 기록, 및 데이터베이스, 파일 저장 시스템 또는 인터넷 등과 같은 용도를 위해서 특별히 준비된 것이 아닌 실제의 데이터 소스를 포함하여, 입력된 기호들이 비교될 수 있는 임의의 데이터 세트를 포함할 수 있다.

Claims (11)

  1. 데이터 기호들의 시리얼 입력(serial entry)을 가능하게 하는 사용자 인터페이스와 관련하여 데이터 입력을 포뮬레이팅하는 방법으로서,
    각각의 데이터 기호 입력 후에 동적으로 결정된 기간 동안 대기하는 단계로서, 추가의 데이터 기호 입력은 상기 기간의 만료 이전에 수신되는 것인, 상기 대기 단계;
    수신된 기호들과 가능한 데이터 입력 모음을 비교함으로써 상기 데이터 입력을 완성하는 것을 시도하는 단계; 및
    상기 기간의 만료 이전에 추가의 데이터 기호가 수신되지 않는다면, 추가 비교를 위하여 이전에 수신된 모든 기호들을 삭제하는 단계
    를 포함하고,
    상기 동적으로 결정된 기간은 이전의 데이터 기호 입력들 사이의 간격의 함수로서 계산되는 것인, 데이터 입력 포뮬레이팅 방법.
  2. 제1항에 있어서, 상기 동적으로 결정된 기간은 복수의 이전의 데이터 기호 입력들 사이의 시간 간격의 평균을 결정함으로써 계산되는 것인, 데이터 입력 포뮬레이팅 방법.
  3. 제2항에 있어서, 상기 동적으로 결정된 기간은 복수의 연속하는 데이터 기호 입력들 사이의 시간 간격의 평균을 결정함으로써 계산되는 것인, 데이터 입력 포뮬레이팅 방법.
  4. 제3항에 있어서, 상기 동적으로 결정된 기간은 복수의 직전의 연속하는 데이터 기호 입력들 사이의 시간 간격의 평균을 결정함으로써 계산되는 것인, 데이터 입력 포뮬레이팅 방법.
  5. 제4항에 있어서, 상기 동적으로 결정된 기간은 3개의 직전의 연속하는 데이터 기호 입력들 사이의 시간 간격의 평균을 결정함으로써 계산되는 것인, 데이터 입력 포뮬레이팅 방법.
  6. 제2항에 있어서, 상기 동적으로 결정된 기간은 추가로 마진(margin) 값을 포함하는 것인, 데이터 입력 포뮬레이팅 방법.
  7. 제1항에 있어서, 상기 동적으로 결정된 기간의 값을 비휘발성 메모리에 저장하는 단계를 더 포함하는 데이터 입력 포뮬레이팅 방법.
  8. 컴퓨터상에서 실행될 때, 제1항 내지 제7항 중 어느 한 항에 따른 방법의 단계들을 수행하는 명령어를 포함하는 컴퓨터 프로그램이 인코딩된 컴퓨터 판독가능 기록 매체.
  9. 삭제
  10. 데이터 기호들의 시리얼 입력(serial entry)을 가능하게 하는 사용자 인터페이스와 관련하여 데이터 입력을 포뮬레이팅하는 컴퓨터 시스템으로서,
    각각의 데이터 기호 입력 후에 동적으로 결정된 기간 동안 대기하는 수단으로서, 추가의 데이터 기호 입력은 상기 기간의 만료 이전에 수신되는 것인, 상기 대기 수단;
    수신된 기호들과 가능한 데이터 입력 모음을 비교함으로써 상기 데이터 입력을 완성하는 것을 시도하는 수단; 및
    상기 기간의 만료 이전에 추가의 데이터 기호가 수신되지 않는다면, 추가 비교를 위하여 이전에 수신된 모든 기호들을 삭제하는 수단
    을 포함하고,
    상기 동적으로 결정된 기간은 이전의 데이터 기호 입력들 사이의 간격의 함수로서 계산되는 것인, 컴퓨터 시스템.
  11. 제6항에 있어서, 상기 마진 값은 고정된 값인 것인, 데이터 입력 포뮬레이팅 방법.
KR1020087014275A 2005-12-13 2006-06-16 자동완성 방법 및 시스템 KR101027167B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05112043.4 2005-12-13
EP05112043 2005-12-13

Publications (2)

Publication Number Publication Date
KR20080075878A KR20080075878A (ko) 2008-08-19
KR101027167B1 true KR101027167B1 (ko) 2011-04-05

Family

ID=37810101

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087014275A KR101027167B1 (ko) 2005-12-13 2006-06-16 자동완성 방법 및 시스템

Country Status (7)

Country Link
US (1) US10152139B2 (ko)
EP (1) EP1960861A1 (ko)
JP (1) JP5147712B2 (ko)
KR (1) KR101027167B1 (ko)
CN (1) CN101317147B (ko)
CA (1) CA2633880A1 (ko)
WO (1) WO2007068505A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101593145B1 (ko) * 2014-09-25 2016-02-11 주식회사 포워드벤처스 연관 질의어 제공 시스템 및 방법
KR20230010431A (ko) 2021-07-12 2023-01-19 홍소현 동애등에 산란장치
KR20230030170A (ko) 2021-08-25 2023-03-06 홍소현 동애등에 산란유도 구조물

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9177292B2 (en) * 2006-07-19 2015-11-03 International Business Machines Corporation Cautious auto-entry for messaging systems
US8232973B2 (en) 2008-01-09 2012-07-31 Apple Inc. Method, device, and graphical user interface providing word recommendations for text input
US9740986B2 (en) * 2008-09-30 2017-08-22 Excalibur Ip, Llc System and method for deducing user interaction patterns based on limited activities
US8326358B2 (en) 2009-01-30 2012-12-04 Research In Motion Limited System and method for access control in a portable electronic device
US9477763B2 (en) 2009-03-02 2016-10-25 Excalibur IP, LC Personalized search results utilizing previously navigated web sites
CN101930295B (zh) 2009-06-24 2012-11-07 宏达国际电子股份有限公司 动态调整长按延迟时间的方法及其电子装置
KR101122366B1 (ko) * 2010-09-20 2012-03-23 엔에이치엔(주) 검색어 리스트 제공 시스템 및 방법
US20120167009A1 (en) * 2010-12-22 2012-06-28 Apple Inc. Combining timing and geometry information for typing correction
US8490008B2 (en) 2011-11-10 2013-07-16 Research In Motion Limited Touchscreen keyboard predictive display and generation of a set of characters
US9122672B2 (en) 2011-11-10 2015-09-01 Blackberry Limited In-letter word prediction for virtual keyboard
US9310889B2 (en) 2011-11-10 2016-04-12 Blackberry Limited Touchscreen keyboard predictive display and generation of a set of characters
US9715489B2 (en) 2011-11-10 2017-07-25 Blackberry Limited Displaying a prediction candidate after a typing mistake
US9652448B2 (en) 2011-11-10 2017-05-16 Blackberry Limited Methods and systems for removing or replacing on-keyboard prediction candidates
EP2618248B1 (en) 2012-01-19 2017-08-16 BlackBerry Limited Virtual keyboard providing an indication of received input
US9557913B2 (en) 2012-01-19 2017-01-31 Blackberry Limited Virtual keyboard display having a ticker proximate to the virtual keyboard
WO2013123571A1 (en) 2012-02-24 2013-08-29 Research In Motion Limited Virtual keyboard with dynamically reconfigurable layout
DE112012000189B4 (de) 2012-02-24 2023-06-15 Blackberry Limited Berührungsbildschirm-Tastatur zum Vorsehen von Wortvorhersagen in Partitionen der Berührungsbildschirm-Tastatur in naher Assoziation mit Kandidaten-Buchstaben
US9201510B2 (en) 2012-04-16 2015-12-01 Blackberry Limited Method and device having touchscreen keyboard with visual cues
US10025487B2 (en) 2012-04-30 2018-07-17 Blackberry Limited Method and apparatus for text selection
US9292192B2 (en) 2012-04-30 2016-03-22 Blackberry Limited Method and apparatus for text selection
US9354805B2 (en) 2012-04-30 2016-05-31 Blackberry Limited Method and apparatus for text selection
US9207860B2 (en) 2012-05-25 2015-12-08 Blackberry Limited Method and apparatus for detecting a gesture
US9116552B2 (en) 2012-06-27 2015-08-25 Blackberry Limited Touchscreen keyboard providing selection of word predictions in partitions of the touchscreen keyboard
US9524290B2 (en) 2012-08-31 2016-12-20 Blackberry Limited Scoring predictions based on prediction length and typing speed
US9063653B2 (en) 2012-08-31 2015-06-23 Blackberry Limited Ranking predictions based on typing speed and typing confidence
EP2703955B1 (en) * 2012-08-31 2014-11-26 BlackBerry Limited Scoring predictions based on prediction length and typing speed
US9122376B1 (en) * 2013-04-18 2015-09-01 Google Inc. System for improving autocompletion of text input
US20150006632A1 (en) * 2013-06-27 2015-01-01 Google Inc. Determining additional information for an intended action of a user
US9442700B2 (en) * 2013-09-30 2016-09-13 MuleSoft, Inc. API notebook tool
US10042514B2 (en) * 2014-10-30 2018-08-07 Microsoft Technology Licensing, Llc Typeahead features
US10402734B2 (en) 2015-08-26 2019-09-03 Google Llc Temporal based word segmentation
US11334800B2 (en) * 2016-05-12 2022-05-17 International Business Machines Corporation Altering input search terms

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6744422B1 (en) 2001-07-13 2004-06-01 Openwave Systems Inc. Variable time-out for multi-tap key entry
US20040163032A1 (en) 2002-12-17 2004-08-19 Jin Guo Ambiguity resolution for predictive text entry

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5520539A (en) * 1978-07-28 1980-02-14 Casio Comput Co Ltd Automatic arithmetic process system
US4330845A (en) * 1979-12-31 1982-05-18 International Business Machines Corporation Guess-ahead feature for a keyboard-display terminal data input system
US4805222A (en) * 1985-12-23 1989-02-14 International Bioaccess Systems Corporation Method and apparatus for verifying an individual's identity
JPH05119892A (ja) * 1991-10-09 1993-05-18 Nec Corp データ入力方式
US5557686A (en) * 1993-01-13 1996-09-17 University Of Alabama Method and apparatus for verification of a computer user's identification, based on keystroke characteristics
US5761689A (en) * 1994-09-01 1998-06-02 Microsoft Corporation Autocorrecting text typed into a word processing document
JPH08147282A (ja) * 1994-11-16 1996-06-07 Omron Corp 仮名漢字変換装置および仮名漢字変換方法
JPH09325959A (ja) * 1996-06-06 1997-12-16 Nec Home Electron Ltd かな漢字変換方法及びシステム
US5953541A (en) * 1997-01-24 1999-09-14 Tegic Communications, Inc. Disambiguating system for disambiguating ambiguous input sequences by displaying objects associated with the generated input sequences in the order of decreasing frequency of use
KR19990009965A (ko) * 1997-07-14 1999-02-05 정명식 타자 패턴을 이용한 사용자 인증 방법
JPH11212705A (ja) * 1998-01-26 1999-08-06 Toshiba Corp 文字列予測装置及び文字列予測方法
US6426843B1 (en) * 1999-04-27 2002-07-30 International Business Machines Corporation Settle time estimator feedback for rotational position reordering in data storage devices
JP2002007390A (ja) * 2000-06-23 2002-01-11 Toshiba Corp 文字列予測制御方法、および文字列入力装置
US7185271B2 (en) * 2002-08-20 2007-02-27 Hewlett-Packard Development Company, L.P. Methods and systems for implementing auto-complete in a web page
US7206938B2 (en) * 2002-09-24 2007-04-17 Imagic Software, Inc. Key sequence rhythm recognition system and method
JP2004213269A (ja) * 2002-12-27 2004-07-29 Toshiba Corp 文字入力装置
US7509686B2 (en) * 2003-02-03 2009-03-24 Checco John C Method for providing computer-based authentication utilizing biometrics
US20040153963A1 (en) * 2003-02-05 2004-08-05 Simpson Todd G. Information entry mechanism for small keypads
US7213478B2 (en) * 2003-02-18 2007-05-08 Tokyo Electron Limited Method for automatic configuration of processing system
US8768441B2 (en) * 2003-10-20 2014-07-01 Zoll Medical Corporation Time coordination and synchronization of event times in electronic medical records
DE602004018620D1 (de) * 2004-06-02 2009-02-05 Research In Motion Ltd Tragbares elektronisches Gerät mit eliminierung der Vieldeutigkeit bei Texteingabe
US7382359B2 (en) * 2004-06-07 2008-06-03 Research In Motion Limited Smart multi-tap text input
JP5119892B2 (ja) 2007-12-05 2013-01-16 株式会社豊田中央研究所 電子制御システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6744422B1 (en) 2001-07-13 2004-06-01 Openwave Systems Inc. Variable time-out for multi-tap key entry
US20040163032A1 (en) 2002-12-17 2004-08-19 Jin Guo Ambiguity resolution for predictive text entry

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101593145B1 (ko) * 2014-09-25 2016-02-11 주식회사 포워드벤처스 연관 질의어 제공 시스템 및 방법
KR20230010431A (ko) 2021-07-12 2023-01-19 홍소현 동애등에 산란장치
KR20230030170A (ko) 2021-08-25 2023-03-06 홍소현 동애등에 산란유도 구조물

Also Published As

Publication number Publication date
US20120159317A1 (en) 2012-06-21
CN101317147B (zh) 2011-09-07
CA2633880A1 (en) 2007-06-21
WO2007068505A1 (en) 2007-06-21
KR20080075878A (ko) 2008-08-19
EP1960861A1 (en) 2008-08-27
US10152139B2 (en) 2018-12-11
CN101317147A (zh) 2008-12-03
JP5147712B2 (ja) 2013-02-20
JP2009524853A (ja) 2009-07-02

Similar Documents

Publication Publication Date Title
KR101027167B1 (ko) 자동완성 방법 및 시스템
CN101393506B (zh) 用于具有多语言环境的设备的输入方法及相关设备和系统
US10402493B2 (en) System and method for inputting text into electronic devices
US9047268B2 (en) Character and word level language models for out-of-vocabulary text input
US7159191B2 (en) Input of data
US6573844B1 (en) Predictive keyboard
US20090058823A1 (en) Virtual Keyboards in Multi-Language Environment
US20130007606A1 (en) Text deletion
US20080195571A1 (en) Predicting textual candidates
TW200842613A (en) Spell-check for a keyboard system with automatic correction
US20140040733A1 (en) Responding to selection of a displayed character string
EP2206058A2 (en) Systems and methods for character correction in communication devices
US5781891A (en) Medical transcription system with text expansion
US20160371251A1 (en) English input method and input device
JP2009532773A (ja) キーパッドの複数文字キーを使用した英数字データ入力装置および方法
Tantug A probabilistic mobile text entry system for agglutinative languages
US11322142B2 (en) Acoustic sensing-based text input method
US20140215327A1 (en) Text input prediction system and method
WO2007069175A2 (en) Method and apparatus for manipulating data files
CN1878191A (zh) 具有改进的单词校正的手持式电子设备及其相关方法
KR20140088945A (ko) 백스페이스로 삭제된 문자를 복구하는 방법 및 상기 방법을 수행하는 시스템
EP1975807B1 (en) Use of a suffix-removing spell check algorithm for a spell check function, and associated handheld electronic device
EP1975810B1 (en) Use of a suffix-changing spell check algorithm for a spell check function, and associated handheld electronic device
JP2000222432A (ja) 文書検索装置、文書検索方法及び文書検索プログラムを記録した記録媒体
US20070033173A1 (en) Method and apparatus for data search with error tolerance

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
LAPS Lapse due to unpaid annual fee