본 발명에 따른 시스템은 축소형 키보드 내의 병음(Pinyin)과 같은 표음 엔트리들 간에 구획 문자(delimiter)를 입력할 필요를 제거한다. 이 시스템은 구획 문자의 엔트리를 요구하지 않고 입력된 키 시퀀스에 기초하여 모든 가능한 단일 또는 복수의 병음 철자를 탐색한다. 사용자가 관련 병음 단어의 엔트리를 통해 원하는 중국어 구 또는 중국어 문자 그룹을 완성하였다면, 사용자는 원하는 중국어 문자들의 디스플레이 편성을 선택하거나 또는 화면 크기로 인해 화면에 안 나오는 곳에 저장되어 있는 중국어 문자들의 리스트를 스크롤한다.
바람직한 일실시예에서, 사용자에 의해 입력된 모호한 입력 시퀀스의 모호성을 제거하여 중국어로 텍스트 출력을 발생하는 시스템이 개시된다. 상기 시스템은 (1) 복수의 입력 수단을 갖는 사용자 입력 장치로서, 각각의 상기 입력 수단이 복수의 표음 문자와 관련되고, 상기 사용자 입력 장치에 의해 입력 수단이 선택될 때마다 입력 시퀀스가 발생되고, 상기 입력 수단과 관련된 상기 복수의 표음 문자로 인해 모호한 상기 발생된 입력 시퀀스가 텍스트 해석을 갖는 상기 사용자 입력 장치와, (2) 복수의 입력 시퀀스와, 각각의 입력 시퀀스와 관련되며 철자들이 상기 입력 시퀀스와 대응하는 표음 시퀀스 세트를 포함하는 데이터베이스와, (3) 복수의 표음 시퀀스와, 각각의 표음 시퀀스와 관련되며 상기 표음 시퀀스에 대응하는 표의 문자(ideographic character) 시퀀스 세트를 포함하는 데이터베이스와, (4) 상기 입력 시퀀스를 상기 표음 시퀀스 데이터베이스와 비교하여 매칭하는 표음 엔트리를 찾아내는 수단과, (5) 상기 표음 엔트리를 상기 표의 문자 데이터베이스(ideographic database)와 매칭시키는 수단과, (6) 하나 이상의 매칭된 표음 엔트리 및 매칭된 표의 문자를 디스플레이하는 출력 장치를 포함한다.
다른 바람직한 실시예에서, 사용자 입력 장치에 통합된 표의 문자 언어 텍스트 입력 시스템이 개시된다. 이 시스템은 (1) 복수의 입력부로서, 상기 복수의 입력부 각각은 복수의 문자와 관련되고, 상기 사용자 입력 장치를 조작하여 입력 수단이 선택될 때마다 입력 시퀀스가 발생되고, 발생된 입력 시퀀스가 선택된 입력 수단들의 시퀀스에 대응하는 상기 복수의 입력부와, (2) 객체 출력을 발생하는 적어도 하나의 선택 입력부로서, 사용자가 선택 입력을 위해 상기 사용자 입력 장치를 조작할 때 입력 시퀀스가 종결되는 상기 적어도 하나의 선택 입력부와, (3) 복수의 객체를 포함하는 메모리로서, 상기 복수의 객체 각각이 입력 시퀀스와 관련되는 상기 메모리와, (4) 상기 사용자에게 시스템을 표시하는 디스플레이와, (5) 상기 사용자 입력 장치, 메모리 및 디스플레이에 결합된 프로세서를 포함한다. 상기 프로세서는 상기 메모리 내의 상기 복수의 객체로부터 각각의 발생된 입력 시퀀스와 관련된 임의의 객체를 식별하기 위한 식별 수단과, 각각의 발생된 입력 시퀀스와 관련된 임의의 식별된 객체의 문자 해석을 상기 디스플레이 상에 표시하기 위한 출력 수단과, 선택 입력을 위한 상기 사용자 입력 장치의 조작 검출 시에 텍스트 엔트리 디스플레이 위치에 엔트리에 대한 원하는 문자를 선택하기 위한 선택 수단을 더 포함한다.
본 발명의 다른 바람직한 실시예에서는, 모호성 제거 시스템은 사용자에 의해 입력된 모호한 입력 시퀀스의 모호성을 제거하여 중국어로 텍스트 출력을 발생하는 시스템이 개시된다. 이 모호성 제거 시스템은 복수의 입력 수단, 메모리, 디스플레이 및 프로세서를 갖는 사용자 입력 장치를 포함한다. 사용자 입력 장치의 각각의 입력 수단은 복수의 라틴 알파벳과 관련된다. 입력 시퀀스는 입력 수단이 사용자 입력 장치에 의해 선택될 때마다 발생되고, 상기 입력 수단과 관련된 복수의 라틴 알파벳으로 인해 모호한 발생된 입력 시퀀스는 텍스트 해석을 갖는다. 메모리는 언어 모델(FUBLM)에 기초한 사용 빈도 및 입력 시퀀스와 관련되는, 병음과 같은 복수의 표음 철자를 구성하는데 사용된다. FUBLM은 통상적으로 문법적 모델 또는 심지어 의미론적 모델에 기초한 예측 및 실제 구의 사용 빈도를 포함한다. 복수의 병음 철자 각각은 사용자에게 출력되는 표음 판독에 대응하며 어떠한 데이터 구조 로 메모리에 저장된 데이터로부터 구성되는 병음 음절의 시퀀스를 포함한다. 바람직한 실시예에서, 데이터는 복수의 노드와 선택적으로는 트리 구조에서 찾아낸 하나 이상의 구를 조합하는 문법적 모델 또는 의미론적 언어 모델로 이루어지는 트리 구조 내에 저장된다. 각각의 노드는 입력 시퀀스와 관련된다. 디스플레이는 사용자에게 시스템 출력을 나타낸다. 프로세서는 사용자 입력 장치, 메모리 및 디스플레이에 결합된다. 프로세서는 각각의 입력 시퀀스와 관련된 메모리 내의 데이터로부터 병음 철자를 구성하고 최고 FUBLM로 적어도 하나의 후보 병음 철자를 식별한다. 그 다음에 프로세서는 디스플레이로 하여금 발생된 시퀀스의 텍스트 해석으로서 각각의 발생된 입력 시퀀스와 관련된 상기 식별된 후보 병음 철자를 디스플레이하게 하는 출력 신호를 발생한다.
메모리 내의 트리 구조 내의 병음 철자 객체는 하나 이상의 중국어 구와 관련되며, 이것은 관련된 병음 철자 객체의 텍스트 해석이다. 각각의 중국어 구 객체는 FUBLM과 관련된다.
상기 프로세서는 또한 선택된 병음 철자에 대해 적어도 하나의 식별된 후보 중국어 구를 구성하며, 출력 신호를 발생하여 디스플레이가 발생된 시퀀스의 텍스트 해석으로서 각각의 발생된 입력 시퀀스와 관련된 선택된 병음 철자와 관련된 상기 식별된 후보 중국어 구를 디스플레이하게 한다.
본 발명의 다른 바람직한 실시예에서는, 사용자 입력 장치로 사용자에 의해 입력된 모호한 입력 시퀀스의 모호성을 제거하여 중국어로 텍스트 출력을 발생하는 방법이 개시된다. 사용자 입력 장치는 (1) 복수의 입력 수단으로서, 각각의 상기 입력 수단은 복수의 표음 문자(phonetic character)와 관련되고, 상기 사용자 입력 장치에 의해 입력 수단이 선택될 때마다 입력 시퀀스가 발생되고, 상기 입력 수단과 관련된 상기 복수의 표음 문자로 인해 모호한 상기 발생된 입력 시퀀스가 텍스트 해석을 갖는 상기 복수의 입력 수단과, (2) 복수의 입력 시퀀스와, 각각의 입력 시퀀스와 관련되며 철자가 상기 입력 시퀀스와 대응하는 표음 시퀀스 세트로 이루어진 데이터와, (3) 복수의 표음 시퀀스와, 각각의 표음 시퀀스와 관련되며 상기 표음 시퀀스에 대응하는 표의 문자(ideographic character) 시퀀스 세트를 포함하는 데이터베이스를 포함한다.
상기 방법은 입력 시퀀스를 사용자 입력 장치에 입력하는 단계와, 상기 입력 시퀀스를 상기 표음 시퀀스 데이터베이스와 비교하여 매칭하는 표음 엔트리를 찾아내는 단계와, 하나 이상의 매칭하는 표음 엔트리를 선택적으로 디스플레이하는 단계와, 표음 엔트리를 표의 문자 데이터베이스와 매칭시키는 단계와, 하나 이상의 매칭된 표의 문자를 선택적으로 디스플레이 하는 단계를 포함한다.
본 발명의 또 다른 바람직한 실시예에서는 복수의 입력 수단을 포함하는 축소형 키보드를 사용하여 사용자에 의해 발생된 입력 시퀀스의 모호성 제거 방법이 개시된다. 축소형 키보드는 입력 수단에 대응하는 트리 노드를 포함하는 어휘 모듈 트리 를 포함하는 메모리와 결합된다. 트리 노드는 적어도 유효한 병음 철자에 대응하는 입력 시퀀스에 의해 링크된다. 모호성 제거 방법은 트리 어휘 데이터베이스로부터 하나 이상의 노드 객체를 유지하기 위해 노드 경로를 소거하는 단계와, 루트 노드에서 어휘 노드 트리의 진행을 초기화하는 단계와, 입력 시퀀스에 대응하는 노드 객체로 이루어지는 노드 경로를 구축하는 단계와, 노드 경로를 이용하여 입력 시퀀스에 대응하는 유효 철자 리스트를 구성하는 단계와, 현재 선택된 철자에 대응하는 중국어 구의 리스트를 구성하는 단계를 포함한다.
본 발명은 많은 이점을 갖는다. 첫째, 상기 방법은 오피셜 병음 체계(official Pinyin system)와 같은 표음 체계에 기초하고 있기 때문에, 원어민이 이해하기 쉽고 사용을 배우기 쉽다. 사용자는 사용자의 선호에 따라서 전술한 바와 같은 공통 혼동 세트에 따른 변형을 질의할 수도 있다. 둘째, 상기 시스템은 텍스트 입력에 필요한 키스트로크의 수를 최소화하는 경향이 있다. 셋째, 상기 시스템은 입력 프로세스 동안에 요구되는 주의량(the amount of attention) 및 판정을 감소시키고 적절한 피드백을 제공함으로써 사용자에게 인식 부담을 감소시킨다. 넷째, 본원 명세서에 개시된 방법은 실제 시스템을 구현하는데 필요한 메모리 및 처리 자원의 양을 최소화하는 경향이 있다.
축소형 키보드에서 표음 기반 또는 스트로크 기반의 입력 방법을 이용하여 중국어 문자를 입력하는 시스템 및 방법이 개시되어 있다. 표의 문자에 공통 인덱스를 도입함으로써, 상기 시스템은 표의 문자가 표음 기반의 입력 방법 및 스트로크 기반의 입력 방법과 같은 상이한 유형의 입력 방법들 간에 공유되도록 허용한다. 이 시스템은 입력 시퀀스를 표음 또는 스트로크 인덱스와 같은 입력 방법 특정 인덱스에 매칭시킨다. 이들 입력 방법 특정 인덱스는 그 다음에 표의 문자에 대한 인덱스로 변환되며, 이것은 표의 문자를 검색하는데 사용된다.
바람직한 일실시예에서, 사용자 입력 장치로 표의 문자를 입력하기 위한 방법이 개시된다. 사용자 입력 장치는 (1) 복수의 입력 수단으로서, 각각의 상기 입력 수단이 복수의 스트로크 또는 표음 문자(phonetic character)와 관련되며, 상기 사용자 입력 장치에 의해 입력 수단이 선택될 때마다 입력 시퀀스가 발생되는 상기 복수의 입력 수단과, (2) 복수의 입력 시퀀스와, 각각의 입력 시퀀스와 관련된, 복수의 입력 시퀀스를 포함하는 입력 방법 특정 데이터베이스와, 각각의 입력 시퀀스와 관련된, 철자가 상기 입력 시퀀스에 대응하는 스트로크 시퀀스 세트 또는 상기 입력 시퀀스와 대응하는 표음 시퀀스 세트로 이루어지는 데이터와, (3) 표의 문자 시퀀스 세트를 포함하는 표의 문자 데이터베이스로서, 각각의 표의 문자는 표의 문자 인덱스와, 대응하는 스트로크 시퀀스에 대한 복수의 스트로크 인덱스와, 대응하는 표음 시퀀스에 대한 복수의 표음 인덱스를 포함하는 상기 표의 문자 시퀀스 세트를 포함한다.
상기 방법은 입력 시퀀스를 사용자 입력 장치에 입력하는 단계와, 상기 입력 시퀀스를 상기 입력 방법 특정 데이터베이스와 비교하여 매칭하는 스트로크 엔트리 또는 표음 엔트리에 대한 인덱스 및 상기 매칭하는 스트로크 엔트리 또는 표음 엔트리를 찾아내는 단계와, 스트로크 엔트리 또는 표음 엔트리에 대한 상기 매칭하는 인덱스를 매칭하는 표의 문자 인덱스로 변환하는 단계와, 상기 매칭하는 표의 문자 인덱스에 의해 상기 표의 문자 데이터베이스로부터 매칭하는 표의 문자 시퀀스를 검색하는 단계와, 하나 이상의 상기 매칭된 표의 문자 시퀀스를 선택적으로 디스플레이 하는 단계를 포함한다.
다른 바람직한 실시예에서, 사용자에 의해 입력된 입력 시퀀스를 수신하여 중국어로 텍스트 출력을 발생시키는 시스템이 개시된다. 이 시스템은 (1) 복수의 입력 수단을 갖는 사용자 입력 장치로서, 각각의 상기 입력 수단은 복수의 스트로크 또는 표음 문자와 관련되고, 상기 사용자 입력 장치에 의해 입력 수단이 선택될 때마다 입력 시퀀스가 발생되는 상기 사용자 입력 장치와, (2) 복수의 입력 시퀀스와, 각각의 입력 시퀀스와 관련된, 철자들이 상기 입력 시퀀스에 대응하는 스트로크 시퀀스 세트 또는 상기 입력 시퀀스에 대응하는 표음 시퀀스 세트를 포함하는 입력 방법 특정 데이터베이스와, (3) 표의 문자 시퀀스 세트를 포함하는 표의 문자 데이터베이스로서, 각각의 표의 문자는 표의 문자 인덱스, 대응하는 스트로크 시퀀스에 대한 복수의 스트로크 인덱스 및 대응하는 표음 시퀀스에 대한 복수의 표음 인덱스를 포함하는 상기 표의 문자 데이터베이스와, (4) 상기 입력 시퀀스를 상기 입력 방법 특정 데이터베이스와 비교하여 매칭하는 스트로크 엔트리 또는 표음 엔트리에 대한 인덱스 및 상기 매칭하는 스트로크 엔트리 또는 표음 엔트리를 찾아내는 수단과, (5) 상기 스트로크 엔트리 또는 표음 엔트리에 대한 상기 매칭하는 인덱스를 매칭하는 표의 문자 인덱스로 변환시키는 수단과, (6) 상기 매칭하는 표의 문자 인덱스에 의해 상기 표의 문자 데이터베이스로부터 매칭하는 표의 문자 시퀀스를 검색하는 수단과, (7) 하나 이상의 매칭된 스트로크 또는 표음 엔트리 및 매칭된 표의 문자들을 디스플레이하는 출력 장치를 포함한다.
도 2에는 본 발명에 따라 형성된 축소형 키보드 모호성 제거 시스템이 디스플레이(53)를 갖는 휴대용 셀룰러 전화기(52)에 통합된 것으로 도시되어 있다. 휴대용 셀룰러 전화기(52)는 표준 전화기 키 상에 구현된 축소형 키보드(54)를 포함한다. 이 애플리케이션의 목적을 위해, 용어 "키보드"는 키를 위해 정의된 영역과 분리된 기계적인 키와, 멤브레인 키(membrane key) 등을 갖는 터치 스크린을 포함하는 임의의 입력 디바이스를 포함하도록 광범위하게 정의된다. 키보드(54) 내의 각각의 키 상의 라틴 알파벳의 배열은 미국 전화기용의 디팩토 표준(de facto standard)이 된 것과 대응한다. 따라서 키보드(54)는 표준 QWERTY 키보드에 비해 감소된 수의 데이터 입력 키를 가지며, 여기서 하나의 키는 각각의 라틴어 알파벳을 위해 할당된다. 보다 구체적으로는, 이 실시예에 도시된 바람직한 키보드는 3×4 어레이 내에 배열된 '1' 내지 '0'의 번호가 붙은 10 개의 데이터 키와, 좌향 화살표(61)와 우향 화살표(62), 상향 화살표(63)와 하향 화살표(64)로 이루어진 네 개의 네비게이션 키를 포함한다.
사용자는 축소형 키보드(54) 상의 키스트로크를 통해 데이터를 입력한다. 제 1의 바람직한 실시예에서, 사용자가 키보드를 이용하여 키스트로크 시퀀스를 입력하면, 전화기의 디스플레이(53) 상에 텍스트가 표시된다. 사용자에게 정보를 디스플레이하기 위해 디스플레이(53) 상에는 세 영역이 규정되어 있다. 텍스트 영역(71)은 사용자에 의해 입력된 텍스트를 디스플레이하며, 텍스트 입력 및 편집을 위한 버퍼 역할을 한다. 텍스트 영역(71) 아래에 통상 위치해 있는 예컨대 병음과 같은 표음 철자 선택 리스트(72)는 사용자에 의해 입력된 키스트로크 시퀀스에 대응하는 병음 해석 리스트를 나타낸다. 통상적으로 철자 선택 리스트(72) 아래에 위치하는, 중국어 구와 같은 구 선택 리스트 영역(73)은 사용자에 의해 입력된 순서에 대응하는, 선택된 병음 철자에 대응하는 단어 리스트를 나타낸다. 병음 선택 리스트 영역(72)은 입력된 키스트로크 내의 모호성을 해결하는데 있어서, 입력 키스트로크 순서의 가장 빈번하게 발생하는 병음 해석과 기타 덜 빈번하게 발생하는 FUBLM의 내림차순으로 디스플레이된 다른 병음 해석을 모두 동시에 보여줌으로써 사용자를 돕는다. 중국어 구 선택 리스트 영역(73)은 선택된 병음 철자를 해결하는데 있어서, 선택된 철자의 가장 빈번하게 발생하는 구의 텍스트와 기타 덜 빈번하게 발생하는 언어 모델(FUBLM)에 따라서 사용자의 빈도의 내림차순으로 디스플레이된 구의 텍스트를 모두 동시에 보여줌으로써 사용자를 돕는다. 본원 명세서에서 병음은 표음 입력을 포함하는 것으로 나타나지만, 이 표음 입력은 라틴 알파벳, Zhuyin로 알려진 보포모포(Bopomofo) 알파벳, 숫자 및 구두점을 포함할 수도 있음에 유의하라.
사용자에게 가능한 구를 제공하기 위해, 시스템은 알파벳 순으로 또는 어근들 내의 총 키스트로크 수, 표의 문자의 어근 또는 이 둘의 조합에 따라서 정렬된 데이터베이스 내에서 정확히 발견된 단어들로 제한될 수 있는 언어 모델(linguistic model)에 의존한다. 형식적인 또는 대화식으로 기록되거나 또는 대화식으로 말해지는 텍스트에서와 같이 일반적인 용법의 어떠한 고정된 빈도에 따라서 언어 객체를 정렬하도록 상기 모델은 확장될 수 있다. 또한, 언어 모델은 N-gram 데이터를 사용하여 특정 문자들을 정렬하도록 확장될 수 있다. 언어 모델은 심지어 문법 객체들 간의 변화 빈도 및 문법 정보를 이용하여 데이터베이스 내에 포함된 구들 외의 구들을 발생하도록 확장될 수도 있다. 따라서, 언어 모델은 고정된 사용 빈도 및 고정된 수의 구들만큼 단순하거나, 적응적 사용 빈도, 적응적 단어 또는 심지어 데이터베이스에 포함된 구들 이외의 구를 발생할 수 있는 문법적/의미론적(grammatical/semantic) 모델을 포함할 수도 있다.
축소된 키보드 모호성 제거 시스템의 하드웨어의 블록도가 도 4에 제공된다. 키보드(54) 및 디스플레이(53)는 적절한 인터페이싱 회로를 통해 프로세서(100)에 결합된다. 선택적으로, 스피커(102)는 또한 프로세서(100)에 결합된다. 프로세서(100)는 키보드(54)로부터 입력을 수신하고, 디스플레이(53) 및 스피커(102)로의 모든 출력을 관리한다. 프로세서(100)는 메모리(104)에 결합된다. 메모리(104)는 RAM(random access memory)과 같은 일시적 기억 매체 및 ROM, 플로피 디스크, 하드디스크 또는 CD-ROM과 같은 영구 기억 매체의 조합을 포함한다. 메모리(104)는 시스템 동작을 관리하는 모든 소프트웨어 루틴을 포함한다. 바람직하게는, 메모리(104)는 운영체제(106), 모호성 제거 소프트웨어(108), 및 이하에 추가적으로 상세하게 논의될 관련 어휘 모듈(110)을 포함한다. 선택적으로는, 메모리(104)는 하나 이상의 애플리케이션 프로그램(112, 114)을 포함할 수도 있다. 애플리케이션 프로그램의 예로는 워드 프로세서, 소프트웨어 사전 및 외국어 번역기가 있다. 축소형 키보드 모호성 제거 시스템이 통신 보조 기능을 하도록 허용하는 애플리케이션 프로그램으로서 음성 합성 소프트웨어가 제공될 수도 있다.
도 2를 참조하면, 축소형 키보드 모호성 제거 시스템은 사용자로 하여금 한 손만 사용하여 텍스트 또는 기타 데이터를 신속하게 입력하도록 허용한다. 사용자는 축소형 키보드(54)를 사용하여 데이터를 입력한다. 각각의 데이터 키(2-9)는 라틴어 알파벳, 번호 및 기타 심벌에 의해 키의 상부에 나타나는 복수의 의미를 갖는다. 개개의 키는 복수의 의미를 갖기 때문에, 키스트로크 순서는 그 의미에 대해 여러 가지로 해석된다. 따라서 사용자가 데이터를 입력하는 경우, 다양한 키스트로크 해석이 디스플레이(53) 상의 복수의 영역에 디스플레이되어 사용자가 어떠한 모호성을 해결하는 것을 돕는다. 큰 화면의 장치 상에서, 입력된 키스트로크의 가능한 해석들의 병음 선택 리스트 및 선택된 병음 철자의 중국어 구 선택 리스트가 선택 리스트 영역 내에서 사용자에게 디스플레이된다. 병음 선택 리스트 내의 첫 번째 엔트리는 디폴트 해석으로서 선택되며 선택 리스트 내의 다른 병음 엔트리들로부터 자신을 어떻게든 구분하기 위해 강조된다. 바람직한 실시예에서, 선택 병음 엔트리는 어두운 배경을 갖는 화이트 폰트와 같이 반전 컬러 이미지로 디스플레이된다.
입력된 키스트로크의 가능한 해석의 병음 선택 리스트는 다수의 방법으로 정렬될 수도 있다. 정상 동작 모드에서, 키스트로크는 처음에 원하는 중국어 구에 대응하는 완전한 병음 음절로 이루어진 병음 철자로서 해석된다(이하에서는 완전한 병음 해석이라 함). 키가 입력될 때, 입력 키 시퀀스에 대응하는 유효 병음 철자를 알아내기 위해 어휘 모듈 룩업이 동시에 행해진다. 병음 철자는 FUBLM에 대응하는 어휘 모듈로부터 리턴되며, 가장 일반적으로 사용된 병음 철자가 첫째로 리스트되어 디폴트로 선택된다. 선택된 병음 철자와 매칭하는 중국어 구가 또한 FUBLM에 따라서 어휘 모듈로부터 리턴된다. 보통은 사용자가 중국어 선택 리스트에서 입력하고자 하는 중국어 구를 찾아내어 그 중국어 구를 선택하고 텍스트 입력 영역(71)에서 그 중국어 구를 입력할 수 있다. 만약 디폴트로 선택된 병음 철자가 사용자가 입력하고자 하는 것이지만, 입력하고자 하는 중국어 구가 디스플레이되지 않으면, 사용자는 상향 화살표(63) 및 하향 화살표(64) 키를 사용하여 어휘 데이터베이스로부터 다른 매칭하는 확장된 중국어 구 세트를 디스플레이한다. 몇몇 경우에, 병음 선택 리스트 영역(72)은 모든 매칭된 병음 철자를 유지할 수 없으며, 따라서 사전에 오프 스크린(off-screen) 병음 철자를 병음 선택 리스트 영역(72)으로 스크롤하기 위해 좌향 화살표(61) 및 우향 화살표(62)가 사용된다. 예를 들면, 디폴트로 선택된 병음 철자가 사용자가 입력하기를 원하는 것이 아니라면, 사용자는 좌향 화살표(61) 및 우향 화살표(62) 키를 사용하여 다른 매칭된 병음 철자를 선택할 수 있다.
대부분의 텍스트 엔트리에서, 키스트로크 시퀀스는 사용자에 의해 완전한 병음 음절을 철자하도록 의도된다. 그러나, 각각의 키와 관련된 복수의 문자들은 개별 키스트로크 및 키스트로크 순서가 다수의 해석을 갖는 것을 허용하는 것으로 인식된다. 바람직한 축소형 키보드 모호성 제거 시스템에서, 다양한 상이한 해석이 자동으로 결정되어 사용자에게 병음 철자 리스트 및 선택된 병음 철자에 대응하는 중국어 구로서 디스플레이된다.
예를 들어, 키스트로크 순서는 사용자가 입력할 수도 있는 가능한 중국어에 대응하는 부분 병음 철자로서 해석된다(이하에서는 부분 병음 해석이라 함). 완전한 병음 해석과는 달리, 부분 병음 철자는 마지막 병음 음절이 불완전한 것을 허용한다. 마지막 문자의 병음 음절이 부분적으로 완성된 음절로 시작한다하더라도, 마지막 문자 전의 문자들에 대한 병음이 마지막 부분 병음 음절 전의 모든 음절과 매칭되면, 중국어 구는, 어휘 데이터베이스로부터 리턴된다. 마지막 병음 음절의 완성으로 원래의 부분적인 구의 병음을 확장한 병음 철자와 매칭하는 중국어 구들을 리턴함으로써, 부분 병음 해석은 사용자로 하여금 올바른 키스트로크가 입력되었음을 쉽게 확인할 수 있도록 하거나 또는 사용자의 주의(attention)가 구의 중간에 벗어났을 때 타이핑을 다시 시작하도록 할 수 있다. 따라서, 부분 병음 해석은 병음 철자 리스트 내의 엔트리들로서 제공된다. 바람직하게는, 부분 병음 해석은 마지막 병음 음절의 가능한 완성으로 부분 병음 입력을 확장한 병음 철자와 매칭될 수 있는 모든 가능한 중국어 구 세트의 복합 FUBLM에 따라서 분류된다. 부분 병음 해석은 정확한 키 스트로크가 입력되었다는 것을 확인함으로써 사용자에게 피드백을 제공하여 원하는 단어의 엔트리를 이끌어낸다.
표시된 가능한 매칭의 수를 감소시키기 위해, 사용자는 또한 완성된 병음 음절 뒤에 구획 문자를 입력할 수도 있다. 바람직한 실시예에서, '0' 키가 음절 구획 문자로서 사용된다. 음절 구획 문자가 입력되면, 음절 끝부분이 음절 구획 문자의 위치와 매칭하는 병음 철자만이 리턴되어 병음 선택 리스트 영역(72)에 디스플레이된다.
다른 바람직한 실시예에서, 사용자는 각각의 완성된 병음 음절 뒤에 음조를 입력할 수도 있다. 각각의 완성된 병음 음절 뒤에, 사용자는 음절의 음조에 대응하는 번호가 뒤따르는 음조 키를 누른다. 이 실시예에서는, '1' 키가 음조 키로서 사용된다. 음조가 입력되면, 음조와 매칭하는 중국어 구 변환을 갖는 병음 철자들만이 리턴되어 병음 선택 리스트 영역(72)에 디스플레이된다. 디스플레이된 병음 철자는 또한 입력된 음조를 포함한다. 도 3에 도시된 바와 같이, 병음 철자 "Bei3Jing1"가 병음 철자 리스트 영역(72)에 나타난다. 음조를 갖는 병음 철자가 선택되면, 병음 철자 및 대응하는 음조 모두와 매칭하는 중국어 구들만이 리턴되어 디스플레이된다. 완전한 병음 음절 또는 부분 병음 철자 다음에 필터링이 음조에 적용될 수도 있다.
마지막 음절이 완성될 때까지 부분 병음 완성이 예견된다. 가장 긴 음절이 "Chuang" 또는 "Shuang" 또는 "Zhuang"이기 때문에, 경로의 제 2 부분 내에 최대 다섯 개의 노드가 있다. 이 세 경우에서만, 프로세스는 다섯 개의 더 많은 노드를 예견한다.
예를 들면, 키 입력이 "2345"이면, 유효 철자 중 하나는 "BeiJ"이다. 첫 번째 완전한 음절은 "Bei"이다. 두 번째는 완전한 음절이 아닌 "J"이다. 따라서, 이 경우에 대한 경로의 제 1 부분은 철자 "BeiJ"를 구성하는 것이다. 프로세스는 어휘 모듈 트리에서 예견하여 마지막 음절을 완성할 것이다. 그러면, 부분적인 철자가 "BeiJ"와 매칭하는 단어(BeiJing)를 찾아낸다. 경로의 제 2 부분은 "ing"를 구성하는데 사용된다. 만약 단어 "BeiJingShi"가 어휘 모듈 트리에 있다면, 그것은 두 개의 더 많은 음절의 예견을 요구하기 때문에 프로세스는 키 입력 "2345"에 대해 이 단어를 찾아내지 않을 것이다.
임의의 음조가 입력되면, 두 번째 명령어가 실행될 때 문자의 음조들이 그들의 유 니코드와 함께 검색되기 때문에 프로세스는 문자들을 필터링할 수 있다. 문자가 하나 이상의 발음을 가지면, 가장 일반적인 발음이 우선 검색된다.
각각의 철자에 대한 변환(문자 및 단어)이 FUBLM에 의해 우선순위화된다. 철자-문자/단어 변환 동안에 가장 빈번하게 사용된 문자 또는 단어가 우선 검색된다. 정확히 매칭된 철자로부터 변환된 단어들은 부분 매칭된 철자로부터 변환된 단어 앞에 위치한다. 상이한 부분 매칭된 철자로부터 변환된 단어는 키 순서(즉, 키 2,3,4,5...) 및 그 키 상의 문자(키 인덱스 상의 문자)의 빈도 순서로 분류된다. 예를 들면, 활성 철자가 "Sha"라고 가정하면, 이전 문자가 'a'인 경우 'n'이 'o'에 앞서므로, "Sha"로부터 변환된 문자가 우선 리턴되고, "Shai", "Shan", "Shang" 및 "Shao"로부터 변환된 이들이 후속한다.
전술한 바람직한 실시예는 병음 체계 외에 보포모포(Bopomofo) 알파벳을 사용하는 Zhuyin 체계와 같은 다른 어떠한 병음 체계에도 적용 가능하다.
도 11은 본 발명의 바람직한 실시예에 따른, 사용자에 의해 입력된 모호한 입력 시퀀스를 모호하지 않게 하고 중국어로 텍스트 출력을 발생하는 시스템을 도시한 블록도이다. 이 시스템은 다음 사항을 포함한다.
· 각각의 입력 수단이 복수의 표음 문자와 관련되고, 입력 수단이 사용자 입력 장치에 의해 선택될 때마다 입력 시퀀스가 발생하며, 입력 수단과 관련된 복수의 표음 문자로 인해 모호한 발생된 입력 시퀀스가 텍스트 해석을 갖는, 복수의 입력 수단을 갖는 사용자 입력 장치(1110)
· 복수의 입력 시퀀스와, 각각의 입력 시퀀스와 관련된, 철자들이 그 입력 시퀀스 와 대응하는 표음 시퀀스 세트를 포함하는 데이터베이스(1120)
· 복수의 표음 시퀀스와, 각각의 표음 시퀀스와 관련된, 표음 시퀀스에 대응하는 표의 문자 시퀀스 세트를 포함하는 데이터베이스(1130)
· 입력 시퀀스를 표음 시퀀스 데이터베이스와 비교하여 매칭 표음 엔트리를 찾아내는 수단(1140)
· 표음 엔트리를 표의 문자 데이터베이스와 매칭시키는 수단(1150)
· 하나 이상의 매칭된 표음 엔트리와 매칭된 표의 문자를 디스플레이하는 출력 장치(1160)
텍스트 출력을 발생하기 위해, 사용자는 입력 장치(1110)의 입력 수단을 이용하여 입력 시퀀스를 먼저 발생한다. 시스템은 비교 및 매칭 수단(1140)을 사용하여 데이터베이스(1120)로부터 하나 이상의 표음 시퀀스를 찾아낸다. 최고의 FUBLM 값을 갖는 표음 시퀀스와 같은 매칭된 표음 시퀀스들 중 하나는 디폴트로 선택되거나 또는 사용자가 매칭 리스트로부터 다른 하나를 선택할 수도 있다. 그 다음에 시스템은 매칭 수단(1150)을 사용하여 선택된 표음 시퀀스와 매칭하는 표의 문자를 찾아낸다. 매칭된 표음 시퀀스와 표의 문자가 모두 출력 장치(1160)에 디스플레이될 수도 있다. 최고의 FUBLM 값을 갖는 표의 문자와 같은 매칭된 표의 문자들 중 하나는 디폴트로 선택된다. 사용자는 디폴트를 수락하거나 다른 매칭된 표의 문자 시퀀스 또는 표음 시퀀스를 선택한다.
도 12는 본 발명의 바람직한 실시예에 따른 사용자 입력 장치에 통합된 표의 문자 언어 텍스트 입력 시스템을 도시한 블록도이다. 이 시스템은 다음 요소를 포함한다.
· 복수의 입력부가 각각 복수의 문자와 관련되고, 사용자 입력 장치(1205)를 조작함으로써 입력부가 선택될 때마다 입력 시퀀스가 발생되는 복수의 입력부(1210)로서, 여기서 발생된 입력 시퀀스는 선택된 입력 시퀀스에 대응한다.
· 객체 출력을 발생하는 적어도 하나의 선택 입력부(1220)로서, 여기서 사용자가 선택 입력을 위해 사용자 입력 장치를 조작할 때 입력 시퀀스가 종료된다.
· 복수의 객체를 포함하는 메모리(1230)로서, 여기서 복수의 객체는 각각 입력 시퀀스와 관련된다.
· 사용자에게 시스템 출력을 표시하는 디스플레이(1240)
· 사용자 입력 장치(1205), 메모리(1230) 및 디스플레이(1240)에 결합된 프로세서(1250)
프로세서(1250)는 메모리 내의 복수의 객체로부터 각각의 발생된 입력 시퀀스와 관련된 임의의 객체를 식별하기 위한 식별 수단(1252)과, 각각의 발생된 입력 시퀀스와 관련된 식별된 객체의 문자 해석을 디스플레이 상에 표시하는 출력 수단(1254)과, 선택 입력을 위한 사용자 입력 장치의 조작 검출 시에 텍스트 엔트리 디스플레이 위치에 엔트리에 대한 원하는 문자를 선택하는 선택 수단(1256)을 더 포함한다.
사용자가 사용자 입력 장치(1205)를 조작하고 입력부(1210)를 선택하면, 입력 시퀀스가 발생된다. 프로세서(1250)는 식별 수단(1252)을 사용하여 메모리(1230)로부터 하나 이상의 언어 객체를 발생된 입력 시퀀스와 매칭시킨다. 매칭된 객체의 문자 해석은 출력 수단(1254)을 사용하여 프로세서(1250)에 의해 디스플레이(1240)로 출력된다. 그 다음에 사용자는 선택 입력부(1220)로 문자 해석을 선택하고 프로세서(1250)는 선택 수단(1256)을 호출하여 텍스트 입력 디스플레이 위치에 선택된 문자를 출력한다.
모호성 제거 표음 입력 방법(Disambiguating Phonetic Input Method)
입력 시퀀스의 모호성 제거에 사용되는 단어 및 구의 데이터베이스는 하나 이상의 트리 데이터 구조를 사용하여 어휘 모듈에 저장된다. 특정 키스트로크 시퀀스에 대응하는 단어는 바로 앞의 키스트로크 시퀀스와 관련된 단어 및 단어 어근의 세트를 변경하는 명령어의 형태로 트리 구조에 저장된 데이터로부터 구성된다. 따라서, 시퀀스 내의 각각의 새로운 키스트로크가 처리되므로, 첨부된 새로운 키스트로크를 갖는 키스트로크 시퀀스와 관련된 새로운 병음 철자 및 중국어 구 세트를 생성하기 위해 그 키스트로크와 관련된 명령어 세트가 사용된다. 이 방법에서, 병음 철자 및 중국어 구가 데이터베이스 내에 분명히 저장되지 않는다. 대신에, 이들은 이들을 액세스하는데 사용된 키 시퀀스에 기초하여 구성된다.
중국어의 경우, 트리 데이터 구조는 주 및 부의 명령어(primary and secondary instruction)를 포함한다. 주 명령어는 중국어 구의 병음 철자에 대응하는 라틴어 알파벳의 시퀀스들로 이루어지는 어휘 모듈에 저장된 병음 철자를 생성한다. 주 명령어는 병음 철자를 생성할 때 음절 경계가 어디에 있는 지와 음절이 임의의 컨버전(conversion)을 갖는지의 여부를 지정하는 지시자를 포함한다. 각각의 병음 철자는 바로 앞의 키스트로크 시퀀스와 관련된 병음 철자 중 하나를 수정하는 주 명령어에 의해 생성된다.
음절이 컨버전을 갖는 경우, 그 음절은 병음 음절과 관련된 중국어 문자를 생성하는 부 명령어 리스트를 갖는다. 부 명령어는 각각의 중국어 문자의 음조를 포함할 수도 있다. 하나 이상의 음절을 갖는 병음 철자에 있어서, 각각의 부 명령어는 이전의 부 명령어로 다시 링크하는 포인터를 갖는다. 따라서, 복수의 음절을 갖는 중국어 구는 마지막 문자로부터 첫번째 문자로 구성될 수 있다.
단어 객체 어휘 모듈(1010) 내의 트리의 대표적인 도표가 도 5에 도시되어 있다. 트리 데이터 구조는 대응하는 키스트로크 시퀀스에 기초하여 어휘 모듈 내의 객체들을 조직하는데 사용된다. 도 5에 도시된 바와 같이, 어휘 모듈 트리 내의 각각의 노드(N001, N002, N008)는 특정 키스트로크 시퀀스를 나타낸다. 트리 내의 노드는 경로(P001, P002, P008)에 의해 접속된다. 모호성 제거 시스템의 바람직한 실시예에는 8 개의 모호한 데이터 키(ambiguous data key)가 있기 때문에, 어휘 모듈 트리 내의 각각의 부모 노드(parent node)가 8 개의 자녀 노드(children)와 접속될 수 있다. 경로들에 의해 접속된 노드는 분명한 키스트로크 시퀀스를 나타내는 반면에, 노드로부터의 경로의 결여는 불명확한 키스트로크 시퀀스를 나타낸다. 불명확한 키스트로크 시퀀스는 저장된 중국어 구와 매칭하는 어떠한 병음 철자와도 대응하지 않으며, 저장된 중국어 구와 매칭하는 완전한 병음 철자로 확장될 수 있는 어떠한 부분 병음과도 매칭되지 않는다. 불명확한 입력 키스트로크 시퀀스의 경우에, 바람직한 실시예의 시스템은 비프 음으로 사용자에게 경고한다는 것에 유의하라.
어휘 모듈 트리는 수신된 키스트로크 시퀀스에 기초하여 진행된다(travesed). 예를 들면, 어근 노드(1011)로부터 제 2 데이터 키를 누르면, 제 1 키와 관련된 데이터가 어근 노드(1011) 내부로부터 페치(fetch)되어 평가되고, 그 다음에 노드(N002)로의 경로(P002)가 진행된다. 두 번째로 제 2 데이터 키를 누르면, 제 2 키와 관련된 데이터가 노드(N002)로부터 페치되어 평가되고, 그 다음에 노드(N102)로의 경로(P102)를 진행한다. 각각의 노드는 키스트로크 시퀀스에 대응하는 다수의 객체와 관련된다. 각각의 키스트로크가 수신되고 대응하는 노드가 처리되면, 키스트로크 시퀀스에 대응하는 노드 객체의 노드 경로가 발생된다. 각각의 어휘 모듈로부터의 노드 경로는 모호성 제거 시스템의 주 루틴에 의해 사용되어 병음 철자가 선택되는 경우에 병음 철자 리스트 및 중국어 구 리스트를 발생한다.
도 6은 특정 중국어 어휘 모듈 트리 내의 대응하는 객체를 식별하기 위해 수신된 키스트로크 시퀀스를 분석하는 프로세스(600)를 도시한 흐름도이다. 프로세스(600)는 특정 키스트로크 시퀀스에 대한 병음 철자 리스트를 구성한다. 시작시에, 블록(602)은 새로운 노드 경로를 소거한다. 블록(604)은 그 루트 노드(1011)에서 도 5의 트리의 진행을 개시한다. 블록(606)은 첫 번째 키 누름을 획득한다. 블록(608 내지 612)은 이용가능한 모든 키 누름을 처리하기 위한 루프를 형성한다. 블록(608)은 도 7의 서브 프로세스(620)를 호출하여 노드 경로를 구축한다. 판정 블록(610)은 모든 이용가능한 키 누름이 처리되었는지의 여부를 판정한다. 만약 임의의 키 누름이 처리되지 않고 있으면, 블록(612)이 다음 이용가능한 키 누름으로 진행시킨다. 모든 키 누름이 처리되었다면, 블록(614)이 서브 프로세스(700)를 호출하여 구축된 새로운 노드 경로를 이용하여 병음 철자 리스트를 구축한다.
도 7은 도 6에 따른 프로세스로부터 호출된 서브 프로세스(620)를 도시하는 흐름도이다. 서브 프로세스(620)는 한 노드에 의해 새로운 노드 경로를 확장하도록 시도한다. 우선, 판정 블록(622)에서, 키 누름이 유효한지, 즉, 어휘 모듈 트리 내의 키스트로크에 대응하는 노드를 링크하는 경로가 있는지의 여부를 판정하기 위한 테스트가 이루어진다. 만약 키 누름이 유효하지 않으면, 시스템은 통상적으로 사용자에게 사용자가 유효하지 않은 키스트로크를 입력했음을 경고하지만, 시스템이 부가적인 언어 모델에 기초하여 사용자에게 적절한 제안을 제공할 수도 있다. 블록(622)에서 수신된 키스트로크가 유효하다고 판정되면, 서브 프로세스는 블록(626)으로 진행하여 현재의 키스트로크에 대응하는 트리 노드를 검색한다. 블록(628)은 검색된 트리 노드를 새로운 노드 경로에 부가한다. 블록(630)은 서브 프로세스(620)를 종료한다.
어휘 모듈 트리 내의 노드가 주어진 키 입력에 대해 위치되면, 모호성 제거 모듈이 노드 내의 명령어 리스트를 스캔하고 디코딩하여 유효한 병음 철자를 구성한다. 도 8은 도 6에 따른 프로세스로부터 호출된 서브 프로세서(700)를 나타내는 흐름도이다. 서브 프로세스(700)는, 모든 키스트로크가 성공적으로 처리된 후에 도 7에 따른 서브 프로세스(620)에 의해 구축된 새로운 노드로부터 병음 철자 리스트를 구성하기 시작한다. 블록(702)은 새로운 병음 철자 리스트를 소거한다. 블록(704 내지 710)은 새로운 노드 경로와 매칭하는 모든 병음 철자를 부가하기 위한 루프를 형성한다. 블록(704)은 노드 경로 내의 각 노드 내의 현재의 객체의 주 명령어를 사용하여 병음 철자를 구성한다. 블록(706)은 병음 철자를 새로운 병음 철자 리스트에 부가한다. 판정 블록(708)은 모든 노드 경로 내의 모든 노드내에 있는 모든 객체가 처리되었는지를 판정한다. 임의의 객체가 처리되지 않고 있으면, 블록(710)이 그 객체 인덱스의 다음 세트로 진행된다. 노드 경로 내의 모든 노드의 모든 객체가 처리되었다면, 블록(712)은 서브 프로세스(700)를 종료하고 새로운 병음 철자 리스트를 리턴한다.
주 명령어는 병음 음절 경계의 지시자(indicator)를 포함하기 때문에, 입력 시퀀스로부터 구성된 병음 철자는 병음 철자들 간의 구획 문자를 입력할 필요없이 자동으로 개개의 음절로 구문 분석(parse)된다. 사용자에게 리턴되는 병음 철자는 병음 철자에 포함된 개개의 병음 음절을 식별하기 위해 지시자를 갖는다. 바람직한 일실시예에서, 리턴되거나 또는 예상된 철자의 포맷은 다음과 같다. 즉, (1) 각각의 음절이 대문자(upper case letter)로 시작하고, (2) 음절에 대해 음조가 입력되면, 그 음절 다음에 숫자(1-5)가 뒤따른다.
예를 들면, 음조가 입력되지 않으면, 두 개의 음절 "bei" 및 "jing"로 이루어지는 병음 철자가 "BeiJing"으로서 리턴된다. "bei"에 대해서만 음조가 입력되면, "Bei3Jing"가 리턴된다. 두 음절 모두에 대해 음조가 입력되면, "Bei3Jing1"이 리턴된다.
도 6에 따른 프로세스(600)로부터 리턴된 병음 철자 리스트는 도 2 및 도 3에 도시된 바와 같은 병음 철자 리스트 영역(72)에 디스플레이된다. 유효 철자는 어휘 모듈 트리 내의 FUBLM에 의해 분류된다. FUBLM의 최고 등급을 갖는 첫 번째 철자가우선 검색된다. 이것은 또한 디폴트 병음 철자 선택이다.
병음 철자가 디폴트에 의해 선택되거나 또는 사용자에 의해 네비게이션 키인 좌향 화살표(61)와 우향 화살표(62)에 의해 선택되면, 대응하는 중국어 구가 구성되어 리턴된다.
도 9는 특정 중국어 어휘 모듈 트리 내의 병음 철자에 대응하는 중국어 구를 구성하는 서브 프로세스(720)를 도시한 흐름도이다. 서브 프로세스(720)는 노드 경로로부터 구성되는 병음 철자에 대한 중국어 구 리스트를 구성한다. 블록(722)은 중국어 구 리스트를 소거한다. 판정 블록(724)은 선택된 병음 철자의 마지막 음절이 일부분인지를 검사한다. 선택된 병음 철자의 음절이 일부분이 아니라면, 블록(726)은 도 10에 도시된 변환 서브 프로세스(740)를 호출하여 현재의 병음 철자를 중국어 구로 변환시키고, 중국어 구를 중국어 구 리스트에 부가한다. 블록(734)은 중국어 구 리스트를 리턴한다.
이제 선택된 병음 철자를 구성하는 새로운 노드 경로가 메모리 내에 더 저장된다. 노드 경로의 이 부분은 키 시퀀스에 기초하여 생성된다. 경로의 이 부분 내의 노드는 키 시퀀스와 매칭된다. 유효 철자는 경로의 이 부분으로부터만 구성된다. 정확하게 매칭된 단어들 또한 경로의 이 부분으로부터만 구성된다.
선택된 병음 철자의 마지막 음절이 일부분이면, 블록(728 내지 732)은 마지막 모든 가능한 음절의 완성(possible completions of the last syllable)을 처리하기 위한 루프를 형성한다. 블록(728)은 어휘 모듈 트리 내에서 매칭하는 중국어 구를 갖는 다음 병음 완성어를 찾아낸다. 새로운 노드 경로는 부분 병음 완성을 지원하기 위해 부분적으로 매칭하는 단어를 예견하여 탐색하도록 그 경로의 제 2 부분에 의해 확장된다. 마지막 병음이 일부분이면(즉, 완전한 음절이 아니면), 모호성 제거 모듈은 어휘 모듈 트리를 탐색하여, 철자가 키 시퀀스와 부분적으로 매칭하는 단어를 찾아내고, 그 다음에 이들 단어를 중국어 구 리스트 내에 정확하게 일치된 단어 다음에 제공한다. 부분 병음 완성은 마지막 음절이 완성될 때까지 예견된다. 가장 긴 음절은 "Chuang" 또는 "Shuang" 또는 "Zhuang"이므로, 경로의 제 2 부분 내에는 최대 5개의 노드가 존재한다. 이들 세 경우에서만, 프로세스는 5 개의 더 많은 노드를 예견한다.
예를 들면, 키 입력이 "2345"이면, 유효 철자 중 하나는 "BeiJ"이다. 첫 번째 완전한 음절은 "Bei"이다. 두 번째는 완전한 음절이 아닌 "J"이다. 따라서, 이 경우에 대한 경로의 제 1 부분은 철자 "BeiJ"를 구성한다. 프로세스는 어휘 모듈 트리에서 예견하여 마지막 음절을 완성할 것이다. 그러면, 부분 철자가 "BeiJ"와 매칭하는 단어(BeiJing)를 찾아낸다. 경로의 제 2 부분은 "ing"를 구성하는데 사용된다. 만약 단어 "BeiJingShi"가 어휘 모듈 트리에 있다면, 그것은 두 개의 더 많은 음절의 예견을 요구하기 때문에 프로세스는 키 입력 "2345"에 대해 이 단어를 찾아내지 않을 것이다.
판정 블록(730)은 다음 병음 철자 완성이 발견되는 지의 여부를 판정한다. 다음 병음 철자 완성이 발견되면, 블록(732)은 도 10의 서브 프로세스(740)를 호출하여 현재의 병음 철자 완성을 중국어 구로 변환하고 중국어 구를 중국어 구 리스트에 추가한다. 더 이상의 병음 철자 완성이 발견되지 않으면, 블록(734)은 중국어 구 리스트를 리턴한다.
도 10은 도 7에 따른 프로세스(620)로부터 호출된 서브 프로세스(740)를 도시한다. 서브 프로세스(740)는 서브 프로세스(620)에 의해 구축된 새로운 노드 경로로부터 주어진 병음 철자에 대한 중국어 구를 구성하려고 하며, 이것은 마지막 음절을 완성하도록 제 2 부분에 의해 확장된다. 블록(742 내지 748)은 새로운 노드 경로를 선택적인 확장부와 매칭시키는 모든 중국어 구를 부가하기 위한 루프를 형성한다. 블록(742)는 노드 경로 내의 각각의 노드 내의 현재의 객체의 2차 명령어를 사용하여 중국어 구를 구성한다. 블록(744)은 중국어 구를 중국어 구 리스트에 부가한다. 판정 블록(746)은 노드 경로 내의 모든 노드들 내의 모든 객체들이 처리되었는지의 여부를 판정한다. 임의의 객체가 처리되지 않은 채로 남아 있으면, 블록(748)은 객체 인덱스의 다음 세트로 진행된다. 노드 경로 내의 모든 노드의 모든 객체가 처리되었다면, 블록(750)은 서브 프로세스(740)를 종료하고 중국어 구 리스트를 리턴한다.
임의의 음조가 입력되면, 2차 명령어가 실행될 때 문자의 음조들이 그들의 유니코드와 함께 검색되기 때문에 프로세스는 문자들을 필터링할 수 있다. 문자가 하나 이상의 발음을 가지면, 가장 일반적인 발음이 우선 검색된다.
각각의 철자에 대한 변환(문자 및 단어)이 FUBLM에 의해 우선순위화된다. 철자-문자/단어 변환 동안에 가장 빈번하게 사용된 문자 또는 단어가 우선 검색된다. 정확히 매칭된 철자로부터 변환된 단어들은 부분 매칭된 철자로부터 변환된 단어 앞에 위치한다. 상이한 부분 매칭된 철자로부터 변환된 단어는 키 순서(즉, 키 2,3,4,5...) 및 그 키 상의 문자(키 인덱스 상의 문자)의 빈도 순서로 분류된다.
예를 들어, 활성 철자가 "Sha"라고 가정한다. 이전 문자가 'a'인 경우 'n'이 'o'에 앞서므로, "Sha"로부터 변환된 문자가 우선 리턴되고, "Shai", "Shan", "Shang" 및 "Shao"로부터 변환된 문자들이 후속한다.
전술한 모호성 제거 방법은 병음 체계 외에 보포모포(Bopomofo) 알파벳을 사용하는 Zhuyin 체계와 같은 다른 어떠한 병음 체계에도 적용 가능하다.
도 13은 본 발명의 바람직한 실시예에 따른, 사용자에 의해 입력된 모호한 입력 시퀀스를 모호하지 않게 하고 중국어로 텍스트 출력을 발생하는 방법을 도시한 블록도이다. 이 방법은 다음 단계를 포함한다.
단계 1310 : 입력 시퀀스를 사용자 입력 장치에 입력하는 단계
단계 1320 : 입력 시퀀스를 표음 시퀀스 데이터베이스와 비교하여 매칭하는 표음 엔트리를 찾아내는 단계
단계 1330 : 하나 이상의 매칭된 표음 엔트리를 선택적으로 디스플레이하는 단계
단계 1340 : 표음 엔트리를 표의 문자 데이터베이스와 매칭시키는 단계
단계 1350 : 하나 이상의 매칭된 표의 문자를 선택적으로 표시하는 단계
다른 바람직한 실시예에서, 모호성 제거 병음 시스템은 통상적으로 지역적 억양(regional accent)에 의해 비롯되는 철자 변화를 허용한다. 지역적 억양은 다양한 음절에 대한 발음에 변화를 일으킬 수 있다. 이것은 예컨대 "zh-"와 "□z-", "-n"과 "-ng"에 대해 혼동을 가져올 수 있다. 이들 변화를 수용하기 위해, 어떠한 철자에 대한 변화가 고려될 수 있다. 변화들은, 예를 들어 사용자가 "zan"을 입력하 면 선택 리스트는 "zhan" 및 "zhang"을 가능한 변형체로서 포함할 수도 있듯이 특정 병음에 대해 선택 리스트의 일부로서 디스플레이되거나 또는 특정 문자를 찾아내는데 실패할 때 사용자에게 철자의 가능한 변화를 제공하는 "변형체 표시(show variants)" 옵션을 사용자가 선택할 수도 있다. 또한 사용자는 "z <-> zh", "an<->ang" 등과 같은 특정 "혼동 세트(confusion set)"를 턴 오프 및 온할 수도 있다.
표 5. 일반적인 혼동 세트의 예(Examples of Common Confusion Sets)
A |
Ia |
E |
IE |
O |
Ou, uo |
An |
Ang, ian, iang |
En |
Eng |
In |
Ing |
Ong |
Iong |
Uan |
Uang |
On |
Ong, iong |
Ao |
Iao |
Z |
Zh |
C |
Ch |
S |
Sh |
L |
N |
다른 바람직한 실시예에서, 모호성 제거 시스템은 커스텀 단어 사전(custom word dictionary)을 포함한다. 구 사전은 이용가능한 메모리에 의해 제한되기 때문에, 커스텀 단어 사전은 사용자가 병음/문자 조합을 수동으로 추가하여 그 후 입력 방법을 통해 액세스될 수 있는 필수물이다.
다른 바람직한 실시예에서, 모호성 제거 병음 시스템은 최신 사용에 기초하여 적응적으로 FUBLM을 갱신할 수도 있다. 최초의 구는 사용자의 예상과 매칭되지 않을 수도 있는 특정 언어 모델(예를 들어 코르푸스(corpus)에서의 사용 빈도)에 따라서 정렬된다. 사용자의 패턴을 추적함으로써, 시스템은 언어 모델을 학습하고 적절히 갱신한다.
다른 바람직한 실시예에서, 상기 시스템은 지금까지 입력된 단어 음절 및 언어 모델에 기초하여 사용자에게 단어 예측을 제공할 수도 있다. 언어 모델은 어떤 순서로 예측이 사용자에게 제공되어야 하는 지를 판정하는데 사용될 수도 있다. 사실상 언어 모델은 사용자가 어떠한 문자를 타이핑하기 전에도 사용자에게 단어들의 예측을 제공할 수 있다. 이러한 언어 모델은 단일 문자의 단순한 사용 빈도 또는 둘 이상의 문자 조합(N-gram)의 사용 빈도 또는 문법적인 모델 또는 심지어 의미론적 모델(semantic model)에 기초할 수도 있다. 다른 실시예에서는, 표의 문자 내의 총 키스트로크의 수, 표의 문자의 어근, 어근 및 어근의 수, 알파벳 순서, 형식적인(formal) 텍스트, 대화형으로 기록된 텍스트 또는 대화형으로 말해진 텍스트 내의 표의 문자 시퀀스 또는 표음 문자 시퀀스의 발생 빈도, 선행 문자 또는 문자들에 후속할 때 표의 문자 시퀀스 또는 표음 문자 시퀀스의 발생 빈도, 주위 문장의 적절하거나 일반적인 문법, 현재의 입력 시퀀스의 애플리케이션 문맥, 사용자에 의한 또는 애플리케이션 프로그램 내에서의 표음 또는 표의 문자 시퀀스의 사용의 최근성 또는 반복적인 사용에 기초할 수도 있다.
바람직한 입력 방법은 사용자로 하여금 단어의 완전한 철자를 입력할 것을 요구하지만, 사용자는 각 음절의 첫 번째 문자만 입력하도록 선택될 수도 있다. 따라서, BeiJing을 타이핑하는 대신에, 사용자는 BJ를 타이핑하고 이 두문자어와 매칭하는 구를 제공받는다. 또한, 사용자는 그들 자신의 두문자어를 정의할 수도 있으며 이들을 커스텀 단어 사전에 추가할 수도 있다.
병음 및 구를 결합하는 단일 트리 외에, 키 누름을 유효한 단일 음절 병음에 맵핑시키는 하나의 트리와 병음 단어 및 이들의 표의 문자 표현을 포함하는 다른 하나의 트리의 두 개의 트리가 존재하는 다른 실시예를 생각할 수 있다. 두 번째 트리는 편집하기가 더 쉽고 따라서 삽입 및 삭제가 트리 내에서 이루어질 수 있어, 구 및 변환이 제공되는 순서의 '온더 플라이(on the fly)' 재정리를 가능하게 한다. 또한, 사용자로 하여금 구를 기존의 트리 또는 전술한 커스텀 단어 사전 데이터를 포함하는 병렬 트리 구조에 추가할 수 있도록 한다.
모호한 문자 입력 외에, 상기 시스템은 또한 사용자가 문자를 분명히 선택하도록 비 모호 방법을 제공할 수도 있다.
입력 프로세스 동안, 사용자는 복수의 음절 단어 각각에 대해 부분 음절을 입력할 수도 있다. 바람직하게는, 각 음절에 대한 부분 키스트로크의 수는 하나로서, 예를 들면 각 음절의 제 1 키스트로크이다.
시스템은 사용자가 최초 음을 식별한 후에 유효 최종 음을 디스플레이할 수도 있다. 예를 들면, 사용자가 입력 병음 음절 "Zhang"을 입력하려고 하면, 사용자는 먼저 최초 음 "zh"를 식별하고, 그 다음에 머리 글자에 대한 유효 최종 음을 제공받으며, 사용자는 이를 위해 "ang"를 선택할 수도 있다.
입력 프로세스 동안에, 사용자는 특정 와일드카드 입력 수단과 관련되는 복수의 입력 수단 중 하나를 선택할 수도 있다. 특정 와일드카드 입력 수단은 표음 문자 중 0 또는 1을 매칭시킬 수도 있다.
시스템은 또한 영어 또는 기타 알파벳 언어에 매칭하는 엔트리를 포함하는 표음 시퀀스를 디스플레이할 수도 있으며, 영어와 같은 2차 언어 내의 음절 및 단어로서 키 누름의 동시 해석을 허용한다.
위의 상세한 설명에 나타나 있는 바와 같이, 시스템은 중국어에 대한 효과적인 축소형 키보드 입력 시스템을 생성하도록 설계되었다. 첫째, 상기 방법은 오피셜 병음 체계(official Pinyin system)에 기초하고 있기 때문에, 원어민이 이해하기 쉽고 사용을 배우기 쉽다. 둘째, 상기 시스템은 텍스트 입력에 필요한 키스트로크의 수를 최소화하는 경향이 있다. 셋째, 상기 시스템은 입력 프로세스 동안에 요구되는 주의량(the amount of attention) 및 판정을 감소시키고 적절한 피드백을 제공함으로써 사용자에게 인식 부담을 감소시킨다. 넷째, 본원 명세서에 개시된 방법은 실제 시스템을 구현하는데 필요한 메모리 및 처리 자원의 양을 최소화하는 경향이 있다.
먼저, 도 14는 본 발명의 바람직한 일실시예에 따른, 사용자에 의해 입력된 입력 시퀀스를 수신하고 중국어로 텍스트 출력을 발생하는, 표음 기반 및 스트로크 기반형 입력 방법 모두를 지원하는 시스템을 도시하고 있다. 상기 시스템은 다음 요소들을 포함한다.
· 사용자 입력 장치에 의해 입력이 선택될 때마다 입력 시퀀스가 발생되는, 복수의 입력 수단을 갖는 사용자 입력 장치(1410)
· 복수의 입력 시퀀스, 각각의 입력 시퀀스와 관련된, 철자가 입력 시퀀스에 대응하는 스트로크 시퀀스 세트 또는 입력 시퀀스와 대응하는, 표음 시퀀스 세트를 포함하는 데이터베이스(1420)
스트로크 인덱스는 통상적으로 스트로크 입력 시스템 내의 스트로크 시퀀스에 의해 분류된 스트로크의 인덱스임에 주의하라. 스트로크 입력 시스템은 5-스트로크 또는 8-스트로크 시스템일 수 있다. 표음 인덱스는 통상적으로 표음 입력 시스템 내의 실제 철자에 의해 분류된 표음 문자의 인덱스일 수 있다. 표음 입력 시스템은 병음 체계 또는 Zhuyin 체계일 수 있다. 한편, 병음 인덱스는 표음 입력 시스템에서 입력 수단의 인덱스일 수 있다.
· 표의 문자 시퀀스 세트를 포함하는 데이터베이스(1430), 여기서 각각의 표의 문자는 표의 문자 인덱스, 대응하는 스트로크 시퀀스에 대한 복수의 스트로크 인덱스 및 대응하는 표음 시퀀스에 대한 복수의 표음 인덱스를 포함한다.
인덱스를 표의문자에 도입함으로써, 시스템은 표의 문자가 표음 기반형 입력 방법 및 스트로크 기반형 입력 방법과 같은 상이한 유형의 입력 방법 사이에서 공유되도록 허용한다. 데이터베이스(1430)는 또한 표의 문자에 대한 인덱스와 스트로크 인덱스 사이, 표의 문자에 대한 인덱스와 표음 인덱스 사이에서, 그리고 표의 문자에 대한 인덱스로부터 표의 문자로 변환하는데 필요한 정보를 포함한다. 이들 표의 문자들은 GB 코드의 유니코드일 수 있다.
· 입력 시퀀스를 입력 방법 특정 데이터베이스와 비교하고, 매칭 스트로크 엔트리 또는 표음 엔트리에 대한 인덱스와 매칭 스트로크 엔트리 또는 표음 엔트리를 찾아내는 수단(1440).
· 스트로크 엔트리 또는 표음 엔트리에 대한 매칭 인덱스를 매칭 표의 문자 인덱스로 변환시키는 수단(1450).
· 매칭 표의 문자 인덱스에 의해 표의 문자 데이터베이스로부터 매칭 표의 문자 시퀀스를 검색하는 수단(1460).
· 하나 이상의 매칭된 표음 엔트리 및 매칭된 표의 문자를 디스플레이하는 출력 장치(1470)
도 15는 본 발명의 바람직한 일실시예에 따른 도 14의 시스템을 이용하여 중국어로 텍스트 출력을 발생하는 방법을 도시한 것이다. 이 방법은 다음 단계들을 포함한다.
단계 1510: 입력 시퀀스를 사용자 입력 장치(1410)에 입력한다.
이 단계에서, 사용자는 우선 입력 장치(1410)의 입력 수단을 이용하여 입력 시퀀스를 발생한다.
단계 1520: 입력 시퀀스를 입력 방법 특정 데이터베이스(1420)와 비교하고 매칭 스트로크 엔트리 또는 표음 엔트리에 대한 인덱스 및 상기 매칭하는 스트로크 엔트리 또는 표음 엔트리를 찾아낸다.
이 단계에서, 선택된 입력 방법에 기초하여, 시스템은 비교 및 매칭 수단(1440)을 사용하여 데이터베이스(1420)로부터 표음 엔트리에 대한 하나 이상의 인덱스 또는 스트로크 엔트리에 대한 하나 이상의 인덱스를 찾아낸다.
단계 1530: 스트로크 엔트리 또는 표음 엔트리에 대한 매칭 인덱스를 매칭 표의 문자 인덱스로 변환시킨다.
이 단계에서, 시스템은 변환 수단(1450)을 사용하여 매칭된 표음 엔트리 또는 스트로크 엔트리를 매칭 표의 문자에 대한 인덱스로 변환시킨다.
단계 1540: 매칭 표의 문자 인덱스에 의해 표의 문자 데이터베이스로부터 매칭 표의 문자 시퀀스를 검색한다.
이 단계에서, 매칭 표의 문자에 대한 인덱스는 검색 수단(1460)으로 진행하여 매칭 표의 문자를 검색한다.
단계 1550: 하나 이상의 매칭된 표의 문자 시퀀스를 선택적으로 디스플레이한다.
이 단계에서, 매칭된 표의 문자는 출력 장치(1470) 상에 디스플레될 수도 있다. 최고 FUBLM 값을 갖는 표의 문자와 같은 매칭된 표의 문자들 중 하나는 디폴트로 선택된다. 사용자는 디폴트를 수락하거나 다른 매칭된 표의 문자 시퀀스를 선택할 수도 있다.
도 16은 본 발명의 바람직한 일실시예에 따른 중국어로 텍스트 출력을 발생하는 표음 입력 방법을 도시한 것이다. 이 방법은 다음 단계들을 포함한다.
단계 1610: 사용자 입력 장치에 입력 시퀀스를 입력한다.
단계 1620: 입력 시퀀스를 표음 시퀀스 데이터베이스와 비교하고 매칭 표음 엔트리 및 그들의 인덱스를 찾아낸다.
단계 1630: 하나 이상의 매칭된 표음 엔트리를 선택적으로 디스플레이한다.
단계 1640: "표음 엔트리에 대한 인덱스"를 "표의 문자에 대한 인덱스"로 변환하고, 표의 문자에 대한 인덱스에 의해 표의 문자 데이터베이스로부터 매칭 표의 문자를 검색한다.
단계 1650: 하나 이상의 매칭된 표의 문자를 선택적으로 디스플레이한다.
다른 바람직한 실시예에서, 모호성 제거 병음 시스템은 통상적으로 지역 사투리에 의한 철자 변형을 허용한다. 지역 사투리는 다양한 음절에 대한 발음에 변형을 유발한다. 이 때문에 예를 들어 "zh-"와 "□z-", "-n"과 "-ng"에 대해 혼동을 가져올 수도 있다. 이들 변형을 수용하기 위해, 어떠한 철자 상의 변형이 고려될 수 있다. 변형들은 특정 병음에 대한 선택 리스트의 일부로서 디스플레이될 수 있으며, 예를 들어 사용자가 "zan"을 타이핑하면 선택 리스트는 가능한 변형으로서 "zhan" 및 "zhang"를 포함할 수도 있으며, 또는 사용자가 특정 문자를 찾는데 실패하는 경우에 사용자에게 철자의 가능한 변형을 제공하는 "변형체 표시(show variants)" 옵션을 선택할 수도 있다. 또한 사용자가 "z <-> zh", "an <-> ang" 등과 같이 특정 "혼동 세트(confusion sets)"를 턴 오프 및 온할 수도 있다.
표 5. 일반적인 혼동세트의 예
A |
Ia |
E |
IE |
O |
Ou, uo |
An |
Ang, ian, iang |
En |
Eng |
In |
Ing |
Ong |
Iong |
Uan |
Uang |
On |
Ong, iong |
Ao |
Iao |
Z |
Zh |
C |
Ch |
S |
Sh |
L |
N |
다른 바람직한 실시예에서, 모호성 제거 시스템은 커스텀 단어 사전을 포함 한다. 구의 사전은 이용가능한 메모리에 의해 한정되므로, 사용자가 병음/문자 조합을 수동으로 추가할 수 있고 나중에 입력 방법을 통해 액세스될 수 있는 커스텀 단어 사전이 필수적이다.
다른 바람직한 실시예에서, 모호성 제거 병음 시스템은 사용의 최근성에 기초하여 적응적으로 FUBLM을 갱신할 수도 있다. 사용자의 예상과 일치하지 않을 수도 있는 특정 언어 모델(예를 들어 코르푸스(corpus)에서의 사용 빈도)에 따라서 최초 구들이 정렬된다. 사용자의 패턴을 추적함으로써, 시스템은 언어 모델을 학습하고 적절히 갱신한다.
다른 바람직한 실시예에서, 시스템은 사용자에게 지금까지 입력된 단어 음절 및 언어 모델에 기초하여 단어 예측을 제공할 수도 있다. 언어 모델은 예측이 어떤 순서로 사용자에게 제공되는 지를 결정하는데 사용될 수도 있다. 사실 언어 모델은 사용자가 어떠한 문자를 타이핑하기도 전에 사용자에게 단어의 예측을 제공할 수 있다. 그러한 언어 모델은 단일 문자의 단순한 사용 빈도 또는 둘 이상의 문자 조합(N-grams)의 사용 빈도 또는 문법 모델 또는 심지어 의미론적 모델에 기초할 수도 있다. 다른 실시예에서는, 표의 문자 내의 총 키스트로크의 수, 표의 문자의 어근, 어근 및 어근의 수, 알파벳 순서, 형식적인(formal) 텍스트, 대화형으로 기록된 텍스트 또는 대화형으로 말해진 텍스트 내의 표의 문자 시퀀스 또는 표음 문자 시퀀스의 발생 빈도, 선행 문자 또는 문자들에 후속할 때 표의 문자 시퀀스 또는 표음 문자 시퀀스의 발생 빈도, 주위 문장의 적절하거나 일반적인 문법, 현재의 입력 시퀀스의 애플리케이션 문맥, 사용자에 의한 또는 애플리케이션 프로그램 내에서의 표음 또는 표의 문자 시퀀스의 사용의 최근성 또는 반복적인 사용에 기초할 수도 있다.
바람직한 입력 방법은 사용자로 하여금 단어의 완전한 철자를 입력할 것을 요구하지만, 사용자는 각 음절의 첫 번째 문자만 입력하도록 선택될 수도 있다. 따라서, BeiJing을 타이핑하는 대신에, 사용자는 BJ를 타이핑하고 이 두문자어와 매칭하는 구를 제공받는다. 또한, 사용자는 그들 자신의 두문자어를 정의할 수도 있으며 이들을 커스텀 단어 사전에 추가할 수도 있다
문자들의 모호한 입력 외에, 시스템은 또한 사용자로 하여금 문자를 명시적으로 선택하게 하는 모호성 제거 방법을 제공할 수도 있다.
입력 프로세스 동안, 사용자는 복수의 음절 단어들 각각에 대한 부분적인 음절을 입력할 수도 있다. 바람직하게는, 각각의 음절에 대한 부분 키스트로크의 수는 하나로서, 예를 들면 각 음절의 첫번째 키스트로크이다.
시스템은 또한 사용자가 최초 음을 식별한 후에 유효한 최종 음을 디스플레이할 수도 있다. 예를 들면, 사용자가 병음 음절 "Zhang"를 입력하려고 하는 경우, 사용자는 우선 최초 음 "zh"를 식별하고 그 다음에 머리 글자에 대한 유효 최종 음을 제공받으며, 사용자는 이를 위해 "ang"를 선택할 수도 있다.
입력 프로세스 동안에, 사용자는 특정 와일드카드 입력 수단과 관련되는 복수의 입력 수단 중 하나를 선택할 수도 있다. 특정 와일드카드 입력 수단은 표음 문자 중 0 또는 1을 매칭시킬 수도 있다.
시스템은 또한 영어 또는 기타 알파벳 언어로 매칭 엔트리를 포함하는 표음 시퀀스를 디스플레이할 수도 있으며, 영어와 같은 2차 언어 내의 음절 및 단어로서 키 누름의 동시 해석을 허용한다.
위의 상세한 설명에 나타나 있는 바와 같이, 시스템은 중국어에 대한 효과적인 축소형 키보드 입력 시스템을 생성하도록 설계되었다. 첫째, 상기 방법은 오피셜 병음 체계(official Pinyin system)에 기초하고 있기 때문에, 원어민이 이해하기 쉽고 사용을 배우기 쉽다. 둘째, 상기 시스템은 텍스트 입력에 필요한 키스트로크의 수를 최소화하는 경향이 있다. 셋째, 상기 시스템은 입력 프로세스 동안에 요구되는 주의량(the amount of attention) 및 판정을 감소시키고 적절한 피드백을 제공함으로써 사용자에게 인식 부담을 감소시킨다. 넷째, 본원 명세서에 개시된 방법은 실제 시스템을 실시하는데 필요한 메모리 및 처리 자원의 양을 최소화하는 경향이 있다.
당업자들은 또한 본 발명의 기본 원리로부터 크게 벗어나지 않고, 키보드 배치의 설계 및 기본 데이터베이스 설계에 변경이 이루어질 수도 있음을 알 수 있을 것이다.
따라서, 본 발명은 이하에 포함된 청구범위에 의해서만 한정된다.