KR20240029703A - 멀티 포인터를 활용한 문자 입력시스템 - Google Patents

멀티 포인터를 활용한 문자 입력시스템 Download PDF

Info

Publication number
KR20240029703A
KR20240029703A KR1020220108021A KR20220108021A KR20240029703A KR 20240029703 A KR20240029703 A KR 20240029703A KR 1020220108021 A KR1020220108021 A KR 1020220108021A KR 20220108021 A KR20220108021 A KR 20220108021A KR 20240029703 A KR20240029703 A KR 20240029703A
Authority
KR
South Korea
Prior art keywords
key
input
sentence
database
word
Prior art date
Application number
KR1020220108021A
Other languages
English (en)
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 박태운
Priority to KR1020220108021A priority Critical patent/KR20240029703A/ko
Publication of KR20240029703A publication Critical patent/KR20240029703A/ko

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • 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
    • G06F3/0412Digitisers structurally integrated in a display

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

본 발명은 일반적으로 영어권 문화에서 문자입력방법으로 사용되는 단어예측입력방법을 문자뿐만 아니라 기호와 공백문자(space)에도 적용하여 비문자 구문 및 문장의 입력을 용이하게 구현하였다. 더 나아가서 한글의 경우 문법적 공백 키를 구성하여 데이터베이스의 크기를 획기적으로 줄일 수 있는 방법을 제공한다.

Description

멀티 포인터를 활용한 문자 입력시스템{Keyboard system utilizing multi-pointer input}
예측입력방법
핸드폰이 사용되기 시작하면서 문자통화가 보편화되기 시작했고, 스마트폰으로 변화되면서 문자통화가 음성통화보다 많아지는 상황으로까지 변하게 되었다. 더 나아가서 스마트폰은 단순히 메시지 전달이 아니라 멀티미디어 통신수단으로서의 기능으로 인해 웹주소, 이메일 등 비단어 입력이 많아지게 되었다. 이러한 비단어 입력은 일반적인 문자입력의 경우와 달리 문자와 기호의 입력을 번갈아서 입력해야 되는 경우가 발생하여 입력이 불편하다. 그럼에도 컴퓨터의 full keyboard를 사용하는 경우 문자와 기호의 입력이 수월하게 이루어지지만 두 손가락만을 사용하여 입력해야 하는 모바일기기에서는 문자만을 입력하는 경우보다 훨씬 어려워진다. 특히 0 ~ 9의 숫자와 *, #을 기본으로 하는 12개의 키로 구성된 키패드를 이용하여 문자와 기호를 입력하는 것은 여간 어려운 것이 아니다. 알파벳 문자만을 위한 입력을 위해서는 영어 문화권에서는 12개 키패드를 이용한 단어예측입력방법(Disambiguity Input Method)을 이용해 오고 있으나 위에 언급된 알파벳과 기호가 혼합된 구절의 입력은 문자와 기호가 별도로 입력되야 하는 불편함이 여전히 있다. 이러한 배경에서 본 발명은 기존의 12개의 키로 구성된 키패드를 위해 개발되어 영어권에서 널리 사용되는 단어예측입력방법(Disambiguation Input Method)을 단어입력 및 기호와 숫자 심지어 공백문자(space)의 입력이 가능하도록 하는 입력시스템을 제공하고자 한다.
모든 문자와 기호가 각각의 키에 지정되어 있는 qwerty 키보드의 경우에는 문자와 기호가 혼용되는 웹주소나 password는 용이하게 입력될 수 있지만 웨어러블 기기인 스마트워치와 같이 키보드 입력공간이 한정되는 경우에는 제한된 갯수를 갖는 키보드를 고려해야 한다. 더욱이 최근에 등장하는 VR(virtual reality-가상현실), AR(augmented reality-증강현실)을 위한 기기에 필요한 문자입력장치로서 qwerty 키보드는 사용성에서 한계를 가지게 되어 새로운 입력장치가 요구되고 있다. 이들 웨어러블 기기는 문자입력에 필요한 공간이 충분하지 않은 관계로 스마트폰과 달리 제한적인 용도에 국한되어 이용되고 있다. AR용으로 개발된 헤드셋이나 글래스 종류도 스마트워치에 비해 충분한 화면을 제공하지만 스마트폰과 같이 터치(촉각)를 통한 입력이 어려워 문자입력을 위한 키보드 제공이 어려운 상황이다. 이런 점에서 본 발명은 웨어러블 기기의 제약을 극복하고 입력의 효율성을 갖는 10개 내외의 키를 갖는 입력시스템을 제공하고자 한다.
핸드폰이 사용되면서 음성중심의 통신이 점차 메시지 중심의 통화로 발달되었고 그 따라 컴퓨터에 사용되는 qwerty keyboard가 핸드폰의 제한된 공간으로 인해 12개 키패드로 변형되어 그에 맞는 입력시스템이 개발되었다. 특히 영어권(중국과 일본 포함)에서는 핸드폰의 키패드에 각각의 키에 여러개의 문자가 지정된 비확정(ambiguous) 키가 구성되어 있다. 하나의 키에 여러개의 문자가 지정된 비확정키를 이용하여 이들 비확정 키를 한 번씩 눌러주어 이들 키에 지정된 문자들로 구성된 단어를 추출하여 입력하도록 한 단어예측입력방법(disambiguation input method)이 고안되어 널리 사용되었다. 단어예측입력방법은 여러개의 문자가 지정된 비확정 키를 한 번만 눌러주어도 원하는 단어를 입력할 수 있게하여 누름 숫자를 줄여주는 방법이다. 도 1에 보여지는 자판을 예를 들어 설명하면 'boy'라는 단어를 입력하고자 할 때에 여러번 키를 눌러주는 방법(multi-tapping method)의 경우 'b'를 입력하기 위해 'abc'키를 두 번 눌러주고, 'o'를 입력하기 위해 'mno'키를 세 번 누르고 마지막으로 'y'를 입력하기 위해 'wxyz'키를 세번 눌러주어 'boy'를 입력한다. 이에 반해 단어예측입력방법은 'boy'를 입력하기 위해 'boy'를 이루는 'b', 'o', 'y'가 지정된 키 즉 'abc', 'mno', 'wxyz' 비확정 키를 각각 순서대로 한 번씩 눌러주면 이들 키에 지정된 문자들의 조합으로 만들어질 수 있는 단어를(예를 들면 'any', 'amy', 'boy', 'box', 'cow', 'bow', 'cox', 'coy' 등) 사전적 데이터베이스로부터 추출하여 도 2에 보이는 바와 같이 예측단어로서 표시(키 내에 이탤릭체로 표시)되어 이들 단어 중에서 입력하고자 하는 단어 'boy'를 선택하면 입력이 이루어지는 것이다. 단어예측입력방법을 위해서는 위의 예에서 보는 바와 같이 'boy'를 포함한 단어가 등록되어 있는 사전적인 단어 데이터베이스가 준비되어 있어야 하고 이를 이용하게 된다.
본 발명에서는 이러한 사전적 데이터베이스에 수록된 단어뿐만 아니라 구, 문장 및 심지어 절을 포함한 내용도 입력될 수 있도록 자판의 구성이 문자, 기호, 숫자, 심지어 공백문자도 포함된 비확정키로 구성된다. 이러한 구성으로 10개 내외의 키로 구성된 자판으로도 qwerty keyboard와 같은 입력의 효율성을 갖는 입력시스템을 제공한다.
본 발명의 구성은 예측입력방법을 단순한 단어의 입력을 위한 것으로부터 기호를 포함하는 문구와 심지어 공백문자('space')를 포함하여 문장전체를 입력할 수 있도록 하는 것이다. 이를테면 "Arnold J. Toynbee"라는 이름을 입력하기 위해서 일반적인 예측단어입력방법에서는 'Arnold', 'J.', 'Toynbee'를 각각 순서대로 사전적인 데이터베이스에서 예측하여 입력한 후에 공백문자인 'space'를 단어 사이에 입력해 주어 이름의 입력을 완성하게 된다. 하지만 본 발명의 구성은 아래의 식 (3)[식 (3-1)~식(3-6)]에 보여지는 ambiguous key sequence'의 키입력이 이루어지면 도 5에 보이는 바와 같이 'Arnold J. Toynbee'라는 이름이 예측문구(이탤릭체로 표시)로 자판영역에 표시되어 선택/입력할 수 있게 된다.
'abc'-'pqrs'-'mno'-'jkl'-'def'- ...(3-1)
'Sym'('공백'문자 포함 기호들을 대표하는 ambiguous 키)- ...(3-2)
'jkl'- ...(3-3)
'Sym'- ...(3-4)
'Sym'- ...(3-5)
'tuv'-'mno'-'wxyz'-'mno'-'abc'-'def'-'def' ...(3-6)
즉 단어예측입력방법에서는 'Arnold', 'J.', 'Toynbee'를 각각 단어로서 예측한 후에 선택하는 3번의 과정으로 이루어짐에 반해 본 발명에서는 한 번의 과정으로 축약되어 입력의 편리함과 신속함을 더하게 되는 것이다. 각각의 단어 첫 글자에 해당하는 ambiguous key와 기호를 대표하는 'Sym'키(도 1a의 L11에 해당)를 혼용한 식 (4)의 ambiguous key sequence만을 입력해도 'Arnold J. Toynbee'가 사전적 데이터베이스에 등록되어 있다면 예측문구로서 추출되어 'Arnold J. Toynbee'라는 문구(문장)의 입력이 가능한 것이다.
'abc'-'Sym'-'jkl'-'Sym'-'Sym'-'tuv' ...(4)
이러한 맥락에서 'Sym'키를 문자 amibiguous 키와 동일하게 이용한 본 발명의 문구예측입력방법은 단어예측입력을 간편하게 하는 효과를 가져오게 되는 것이다. 더 나아가서 'Arnold Toynbee'을 예측문구로 예측하기 위해서 입력되는 과정이 식 (5)와 같이 간략해질 수도 있다.
'abc'-'Sym'-'tuv'-'mno'- ...(5)
즉 'Arnold'을 위해서는 첫 글자인 'abc'만을 입력한 후 'space'에 해당하는 'Sym'키를 입력하고 성에 해당하는 'Toynbee'의 철자를 순서대로 입력하면 'Arnold Toynbee'가 예측문구로 추출될 수 있는 방법을 제공되는 것이다. 이에 대해서는 실시예 5과 실시예 6에서 좀더 자세히 설명하도록 한다.
본 발명의 구성은 이상에서 살펴 본 문구뿐만 아니라 다음과 같이 문장에도 적용된다. 즉 'Where are you going?'를 입력하기 위해서 식 (6)에 해당하는 키입력이 이루어지면 'Where are you going?'을 포함하여 문장을 구성하는 첫 번째 단어의 첫 글자가 'w, x, y, z' 중의 하나이고 두 번째 단어의 첫 글자가 'a, b, c' 중의 하나, 세 번째 단어의 첫 글자가 'w, x, y, z' 중의 하나, 네 번째 단어의 첫 글자가 'g, h, i' 중의 하나인 문장들을 나열하여 이들 문장 중에서 'Where are you going?'을 선택/입력하면 되는 극도의 편리성을 제공한다.
'wxyz'-'Sym'-'abc'-'Sym'-'wxyz'-'Sym'-'ghi' ...(6)
이는 단어예측입력방법이 'boy'를 입력하기 위해 ambiguous key sequence 'abc'-'mno'-'wxyz'에 해당하는 키입력이 이루어지면 'boy'를 포함한 예측단어로서 'any', 'amy', 'cox', 'box', 'cow', 'bow', 'cmx', 'coy', 'coz' 등을 나열하여 선택/입력되도록 하고 더 나아가서 'important'을 입력하기 위해 ambiguous key sequence 'ghi'-'mno'-'pqrs'-'mno'-'pqrs'-'tuv'에 해당하는 키입력이 이루어져도 'import'뿐만 아니라 'important'까지도 예측하여 입력될 수 있도록 하는 것과 같은 이치이다.
이상의 구성은 스마트폰 이후 모바일 기기를 대표하는 웨어러블기기인 스마트워치에 도 9a에 보이는 것처럼 적용할 경우 그 효율성이 두드러진다. 스마트워치의 경우 사각형이 아닌 원형의 형태를 갖게 되는데 이에 맞춰 도 9b에 보이는 형태의 자판도 제공하여 스마트폰에서의 이루어진 문자입력의 편리성과 빠른 입력 속도를 웨어러블 기기에도 구현할 수 있도록 하였다.
이러한 맥락에서 인터넷 검색에 필수인 웹 주소의 입력도 용이하게 수행될 수 있다. 'www.fda.gov'와 같은 웹주소도 포함될 수 있다. '.'를 포함한 기호들이 지정된 ambiguous 'Sym'키가 있어서 'www.fda.gov'를 입력하기 위해서 다음의 식 (1)과 같은 순서의 키입력이 이루어지면 도 1(c)에 보여지는 바와 같이 예측 목록으로 'www.fda.gov'가 표시되어(자판내에 이탤릭체로 표시됨) 선택하면 입력되도록 하는 것이다. 즉 기호 '.'를 입력하기 위해 문자모드에서 기호모드로 변경할 필요도 없이 식 (1)에 해당하는 키입력으로 'www.fda.gov'를 입력할 수 있게 되는 것이다.
'wxyz'-'wxyz'-'wxyz'-'Sym'-'def'-'def'-'abc'-'Sym'-'ghi'-'mno'-'tuv' ...... (1)
즉 문자모드에서 기호모드로의 변환없이 단지 열한 번의 키 입력으로 'www.fda.gov'를입력할 수 있게 되는 것이다. 그리고 도 1에 보여지는 자판은 도 9에 보여지는 9개의 키로 이루어진 자판으로 대체할 수 있어서 결과적으로 9개의 키로도 웹주소와 password와 같은 문자-기호의 혼합 구절을 qwerty keyboar에서와 같이 손쉽게 입력할 수 있는 방법을 제공하고자 한다.
그리고 이하에서 사용할 용어에 대한 정의을 통해 본 발명의 상세한 내용을 기술하고자 한다.
용어 실예
ambiguous key 'abc', 'def', 'ghi'
ambiguous key sequence 'ghi'-'tuv'-'wxyz'
numeric code '0', '1', '2'
numeric code sequence '99902210368'
ambiguous key는 하나의 키에 여러 개의 문자가 지정되어서 그 키를 눌렀을 때 지정된 문자 중에 하나를 선택하지 않고 지정된 문자 전부를 의미하도록 설정되어 예측입력방법의 키입력을 나타내는 것이다. 즉 표 0의 두 번째 열에 보여주는 바와 같이 키에 지정된 문자를 전부를 단일 따옴표('...')내에 표시한다. 이러한 ambiguous key의 입력 순서를 나타내는 것을 'ambiguous key sequence'라고 하며 이를 숫자의 형태로 전환하기 위해 ambiguous key를 숫자로 전환한 것을 'numeric code'라고 명명한다. 표 1의 ambiguous key와 그에 해당하는 'numeric code'의 관계는 도 1a에 보여지는 자판의 키배열을 근거로 설정되어 있으며 자판의 키배열이 바뀌면 표 1의 관계도 바뀌게 된다. 따라서 ambiguous key로 표현되는 'ambiguous key sequence'는 'numeric code'를 이용하여 'numeric code sequence'로 변환된다. 따라서 식 (1)의 'ambiguous key sequence'는 아래의 식 (2)의 numeric code sequence로 변환된다. '99902210368' ..... (2)
< ambiguous key와 number code의 변환 관계>
ambiguous key
'abc'

'def'

'ghi'

'jkl'

'mno'

'pqrs'

'tuv'

'wxyz'
numeric code
1

2

3

4

6

7

8

9
ambiguous key
'Num'

'Sym'
numeric code
5

0
이상에 살펴 본 예측입력시스템은 알파벳을 근간으로 하는 영어권 언어에서 활용되어 왔다. 따라서, 예측입력시스템을 한글에 적용할 경우 이용하는데 있어서 어려움이 발생하는데 그 이유는 알파벳 언어와 다르게 한글은 주어와 동사로 사용되는 단어가 조사와 어미와 조합되어 그 변화가 수천가지에 이르게 되는 경우도 있어서 예측입력시스템을 위한 사전적 데이터베이스의 양이 방대하여 지기 때문이다. 예를들면 영어의 경우 'I went to school.'이라는 문장을 살펴 볼 때, 동사로 사용되는 'went'는 동사로서 변화가 없다. 하지만, 한글의 경우 대응되는 문장으로 '나는 학교에 갔다.'를 살펴 볼 때, 동사인 '갔다'는 어간인 '갔'과 조합되는 어미로서 '-었다', '-었었다', '-지만' 등과 더불어 그 수가 수 백 가지 혹은 수 천 가지가 있을 수 있다. 이들 어미에 해당하는 의미는 영어에 경우 별도의 단어를 추가하여 뜻을 전한다. '갔었다'는 'have gone'으로, '갔었었다'는 'had gone'으로, '갔지만'은 'Although (I) went'로, 구성되므로 이미 사전적데이터 베이스에 등록되어 있는 'have' 'had'와 'although'를 이용하여 그 뜻을 표시하므로 사전적 데이터 베이스에 추가되는 단어는 증가하지 않는다. 이에 반해 한글의 경우에는 '갔다', '갔었다', '갔지만'이 각각 별도의 단어로 등록되어야 해서 데이터베이스의 양이 증가하는 단점이 발생하게 되는 것이다. 이것이 한 두개 정도이면 문제가 없지만 그 수가 어미변화를 통해 수 천 가지에 이를 경우 데이터베이스의 크기가 수 천 배 증가하게 되는 문제가 발생하게 된다.
한글의 경우 동일한 문제가 주어에도 발생하게 된다. '꽃이 핀다.'라는 문장에서 보듯이 영어의 경우 'Flowers blossom.'로 주어가 'flower(s)'로 단수와 복수로 구분하면 더 이상의 단어로서의 추가되는 것이 없는 반면에 한글은 '꽃이', '꽃은', '꽃과', '꽃을', '꽃도', '꽃에게', '꽃같이', '꽃이랑', '꽃이란', 등에서 보듯이 체언 명사와 조사가 결합하여 하나의 단어로서 사전적 데이터 베이스에 수록되어야 하는 것이 조사의 종류와 갯수에 비례하여 증가하게 되는 문제가 발생한다. 즉 체언명사와 결합할 수 있는 조사의 갯수가 수 천개가 되면 사전적 데이터베이스에 등록되어야 하는 단어의 양이 수 천배가 증가하여 데이터 저장을 위한 저장장치의 용량이 비례적으로 증가하는 문제와 더불어 실제 사전적 데이터베이스를 검색하는데 걸리는 시간이 수 천배 증가하는 문제가 발생한다. 영어의 경우 한글의 체언에 결합하는 조사 혹은 용언에 결합하는 어미가 별도의 단어를 이용하여 그 의미를 전달하므로 한글의 조사와 어미에 해당하는 단어를 사적적 데이터베이스에 등록하여 한글과 다르게 다른 단어와 결합하여 또 다른 복합단어를 생성하지 않으므로 사전적 데이터베이스의 양이 상대적으로 적은 것이다. 예를 들면 '서울로'라는 어휘를 영어로 표현하면 'To Seoul'이 되는데, 영어의 경우 'To'와 'Seoul'이 공백('space')으로 구분되므로 'To'를 사전적 데이터베이스에 하나의 단어로서 등록하여 다른 장소를 나타내는 단어들과 결합하여 'To Busan', 'To Inchon' 등과 같이 사용되고 단어예측입력방법에서 'To'와 'Busan', 'Inchon'이 각기 단어로서 예측되므로 'To Busan', 'To Inchon'을 별도의 어휘로 사전적 데이터베이스에 등록할 필요가 없다. 이에 반해 '서울로'는 '서울'과 '로'가 영어에서와 달리 '서울'과 '로'가 구분이 되지 않으므로 각기 단어로서 예측되지 않기 때문에 '서울로'를 예측하기 위해서는 '서울로'가 사전적 데이터베이스에 등록되어야 하고, 이는 '부산(으)로', '인천(으)로' 등이 각기 사전적데이터 베이스에 등록되어야 단어로서의 예측이 가능하게 된다. 따라서, 이러한 체언과 조사의 결합에 의한 생성되는 단어를 일일이 사전적 데이터베이스에 등록하지 않고 영어처럼 체언과 조사를 각기 다른 단어로 사전적 데이터베이스에 등록하고 영어처럼 사용되도록 품사 공백(grammatical space)을 만들어 활용하여 사전적 데이터베이스에 수록되는 한글 단어의 수를 줄일 수 있는 방법을 본 발명이 제공하게 된다.
지금까지 정보통신분야에서 컴퓨터에서 문자의 입/출력을 위한 규약은 각각의 문자를 코드로 규정하여 이 코드를 이용하여 입/출력이 이루어졌다. 하지만 본 발명에서는 다수의 문자가 지정된 비확정 키 'abc', 'def' 등에 표 1에 보여 지는 바와 같은 고유한 코드(표 1의 'numberic code')를 부여하여 문자의 입/출력에 활용하는 입력시스템을 가져온다. 다만 지금까지와 다른 점은 비확정키에 '공백'문자('space')도 포함되어 문자, 숫자 및 기호로서 표현되는 내용을 쉽게 출력할 수 있는 방법을 제공하게 되며 특히 인터넷 검색과 같은 작업에 있어서 10개 내외의 키 만으로도 인터넷에 존재하는 컨텐츠를 쉽게 찾아 낼 수 있도록 입력의 편리성을 제공하게 된다. 즉 qwerty keyboard를 대체할 수 있는 입력시스템을 제공하게 되는 것이다.
그리고 한글의 경우 체언의 조사와 용언의 어미변화로 인해 예측입력시스템을 위한 사전적 데이터베이스가 방대해져서 그 사용이 어려웠다. 하지만 '문법적 공백'을 생성하여 체언의 '조사'와 용언의 '어미'를 독립된 단어로서 사전적 데이터베이스에 수록하게 되어 한글에서도 단어예측입력시스템을 용이하게 사용할 수 있게 되는 것이다.
도 1 - 'www.fda.gov'를 입력하기 위한 키 입력 순서 및 'www.fda.gov'가 데이터베이스에 등록되었을 때 키 입력으로 예측되어 화면에 표시된 상태
도 2 - 'boy'를 입력하기 위해 키 입력을 마친 후 예측단어들이 화면에 보여지는 상황
도 3, 도 4 - 본 발명의 구성에 따라 '[email protected]'를 입력하는 과정
도 5, 도 6 - 본 발명의 구성에 따라 'Arnold J. Toynbee'를 입력하는 과정
도 7 - 'Where are you going?'을 문장예측입력방법으로 입력하는 과정
도 8 - 'www.fda.gov'를 문구예측입력방법으로 검색창에 입력하는 과정
도 9 - 문장예측입력을 위한 9키 자판을 스마트워치에 적용한 모습
도 10 - 9개의 키를 갖는 자판형태로 문자가 지정되지 않은 키에는 'sym'[기호와 '공백문자'('space')키와 지정됨]키와 메뉴확장키가 지정된 비확장키 입력자판
도 11 - 시카고 지역의 주소록의 일부를 보여주는 예
도 12 - "My name is HanAll."을 데이터베이스에 등록 및 입력하는 과정
도 13 - 문장예측이 이루어진 상태에서의 기호입력 과정
도 14 - 독립적인 'space'와 'sym'키를 갖는 원형자판의 구성
도 15 - 독립적인 'space'와 'sym'키를 갖는 사각형 자판
도 16 - 8방향 키를 갖는 리모컨
<단어예측입력 방법에 의한 'boy' 입력>
도 2는 'boy'를 단어예측입력방법으로 입력하기 위해 ambiguous key sequence ['abc'-'mno'-'wxyz']에 따라 키를 순서대로 눌러 주었을 때 터치스크린 화면에 'boy'를 포함한 예측단어가 표시된 상태를 보여주고 있다. 이들 예측단어들은 각 단어의 첫 번째 문자가 'a, b, c'중의 하나이고, 두 번째 문자는 'm, n, o' 중의 하나이며 세 번째 문자는 'w, x, y, z' 중에 하나로서 구성된 단어로서 사전적인 데이터베이스에 수록되어 있는 것을 사용빈도에 따라 추출하여 표시되는 것이다.
도 2(a)와 (b)는 예측단어가 키패드 내부에 표시된 경우이고, 도 2(c)는 예측단어가 키패드 위쪽에 별도 영역에 보여지고 있는 경우이다. 도 2(c)의 경우 예측단어를 입력하기 위해서는 키패드 위쪽에 표시되어 있는 예측단어 목록 중에서 입력하고자 하는 단어가 표시된 영역을 터치하면 입력된다. 도 2(a)와 (b)의 경우는 예측단어가 키패드 내부에 표시되어 있으므로 예측단어가 표시된 영역을 터치하는 경우는 각 키를 눌러주는 동작에 해당되므로 이 경우에 예측단어를 입력하기 위한 방법은 키패드 중앙의 검은색 키에서 드래그 동작으로 예측단어가 표시된 키로 이동한 후 손가락을 떼면 그 키에 표시된 예측단어가 입력된다. 도 2(a), 도 2(b)의 경우 예측단어가 표시된 키를 터치한 상태에서 방향에 관계없이 일정한 거리를 이동한 후 손가락이 이격해도 입력될 수 있다. 위의 두 가지 방법 중 하나에 의해 예측단어가 입력되는 경우 도 2의 'Sym'키(L21) 대신에 중앙의 검은색 키(L22)가 대신 사용될 수 있다. 도 2a와 도 2b에 보여지는 단어예측입력방법은 도 2c에 보여지는 방법에 비해 예측단어 표시를 위한 별도의 영역이 필요하지 않아서 키보드 입력 영역을 줄일 수 있는 장점이 있다. 이러한 장점을 활용한 예가 도 9에 보여지는 스마트워치에서의 자판이다.
'www.fda.gov'와 같은 웹주소도 포함시킨다. 그리고 단어검색에 사용되는 키 중에 문자가 지정된 키 외에 '.'를 포함한 기호들이 지정된 ambiguous 'Sym'키가 있어서 'www.fda.gov'를 입력하기 위해서 다음의 식 (1)과 같은 순서의 키입력이 이루어지면 도 1(c)에 보여지는 바와 같이 예측 목록으로 'www.fda.gov'가 표시되어(자판내에 이탤릭체로 표시됨) 선택하면 입력되도록 하는 것이다. 즉 기호 '.'를 입력하기 위해 문자모드에서 기호모드로 변경할 필요도 없이 식 (1)에 해당하는 키입력으로 'www.fda.gov'를 입력할 수 있게 되는 것이다.
'wxyz'-'wxyz'-'wxyz'-'Sym'-'def'-'def'-'abc'-'Sym'-'ghi'-'mno'-'tuv' ...... (1)
즉 문자모드에서 기호모드로의 변환없이 단지 열한 번의 키 입력으로 'www.fda.gov'를입력할 수 있게 되는 것이다. 그리고 도 1에 보여지는 자판은 도 9에 보여지는 9개의 키로 이루어진 자판으로 대체할 수 있어서 결과적으로 9개의 키로도 웹주소와 password와 같은 문자-기호의 혼합 구절을 qwerty keyboar에서와 같이 손쉽게 입력할 수 있는 방법을 제공하고자 한다.
< 문구예측입력방법에 의한 이메일주소 '[email protected]'의 입력 >
도 2(c)는 일반적인 단어예측입력방법의 자판 구성을 보여주고 있는데 이러한 일반적인 단어예측입력방법에서 이메일 주소 '[email protected]'를 입력하기 위해서는 다음과 같은 과정을 거친다.
(i) 숫자모드에서 '123'을 입력
(ii) 기호모드로 전환하여 '@'를 입력
(iii) '영어모드로 전환하여 'ivy'를 단어예측입력으로 입력
(iv) '기호모드로 전환하여 '.' 입력
[ 도 2(c)의 자판 가장 좌측 열에 위치한 키 중의 하나에
'.'가 지정될 경우 기호모드 전환은 생략 가능하며
* 이 경우 (v)의 과정에서 영어모드로의 전환 불필요 ]
(v) 영어모드로 전환하여 'net'를 단어예측입력으로 입력
'[email protected]'의 입력이 단어예측입력으로 이루어진다고 하여도 그 과정이 모드변경을 거쳐야 하므로 입력이 불편하게 된다. 이에 반하여 도 1에 보여지는 자판구성으로 문구예측입력방법을 이용하면 모드변경 없이 '[email protected]'가 입력된다. 그 과정은 아래의 식 (7)에 해당하는 ambiguous key sequence에 따르는 키입력이 이루어지면 예측문구 '[email protected]'가 도 3(a)에 보이는 것처럼 자판영역 내에 표시되어 '[email protected]'를 선택/입력 하는 것이다. '[email protected]'를 선택하는 방법은 도 2에서 예측단어 'boy'를 선택하는 방법과 동일하다. 즉 키패드 중앙의 검은색 키에서 드래그 동작으로 '[email protected]'가 표시된 키로 이동한 후 손가락을 떼거나 '[email protected]'가 표시된 키를 터치한 상태에서 방향에 관계없이 일정한 거리를 이동한 후 손가락을 이격하여 '[email protected]'를 입력하는 방법이다.
'Num'-'Num'-'Num'-'Sym'-'ghi'-'tuv'-'wxyz'-'Sym'-'mno'-'def'-'tuv' ..... (7)
여기서 'Num'키는 도 3의 L31을 가리키며 숫자 1부터 0까지 10개의 숫자가 지정된 ambiguous key이다.
< 사전적 데이터베이스에 문구를 등록하는 방법>
실시예 1에서 보여주는 바와 같이 본 발명의 문구예측입력방법은 멀티탭핑방식에 비해 모드변환("문자모드 <-> 기호모드")없이 빠르게 입력할 수 있는 방법을 제공한다. 이러한 장점에도 불구하고 예측입력방법의 한 가지 단점은 입력하고자 하는 단어(문구)가 사전적 데이터베이스에 등록되어 있지 않은 경우이다. 그리고 실제로 키입력이 완료되기 전까지는 입력하고자 하는 단어(혹은 문구)가 등록되었는지의 여부를 알 수 없다는데 있다. 이를 극복하기 위한 방안으로 ambiguous key 입력이 완료되었을 때 입력하고자 하는 문구가 데이터베이스에 등록되어 있지 않더라더 그 상태에서 데이터베이스에 문구를 등록하여 입력을 완성하는 방법을 설명하고자 한다.
도 4는 '[email protected]'가 데이터베이스에 등록되어 있지 않은 경우에 '[email protected]'를 데이터베이스에 등록하는 과정을 보여주고 있다. 실제로 도 4의 등록 과정이 시작되는 것은 도 3(b)에 보이는 상황이다. 즉 '[email protected]'를 입력하기 위해 식 (7)에 해당하는 키입력을 진행하였는데 '[email protected]'를 비롯하여 어떠한 문구도 사전적 데이터베이스에 등록되어 있지 않은 경우이다. 그래서 도 3(b)에 보이는 바와 같이 예측단어 대신에 numeric code sequence '55503890629'가 자판 영역 내에 표시되고 이와 더불어 'Reg'문구가 예측단어처럼 함께 표시된다. 'Reg'문구는 도 4에 보여지는 등록과정을 수행하는 기능을 담당하게 되며 예측단어가 추출된 상태에서도 자판 내에 항상 표시되어 등록과정 준비를 하게된다. 그 이유는 입력된 ambiguous key sequence에 해당하는 문구가 사전적 데이터베이스에 이미 등록되지 않은 경우를 대비하기 위함이다. 그리고 등록과정을 실행하기 위한 'Reg'문구의 선택하는 방법은 도 2a와 도 2b에서 예측단어를 선택하는 방법과 동일하다. 따라서 'Reg'문구가 선택되면 도 4에 보여지는 바와 같이 등록과정이 실행된다. 이 등록과정을 '[email protected]'의 경우로 설명하면 numeric code sequence '55503890629'를 구성하는 numeric code에 따라 해당 확장자판이 순서대로 활성화되어 입력이 진행된다. 참고로 표 2는 numeric code에 대응되는 확장자판의 구성을 보여준다.
< numeric code에 대응되는 확장자판 구성내용>
numeric code 대응 확장자판 내용
1 'a', 'b', 'c', 'A', 'B', 'C'키로 구성
2 'd', 'e', 'f', 'D', 'E', 'F'키로 구성
3 'g', 'h', 'i', 'G', 'H', 'I'키로 구성
4 'j', 'k', 'l', 'J', 'K', 'L'키로 구성
5 '1', '2', '3', '4', '5', '6', '7', '8', '9', '0' 키로 구성
6 'm', 'n', 'o', 'M', 'N', 'O'키로 구성
7 'p', 'q', 'r', 's', 'P', 'Q', 'R', 'S'키로 구성
8 't', 'u', 'v', 'T', 'U', 'V'키로 구성
9 'w', 'x', 'y', 'z', 'W', 'X', 'Y', 'Z'키로 구성
0 qwerty keyboard에 지정된 기호 32개와 '공백'문자(space)
` ~ ! @ # $ % ^ & * ( ) - _ = + [ ] { } ; : ' " , . ? < > / | \
이러한 배경에서 '[email protected]'의 등록과정 첫 단계는 도 4a에 보여지는 바와 같이 '[email protected]'의 numeric code sequence '55503890629'의 첫 번째 numeric code '5'에 해당하는 확장자판으로서 숫자자판이 활성화 되어 '[email protected]'의 첫 글자 '1'을 입력하는 과정이다. [ 도 4에서 점선 원은 누름 동작을 의미한다. ] 이어서 도 4b와 도 4c는 numeric code sequence '55503890629'의 두 번째와 세 번째 numeric code는 '5'이므로 도 4a에서와 마찬가지로 숫자 자판이 활성화 되어 '[email protected]'의 두 번째, 세 번째 문자인 '2'와 '3'을 입력하는 과정이다. 도 4d는 '@'를 입력하기 위한 과정으로 numeric code sequence '55503890629'의 네 번째 ambiguous key code '0'에 해당하는 기호자판이 활성화된 상태이며 기호자판의 '@'가 포함된 '$@~'키를 터치하는 과정이다. 이하는 도 4(a)~도4(d)와 같은 맥락으로 등록하는 과정이다.
도 4e는 '$@~'키를 터치하면 '$', '@', '~'가 좌우로 확장 배치되어 원래의 키 위치에서 손가락을 떼어 '@'가 입력됨을 보여준다. 도 4f은 'i'를 입력하기 위해 'ghi'키의 구성 알파벳인 'g', 'h', 'i', 'G', 'H', 'I'로 구성된 자판이 활성화 되어 'i'가 지정된 키를 터치하여 'i'의 입력이 완료된다. 'i'가 입력되면 자동으로 다음 알파벳인 'v'를 입력할 수 있도록 't', 'u', 'v', 'T', 'U', 'V'로 구성된 자판이 활성화되어 'v'가 지정된 키를 터치하여 'v'가 입력된다. 도 4h로부터 도 4m까지는 'y', '.', 'n', 'e', 't'를 차례대로 입력하는 과정이다.
이러한 등록과정이 마무리되면 도 4(m)에 보이는 바와 같이 기기 내부적으로 사전적 데이이터베이스에 등록됨과 동시에 '[email protected]'가 입력창에 입력되어(L41) 사용자는 입력하고자 하는 문구가 데이터베이스에 등록되었는지의 여부를 염려할 필요가 없게 된다. 이와 같은 '[email protected]'의 등록 이후에는 numeric code sequence '55503890629'에 해당하는 키입력[식 (7)에 해당]이 이루어지면 도 4(n)에 보여지는 바와 같이 자판영역에 '[email protected]'가 예측문구로서 표시되어 선택/입력이 이루어질 수 있게 되며 재차 등록할 필요가 없어진다.
< 예측입력방법으로 공백문자(space)를 포함하는 문구를 입력하는 과정 >
본 발명의 구성에 따라 공백문자(space)를 포함하는 'Arnold J. Toynbee'라는 인명을 한 번에 입력하는 과정이 도 5에 보여지고 있다. 이미 실시예 2에서 '[email protected]'의 입력과정을 설명한 바와 같이 도 1에 보여지는 자판을 이용하여 'Arnold J. Toynbee'를 입력하기 위한 ambiguous key sequence는 식 (3)과 같다. 여기서 'Arnold J. Toynbee'와 '[email protected]'의 차이점은 공백문자(space)가 기호처럼 취급되어 공백문자에 대한 ambiguous key 입력이 'Sym'키로 이루어지는 점이다.
식 (3)에 따른 키입력 과정이 완료되면 자판영역에 예측문구로서 'Arnold J. Toynbee'가 표시되어 실시예 2에서와 같이 선택/입력된다. 만약에 예측입력방법을 위한 사전적 데이터베이스에 식 (3)에 해당하는 문구가 없다면 도 5b와 같이 식 (3)의 numeric code sequence '17664204008696122'가 자판영역에 예측단어처럼 표시되어 사전적 데이터베이스에 이 numeric code sequence '17664204008696122'에 해당하는 문구가 등록되어 있지 않음을 나타내고 있다. 이럴 경우 자판영역에 보여지는 'Reg' 문구를 선택하면 사전적 데이터베이스에 이 문구를 등록하는 과정이 실행된다. 여기서 'Reg' 문구를 선택하는 방법은 이미 설명한 예측단어 선택방법과 동일하며 이미 사전적 데이터베이스에 'Arnold J. Toynbee'가 등록되어 있다고 하여도 'Reg' 문구는 자판영역에 보여지도록 하여 항상 등록과정을 수행할 준비를 하는 것이다. 그 이유는 사전적 데이터베이스가 주로 사용되는 문구만을 등록하여 데이터베이스가 기기의 메모리에서의 비중을 작게 할 수 있고 더 나아가서 데이터베이스의 크기를 작게 함으로서 문구의 예측과정을 신속히 처리하게 하는 것이 모든 문구를 미리 등록하여 추가적인 등록이 필요없게 하는 것보다 바람직하기 때문이다.
도 6은 'Arnold J. Toynbee'를 사전적 데이터베이스에 등록하는 과정을 보여주고 있다. 이 등록과정은 'Arnold J. Toynbee'의 numeric code sequence '17664204008696122'를 이루는 각각의 numeric code에 대응되는 확장자판이 표 2의 규칙에 따라 순서대로 활성화되어 'Arnold J. Toynbee'를 구성하는 문자와 기호(공백문자를 포함)를 순서대로 입력하게 된다. 구체적으로 설명하면 도 5a의 상태에서 중앙의 검은 키로부터 터치 드래그 동작으로 'Reg'키로 이동하여 손가락을 자판으로부터 떼면 도 6a에 보여지는 등록과정의 첫 화면으로 'a', 'b', 'c', 'A', 'B', 'C'를 포함하는 확장자판이 표시된다. 첫 글자인 'A'키를 터치하면 화면에 'A'가 입력되면서 동시에 데이터베이스에 등록되는 과정이 시작되는 것이다. 도 6b부터 도 6t까지 등록이 완료되면 입력창에 'Arnold J. Toynbee'가 입력됨과 동시에 데이터베이스에 등록되는 것이다. 그리고 이와 같이 'Arnold J. Toynbee'가 데이터베이스에 등록된 후에는 식 (3)의 키순서로 키 입력이 완료되면 도 5a에 보이는 바와 같이 예측문구로서 'Arnold J. Toynbee'가 화면에 표시되어 선택/입력될 수 있게 된다.
그리고 'Arnold J. Toynbee'문구 등록과정 중에 'Arnold J. Toynbee'문구에 포함된 '공백'문자(space)를 입력하기 위해서는 도 6g에 보여지는 기호자판이 활성화되어 중앙의 검은색 키를 터치하면[도 6의 등록과정 중에서 점선 원은 활성화된 확장자판에서 손가락으로 터치하는 위치를 표시한다.] 도 6h에 보이는 바와 같이 '공백'키를 포함한 총 9개의 기호가 배열된 상태가 되어 '공백'문자는 중앙의 검은색 키에 지정되므로 주변키로 움직이지 않고 손가락을 떼면 입력된다.
이렇게 공백문자도 문자나 기호처럼 취급되어 공백문자를 포함하는 문구와 심지어 문장까지 예측입력방법으로 손쉽게 입력가능하게 되는 것이다.
< 예측입력방법에 의한 문장입력>
실시예 1과 실시예 3에서 보여주는 바와 같이 숫자와 기호 및 공백문자도 예측입력방법으로 입력가능하게 되어 문장도 예측입력방법을 통해 손쉽게 입력될 수 있다. 일 예로 'Where are you going?'을 일반적인 단어예측입력방법으로 입력할 경우 문장을 구성하는 각각의 단어 'Where', 'are', 'you', 'going'를 사전적 데이터베이스에 추출하여 입력하고 각 단어 사이에 '공백'문자(space)를 입력해 주어야 하는데 반해 본 발명의 기호를 문자와 동일하게 취급하는 예측입력방법으로는 식 (8)[식 (8-1) ~ 식 (8-7)]에 해당하는 ambiguous key 입력이 이루어지면 도 7(a)에 보여지는 바와 같이 'Where are you going?'이 예측단어처럼 자판영역에 표시되어 단어처럼 선택하여 입력하는 것이다.
'wxyz'-'ghi'-'def'-'pqrs'-'def' ... (8-1)
-'Sym' ... (8-2)
-abc'-'pqrs'-'def' ... (8-3)
-'Sym' ... (8-4)
-'wxyz'-'mno'-'tuv' ... (8-5)
-'Sym' ... (8-6)
-'ghi'-'mno'-'ghi'-'mno'-'ghi' ... (8-7)
-'Sym' ... (8-8)
< 문장을 사전적 데이터베이스에 간편하게 등록하는 과정 >
도 4와 도 6에 보여지는 바와 같이 예측입력방법에 있어서 입력하고자 하는 문구(단어)가 사전적 데이터베이스에 없을 경우 이를 데이터베이스에 등록하는 방법은 numeric code sequence의 각 숫자에 해당하는 확장자판이 순서대로 활성화되어 문구를 구성하는 문자, 숫자, 기호를 순서대로 하나씩 입력하였다. 이러한 문구 등록방법은 문구가 짧을 경우에는 문제가 없지만 실시예 4에서와 같이 입력하고자 하는 문장이 사전적 데이터베이스에 등록되어 있지 않고 그 문장이 길다면 문장을 구성하는 문자를 하나씩 등록하는 것은 여간 불편한 것이 아니다. 이를 극복하는 방안으로 단어예측입력방법을 문장등록과정에 이용하는 것이다. 즉 만약 식 8에 해당하는 ambiguous key 입력을 수행한 후에 문장 "Where are you going?"이 문장 데이터베이스에 등록되어 있지 않은 경우 도 7(b)에 보이는 바와 같이 "Where are you going?"이 표시되지 않고 대신에 numeric code sequence '93272017209680363630'가 예측단어처럼 자판영역에 보여진다. 이 경우 도 7(b)에서 보이는 'Reg'키를 선택하여 'Where are you going?'의 등록 과정에 진입한다. 본 실시예에서 보여주는 등록과정이 실시예 2에서의 등록과정과 다른 점은 다음과 같다. 실시예 2에서는 'Reg'키를 선택하면 numeric code squence를 구성하는 numeric code에 해당하는 확장자판을 표 2에 근거하여 순서대로 활성화하여 문자을 구성하는 문자를 하나씩 등록하였다. 이에 반해 본 실시예의 등록과정에서는 문장을 구성하는 단어나 숫자 등이 단어예측방법으로 입력이 가능하면 이들 단어를 제외한 부분만을 실시예 2와 같이 문자를 하나씩 등록하는 것이다. 따라서 본 실시예의 등록과정의 첫 단계는 문장의 numeric code sequence를 기호와 기호가 아닌 부분으로 구분하는 과정이다. 즉 numeric code sequence '93272017209680363630'를 기호와 기호가 아닌 그룹으로 세분하기 위해 기호를 나타내는 ambiguous key code '0'을 경계로 다음과 같이 세분화 하는 것이다.
[ '93272', '0', '172', '0', '968', '0', '36363', '0' ] ...(9)
이렇게 세분화된 segmented numeric code sequence 중에서 '0'이 아닌 부분에 대해서는 단어예측입력방법으로 문장등록과정을 수행하는 것이다. 식 (9) segmented ambiguous numeric code sequence의 첫 번째 numeric code sequence '93272'는 문자에 해당되는 숫자열이므로 도 7(c)에 보이는 바와 같이 numeric code sequence '93272'에 해당하는 예측단어 'where'가 표시되어 있어서 이를 예측단어 선택하는 방법으로 선택하면 'where'가 문장의 첫 구절로서 등록됨과 동시에 입력창에 입력된다.(L71)
[ 도 7(c)에는 'Where'의 첫 글자인 'w'가 대문자로 표시되어 있는데 이는 'where'가 예측단어로 자판에 표시된 상태에서 'shift'키(L72)를 눌러주어 'Where'로 변경된 상태이다. 도 7(c)에서 shift키(L73)는 이탤릭체로 표시되어 있는데 이는 'shift'키(L73)가 눌려졌음을 의미한다.]
만약에 'where'가 사전적 데이터베이스에 등록되어 있지 않으면 도 7(d)와 같이 숫자열 '93272'가 예측단어처럼 자판내 영역에 표시되고 이 상태에서 'where'의 등록과정을 실행시키기 위해 'Reg'문구를 선택하면 표 1의 구성에 따라 숫자열 코드 '93272'에 해당하는 확장자판이 순서대로 활성화되어 실시예 2와 실시예 4에서 보여준 방식과 동일하게 'where'의 문자 하나씩 입력하는 방법으로 사전적 데이터베이스에 'where'가 등록되고 입력창에 'Where'기 입력되는 것이다.(L74) 이렇게 '93272'에 해당하는 단계가 완료되면 자동으로 'Where'의 다음 단계인 '공백'문자(space)를 등록하는 단계로 넘어가서 도 7(e)에 보여지는 바와 같이 기호자판이 활성화된다. 이 상테애서 가운데 검은색 키를 터치한 후 손가락을 떼면 공백문자(space)가 입력되고 그 다음 단계인 식 (9)의 두 번째 숫자열 '172'에 해당하는 단어예측입력 단계가 실행되어 도 7(f)에 보여지는 바와 같이 'are'가 예측단어로 자판영역 내에 표시되어 선택/입력될 수 있게 되는 것이다. 이하 'you', 'going'에 해당하는 등록과정도 마찬가지로 진행되어 문장등록과정이 종료되고 동시에 입력창에 'Where are you going?'이 입력되는 것이다.
[ 참고로 위의 'Where'를 사전적 데이터베이스에 등록하는 과정은 문장 등록과정의 일부로서 수행하게 되므로 'Where'의 'W'를 대문자로 등록하게 되지만 사전적 데이터베이스에 'Where'가 등록되어 있지 않을 경우 소문자인 'where'로서 사전적 데이터베이스에 등록되도록 하는 것이 바람직하다. 왜냐하면 나중에 'where'를 소문자로 입력해야 할 경우 생기더라도 문제가 없지만 만약 문장의 일부가 아닌 하나의 단어로서 'where'가 'Where'로 등록되어 있다면 키입력 numeric code sequence '93272'에 해당하는 단어로서 'Where'가 예측단어로 표시되므로 이경우 'Where'의 'W'를 소문자로 변경하는 방법이 없으므로 'where'를 'Where'와 구별하여 사전적 데이터베이스에 새로운 단어로서 등록해야 하는 상황이 벌어지기 때문이다. ]
위에서 본 바와 같이 문장등록과정의 일부분으로 단어등록이 이루어지면 이는 사전적 데이터베이스에 단어의 등록이 문장등록과 동시에 이루어지는 효과를 가져온다. 따라서 본 실시예의 문장등록과정을 실시예 3의 'Arnold J. Toynbee'의 등록과정에 적용할 경우 'Arnold', 'Toynbee'가 사전적 데이터베이스에 등록되어 있다면 도 6(a) ~ 도 6(f)까지의 과정과 도 6(m) ~ 도 6(s)의 과정이 사전적 데이터베이스에서 'Arnold'와 'Toynbee'를 예측/선택/입력하는 각각 하나의 단계로 줄어들어 사전적 등록과 입력과정이 간소화되는 장점을 가져온다. 만약 'Arnold'와 'Toynbee'가 사전적 데이터베이스에 등록되어 있지 않다면 도 6의 과정을 그대로 진행하면 된다.
< 문구 및 문장예측 키입력방법의 간략화 개요>
실시예 1, 3, 4에서 기호뿐만 아니라 공백문자(space)를 포함하는 문구 및 문장을 예측입력방법으로 입력하는 방법을 예시하였다. 이러한 문구 및 문장의 예측입력방법을 위한 키입력을 더 간편하게 하는 방법을 기술하고자 한다.
문장예측입력으로 'Who is he?'를 입력하기 위한 ambigous key sequence는 실시예 3의 방법을 따르면 식 (10-2)이다. 그리고 식 (10-3)은 식 (10-2)와 달리 (10-1)의 'Who is he?'를 구성하는 단어들의 경우 첫 글자인 'w', 'i', 'h'에 해당되는 ambiguous key만을 키입력한 ambiguous key sequence로서 단어의 첫글자에 해당하는 ambiguous key만 입력이 이루어져도 문장이 예측되는 것이다. 이는 단어예측입력방법에서 'important'를 예측하기 위해 'import'에 해당하는 ambiguous key 입력이 이루어져도 'important'뿐만 아니라 앞부분이 일치하는 'importance', 'important' 등이 사전적 데이터베이스에서 예측되도록 하는 방법과 같은 맥락이다. 식 (10-3)과 같은 간편 키입력의 핵심은 입력하고자 하는 문장을 구성하는 요소 중에서 기호와 공백문자를 제외하고 그 나머지 부분의 경우 그것들의 일부만을 입력하여도 문장이 예측되도록 하는 것이다.
Who is he? ...(10-1)
'wxyz'-'ghi'-mno'-'Sym'-'ghi'-'pqrs'-Sym-'ghi'-'def'-'Sym' ...(10-2)
'wxyz' -'Sym'-'ghi' -'Sym'-'ghi'- 'Sym'...(10-3)
따라서 위와 같이 문장을 이루는 단어의 일부분만을 키입력하여도 문장이 예측되도록 하는 예측문장 추출 기준이 표 5에 명시되어 있고 이 기준을 표 3의 문장과 표 4의 ambiguous key 입력에 적용하여 데이터베이스에 등록된 표 3의 문장이 표 4의 ambiguous key 입력에 따른 예측문장으로 추출되는 과정을 설명하고자 한다.
< 6-I. 예측문장 추출 변수 numeric code sequence를 데이터베이스에 등록된 문장으로부터 산출>
표 3에 보이는 바와 같이 데이터베이스에 등록된 문장은 그에 해당하는 ambiguous key sequence로 표현되며 이렇게 표현된 ambiguous key sequence는 'Sym'키를 경계로 세분되는데 이렇게 세분된 것을 segment라고 하고 이들 segment를 표 3의 첫 번째 열 위에서부터 차례로 배열한다. 그런 다음 각 segment의 ambiguous key sequence를 표 1에 따라 numeric code sequence가 산출되는데 이 numeric code sequence를 표 3의 두 번째 열의 해당 segment에 기입한다.
< 6-II. 예측문장 추출 변수 numeric code sequence를 키입력으로부터 산출>
위 문단 <6-I>에서와 마찬가지로 문장예측을 위한 키입력의 ambiguous key sequence로부터 표 1에 근거하여 numeric code sequence를 산출한 다음 해당 segment에 기입한다.
문단 < 6-I >에서 산출된 numeric code sequence(데이터베이스의 문장의 numeric code sequence에 해당)와 문단 < 6-II >에서 산출된 numeric code sequence(키입력의 numeric code sequence에 해당)를 표 6의 기준에 따라 비교하여 기준 1과 2를 모두 만족하면 문장예측을 위한 키입력이 데이터베이스의 문장과 부합된다고 판단하여 데이터베이스의 문장이 예측문장으로 추출되는 것이다. 위의 내용으로 표 3의 데이터베이스에 등록된 문장인 'Where are you going?'의 numeric code sequence와 표 4의 ambiguous key 입력의 numeric code sequence를 비교하여 표 4의 키입력이 표 3의 데이터베이스의 문장을 추출할 수 있는지의 여부를 결정하는 과정을 표 5의 기준을 들어 설명하고자 한다.
즉, 표 4의 key sequence 1(이하 'A'라 지칭)의 numeric code sequence과 표 3의 문장(데이터베이스에 등록된 문장 - 이하 'B'라 지칭)을 표 5의 기준에 따라 비교하면 다음과 같다.
기준 1에 의거하여 각 segment 별로 A와 B의 numeric code sequence의 자릿수를 비교할 때 첫 번째 segment의 경우 B의 numeric code sequence는 '93272'이므로 자릿수가 5이고 A의 numeric code sequence가 '932'로서 자릿수가 3이 되어 B의 numeric code sequence 자릿수보다 작아서 기준 만족한다. 이하 2번째 segment에서 7번째 segment까지 모두 A의 numeric code sequence 자릿수가 B의 numeric code sequence의 자릿수보다 작거나 같아서 기준 만족한다. 마지막으로 8번째 segment는 키입력의 numeric code sequence가 없으므로 자릿수가 0 에 해당하고 데이터베이스 문장의 numeric code sequence가 '0'이여서 자릿수가 1에 해당하여 기준 1이 충족된다.
기준 2에 의거하여 각 segment 별로 A와 B의 numeric code sequence가 앞에서부터 일치하는지 비교할 때 첫 번째 segment의 경우 B의 numeric code sequence는 '93272'이고 A의 numeric code sequence는 '932'이므로 앞에서부터 일치하므로 기준 만족한다. 이어서 두 번째 segment부터 7번째 segment까지 비교할 때 A의 numeric code sequence가 B의 numeric code sequence와 모두 앞에서부터 일치하므로 기준을 만족한다. 그리고 8번째 segment의 경우 키입력의 number code sequence가 없으므로 기준을 만족하므로 기준 2도 충족한다. 따라서 표 4의 키입력에 해당하는 key sequence 1은 표 5의 기준을 만족하여 데이터베이스로부터 'Where are you going?'을 예측문장으로 추출하여 선택/입력이 가능하게 되는 것이다.
위에서 표 4의 key sequence 1을 데이터베이스의 문장과 비교한 것처럼 표 4의 key sequence 2를 표 3의 문장 'Where are you going?'와 비교할 때 표 3의 문장은 8번째 segment까지만 있는데 반해 key sequence 2는 9번째 segment도 있으므로 기준 2의 조건이 충족되지 않으므로 'Where are you going?'을 예측문장으로 추출할 수 없게 된다.
Where are you going?
ambiguous key sequence number code sequence Segment
'wxyz'-'ghi'-'def'-'pqrs'-'def'- 93272 1st
'Sym'- 0 2nd
'abc'-'pqrs'-'def' 172 3rd
'Sym' 0 4th
'wxyz'-'mno'-'tuv' 968 5th
'Sym' 0 6th
'ghi'-'mno'-'ghi'-'mno'-'ghi' 36363 7th
'Sym' 0 8th
key sequence 1 key sequence 2
ambiguous key sequence number code sequence Segment ambiguous key sequence number code sequence
'wxyz'-'ghi'-'def' 932 1st 'wxyz'- 9
'Sym'- 0 2nd Sym'- 0
'abc'-'pqrs'-'def' 172 3rd 'abc'- 1
'Sym' 0 4th Sym' 0
'wxyz'-'mno'-'tuv' 968 5th 'wxyz'-'mno'-'tuv' 968
'Sym' 0 6th Sym'- 0
'ghi'-'mno'-'ghi' 363 7th 'ghi'-' 3
8th 'Sym'- 0
9th 'abc'- 1

기준 1

각 segment에서 number code sequence의 자릿수를 비교할 때
키입력의 number code sequence의 자릿수가
데이터베이스 문장의 number code sequence의 자릿수가 작거나 같아야 한다.
(단 segment에 number code sequence가 없는 경우 자릿수를 0(zero)으로 취급하여 비교한다.)

기준 2

기준 1을 충족할 때,
각 segment에서
키입력의 number code sequence가
데이터베이스 문장의 number code sequence와 앞에서부터 비교하여 일치해야 한다.
(단 키입력의 number code sequence가 없는 경우 기준 2를 충족한다.)
key sequence 3 key sequence 4
ambiguous key sequence number code sequence Segment ambiguous key sequence number code sequence
'wxyz'- 932 1st 'wxyz'- 9
'Sym'- 0 2nd Sym'- 0
'abc'-' 172 3rd 'abc'- 1
'Sym'- 0 4th Sym' 0
'wxyz'-' 968 5th 'wxyz'-'mno'-'tuv' 968
'Sym'- 0 6th
'ghi'- 3 7th
이상에서 살 펴본 표 5의 기준을 적용하여 표 6에 보여지는 key sequence 3과 key sequence 4는 표 3의 문장(데이터베이스의 문장으로 가정)과 비교하였을 때 표 5의 기준을 만족하므로 key sequence 3과 key sequence 4는 모두 'Where are you going?'을 데이터베이스에서 예측문장으로 추출하여 선택/입력될 수 있게 하는 것이다. 즉 'Where are you going?'의 각 단어의 첫 글자만을 입력하여도 예측문장으로 추출될 수 있고(key sequence 3의 경우) 심지어는 문장의 중간 'you'에 해당하는 ambiguous key 입력이 이루어진 상태에서도(key sequence 4의 경우) 'Where are you going?'이 예측문장으로 추측되어 선택/입력되는 것이다. 이러한 편리성을 위한 간략 키입력을 구현하기 위해서는 데이터베이스에서 예측문장을 추출하는 과정에 표 5의 기준을 적용하면 문장의 일부만의 입력으로도 예측문장의 추출이 가능해지므로 간략 키입력의 구현이 이루어지는 것이다.
< 간단한 웹주소 입력>
실시예 6에 설명된 문장예측입력방법을 웹주소 입력에도 적용할 수 있다. 일례로 "www.fda.gov"라는 웹주소 문구를 입력하기 위해는 일반적으로 식 (11)로 표시되는 키입력이 이루어져야 한다.
'wxyz'-'wxyz'-'wxyz'-'Sym'-
'def'-'def'-'abc'-'Sym'-'ghi'-'mno'-'tuv' ....(11)
하지만 실시예 6의 문장예측입력방법의 간략입력방식을 적용하면 식 (12)에 해당하는 키입력으로도 'www.fda.gov'가 사전적 데이터베이스로부터 추출되어 선택/입력 가능해지는 것이다.
'wxyz'-'Sym'-'def'-'def'-'abc'-'Sym'-'ghi'-'mno'-'tuv' ....(12)
웹주소는 일반적으로 'www.'로 시작하므로 식 (12)과 같이 키입력되어도 'www.fda.gov'가 사전적 데이터베이스에서 추출되어 입력될 수 있다.
< 예측입력방법에 의한 인터넷 검색 및 사전적 데이터베이스 활용 >
실시예 7까지 문구 혹은 문장예측입력방법이 사전적 데이터베이스로부터 문장을 추출하는 과정을 거쳐서 입력되었다. 그리고 단어예측입력방법은 키의 갯수가 한정된 모바일기기용 입력방법으로 사용되어 왔다. 이러한 모바일기기의 경우 대부분 인터넷에 연결되어 있으므로 단어예측입력방법을 위한 사전적 데이테베이스를 인터넷 서버에 저장된 것을 이용하면 모바일기기에 내장된 사전적 데이터베이스를 이용하는 것보다 효율적이다. 단어의 경우는 수 메가바이트 정도의 메모리로 사전적 데이트베이스를 구축할 수 있지만 문장의 경우는 이보다 훨씬 큰 메모리 용량이 필요하여 모바일기기에 데이터베이스를 저장하기 보다 인터넷 서버의 메모리를 이용하는 것이 유리하고 더욱이 데이터베이스에서 데이터를 추출하는 query 과정도 인터넷 서버의 고성능 프로세서를 이용하는 것이 모바일기기에서 query과정을 수행하는 것보다 입력과정을 신속하게 처리할 수 있게 된다. 이는 모바일 기기의 인터넷 전송속도가 초당 gigabyte에 이르게 되어 처리결과를 인터넷서버에서 모바일기기에 전달하는 과정에 실시간에 가깝게 되므로 굳이 데이터베이스를 모바일기기에 가지고 있을 필요가 없게 되는 것이다.
인터넷 검색엔진 ***, yahoo, bing 등의 검색에 문장예측입력방법을 적용할 수 있게 되면 스마트워치와 같이 키의 갯수가 제한되어 일반적인 입력방법으로는 입력이 어려운 경우에도 쉽게 검색할 수 있는 방법을 제공하는 것이다. 다만 이를 위해서 각 검색엔진이 구축하고 있는 데이터베이스의 인덱스(index)를 표 7에 보이는 바와 같이 구축되어야 한다. 즉 단어(구절, 웹주소, 문장 등)에 해당하는 인덱스가 일반적인 string code뿐만 아니라 ambiguous key sequence로도 구축되어야 한다. 표 7의 numeric code sequence는 표 1에 근거하여 산출된 것이므로 표 1의 내용이 변경되면 그에 따라 변경되어야 한다.
string code ambiguous key sequence numeric code sequence
according to
표 1
"www.fda.gov" 'wxyz'-'wxyz'-'wxyz'-'Sym'-'def'-'def'-'abc'-'Sym'-'ghi'-'mno'-'tuv' '99902210368'
"www.efa.gov.in" 'wxyz'-'wxyz'-'wxyz'-'Sym'-'def'-'def'-'abc'-'Sym'-'ghi','mno','tuv'-'Sym'-'ghi','mno' '99902210368036'
"We will be back." 'wxyz'-'def'-'Sym'-'wxyz'-'ghi'-'jkl'-'jkl'-'Sym'-'abc'-'def'-'Sym'-'abc'-'abc'-'abc'-'jkl'] '920934401201114'
표 7과 같이 검색엔진의 데이터베이스가 구축되어 있을 경우 검색 프로그램의 입력창에 식 (13)에 해당하는 ambiguous 키입력이 이루어지고 실행되면 도 8에 보이는 바와 같이 미국 식약청 홈페이지 사이트가 연결될 수 있는 링크(link) 아이템 목록이 보여 자판영역에 표시되는 주소('www.fda.gov')를 선택하거나 아니면 화면상에 표시되는 목록 사이트(site) 중에서 'www.fda.gov'를 터치하여 선택하면 되는 것이다.
'wxyz'-'wxyz'-'wxyz'-'sym'-'def'-'def'-'abc'-'sym'-'ghi'-'mno'-'tuv'
... (13)
이와 같이 도 1에 보이는 자판으로도 인터넷 사이트를 쉽게 연결할 수 있으며 심지어 문장입력도 쉽게 이루어질 수 있는 것이다. 현재 스마트폰의 차세대 모바일 기기로 주목받고 있는 스마트워치에서도 인터넷 검색, 일상적으로 사용되는 문장의 입력, 심지어 비밀번호의 입력도 스마트폰과 차이 없이 쉽게 이루어지게 되는 것이다.
<터치방식의 기기와 누름방식의 기기에의 비확정키 자판의 적용>
이상의 실시예에서 살펴 본 문장예측입력방법은 화면 터치방식의 키입력에 대해서 살펴 보았는데 누름방식의 키패드에 적용하여도 실행될 수 있다. 단지 차이점이라 하면 터치방식의 경우에는 드래그 동작에 예측단어를 선택하는 기능을 부여하여 키를 터치하는 것은 ambiguous key input이고 드래그 동작은 예측단어 혹은 예측문장 선택/입력 기능을 담당하여 구분이 된다. 하지만 키패드 누름입력 방식에서는 드래그 동작이 불가능하므로 대신에 길게 누르는 동작으로 드래그 동작을 대체하면 본 발명의 문장예측입력방법을 누룸키를 갖는 키패드에서도 적용할 수 있다.
본 발명의 문장예측입력방식을 위해서 기호나 공백문자를 문자처럼 ambiguous key에 지정하여 입력하도록 하였다. 하지만 공백문자의 경우 별도의 ambiquous key를 가지지 않고 키를 터치한 상태에서 드래그하여 그 키에 지정된 문자와 공백문자를 동시에 입력하는 기능을 담당하게 하여 키의 갯수를 줄일 수 있게 된다. 즉 'abc' ambiguous key를 터치한 상태에서 일정한 거리 이상을 움직일 경우 'abc'-'Sym'key를 입력하는 것과 같은 기능을 담당하게 하는 것이다. 이 경우 'abc'키를 터치한 후 드래그하는 동작으로 예측단어(문장)을 선택/입력하는 기능은 다른 방법으로 구현되어야 한다.
< 비확정키를 이용한 비확정 검색에서 검색 내용의 표시 우선순위>
실시예 8에서 살펴 본 바와 같이 본 발명의 비확정키를 이용한 입력시스템의 활용은 인터넷 검색과 같이 사용자의 기기에 ambiguous 입력에 대한 단어, 문장 및 구절의 데이터베이스가 존재하지 않고 대신 검색하고자 하는 검색 엔진에 데이터베이스가 존재하는 경우에도 입력시스템으로 활용될 수 있다. 다만 실시예 8에서 본 바와 같이 인터넷 검색의 경우 예상되는 검색 내용이 사용자 데이터베이스에 등록된 한 정된 내용과 달리 그 양을 예측할 수 없으므로 검색의 효율성을 높이기 위해 비확정 키입력에 대하여 추출되는 검색의 내용을 아래와 같은 순서로 추출하여 보여주는 것이 바람직하다. 즉 실시예 6에서 비확정키 입력에 따른 ambiguous key sequence에 대하여 추출되는 문구열(string code)이 다음의 우선 순위에 따라 추출되도록 하는 것이다.
우선 순위 1 :
검색되는 내용에 해당하는 number code sequence가 입력된 number code sequence와 정확히 일치하는 경우 우선적으로 추출한다.
우선 순위 2 :
검색되는 내용에 해당하는 number code sequence가 입력된 number code sequence와 정확히 일치하지 않으나
표 5의 기준과 맞는 경우 우선적으로 추출한다.
다음 표 7을 참고하여 위의 우선 순위에 따른 추출을 살펴보면 key sequence 3에 따른 비확정키 입력이 이루어진 경우 추출되는 문장은 표 5의 기준에 따라 추출문장 1~3 모두 가능하지만 그 중에서 우선 순위 1에 따라 추출문장 3이 최우선으로 표시되고 추출문장 2와 3이 차례대로 표시되도록 하여 사용자가 선택할 수 있도록 한다. 만약 하나의 추출문장만이 표시된다면 추출문장 3만이 표시되도록 하는 것이다. 그리고 key sequence 2에 따라 비확정키 입력이 이루어지면 표 5의 기준에 따라 추출문장 2와 3이 추출되고 그 중에서 추출문장 2가 우선적으로 표시된다. 따라서 key sequence 3은 문장의 마지막 단어인 'United'의 'U'에 해당하는 비확정키 'tuv'를 입력해도 전체 문장 'My name is United.'를 추출할 수 있지만 추출내용 중에 추출문장 2와 3이 검색되는 경우에는 'United'의 나머지 문자에 대해서 순차적으로 입력하여 추출된 검색 내용이 많아서 그 중에서 선별해야 하는 과정을 생략할 수 있게 되는 것이다.
추출문장 1
My name is United .
My name is United.
추출문장 2
My name is Uni .
My name is Uni.
추출문장 3
My name is U .
My name is U.
key sequence 1 'mno'-
'wxyz'
'Sym' 'mno'-
'abc'-
'Sym' 'ghi'-
'pqrs'
'Sym' 'tuv'-
'mno'-
'ghi'-
'tuv'-
'def'-
'def'
'Sym'
key sequence 2 'mno'-
'wxyz'
'Sym' 'mno'-
'abc'-
'Sym' 'ghi'-
'pqrs'
'Sym' ''tuv'-
'mno'-
'ghi'-
'Sym'
key sequence 3 'mno'-
'wxyz'
'Sym' 'mno'-
'abc'-
'Sym' 'ghi'-
'pqrs'
'Sym' 'tuv' 'Sym'
< 기호와 '공백문자'('space')가 지정된 'sym'키와 메뉴(확장)키를 갖는 9키 자판의 구성과 장점>
도 10은 비확정 검색을 입력을 위한 원형 자판 및 자판 배열을 보여주고 있다. 이 자판의 특징은 메뉴키와 'Sym'키을 별도로 가지고 있는 것이며 문자키의 배열은 qwerty keyboard의 배열을 유지하고 있으며 상단의 문자키는 3개로 구분되어 'qwer', 'tyu', 'iop'의 3개의 비확정키를 가지고 있다. 중단과 하단은 각각 2개의 키로 구성되어 qwerty keyboard의 자음배열을 좌우로 양분한 구성이다. 더욱이 숫자도 문자키에 지정되어 있는데 '0'과 '5'는 'qwer'키에 함께 지정되어 있고, '1'과 '6'은 'tyu'키에 함께 지정되어 있다. 즉 키에 보여지는 숫자와 이 숫자에 '5'를 더한 숫자가 함께 각각의 키에 지정되어 숫자를 위한 별도의 키가 없어도 숫자의 검색이 가능하도록 한 것이다. 그리고 'Sym'키는 '공백문자'('space')를 포함하여 표 2의 numeric code '0'에 해당되는 기호를 포함한다. 그리고 이 자판의 'menu'키는 다양한 기능을 수행하게 되는데 그 중의 하나가 이 키를 터치하면 도 10(b)에 보이는 바와 같이 'category(,)'키를 활성화시켜 구문 혹은 문장 추출을 보다 용이하게 하는 기능을 수행한다.
다음은 미국 우편주소의 데이터베이스를 검색하기 위해 'category'키를 이용하여 비확정키 입력이 이루어지는 과정을 설명한다. 도 11은 미국 시카고의 주소록의 일부분을 보여주고 있다. 주소 표기를 명확하게 하기 위해 '공백문자'('space')를 도 11에서는 '-'(hyphen)으로 표시하고 있다. 표 11에 보여지는 주소에서 '-'(hyphen)을 '공백문자'('space')로 변환하여 실제로 사용 되는대로 표시하면 아래와 같다.
1723 WEST 107TH STREET,
City of Chicago, IL
60643
위의 주소를 검색하기 위해서는 일렬로 주소를 다음과 같이 배열하게 되는데 ','(comma)로 표시되는 구분된 주소는 주소의 구분을 용이하게 하기 위한 '구역구분' 기호이다.
1723 WEST 107TH STREET, City of Chicago, IL 60643
따라서 이러한 '구역구분'기호 ','(comma)를 단순한 기호로서가 아니라 도 11의 구분기호 'category'키로 적용하여 입력하면 이 주소를 검색하기 위한 비확정(ambiguous)키 입력은 식 (14) 같이 이루어질 수도 있는데 특이한 점은 'category'(,)키를 이용하면 비확정(ambiguous)키 입력을 표 5의 기준에 따른 간단한 입력보다도 더욱 축약되어 검색이 용이하게 되는 이점을 가져오게 된다. 즉 category키 입력으로 'STREET'에 해당되는 비확정키 입력이 이루어지지 않아도 category키 다음에 입력되는 비확정키가 도시를 나타내는 'City of Chicago'의 첫 문자에 해당됨을 알려주어 'STREET'에 해당되는 비확정키 입력이 생략되어도 주소 검색이 가능하게 되는 것이다. 다만 category키를 활용하기 위해서는 검색 내용이 이러한 규칙에 따라 검색되어야 하는 규정이 미리 설정되어야 한다는 한계가 있다. 하지만 이러한 규칙이 설정되어 있다면 도 11에 보여지는 자판의 구성과 같이 category키를 활용할 수 있다. 다음의 실시예 13은 도 11에 보여지는 자판구성의 category키가 실제로 활용되는 검색을 설명한다.
'1tuy'-'2iop'-'2iop'-'3asdf'- : '1723'
'sym'- :
'0qwer'- : 'W'(est)
'sym'-
'1tyu'-'0qwer'-'2iop'-'1tyu'-'ghjkl'- : '107TH'
'category'-
'4zxcv'- : 'C'(ity)
'sym'- :
'2iop'- : 'o'(f)
'sym'-
'4zxcv' : 'C'(hicago) ... (14)
실시예 12에서 살펴 본 'category'키의 장점은 검색하고자 하는 문장 혹은 문구가 이어지지 않는 구조를 가져도 된다는 장점이다. 그리고 일반적으로 인터넷 검색에서 두 개의 단어를 연결하는 'space'는 문장에서의 'space'와 달리 두 단어가 문장 내에서 인접한 것을 의미하는 것이 아니라 문장 혹은 구절이 두 단어를 동시에 포함하고 있는 것을 의미하여서 두 의미의 차이를 'sentence-space'와 'search-space'로 구분하고자 한다. 즉 'sentence-space'키는 두 개의 단어가 'sentence-space'로 구분되는 경우는 검색할 때 두 단어가 인접하게 붙어 있는 구절 혹은 문장을 추출하는 것이고, 'search-space'로 구분되는 두 개의 단어의 경우는 두 단어를 포함하는 문장과 구절이 추출되는 것이다.
이렇게 'space'키를 'sentence-space'키와 'search-space'키로 구분하게 될 때 얻어지는 장점은 추출하고자 하는 문장 혹은 구절을 정확하게 검색할 수 있도록 하기 위함이다. 예를 들면 음악 검색에 있어서 음악 타이들 "Nocturnes, Op. 9 (Chopin)"를 검색하고자 한다면 이 타이틀에 해당하는 key sequence를 전부 입력하기 보다는'Nocturnes'과 'Chopin'에 해당하는 key sequence를 'search-space'로 결합하여 입력하면 된다. 하지만 "chopin nocturnes"라는 구절을 정확히 검색하기 위해서는 key sequence가 'Chopin'과 'Nocturnes'에 해당하는 key sequence가 'sentence-space'로 연결되어 있어야 "Nocturnes, Op. 9 (Chopin)"가 배제된 "chopin nocturnes" 구절만이 추출되어 예측문장의 갯수가 작아져서 예측문장의 선택/입력이 보다 더 용이하게 이루어질 수 있는 것이다.
실시예 11의 규칙대로라면 검색되는 내용이 있지 않으면 검색이 되지 않으므로 이러한 경우에 'category'키를 이용하면 비확정키 입력 key sequence를 순서대로 찾을 필요가 없이 'category'키의 앞 뒤에 위치한 key sequence를 표 5의 기준에 따라 각기 검색하여 추출하는 것이다.
'bnm'-'iop'-'zcxv'-'tyu'-'tyu'-'qwer'-'bnm'-'qwer'-'qwer'-'asdf' ..(15-a)
'category'-
'zxcv'-'ghjkl'-'iop'-'iop'-'iop'-'bnm' ...(15-b)
따라서 식 15의 key sequence는 'category'키('search-space'키)로 구분된 식 15(a)와 식 15(b)의 key sequence에 해당하는 예측 단어인 "Nocturnes"와 "Chopin"로 검색되는 구문을 추출하여 사용자가 선택할 수 있도록 하는 것이다. 일 예로 "Nocturnes, Op. 9 (Chopin)"은 category 키로 구분된 식 (15-a)에 해당하는 'Nocturnes'에 상응하는 key sequence를 만족하고 식 (15-b)에 해당하는 'Chopin'에 해당하는 key sequence를 만족하여 검색되는 것이다. 본 실시예의 구성에 따라 'space'키와 'and-space'키가 구분될 경우 사용자가 "Nocturnes Chopin"이라는 문구만을 검색하고자 한다면 식 15의 'category'키 대신에 'space'키가 입력된다면 "Nocturnes, Op. 9 (Chopin)"와 같은 구문은 제외되고 단지 "Nocturnes Chopin"이라는 문구만이 추출되어 사용자가 쉽게 선택하거나 입력할 수 있게 되는 것이다.
비확정키입력을 통한 문자, 문구, 문장의 입력에 있어서 사용되는 데이터베이스는 사용자 데이터베이스와 서버 데이터베이스의 이중적 구조를 가질 수 있는데 검색의 경우는 검색엔진이 가지는 데이터베이스를 사용하게 되어 사용자의 데이터베이스를 사용할 필요가 없다. 하지만 사용자의 기기에서의 문자, 문구, 문장의 입력을 위한 비확정키 입력이 이루어질 경우 사용자 기기에 내재되어 있는 사용자 데이터베이스를 우선적으로 검색하여 입력하고자 하는 문자, 문구, 문장을 검출하도록 우선순위를 설정하는 것이 본 실시예의 구성이다.
< 'sym'키와 'menu'키를 별도로 가지는 자판구성과 'sym'키와 'menu'키를 동시에 수행하는 자판구성의 차이>
도 10(a) 보여지는 자판형태는 '메뉴'(확장)키와 기호입력을 위한 'sym'키를 구분하여 구성되어 터치방식과 키누름 방식의 기기에 모두 적용할 수 있음에 반해 도 9에 보여지는 자판의 구성은 가운데의 검정색 키가 기호입력을 위한 'sym'키와 다양한 기능을 수행할 'menu'키를 동시해 수행하여야 하므로 터치 입력방식의 기기에는 본 발명의 비확정(ambiguous)키를 이용한 예측입력방법을 수행할 수 있지만 키 누름방식의 기기에서는 중앙의 검은색 키를 'sym'키와 'menu'키의 기능을 함께 수행하기 위해서는 누름 횟수가 증가하거나 길게 누르는 방법 등 단순한 누름 동작과 구분되는 방법을 제공해야 되는 불편함이 수반된다. 예를 들면 도 9에 보여지는 자판의 경우 터치형태의 기기에서는 중앙의 검은색 키를 단순히 터치했다 손가락을 띄었을 경우에는 'sym'키의 기능으로 사용하고, 손가락이 터치한 상태에서 '도 10b'와 같이 'category'키가 활성화되어 손가락을 'category'키로 드래그한 후 자판으로부터 손가락을 떼면 'category'키의 기능을 수행하는 'menu'키의 기능을 수행하도록 할 수 있도록 'menu'키와 'sym'키의 기능의 구분이 가능하다. 하지만 단순 누름키 방식의 키패드입력기기에서는 터치방식의 기기와 달리 터치/드래그 동작이 불가능하므로 'sym'키 기능은 단순 누름동작으로 수행하고 키 누름동작이 길게 지속되면 'menu'키의 기능을 수행하도록 구분하면 되지만 실제 길게 누름과 단순 누름 동작의 구분이 용이하지 않아 불편함을 유발함으로 도 10(a)에 보여지는 바와 같이 문자키의 갯수는 1개 줄이더라도 'menu'키를 'sym'키와 구분하여 터치 방식의 입력기기와 누름방식의 키패드 입력기기에 동일한 자판의 작동 구성을 가져갈 수 있는 장점이 있다.
이러한 점이 도 10 보여지는 자판형태와 도 9에 보여지는 자판형태의 차이점이다. 도 10(c)는 도 10(a)의 자판을 사각형 기기에 적용한 형태로서 도 10(a)의 자판과 다른 점은 기호와 공백문자('space')가 지정된 비확정(ambiguous) 'sym'키가 아래쪽으로 배치된 점이다.
< 비확정키 'sym'키와 'menu'키를 갖는 9키 자판을 이용하여 사용자 데이터베이스에 문장을 등록하는 방법>
실시예 5에서 보여 준 문장을 사용자 데이터베이스에 등록하는 방법을 도 10(a)에 보여지는 자판으로 수행하는 과정을 본 실시예에서 설명하고자 한다. 실시예 5에서는 자판이 10 개가 넘는 키로 구성되어 있어서 'shift'키를 포함한 다양한 기능키를 문자키 외에 지정하기가 용이하지만 도 10에 보여지는 9개로 구성된 키로는 이들 다양한 기능키를 수행하기 위해 '메뉴'(확장)키를 활용하게 된다. 이렇게 메뉴(확장)키를 활용하여 9 키만으로도 qwerty keyboard와 같은 용이한 문자입력을 수행할 수 있는 구성이 도 10의 자판이다. 일 예로서 "My name is HanAll."이라는 문장을 등록하는 과정으로 이러한 구성을 설명하고자 한다.
'bnm'-'tyu'- (16a)
'sym'- (16b)
'bnm'-'asdf'-'bnm'-'qwer'- (16c)
'sym'- (16d)
'iop'-'asdf'- (16e)
'sym'- (16f)
'ghjkl'-'asdf'-'bnm'-'asdf'-'ghjkl'-'ghjkl'- (16g)
'sym' (16h)
도 12a는 "My name is HanAll."이라는 문장을 입력하기 위해서는 이 문장에 해당하는 식 (16)의 비확정키 key sequence가 입력된다. 하지만 데이터베이스로부터 검출되는 예측구절(문장)이 없기 때문에 도 12(a)처럼 예측단어가 자판내에 표시되지 않고 대신에 '문장등록' 가능상태를 의미하는 'REG' 표시가 'menu'키 우측에 붉은색 글씨로 표시된다. ( 'REG'가 붉은 색으로 표시되는 이유는 'menu'키를 눌러서 'REG'키를 활성화시켜야 함을 의미하는 것이다.) 이렇게 예측 문장이 없는 이유는 문장을 구성하는 단어 중에 'HanAll'이 고유명사로서 누락되었기 때문이며 만약에 'HanAll'이라는 고유명사가 데이터베이스에 등록되어 있다면 문장이 추출되어 표시되었을 것이다. 따라서 'HanAll'을 포함하는 "My name is HanAll."을 문장으로서 데이터베이스에 등록하기 위해서는 중간에 'HanAll'을 사전적 데이터베이스에 등록하는 과정도 포함되게 된다. 그리고 이러한 "My name is HanAll."을 등록하는 첫 번째 과정은 도 12(a)에 보여지는 자판 상태에서 'menu'키를 눌러주어 도 12(b)처럼 '등록'(REG)키를 활성화 시킨 다음 'REG'키를 눌러주어야 하는 것이다.
이렇게 문장등록'(REG)키가 활성화되어 눌러주면 문장등록과정이 시작되는데 첫 번째 과정이 도 12(c)에 보이는 바와 같이 식 (16a)의 key sequence에 해당하는 문장의 첫 번째 단어인 'my'가 사전적 데이터베이스에 추출되어 나타나는데 대문자를 만들기 위해서는 'Cap'키를 눌러준다. 그러면 도 12(d)처럼 추출된 단어들이 대문자로 변경되어 추출된 단어 중에서 'My'가 지정된 키를 눌러주면 'My'가 입력된다. 이어서 식 (16b)에 해당하는 'sym'키에 대응되는 기호 및 공백문자(space) 자판이 도 12(e)처럼 나타난다. '공백문자'('space')가 지정된 키를 눌러주어 'space'의 입력이 이루어진다. 이어서 식 16(c)에 해당하는 key sequence에 대응되는 추출단어들이 도 12(f)와 같이 자판에 표시되면 'name'이 지정된 키 영역을 눌러주어 'name'을 입력하게 된다. 이어서 도 12(f)~(h)와 같이 동일한 방법으로 '공백문자'('space')와 'is' 및 추가적인 '공백문자'('space')의 입력이 마무리되면 'HanAll'을 입력해야 하는데 'my', 'name', 'is' 등과 달리 'HanAll'은 사전에 등록되어 있지 않으므로 자판에 추출단어로서 표시되지 않고 'HanAll'이 등록되어 있지않아서 등록해야 한다는 의미의 'reg'가 도 12(j)에 보여진다. 여기서 도 12(j)가 도 12(b)와 다른 점은 등록을 의미하는 표시가 'REG'가 아니라 'reg'로 소문자로 표시되어 있다는 점이다. 즉 도 12(b) 'REG'는 문장이 데이터베이스에 등록되어 있지 않아서 문장(혹은 구문) 등록과정이 진행되어야 함을 의미하고 도 12(j)의 'reg'는 단어의 등록이 시작되어야 함을 의미한다. 따라서 도 12(j)에서 'reg'가 지정된 키를 눌러주면 도 12(k)~(p)에 해당하는 단어등록과정이 진행된다. 문장등록과정 중에 수행되는 단어등록과정이 종료되면 마지막으로 식 16(h)에 해당되는 '.'(period-마침표)의 입력이 도 12(q)에 보이는 바와 같이 이루어져 'My name is HanAll.'의 입력이 이루어지게 된다. 이렇게 'My name is HanAll.'이 데이터베이스에 등록이 이루어지면 이후에 식 (16)에 해당되는 key sequence가 입력되면 추출문장으로 자판에 표시되어 선택/입력 할 수 있게되는 것이다.
비확정키를 이용한 단어예측 입력의 경우 사전적인 데이터베이스에 통용되는 단어들이 등록되어 있어서 대부분의 경우 예측이 가능하지만 문장과 구절의 경우 단어와 달리 'space'키로 연결되는 단어의 조합을 모두 준비하여 데이터베이스에 등록할 수 없으므로 이를 보완하는 방법으로 실시예 16에서 직접 등록하는 방법을 설명하였다. 그럼에도 이를 보완하기 위해 본 실시예에서는 새로운 문장예측방법을 구성하여 손쉽게 문장등록을 보완할 수 있도록 한다. 이를테면 실시예 16의 "My name is HanAll"를 문장예측방법으로 입력하고자 하는 경우 식 16에 해당하는 키입력이 이루어지면 데이터베이스 상에서 문장전체로는 검색이 되지 않아서 실시예 16의 방법으로 등록하는 과정을 진행해야 하는데 본 구성에서는 이러한 문장등록과정을 진행하기 전에 데이터베이스 상에 존재하는 구절을 검색하여 검색가능한 구절을 조합하는 방법을 문장을 추출하는 것이다. 즉 인터넷 상에서 검색되는 구절은 검색 엔진의 데이터베이스 상에 등록되어 있다고 가정할 때 "My name is"과 "HanAll"이라는 문구는 연결된 문장으로 검색이 되지 않지만 각각의 구절 및 단어로서는 검색이 되므로 이렇게 검색된 구절을 연결하여 하나의 예측문장으로 추출되도록 하는 것이다. 따라서, "My name"+"HanAll"이 'space'로 연결되어 "My name is HanAll"까지 추출되어 도 13(a)에 보여져서 "My name is HanAll"이 예측문장으로 자판내에 표시되어 선택할 수 있게 된다. 그리고 "My name is HanAll"이 선택되어 입력되면 도 13(b)에 보여지는 바와 같이 마지막으로 식 16의 마지막 key sequence인 'sym'키에 상응하는 기호자판이 보여져서 마침표('.')의 입력이 이루어질 수 있게 되는 것이다. 만약에 도 13(a)에 보여지는 예측문장이 "My name is HanAll"이 아니라면 중앙의 'ret(urn)'키를 눌러주어 도 16에 보여지는 문장 등록과정을 진행하게 된다.
<검색 및 문장입력 상황에 맞게 ambiguous 'sym'키의 내용 변경 및 'space'키를 'sentence-space'키와 'search-space'('&space')키로 구분한 자판의 설정>
실시예 18에서 'sym'키는 'space'를 의미하는 것으로 설정하고 설명되었는데 실제로 'sym'키가 표 2와 같이 모든 기호를 포함하는 ambiguous key일 경우 식 16으로 표시되는 키입력이 "My name is HanAll."의 검색을 효율적으로 진행하기 위해서는 기호와 'space'(정확하게는 'sentence-space')키를 구분하는 것이 바람직하다. 그릭고 문장의 검색을 위해서는 'sym'키로 대표되는 문자가 기호보다는 'space'(공백문자)가 해당되는 경우가 많으므로 도 10에 보여지는 자판의 배열을 도 14a와 같이 변경하여 'space'의 입력을 기호와 분리시켜 식 16의 키입력이 이루어질 때 식 16의 'sym'은 도 14a에 보여지는 자판의 'space'키를 눌러주면 검색이 효율적으로 이루어지게 되는 것이다. 더 나아가서 웹주소를 검색하기 위해 키입력이 이루어지는 경우 도 14a에 보여지는 자판을 이용하여 키입력이 이루어질 경우 기호입력을 위해 'menu'키를 눌러주어 도 14b에 보여지는 확장자판을 활성화시켜 'sym'키를 눌러주어야 한다. 하지만 웹주소에는 'space'가 없으므로 이럴 경우 도 14c에 보여지는 바와 같이 'space'키 대신에 'sym'키를 배치하여 웹주소 검색을 위한 키입력에서 'sym'키의 입력을 굳이 'menu'키를 눌러주어야 하는 불편함을 해소할 수 있게 된다.
< 입력 key sequence와 정확히 일치하는 내용이 없는 경우에 group key sequence를 이용한 예측문장의 추출과정>
실시예 17의 검색 과정을 도 14a의 자판을 이용한 키입력으로 설명하면 다음과 같다. 식 16에 해당되는 key sequence를 다음의 식 17과 같이 개념적으로 표시될 수 있다. 식 17에서 'space'키는 '+'로 표시되었으며 'sym'키는 #으로 표시되었다. A, B, C, D는 각각 단어 'my', 'name', 'is', 'HanAll'에 해당하는 key sequence를 의미한다.
A+B+C+D# ....(17)
문장 및 구절의 검색을 위한 key sequence 비교는 전체 문장을 예측하기 위해서는 데이터베이스에 있는 문장(혹은 구절)의 key sequence와 식 17의 "A+B+C+D#"를 가장 먼저 비교하여 일치하는 것이 있는지 검색하고 일치하는 것이 없으면 "A+B+C", "B+C+D"를 비교하고 여기서도 없으면 "A+B", "B+C", "C+D"를 차례로 비교하여 일치하는 가장 큰 구절을 선택하고 이 구절에 속하지 않는 구절 혹은 단어의 key sequence를 데이터베이스와 비교 검색하여 일치하는 것을 추출한 다음 이미 검색된 가장 큰 구절의 내용과 결합하여 예측문장으로 보여주는 과정을 거치게 되는 것이다. 만약 "A+B+C"와 일치하는 구절도 있고, "B+C+D"와 일치하는 구절이 있을 경우 두 가지로 나누어서 추출문장을 결정하게 된다.
(I) 첫 번째의 경우로 "A+B+C"와 일치하는 구절에서 "B+C"에 해당하는 내용이 "B+C+D"에 해당하는 구절의 "B+C"에 해당하는 내용이 동일할 경우 "A+B+C"와 일치하는 구절에서 "A"에 해당하는 내용을 "B+C+D"에 해당하는 구절에 연결하여 예측문장(혹은 구절)으로 추출하면 된다. 표 9에서 1번의 경우 식 17의 "A+B+C"과 일치하고, 2번의 경우 식 17의 "B+C+D"와 일치하며 두 경우 "B+C"에 해당되는 내용이 일치하므로 표 9의 1번에서는 "A"에 해당되는 내용을 추출하고, 표 9의 2번 경우에서는 "D"에 해당되는 내용을 추출하여 예측문장으로 "My name is HanAll"이 추출되는 것이다.
(II) 두 번째의 경우로 표 9의 2번과 3번 경우로서 3번의 경우 식 17의 "A+B+C"와 일치하지만 2번의 "B+C"에 해당하는 "name is"와 3번의 "B+C"에 해당하는 "oboe is"가 일치하지 않으므로 이럴 경우 "B+C+D"가 일치하는 표 9의 2번 경우를 선택하고 "A"에 해당하는 부분을 표 9의 3번의 "My"를 선택하여 예측문장으로 "My name is HanAll"을 추출하는 것이다. 즉 "A+B+C"가 일치하는 것과 "B+C+D"가 일치하는 경우에 key sequence의 뒷 부분 "B+C+D"와 일치하는 내용을 우선적으로 선택하고 나머지 부분을 짧은 key sequence group "A"에 일치하는 것을 선택하는 것이다.
A B C D
1 My name is Tom
2 His name is HanAll
3 My oboe is this
실시예의 키입력에 해당하는 식 16을 도 14a에 보여지는 자판으로 키입력이 이루어질 경우 'space'입력을 위한 키가 'sym'키가 아니라 'space' 단독으로 지정된 'space'키를 눌러주어 입력되므로 식 16이 식 18처럼 변경된다. 이렇게 식 18로 키입력이 이루어진 후 검색을 통한 예측문장이 추출되지 않아서 등록과정을 진행하기 위해 'REG'키를 눌러주어 등록과정을 실행할 때 도 12(e), (g), (i)에 보여지는 'space'의 입력은 생략되어도 문제가 되지 않으므로 문장 등록과정이 단순해지는 장점을 가져온다. 즉 도 14a에 보여지는 'space' 단독 키를 갖는 자판을 사용할 경우 검색 과정이 효율적이 될 뿐만 아니라 검색 후에 추출문장이 없을 때 등록하는 과정도 효율적이 되는 장점을 가져오는 것이다.
'bnm'-'tyu'- (18a)
'space'- (18b)
'bnm'-'asdf'-'bnm'-'qwer'- (18c)
'space'- (18d)
'iop'-'asdf'- (18e)
'space'- (18f)
'ghjkl'-'asdf'-'bnm'-'asdf'-'ghjkl'-'ghjkl'- (18g)
'sym' (18h)
< 원형형태의 자판과 사각형 형태의 자판의 구성>
도 14의 자판은 원형을 갖는데 이를 사각형 형태의 기기에 적용한 것이 도 15에 보여지고 있다. 그리고 이러한 4각형 형태는 도 16에 보여지는 리모컨 형태의 방향키 키패드에 쉽게 적용될 수 있어서 리모컨에서 키보드를 대체하여 손쉽게 문자의 입력을 통한 문장 작성 및 인터넷 검색 등 입력 자판으로서의 기능을 충분히 수행할 수 있을 뿐만 아니라 심지어 게임기의 joy-stick에도 적용시킬 수 있는 장점을 가져온다. 따라서 원형, 사각형의 모바일 기기뿐만 아니라 웨어러블 기기의 입력장치로서의 통일성을 유지하는 장점을 갖는다.
도 17과 도 18은 한글예측입력을 위한 자판을 보여주고 있다. 이 자판을 이용한 한글예측입력은 단어와 문장예측을 동시에 수행하도록 구성되어 있다.
도 17의 (A)는 예측문장 표시 영역, (B)는 자판의 키 영역, (C)는 현재 입력되는 문자표시 창, (D)는 예측단어 표시 영역이다.
도 18은 도 17의 (B)영역인 10개의 키영역을 보여주고 있다. 이 자판을 사용하는 예측입력 방법은 도 1과 도 9에 보여지는 영어 자판의 예측입력 방법과 동일하며, 각 키와 그에 해당하는 numberic code는 표 10에 보는 바와 같다.
ambiguous key
'ㄱㅋㄲ
ㅏㅑ
qwer
0'

'ㄴㄹ
ㅓㅕ
tyu
1'

'ㄷㅌㄸ
ㅗㅛ
iop
2'

'ㅁㅇ
ㅜㅠ
asdf
+5'

'ㅂㅍㅃ
ㅡㅣㅢ
ghjkl
3'

'ㅅㅎㅆ
ㅐㅒ
zxcv'

'ㅈㅊㅉ
ㅔㅖ
bnm
4'
numeric code
1

2

3

4

5

6

7
ambiguous key
'grammatical space'

'space'
numeric code
8

9
만약 "서울에 갔어요."를 입력하고자 하면, 표 10의 구성에 따라 각 문자에 해당하는 키를 눌러주면 되고, 키입력 순서는 아래 식 (19)와 같다.
서울에 : ⑥②④④②-⑧-④⑦- (19a)
<공백> : ⑨- (19b)
갔어요 : ①①⑥-⑧-④②④③ (19c)
즉 '서울에 갔어요'의 첫 구절인 '서울에'는 조사 '에'를 포함하는 체언부로서 이를 입력하기 위해서, 체언 '서울'과 조사 '에'에 해당하는 키구성을 아래와 같이 순서대로 입력하면 된다. '서울'에 해당하는 숫자코드(numeric code) '⑥②④④②'와 조사 '에'에 해당하는 숫자코드(numeric code)'④⑦'를 입력하되 이들 사이에 '문법적 공백' 키인 '⑧'번을 누르면 '⑥②④④②'에 해당하는 예측단어는 사전적 데이터베이스의 '체언(명사, 대명사, 수사)'군(群)에서 추출되는데 '서울', '허물', '서문', '허울', '서물', '서운', '서윤' 등이 예측 단어로서 추출된다. 이어서 조사의 키입력순서 '④⑦'에 해당하는 예측단어인 '에'가 사전적 데이터베이스의 '조사'군(群)에서 추출되어 이들 체언 예측단어들과 조사 예측단어가 결합되어 '서울에', '허물에', '서문에', '허물에', '서물에', '서운에', '서윤에'가 통합 예측단어(정확하게는 예측 '구')로 예측단어 표시 영역에 보여지게 된다. 따라서, 이들 중에 입력하고자 하는 것을 선택하여 입력하면 되는 것이며, 예측입력시스템에서는 가장 먼저 예측단어로 추출된 '서울에'를 문장입력창(도 17-(B))에 임시로 입력된 상태가 된다. 만약 예측단어로 추출된 '서문에'가 입력하고자 하는 단어일 경우 입력장치가 터치스크린이라면 도 17에서 '서문에'가 표시되어 있는 예측단어입력창 영역을 터치하거나 입력장치에 미리 정해진 그에 상응하는 방법을 실행하여 기본 예측단어로 입력창에 표시되어 있는 '서울에'를 대신하여 표시되게 된다.
위에서 살펴본 바와 같이 체언에 해당하는 단어들과 조사에 해당하는 단어를 각기 다른 그룹으로 분류하여 예측단어로 구분하여 추출하도록 하면, 식 (19a)에서 보는 바와 같이 문법적 공백에 해당하는 키 '⑧'의 앞쪽의 키입력은 체언 단어를 추출하는데 사용되고, 키 '⑧'의 뒤쪽의 키입력은 조사 단어 추출에 사용되는 것이다.
체언부와 마찬가지로 동사 혹은 형용사의 어미 활용을 수반하는 용언부의 경우 체언의 조사에 해당하는 용언의 어미와 체언에 해당하는 용언의 어간를 각각 사전적 데이터베이스에 '어미'군(群)와 '어간'군(群)를 구성하여 '문법적 공백키' 전후의 키순서를 이들 군으로부터 용언 어간 단어와 어미 단어를 추출하는데 적용하게 되는 것이다. 즉, 용언 어간군(群)과 어미군(群)으로 분리된 데이터베이스에서 '문법적 공백키'의 앞쪽 키입력순서에 맞게 추출된 어간 예측단어와 '문법적 공백키'의 앞쪽 키입력순서에 맞게 추출된 어미 예측단어를 결합하여 용언부 예측단어(정확하게는 예측구)로 예측단어입력창에 표시되도록 하여 선택/입력하면 된다. 식 (19c)를 예로서 설명하면, '서울에 갔어요'의 용언에 해당하는 '갔어요'는 어간에 해당하는 '갔'과 어미에 해당하는 '어요'로 구성되어 있으므로 키 입력순서는 어간 '갔'에 해당하는 '①①⑥'과 어미 '어요'에 해당하는 '④②④③'이 문법적 공백 기호인 '⑧'에 의해 이어진 상태이다. 따라서, 문법적 공백키를 이용하여 체언부의 경우 체언과 조사를 구분하고, 용언부는 어간과 어미를 구분하여 사전적 데이터베이스에 체언군, 조사군, (용언)어간군, (용언)어미군으로 등록하게 되면 체언과 조사가 합하여 만들어지는 체언부와 용언 어간과 어미가 합하여 만들어지는 용언부에 해당하는 단어(정확하게는 '구')의 수를 획기적으로 줄일 수 있는 방법을 제공한다. 이를 구체적으로 설명하면, 체언부의 경우 체언의 수가 10만이라고 가정했을 때, 체언에 결합할 수 있는 조사의 수가 1000개라고 하면 체언과 조사가 결합한 체언구의 수는 1억개에 이르게 된다. 용언부의 경우 용언 어간의 수가 10만이고 어간에 결합할 수 있는 어미의 수가 1000개라고 하면 어간과 어미가 결합한 용언구의 갯수도 1억개에 이르게 된다. 하지만 실제 어간에 결합할 수 있는 어미의 수는 간단하게 '-다'('가'+'다'->'가다'), '-는'('가'+'는'->'가는')에서부터 '-지만서도요'('가'+'지만서도요'->'가지만서도요')와 같이 그 수가 족히 10만을 넘는 경우의 수를 보이므로 이들 어미를 어간에 결합한 용언구의 수는 10억 개를 넘게 된다. 따라서 용언의 어간과 어미를 구분하여 사전적 데이터베이스에 등록하는 경우에 어간의 갯수 10만과 어미의 갯수 10만을 더한 20만개를 사전적 데이터베이스에 등록하면 되어, 어간과 어미를 결합한 용언구를 모두 등록할 경우보다 그 용량이 대략 5만배나 줄어들게 된다. 이렇게 줄어든 용량은 그 크기의 차이도 문제이지만 실제로 데이터베이스에서 예측단어(구)를 추출하기 위해 데이터베이스를 검색하는 시간이 만 배이상 차이가 발생하게 되어 실용성 면에서 비교가 되지 않는 것이다.
영어의 경우 체언구를 형성할 때 한글의 '서울에'에 해당하는 구절은 'To Seoul'로 표현되므로 체언구를 만드는 전치사 'To'와 체언에 해당하는 'Seoul'이 공백으로 인해 'To'와 'Seoul'을 구분되므로 전치사와 체언이 결합된 체언부를 예측할 필요가 없는 것으므로 데이터베이스에 등록되는 단어는 전치사의 갯수와 체언(명사)의 갯수의 합이 된다. 따라서, 전치사의 갯수가 체언(명사)의 갯수만큼 많다고 해도 등록되는 단어의 수는 2 배 정도 증가하게 된다. 그에 반해 한글에서는 조사(영어의 전치사에 해당)와 체언(영어의 명사에 해당)가 결합한 형태이므로 이를 본 발명의 '문법적 공백'을 의도적으로 체언과 조사(용언의 경우 어간과 어미)사이에 삽입하여 영어와 같이 사전적 데이터베이스에 등록해야하는 단어의 수를 획기적으로 줄여서 전저가기의 저장용량이 커져야 하는 것을 방지하고 더 나아가서 등록된 단어의 숫자의 감소로 검색시간을 획기적으로 줄이는 효과를 가져오게 되는 것이다.
실시예 22에서 살펴본 '문법적 공백'키를 이용한 한글 예측입력방법이 한글 단어구(체언구, 용언구)의 데이터베이스를 획기적으로 줄일 수 있는 방법을 보여주고 있다. 이러한 장점을 가져오는 '문법적 공백'키를 사용하기 위해서는 사용자가 체언과 조사의 구분 및 용언의 어간과 어미의 구분을 확실히 할 수 있는 문법적 이해를 가지고 있어야 한다. 하지만 '서울에'의 경우는 쉽게 '서울'과 '에'의 구분이 용이하지만 용언구인 '갔어요'의 경우 '갔'+'어요'인지 아니면 '갔어'+'요'인지 그 구분이 쉽지 않아 사용자가 혼동하는 문제가 발생할 수 있다. 심지어 '갔었었지만'의 경우 더욱 구분이 힘들어진다. 이러한 문제를 극복하고자 본 실시예에서는 한글의 각 음절사이마다 '문법적 공백'을 삽입하여 사용자가 실질적인 '문법적 공백'키의 위치를 인지하지 못하여도 단어구(체언구와 용언구)를 사전적 데이터베이스에서 추출할 수 있도록 하는 방법을 보여준다.
'서울에 갔어요'를 예를 들자면, 체언구에 해당하는 '서울에'는 체언과 조사의 구분이 용이하므로 용언구에 해당하는 '갔어요'를 선택하여 그 키입력 순서는 실시예 22의 방법으로는 식 (19c)에 해당한다. 하지만 본 실시예의 구상에 따라 각 음절마다 '문법적 공백'키를 삽입하면 키입력순서는 아래의 식 (20)이 된다.
갔어요 : ①①⑥-⑧-④②-⑧-④③ (20)
식 (20)과 같은 키입력순서가 이루어지면 데이터베이스에서 용언구를 추출하는 방법은 각 '문법적 공백'키 전후의 키입력순서에 해당하는 예측 어간 단어와 어미 단어를 각각 어간군와 어미군에서 추출하여 결합하는 것이다. 즉 식 (20)의 키입력순서는 예측단어 추출과정에서 다음 두 개의 식 (21a)와 (21b)로 변환되어 각 식의 '문법적 공백'키 전후의 키입력순서에 해당하는 어간단어와 어미단어를 추출하는 과정을 거치게 된다. 이를 문법적 공백을 포함하는 단어구 예측과정을 보여주는 표 23에 비추어 설명하면, 문법적 공백이 포함된 키입력순서에 따라 체언구와 용언구를 예측하는 과정을 음절사이마다 삽입된 문법적 공백에 대하여 실행하여 예측 문구를 추출하게 된다. 위의 식 (20)의 경우 표 23에 보여지는 문법적 공백 활용 단어구 예측 과정을 2 번 수행하게 된다. 이와 같이 '갔어요'를 예측하기 위해 '갔'과 '어요' 사이에 정확하게 한 번만 문법적 공백을 입력하는 경우보다 음절 사이마다 문법적 공백을 입력하게 되어, 한 번 더 표 23의 과정을 수행하게 된다. 그래도, 사용자가 문법적 공백을 입력해야 하는 위치를 정확히 숙지하지 못해도 입력하고자 하는 단어구를 사전적 데이터베이스에서 추출하여 입력이 가능하게 되는 장점을 가져오게 되는 것이다.
갔^어요 : ①①⑥-⑧-④②④③ (21a)
갔어^요 : ①①⑥④②-⑧-④③ (21b)
갔어요 : ①①⑥④②④③ (21c)
식 (21a)에 해당하는 키입력순서를 이용한 추출과정에서 '갔어요'가 추출되지만, 식 (21b)의 경우 용언부가 추출되지 않는데 그 이유는 데이터베이스의 어간군에 '갔어'라는 단어가 등록되어 있지 않기 때문이다. 따라서, '문법적 공백'키를 각 음절사이에 삽입된 키입력이 이루어지면 사용자가 굳이 문법적인 고민을 하지 않더라도 원하는 단어구를 예측할 수 있게 되는 장점을 가져오게 된다.
그리고, 한글의 경우 식 (21c)와 같이 조사 혹은 어미와 결합하지 않는 문법적 공백이 필요없는 단어가 존재할 수 있으므로, 조사 혹은 어미를 포함하는 단어구 외에 독립단어도 사전적 데이터베이스에서 검색해야 하므로, 식 (21c)에 해당하는 키입력순서의 경우 표 23과 별도로 영어 단어 예측입력과 같이 한글도 단어예측입력도 병행하여야 하고, 사전적 데이터베이스에 이를 위한 독립단어군도 수록되어야 한다. 그리고 이들 독립단어의 추출은 영어단어 예측 방법과 동일하고, 도 23에서는 체어군에서 체언단어목록의 추출과 동일한 과정이 된다. 이렇게 추출된 독립단어는 체언구 목록과 용언구 목록과 합쳐져서 전체 단어(구) 예측 목록에 포함되어 사용자가 선택/입력하면 되는 것이다.
본 실시예는 위의 실시예 23에서 보여준 각 음절 사이마다 삽입한 '문법적 공백'을 한글의 음절을 추출하는데 적용하는 방법을 설명한다. 이미 실시예 22에서 살펴본 바와 같이 한글의 예측입력을 위한 사전적 데이터베이스는 단어구 자체를 등록하려면 그 크기가 너무 커지는 문제점을 가지고 있어서 단어구를 체언군과 조사군으로 구분(용언의 경우 어간군과 어미군으로 구분)하여 등록하였다. 하지만 문제는 이들 데이터베이스에 등록되지 않은 경우에 입력할 수 있는 방법를 제공해야 하는데 사람의 이름과 지명등과 같이 일반적이지 않은 단어를 등록하기에는 그 크기가 방대해지므로 이를 극복하기 위한 방법으로 이름과 같이 등록되지 않은 단어를 음절 하나 하나를 추출하여 사용자가 조합하는 방법을 제공하는 것이다.
본 실시예의 구성에 따른 '서울에 갔어요"의 키입력순서는 식 (22)와 같다. 식 (22)에 따라 '서울에'에 해당하는 키입력이 이루어지면 도 22에 보여지는 바와 같이 음절 예측창에 추출된 음절들이 표시된다. 식 (22a)의 첫 음절의 키입력 '⑥②'에 해당하는 '서', '허', '써', '혀', '셔'가 추출되고, 두 번째 음절의 키입력 '④④②'에 해당하는 '문', '물', '운', '울', '워', '뭐', '윤', '율', '뮬'이 추출 되고, 마지막 음절의 키입력 '④⑦'에 해당하는 '에', '예', '메', 'ㅞ'가 추출되어 표시된다. 이렇게 추출된 음절들은 각 음절의 빈도수가 높은 것부터 차례로 배열하여 사용자가 쉽게 선택할 수 있게 할 수 있다. 즉, 도 22(E)에 보여지는 음절의 경우 두 번째 음절에 해당하는 예측 음절을 보면 '울'보다 '문'의 빈도수가 커서 '문'이 '울'보다 먼저 배열되어 추출된 음절의 첫글자 순서가 '서', '문', 에'로 표시된다. 즉, 도 22-(D)에 보여지는 예측 단어구의 첫 번째인 '서울에'와 다르게 예측되고 있음을 알 수 있다. 이는 예측 단어구의 배열순서 역시 단어구의 단어(체언 혹은 용언)의 빈도수에 따라 배열되므로 예측 단어구의 배열순서는 '서울'의 사용 빈도수가 '서문'의 사용 빈도수보다 크므로 '서울에', '서문에'의 순서로 나열되어진 것이다.
'서울에' : ⑥②-⑧-④④②-⑧-④⑦- (22a)
<공백> : ⑨- (22b)
'갔어요' : ①①⑥-⑧-④②-⑧-④③ (22c)
한글의 경우 사용 가능한 음절의 수가 11172개이므로 일반적으로 사용되는 용언의 어간의 갯수가 수 십만개 정도(1999년에 국립국어원이 펴낸 표준국어대사전에 수록되 어휘의 수가 대략 50여만개)에 이르므로 식 (22)에 표시된 바와 같이 '문법적 공백'키로 구분된 키입력에 대해 음절 예측은 단어 예측만큼 용이하게 이루어져서 데이터베이스에 등록되어 있지 않은 단어를 입력할 수 있도록 단어예측입력 방법에 보완적으로 기능하게 된다. 결과적으로 '문법적 공백'키를 각 음절 사이에 입력하여 실시예 23에서 설명한 바와 같이 단어구의 문법적 구성을 숙지하지 않아도 단어예측입력을 쉽게 이용할 수 있는 기능과 사전적 데이터베이스에 등록되지 않은 단어를 입력할 수 있는 방법을 동시에 구현하는 장점을 가져온다.
이상에서는 '문법적 공백'키를 이용하여 한글의 단어예측입력을 용이하게 구현할 수 있음을 보여주었다. 이러한 한글의 단어예측입력의 구현은 영어와 마찬가지로 문장예측입력도 가능하게 하여 입력의 효율성을 더욱 증대시킬 수 있다.
한글의 문장예측입력 방법은 영어에서의 문장예측입력과 동일하게 적용된다. 공백키로 구분되는 키입력순서에서 각 단어군의 일부만이 입력되더라도 문장을 예측되도록 하는 방법이다. 도 20과 도 21은 '서울에 갔어요'을 위한 키입력순서에서 '서울에'에 해당하는 키입력순서의 일부와 '갔어요'에 해당하는 키입력순서의 일부가 입력되면 '서울에 갔어요'가 문장 데이터베이스에서 추출되어 '예측문장 표시창'(도 20(A), 도 21(A))에 표시된다.
도 20는 '서울에 갔'에 해당하는 키입력이 이루어져도 데이터베이스로부터 '서울에 갔어요'가 추출되어 '예측문장 표시영역'에 표시된것이며, 도 21는 '서울에 갔어요'의 각 단어구의 첫 글자인 '서 갔'에 해당하는 키입력이 이루어져도 데이터베이스로부터 '서울에 갔어요'가 추출되어 '예측문장 표시영역'에 표시된 것이다.
표 11은 사전적 데이터베이스에 등록된 '서울에 갔어요'의 키입력순서(key sequence)를 보여주고 있다. 이 표에 키입력순서가 2가지로 표시되는데, 방법 1은 단어군의 '문법적 공백'을 포함한 키입력순서이고 방법 2는 '문법적 공백'이 포함되지 않는 경우이다. 본 발명의 한글 문장예측은 표 11의 방법 2와 같이 '문법적 공백'키 없이 키입력순서를 설정해도 문제가 없다. 그 이유는 '서울에 갔어요'를 문장으로서 추출하기 위해 사전적 데이터베이스에 이미 '서울에'에 해당하는 단어구가 지정되어 있으므로 '문법적 공백'키가 없어도 되는 것이다. 따라서, 단어구의 갯수를 줄이기 위해 체언과 조사를 각각 추출하여 조합하는 단어구 예측과는 달리 문장예측입력을 위해 문장을 사전적 데이터베이스에 등록하는 방법은 표 11의 방법-1 혹은 방법-2에 따라 문장의 키입력순서를 등록할 수 있다. 만약 문장예측을 위한 사전적 데이터베이스가 표 11의 방법-2로 문장과 키입력순서를 키입력순서가 표 12의 key sequence-A와 같이 이루어지더라도, 문장 추출과정에서 사용자가 입력한 키입력순서에서 '문법적공백'을 제거하고 표 12의 key sequence-B로 변환한 후 이용하면 되는 것이다.
표 12와 표 13의 키입력순서는 문장을 구성하는 구절의 앞 부분 일부가 입력되어도 문장예측을 위한 기준(표 5)에 비추어 사전적 데이터베이스에서 문장이 추출되어 입력이 가능하게 된다. 즉, 표 12와 표 13은 각각 도 20과 도 21에 보여지는 입력상황에 해당하는 키입력순서이다. 한글 문장예측입력을 위한 데이터베이스에 '서울에 갔어요'의 각 구절의 일부분에 해당하는 키입력순서가 이루어진 것을 보여주고 있다.
문장 서울에 공백 갔어요
key sequence 방법-1 ⑥②④④②-⑧-④⑦ ①①⑥-⑧-④②④③
방법-2 ⑥②④④②④⑦ ①①⑥④②④③
문장 첫 번째 key sequence 공백 두 번째
key sequence
key sequence-A ⑥②④④②-⑧-④⑦ ①①⑥
key sequence-B ⑥②④④②④⑦ ①①⑥
문장 첫 번째 key sequence 공백 두 번째
key sequence
key sequence-A ⑥② ①①⑥
본 실시예는 문법적 공백키를 사용하지 않고도 도 23에 보여지는 한글 데이터베이스 구조(체언구, 용언구)를 검색할 수 있는 방법을 알려준다. 즉 한글의 경우 영어와 다르게 체언, 용언의 끝 부분에 조사와 어미의 변화가 있어서 각각의 체언과 용언이 가질 수 있는 변화가 너무 많아서 데이터베이스를 줄이기 위해 체언군, 용언군을 조사와 어미로 구분하는 것이 도 23의 핵심이다. 즉 실시예 22에서 도입된 '문법적 공백'이 사용자들에게 생소하고, 실제 문구에서 어느 위치에 문법적 공백을 지정해야 하는지 정확히 알지 못하는 경우와 이를 위해 각 음절마다 문법적 공백에 해당하는 키를 번거롭게 입력해야 하는 경우 모두 사용자 입장에서는 번거로울 수 있다. 그래서 문법적 공백키 입력이 없이 도 23에 보여지는 한글 데이터베이스를 검색하는 방법을 제공하고자 한다.
사용자가 '서울에 갔어요'를 입력하기 위해 문법적 공백에 해당하는 키가 없이 키 입력을 표 12의 key sequence-B와 같이 입력할 경우 한글 데이터베이스 검색하는 방법은 표 14와 같이 진행된다. 즉 입력 키순서인 '⑥②④④②④⑦'를 각 키마다 그 다음에 문법적 공백이 위치한다고 가정하여 체언군(용언군)과 조사(어미)에 해당하는 키입력으로 나누어서 표 14의 검색순서 1~8에 해당하는 과정으로 데이터베이를 검색하여 그로부터 얻어지는 체언군(용언군)과 조사(어미)에 해당하는 예측 단어를 조합하여 체언구(용언구)를 추출하는 것이다.
검색 순서 체언군(용언군) 조사(어미)
1 ⑥②④④②④⑦
2 ⑥②④④②④
3 ⑥②④④② ④⑦
4 ⑥②④④ ②④⑦
5 ⑥②④ ④②④⑦
6 ⑥② ④④②④⑦
7 ②④④②④⑦
8 ⑥②④④②④⑦
만약에 체언군(용언구)이나 조사(어미) 중에 어는 하나라도 해당하는 단어가 데이터베이스에 없을 경우 예측 단어가 없는 것으로 한다. 예를 들면 표 14의 검색순서 3의 경우 체언군(용언군)에 해당하는 키입력순서 '⑥②④④②'에 맞는 단어가 데이터베이스에 존재한다고 하더라도, 조사(어미)에 해당하는 키입력순서 '④⑦'에 맞는 단어가 조사(어미)부 데이터베이스에 존재하지 않는다면 검색 순서 3에 대해서는 체언구(용언구)가 없다고 판정하고, 단지 체언군(용언군)과 조사(어미)에 맞는 단어가 모두 존재할 때만 체언군(용언군)의 추출 단어와 조사(어미)의 추출 단어를 조합하여 체언구(혹은 용언구)에 해당하는 구절로 추출하는 것이다.
일반적으로 데이터베이스에 등록된 단어의 갯수는 체언군(용언군)이 그에 상응하는 조사(어미)에 비해 많으므로 표 14에 보여지는 검색순서를 빠르게 진행하는 방법 중에 하나는 조사 및 어미부에 해당하는 키입력순서에 대해 먼저 데이터베이스를 검색하여 키입력순서에 맞는 (조사 혹은 어미)단어가 존재하는지의 여부를 검색한 다음 만약 맞는 (조사 혹은 어미)단어가 존재하지 않는다면 체언군(용언군)에 대한 검색을 생략하는 것이다. 이렇게 하여 검색과정을 줄여 전체 검색과정을 효율적으로 수행할 수 있다.
일본어는 공백이 없다는 점을 제외하면 한국어와 문법적으로 유사한 구조를 갖는다. 체언부에 조사가 붙어서 그 의미를 확실히 하고, 용언부 어미변화가 다양하여 하나의 용언이 수 많은 형태를 갖게 된다. 따라서, 영어와 달리 일본어도 조사와 용언의 어미변화에 따라 데이터베이스를 줄이기 위해 실시예 22-26의 내용을 적용할 수 있다. 다만 일본어의 경우 문장내에 공백이 없으므로, 한글과 같이 공백을 임으로 주어지면 실시예 22-26의 내용을 적용하여 체언군(용언군)과 조사(어미) 데이터베이스를 구축하여 쉽게 단어예측입력을 적용할 수 있고 더 나아가서 본 발명의 문장예측입력도 적용 가능하게 된다.
구분 문장 체언부 용언부
(1) 나는_학생입니다 나는 학생입니다
(2) わたしはがくせいです
(私は生です)
(3) わたしは_がくせいです わたしは がくせいです
(4) watashiwagakuseidesu
(5) watashiwa gakuseidesu watashiwa gakuseidesu
이러한 점에서 일본어의 경우 단어예측입력을 구현하기 위해 공백문자를 한글과 같이 적용하는 것이 본 실시예의 구상이다. 표 15는 '나는 학생입니다'를 한글과 일본어로 표시한 것이다. 표 15의 (1)은 '나는 학생입니다'의 한글 문장으로 주어부 '나는'과 용언부 '학생입니다'가 공백으로 구분되어 있다. 이에 반해 일본어로 ""는 '나는'에 해당하는 '私は'와 '학생입니다'에 해당하는 "" 사이에 공백이 존재하지 않는다. 그리고 일본어의 예측입력을 위해서는 일본어의 영어식 표현인 romanji 방식으로 입력할 경우 표 15의 (4)와 같이 표현이 된다. 이 역시도 공백이 존재하지 않는다. 하지만 본 실시예의 구성에 따라 문법적 공백을 삽입하면 표 15의 (5)와 같이 표현되며, 이 경우 체언부와 용언부가 분리되어 체언부에 해당하는 'watashiwa'를 용언부에 해당하는 'gakuseidesu'와 분리시켜 데이터베이스에서 추출하는 것이다. 그 방법은 실시예 26의 방법을 채택하면 된다. 즉 데이터베이스에 한글의 '나'에 해당하는 'watashi(私)'는 체언군에 등록되어 있고, 조사 '는'에 해당하는 'は'는 조사부에 등록되어 있어서 각각 체언군과 조사에 해당하는 예측 단어로 추출된 후 결합되어 체언부 예측단어(구)로 입력되는 것이다. 그리고 표 15의 (4)로 표시되는 romanji 표현방식의 문장의 예측입력을 위해서는 도 9(a)에 보여지는 자판을 이용하고 예측입력방식은 본 발명의 예측입력방식과 문장예측입력을 위해서는 표 5에 나와있는 기준을 적용하면 된다.
지금까지 문장예측입력방법이 실질적인 문장의 입력을 위한 과정이었다. 하지만 본 발명의 문장예측입력 방법은 문법적인 구조를 갖지 않는 경우에도 적용할 수 있다. 예를 들면 음악 스트리밍 서비스에서 곡을 선택하거나, 비디오 스트리밍 서비스에서 영화를 선택하게 될 때 음악의 경우 곡명 외에도 작곡가, 작사자, 연주자, 가수의 이름 등을 함께 이용하여 검색하게 되는데 이와 같이 선곡을 할 때 표 16과 같이 각각의 곡이 구분되어 있다고 하면 선곡하기 위해서는 곡명과 작곡자, 연주자의 이름을 구분하여 입력해야 원하는 곡을 선택할 수 있게 된다. 표 16의 곡마다 구분내용(곡명, 작곡가, 연주자)에 대한 키배열(key sequence)이 표시되어 있다.
No 문장 key sequence
1 야상곡 쇼팽 서울시교향악단 41614131-9-63564-9-624426513614411312
2 야상곡 쇼팽 베를린교향악단 41614131-9-63564-9-5725225213614411312
3 월광소나타 베토벤 서울시교향악단 44221314632131-9-5733572-624426513614411312
4 월광소나타 베토벤 베를린교향악단 44221314632131-9-5733572-5725225213614411312
표 16에 보이는 바와 같이 곡 목록이 데이터베이스화 되어 있다면, 사용자가 이 데이터베이스로부터 1번 곡(쇼팽의 야상곡, 서울시교향악단 연주)을 추출하기 위해서는 '야상곡 쇼팽 서울시교향곡'에 해당하는 문장을 문장예측입력 방법 입력해야 하는데 이에 해당하는 키배열은 표 16의 곡 1의 key sequence이며 실제 사용자가 입력해야 하는 키입력배열은 식 23과 같다. 곡의 명칭 '야상곡'에 해당하는 키배열 '④①⑥①④①③①'을 입력하고, 곡의 항목을 구분하는 공백키 '⑨'를 입력하고, 이어서 작곡가 '쇼팽'에 해당하는 키배열 '⑥③⑤⑥④'과 항목을 구분하는 공백키 '⑨'를 이어서 입력하고 마지막으로 연주자 '서울시교향악단'에 해당하는 키배열 '⑥②④④②⑥⑤①③⑥①④④①①③①②'을 입력하면 표 5의 기준(각 문자에 해당하는 ambiguous key 지정은 표 10의 내용을 따름)에 근거하여 문장예측입력방법으로 표 16의 곡 목록 데이터베이스로부터 1번 곡을 선택하여 추출하게 되는 것이다.
야상곡 : ④①⑥①④①③① (23a)
공백 : ⑨ (23b)
쇼팽 : ⑥③⑤⑥④ (23c)
공백 : ⑨ (23d)
서울시교향악단 : ⑥②④④②⑥⑤①③⑥①④④①①③①② (23e)
그리고, 본 발명의 표 5의 기준에 따라 이루어지는 문장예측입력 방법에서는 식 24와 같이 문장을 구성하는 구절의 일부분에 해당하는 키입력이 이루어져도 표 16의 1번 곡이 추출될 수 있는 것이다. 즉 표 16의 1번 곡을 이루는 각 항목(곡명, 작곡가, 연주자)의 (앞쪽)일부분에 해당하는 키입력이 이루어져 표 16의 1번 곡이 추출되는 것이다. 즉 식 24와 같은 키 입력을 통해 음악 혹은 영화같은 문장이 아닌 것을 선택할 때에도 본 발명의 문장예측입력방법은 음악과 영화를 손쉽게 선택할 수 있는 방법을 제공하는 것이다. 표 16에서 각 곡은 문장으로 표시되고 각 곡의 항목(곡명, 작곡자, 연주자)은 '공백'으로 구분되어 본 발명의 문장예측입력방법으로 추출될 수 있는 것이며, 식 24와 같이 축약된 키입력으로 쉽게 추출할 수 있다.
야상곡 : ④① (24a)
공백 : ⑨ (24b)
쇼팽 : ⑥③ (24c)
공백 : ⑨ (24d)
서울시교향악단 : ⑥②④④② (24e)
문장의 경우는 문법구조로 인해 문장을 구성하는 구절들이 그 순서가 정해져 있다. 이를테면 '나는 학교에 갑니다.'라고 하면 '학교에 나는 갑니다.'라고 표현하지 않는다. 따라서, '나는 학교에 갑니다.'라는 문장을 본 발명의 문장예측입력방법의 데이터베이스에 등록할 경우에는 '나는 학교에 갑니다.'에 해당하는 키배열을 이 문장과 함께 표 16에 보여지는 형태로 등록하게 된다. 하지만 스트리밍 서비스에서 음악 혹은 영화를 선택하기 위해 사용자들이 입력하게 되는 키배열은 표 16에 보여지는 바와 같이 1번 곡을 선택하기 위해 '야상곡 쇼팽 서울시교향악단'이라고 키입력할 수도 있지만 '쇼팽 야상곡 서울시교향악단'이라고 입력할 수도 있다. 이렇게 작곡자를 먼저 입력하는 경우에는 데이터베이스가 표 16과 같이 구성되어 있다면 1번 곡을 추출할 수 없게 된다. 이러한 점에서 음악 곡이나 영화를 선택하는 과정에서 사용자들이 '곡명, 작곡가, 연주자'를 임의의 순서로 입력하더라도 사용자가 원하는 곡을 선택할 수 있도록 표 16의 1번 곡의 경우 표 17에 보이는 바와 같이 원래 문장 1-a에 해당하는 key sequence에 더불어 추가로 1-b, 1-c, 1-d, 1-e, 1-f 등 5개의 key sequence를 표 16의 곡 1에 해당하는 key sequence로 추가하여 데이터베이스에 등록한다. 실제로 이들 1-a ~ 1-f의 키배열이 의미하는 문장은 표 17의 각 key sequence 밑에 괄호안에 표시되어 있는 문장이다. 하지만 실제 데이터베이스에 각각의 key sequence에 해당하는 문장으로 등록되는 것은 1-a ~ 1-f에 키배열 모두 '야상곡 쇼팽 서울시교향악단'이 된다. 따라서, 사용자가 1-a ~ 1-f에 키배열을 입력할 경우 데이터베이스에서 문장을 추출하는 과정에서 '야상곡 쇼팽 서울시교향악단'으로 추출되게 하여 실제로 선택되는 곡은 표 16의 1번 곡이 되도록 하는 것이다.
No key sequence 문장
1-a 41614131-9-63564-9-624426513614411312 야상곡 쇼팽 서울시교향악단
1-b 41614131-9-624426513614411312-9-63564
['야상곡 서울시교향악단 쇼팽'에 해당]
야상곡 쇼팽 서울시교향악단
1-c 63564-9-41614131-9-624426513614411312
['쇼팽 야상곡 서울시교향악단'에 해당]
야상곡 쇼팽 서울시교향악단
1-d 63564-9-624426513614411312-9-41614131
['쇼팽 서울시교향악단 야상곡'에 해당]
야상곡 쇼팽 서울시교향악단
1-e 624426513614411312-9-41614131-9-63564
['서울시교향악단 야상곡 쇼팽'에 해당]
야상곡 쇼팽 서울시교향악단
1-f 624426513614411312-9-63564-9-41614131
['서울시교향악단 쇼팽 야상곡'에 해당]
야상곡 쇼팽 서울시교향악단
따라서, 표 16의 문장 데이터베이스를 표 17과 같이 동일한 문장(곡)에 대하여 확대된 key sequence를 등록할 경우 사용자들이 곡명, 작곡가, 연주자를 구분하지 않고 키입력하여도 쉽게 동일한 곡을 선택할 수 있게 된다. 즉 식 (25)에 보이는 바와 같이 사용자가 키입력하여도 표 17의 1-c에 해당하는 키배열에 부합되므로 곡 1-c(실제로는 선택되는 곡은 표 16의 곡 1과 동일)가 추출되어 결과적으로 표 16의 곡 1을 추출하는 것과 동일한 결과를 가져온다.
쇼팽 : ⑥③ (25a)
공백 : ⑨ (25b)
야상곡 : ④① (25c)
공백 : ⑨ (25d)
서울시교향악단 : ⑥②④④② (25e)
실시예 29에서는 문자예측입력에서 문장을 구성하는 구절의 순서에 관계없이 문장을 추출할 수 있도록 데이터베이스에 동일한 문장을 문장내의 구절의 순서를 변경하여 문장을 구성하는 구절들이 배치될 수 있는 모든 경우를 등록하였다. 하지만 이 번 실시예에서는 표 17에서와 같이 문장을 구성하는 모든 구절의 순서를 포함하는 키배열 목록이 포함된 데이터베이스를 이용하지 않고, 표 16와 같이 하나의 문장에 대응하는 키배열은 하나만으로 등록되는 데이터베이스를 이용하더라도 식 25와 같이 사용자가 문장내의 구절의 순서를 변경하더라도 구절들의 순서가 바뀌지 않은 문장을 추출하는 방법을 설명한다. 즉 사용자가 식 25와 같이 키입력을 하여도, 표 16의 1번 문장을 추출하도록 하는 방법을 설명한다.
지금까지의 문장예측입력방식의 기준이 되는 표 5의 내용은, 사용자의 입력 키배열과 데이터베이스의 등록된 문장의 키배열을 문장의 첫 번째 키배열부터 일치여부를 확인하여 일치하면 데이터베이스에 등록된 문장을 추출한다. 이에 반해 본 실시예에서는 사용자가 입력한 키배열을 문장을 구성하는 구절의 순서에 관계없이, 데이터베이스에 등록된 문장의 키배열과 비교하여 이 문장의 어느 구절이라도 그에 해당하는 키배열과 일치하면 이 문장을 추출하게 된다. 이를 식 25를 예를 들어 설명하며, 식 25에서 가장 먼저 입력된 키배열은 식 25a의 '63'이다. 지금까지는 이 키배열 '63'을 데이터베이스의 모든 문장의 첫 구절에 해당하는 키배열과 비교하여 일치하는 문장만을 추출하였는데, 본 실시예에서는 데이터베이스에 등록된 문장의 첫 구절뿐만 아니라 모든 구절에 해당하는 키배열과 사용자의 첫 구절 키배열 '63'을 비교하여 일치하는 키배열이 있는지 확인한다. 만약 이 과정에서 일치하는 문장이 있으면 이를 다음 검색과정을 위한 임시 문장목록을 구성한다. 여기까지가 첫 번째 과정이다.(Step 1) 첫 번째 과정에서 임시 문장목록이 있을 경우 사용자가 입력한 두 번째 구절에 해당하는 키배열 '41'에 대해서, 첫 번째 과정과 동일하게 검색과정을 거친다. 이 과정에서 일치하는 문장이 있으면 이들 문장을 임시 문장목록을 재구성하여 다음 단계로 진행하게 되며 이 과정이 두 번째 단계이다.(Step 2) 그리고 사용자가 입력한 마지막 키배열 '62442'에 대해서도 임시 문장목록을 검색하여 일치하는 문장을 추출하는 것이다. 이 과정이 세 번째 단계이다. 표 16을 데이터베이스라고 가정하고 위의 Step 1 ~ Step 3를 순차적으로 진행하여 설명하면 다음과 같다.
< Step 1 >
표 16의 문장 1 ~ 문장 4 중에서, 사용자가 입력한 키배열 '63'(식 25a)과 일치하는 키배열을 갖는 문장은 문장 1과 문장 2이다. 즉 문장 1과 문장 2는 이들 문장의 두 번째 구절에 해당하는 키배열이 '63564'으로서 '63'으로 시작하므로 일치하는 것이다. (여기서 일치여부는 전체가 동일하다는 것이 아니라 앞부분부터 비교하여 입력된 키배열과 데이터베이스의 해당 구절의 키배열의 앞부분부터 동일한 키갯수에 해당하는 키배열이 동일하면 일치한다고 판단하는 것이다. 즉 표 18의 문장 1과 2의 첫 구절에 해당하는 키배열이 '41614131'이므로 앞부분 2개의 키가 '41'로서 동일하므로 일치 판정을 내리는 것이다.) 표 16의 문장 1과 문장 2로 다음 단계 검색을 위한 검색 문장목록이 구성된다.
< Step 2 >
2 단계의 검색 문장목록인 표 16의 문장 1과 문장 2에 대해 사용자가 입력한 두 번째 키배열 '41'(식 25c)이 일치하는지 검색한다. 이들 문장의 첫 번째 구절에 해당하는 키배열이 '41614131'으로서 '41'으로 시작하므로 일치한다. 따라서, 표 16의 문장 1과 문장2는 다음 단계의 검색 문장목록이 된다.
< Step 3 >
3 단계의 검색 문장목록인 표 16의 문장 1과 문장 2에 대해 사용자가 입력한 세 번째 키배열 '⑥②④④②'(식 25e)이 일치하는지 검색한다. 이들 문장 중에서 문장 1의 경우 세 번째 구절에 해당하는 키배열이 '624426513614411312'으로서 '⑥②④④②'으로 시작하므로 일치한다. 반면에 문장 2의 경우 세 번째 구절에 해당하는 키배열이 '5725225213614411312'으로서 '⑥②④④②'로 시작하지 않으므로 일치하지 않는다. 따라서, 표 16의 문장 1이 추출문장으로 선택되는 것이다.
이상에 보여준 예를 살펴보면 표 5에 보여지는 문장예측입력방법의 기준이 표 18과 같이 요약될 수 있다. 특히 표 18의 기준 2에 대해서 추가적인 설명을 위해 사용자가 입력한 키배열이 식 (26)과 같을 때, 표 16의 데이터베이스에서 문장을 추출하는 과정은 다음과 같다. 먼저 사용자가 입력한 키배열 중에 공백으로 구분되는 구절(segment)중에 가장 긴 것은 식 (26c)의 '416'이다. 따라서, '416'을 표 16의 데이터베이스와 비교하면, 문장 1과 문장 2가 첫 구절에서 일치하여 문장 1과 문장 2가 다음 단계의 검색 문장목록이 된다. 두 번째 검색 단계는 식 (26a)의 키배열 '63'을 2단계 검색 문장목록인 문장 1과 문장 2와 비교하게 되는데, 이들 문장의 두 번째 구절의 앞 부분과 일치하므로 문장 1과 문장 2는 다음 단계 검색 문장목록이 된다. 이어서 식 (26e)의 키배열 '41'과 3단계 검색 문장목록인 문장 1과 문장 2와 비교하면 이들 문장의 첫번째 구절의 앞부분과 일치하지만 이 구절은 이미 첫번째 단계에서 식 (26c)의 키배열과 일치를 이루었기 때문에 중복되어 일치판정이 되는 것이므로 식 (26)으로 표시되는 사용자 키입력은 일치되는 문장이 없는 것이다. 즉 식 (26e)는 키배열이 '41'이지만 이는 연주자가 '아스케나지(Ashkenazy)'에 해당하는 키입력이어서 표 16의 데이터베이스에서 일치하는 문장(곡)을 찾을 수 없는 것이다.

기준 1

사용자가 입력한 키배열에서 공백키로 구분되는 구절(segment)의 갯수가
데이터베이스에 등록된 문장을 구성하는 구절(segment)의 갯수보다 같거나 작아야 한다.

기준 2

기준 1을 충족할 때,

사용자가 입력한 키배열에서 공백키로 구분되는 segment에 해당하는 number code sequence가 데이터베이스 등록된 문장을 구성하는 구절중에 적어도 하나의 구절에 대해 그 구절에 해당하는 number code sequence와 앞에서부터 비교하여 일치해야 한다.

다만,
사용자가 입력한 키배열에서 공백키로 구분되는 구절(segment)이 데이터베이스에 등록된 문장의 서로 다른 구절과 일치해야 한다.
즉, 사용자가 입력한 키배열에서 공백키로 구분되는 구절(segment)이 데이터베이스에 등록된 문장의 동일한 구절과 중복되어 일치되어서는 안된다.
쇼팽 : ⑥③ (26a)
공백 : ⑨ (26b)
야상곡 : ④①⑥ (26c)
공백 : ⑨ (26d)
아스케나지 : ④① (26e)
이상의 step 1 ~ step 3에서 보여지는 바와 같이 표 16을 이용해도 문장을 구성하는 구절의 순서가 바뀌어도 데이터베이스에서 원하는 문장을 추출할 수 있는 검색 방법을 알아보았다. 즉 도 16을 도 17과 같이 확대 변환하지 않아도, 검색과정을 달리하여 사용자가 문장을 구성하는 구절의 순서를 달리하여 입력하여도 문장을 데이터베이스로부터 추출할 수 있게 되었다. 즉 음악(혹은 영화 등)을 선택하기 위해 선곡에 필요한 선택요소(곡명, 작곡자, 연주자)를 입력함에 있어서 그 순서가 중요하지 않으므로 연주곡을 지정하는 요소(곡명 + 작곡가 + 연주자)를 하나의 문장으로 간주하였을 때 사용자는 이들 요소가 데이터베이스에서 어떤 순서로 배열되어 있는지 알 수 없으므로 본 실시예와 실시예 29는 이러한 비문장적인 것들에도 문장예측입력방법을 적용할 수 있는 방법을 제공한다.
그리고, 본 실시예와 실시예 29를 실행함에 있어서 데이터베이스가 도 16에 보이는 것과 같이 데이터베이스에 등록된 문장의 갯수가 적을 경우 식 25a까지만 입력하여도 문장 1과 문장 2가 추출되어 쉽게 선택할 수 있는 장점이 있다. 도 16과 도 17을 비교해 보면, 도 16은 데이터베이스를 도 17에 비해 간결하게 정리할 수 있는 반면 검색과정에서 사용자가 입력한 키입력을 모든 구절에 대해 비교해야 하므로 검색과정이 길어질 수 있다. 그에 반해 도 17은 검색과정은 단순화될 수 있지만 데이터베이스의 크기가 커지는 점이 있으므로, 실제 적용하는 과정에서 나은 쪽을 선택하면 될 것이다.
실시예 29와 실시예 30에서 문법적인 문장형태가 아닌 곡이나 영화를 선택하기 위해 그 선택 요소(제목, 작곡자, 연주자 등)를 문장형태로 구성하고 문장예측입력방법을 이용하여 데이터베이스에서 추출하여 입력하는 경우를 살펴 봤다. 이들 실시예의 경우 데이터베이스를 구성하는 각 요소(곡명, 작곡자, 연주자)가 공백키로 구분되어 문장에서 하나의 구절로서 표현되었다. 하지만 곡명, 작곡가, 연주자가 하나의 구절이 아니고 그 자체가 공백을 포함하는 경우가 있을 수 있다. 예를 들면 작곡자로 '쇼팽'의 경우 '프레데릭 쇼팽'이라고 표시될 수 있으며, 이를 표 19의 5번 곡과 같이 표시하면 식 (25)에 보여지는 키입력이 이루어져도 실시예 30에 보여지는 방법으로 표 19로 표현되는 데이터베이스를 검색하면 1번 곡과 함께 5번 곡도 함께 추출되어 선택될 수 있게 된다. 이러한 점에서 데이터베이스에 등록되는 문장(곡) 구성하는 요소는 '곡명', '작곡가', '연주자'가 아니라 각각의 구성요소에서 공백으로 구분되는 세분화된 것이 실질적인 데이터베이스를 구성하는 요소가 되는 것이다. 따라서, 표 19는 음악곡이나 영화와 같은 비문법적인 것을 문장형태로 표시할 때 문장으로 표시된 곡이나 영화를 데이터베이스에 추출하기 위해서 곡을 대표하는 문장에 있어서 '곡명', '작곡가', '연주자'를 구분하기 위한 '공백'과 곡명 자체에 포함된 '공백'을 구분하지 않아도 된다. 작곡가의 이름뿐만 아니라 곡명도 확장하여 '야상곡'이 아니라 '야상곡 씨단조(C단조)'(표 19에는 6번 곡의 이름으로 'C단조'를 한글자판만으로의 입력 편리성을 위해 '씨단조'라고 명시하였음)라고 표시해도 식 (25)에 보여지는 키입력이 이루어져도 6번 곡이 추출되어 선택될 수 있는 것이다. 이러한 점에서 표 19에서 5번 곡이 등록되어 있으면 1번 곡은 삭제되어도 아무런 문제가 없다. 다만 6번 곡의 경우 쇼팽의 야상곡 중에서 일부분을 명시하므로 1번 곡과 6번 곡을 동시에 등록하여 구분되도록 할 수도 있다. 따라서, 표 19에서 보는 바와 같이 곡을 나타내는 키배열에서 공백키는 구성요소(곡명, 작곡가, 연주자)의 구분하기 위한 용도뿐만 아니라 각각의 구성요소내에서 띄어쓰기 용도로 사용되어 데이터베이스의 키배열을 구성하도록 하면 표 18에 보여지는 기준으로 문장예측입력방법으로 이 데이터베이스에서 문장을 추출하여 곡을 선택할 수 있게 된다.
No 문장 key sequence
1 야상곡 쇼팽 서울시교향악단 41614131-9-63564-9-624426513614411312
2 야상곡 쇼팽 베를린교향악단 41614131-9-63564-9-5725225213614411312
3 월광소나타 베토벤 서울시교향악단 44221314632131-9-5733572-624426513614411312
4 월광소나타 베토벤 베를린교향악단 44221314632131-9-5733572-5725225213614411312
5 야상곡 프레데릭 쇼팽 서울시교향악단 41614131-9-552737251-9-63564-9-624426513614411312
6. 야상곡 씨단조 프레데릭 쇼팽 서울시교향악단 41614131-9-552737251-9-63564-9-624426513614411312
표 19에서 6번 문장과 같이 데이터베이스를 구성하는 문장이 일반적인 문장의 경우에도 적용될 수 있음을 보여주고 있다. 즉 공백으로 구분되는 문장 구성 요소들이 원래 그것이 곡 명이든 작곡가이든 상관없이 모든 구절이 하나의 요소로서 사용자가 입력하는 키배열과 비교되어 일치여부만을 판단하여 데이터베이스에 등록된 문장 중에서 추출되어 선택될 수 있음을 확인되었다. 이러한 의미에서 표 18의 기준을 일반적인 문장에 적용하면 음악 곡이나 영화를 선택하는 것에서 벗어나 인터넷 검색과 같은 일반적인 검색에 활용될 수 있다.
이러한 점에서 본 발명의 문장예측입력방법은 인터넷 검색에 문장예측입력방법을 적용하여 도 10a와 도 18에 보여주는 ambiguous key를 갖는 자판으로도 손쉽게 인터넷을 검색할 수 있다. 예를 들면 '나는 학교에 갑니다'라는 문장을 표 18에 보이는 예측입력키보드를 이용하여 식 (27)과 같이 입력하게 될 경우, 검색엔진(예를 들면 '구글' 혹은 마이크로소프트의 '빙') 도 24와 같이 '나는 학교에 갑니다'라는 주제문장을 포함하는 사이트들이 추출되어 보여진다. 만약 이들 각 사이트의 주제문장에 해당되는 검색 인덱스(query index)가 표 20과 같이 ambiguous key sequence로 정의된다면 식 (27)과 같이 사용자에 의해 키입력이 이루어질 경우 표 20의 문장 1, 2, 3이 문장예측입력방법의 기준인 표 10에 부합하므로, 표 20과 같이 구성되는 검색엔진의 데이터베이스에서 추출되어 선택입력이 가능해진다.
위에서 살펴 본 바와 같이, 사용자가 도 18과 같이 ambiguous key로 이루어진 키보드로 키입력이 이루어질 때, 표 20로 구성되는 검색엔진의 인덱스 데이터베이스로부터 부합하는 문장을 추출하거나, 아니면 이들 문장을 포함하는 웹사이트를 추출하게 할 수도 있다. 이러한 면에서, 인터넷에는 일반적으로 사용되는 거의 모든 문장이 존재하므로 본 발명의 문장예측입력을 위한 가장 이상적인 데이터베이스가 되는 것이다. 그 이유는 예측입력방법을 사용함에 있어서 불편한 점은 데이터베이스에 단어, 구절 혹은 문장이 등록되어 있지 않는 경우인데 이를 해결하기 위해서는 실시예 5와 같이 데이터베이스에 등록되어 있지 않은 단어, 구절, 문장을 등록하는 별도의 과정을 입력과정에서 수행해야 하는 불편함이다. 하지만 인터넷 검색엔진의 검색 인덱스 데이터베이스에 일반적으로 사람들이 사용하는 거의 모든 문장이 등록되어 있으므로, 실시예 5와 같이 별도의 등록과정을 통한 입력과정을 피할 수 있어서 예측입력을 통한 문장입력이 full keyboard를 이용하여 문장입력하는 것과 동일한 효능을 가져올 수 있다.
나는 : ②①②⑤② (27a)
공백 : ⑨ (27b)
학교에 : ⑥①①①③④⑦ (27c)
공백 : ⑨ (27d)
갑니다 : ①①⑥②⑤③① (27e)
No 웹사이트 주제어 문장 검색 인덱스 key sequence
1 나는 여덟 살, 학교에 갑니다. 21252-9-423225-9-612-9-6111347-9-1162531
2 나는 장갑을 끼고 학교에 갑니다. 21252-9-714115452-9-1513-6111347-9-1162531
3 나는 학교에 갑니다. 21252-9-6111347-9-1162531
본 발명의 문장예측입력방법의 장점 중 하나가 문장을 구성하는 각 단어의 일부분만을 입력하여도 문장이 예측되어 입력될 수 있는 것이다. 그럼 이에 더해서 한글의 초성입력방법을 문장예측입력 방법에 적용하면 더욱 더 간편하게 문장입력이 용이하게 되는 것이다. 따라서 표 21의 No 2에 보여지는 바와 같이 문장예측입력방법의 데이터베이스에 문장을 등록할 때 문장에 해당하는 key Sequence를 문장을 구성하는 각 단어의 키입력순서가 각 단어의 초성에 해당하는 키입력으로 구성되어도 문장이 예측되도록 하면 각 단어에 해당하는 키입력이 절반 이상 줄어드는 효과를 가져와서 문장예측입력이 더욱 간편하게 이루어지게 되는 것이다. 즉 '나는 학교에 갑니다.'에 해당하는 key sequence가 첫 번째 단어인 '나는'의 초성인 'ㄴㄴ'에 해당하는 '22', 두 번째 단어인 '학교에'의 초성인 'ㅎㄱㅇ'에 해당하는 '614', 그리고 마지막 단어인 '갑니다'의 초성인 'ㄱㄴㄷ'에 해당하는 '123'을 key sequence로 등록하면 각 단어의 초성을 입력해도 '나는 학교에 갑니다'를 예측하여 쉽게 입력할 수 있게 되는 것이다.
No 문장 key sequence
1 나는 학교에 갑니다. 21252-9-6111347-9-1162531
2 나는 학교에 갑니다. 22-9-614-9-123
본 발명의 문장예측입력방법은 영어와 한글을 하나에 ambiguous key에 지정하여도 한글과 영어를 구분하지 않고도 영어와 한글이 혼용된 문장도 데이터베이스에 등록할 수 있게 된다. 표 10에 보이는 바와 같이 영어 알파벳도 ambiguous key에 지정함에 따라 그에 맞게 key sequence를 산출하여 등록하면 영어와 한글을 별도의 자판으로 구분하지 않아도 영어와 한글로 구성된 문장을 자유롭게 등록하고 추출할 수 있다. 심지어 영어뿐만 아니라 숫자도 ambiguous key에 지정하여 숫자, 영어, 한글의 혼용이 가능하게 되는데, 이를 위한 자판이 도 25에 보여지고 있다. 영어, 한글과 다르게 숫자의 경우 하나의 ambiguous key에 하나의 숫자만을 지정하기 위해 숫자 '5, 6, 7, 8, 9'는 두번의 키입력으로 이루어지도록 하였고, 이를 표시하기 위해 도 25에서 '5, 6, 7, 8, 9'는 분홍색으로 표시된다. 이는 '5'는 '+5'(도 25의 'ㅁㅇ'키의 분홍색 사각형이 +5를 의미하여, '1'과 조합되면 '6', '2'와 조합되면 '7'을 의미하게 된다.)가 지정된 'ㅁㅇ'키와 '0'이 지정된 'ㄱㅋ'를 눌러주도록('6', '7', '8', '9'는 '+5'에 해당하는 'ㅁㅇ'키를 누른 다음에 각각 '1', '2', '3', '4'에 해당하는 키를 누른다) 구성하여 모든 숫자가 정확하게 구분 되도록 하였다. 이렇게 하는 이유는 문자의 경우는 각각의 키에 지정된 문자들의 조합으로 만들어지는 단어가 한정되지만, 숫자의 경우는 ambiguous key에 두 개 이상의 숫자가 지정되면 여러개의 ambiguous key로 조합될 수 있는 숫자가 눌려지는 키의 갯수에 비례하여 증가하므로 ambiguous key에 하나의 숫자만이 지정되도록 해야 하는 것이다. 도 25는 이렇게 숫자, 영어, 한글이 함께 지정된 ambiguous 자판을 이용하여 키입력을 하여 추출된 문장의 예를 보여주고 있다. 사용자가 가수 '2NE1'의 노래를 검색하기 위해 '2NE1'에 해당하는 key sequence '3912'에 해당하는 키를 눌어주어 입력하면 도 25에 보여지는 바와 같이 '2NE1'의 노래 제목들이 문장예측입력방법 데이터베이스에서 추출되어 예측문장표시창에 보여지게 된다. 따라서, 본 발명의 구성은 영어, 한글, 숫자를 동일한 자판으로 모드 변환없이 예측입력할 수 있는 방법을 제공한다.
실시예 34에서 보여주는 바와 같이 본 발명의 구성은 영어도 한글과 함께 입력할 수 있게 하므로, 영어 입력을 위해 자판변환이 없이도 웹주소의 입력도 간편하게 입력할 수 있도록 한다. 특히 웹주소의 '.'(period)기호를 공백기호로 간주하고 문장처럼 취급하여 웹주소를 표 22에 보이는 것처럼 예측입력방법을 위한 데이터베이스에 등록하여, 웹주소를 문장예측입력방법으로 입력할 수 있게 된다. 더 나아가서그림 26에 보이는 바와 같이 웹주소를 입력하고자 커서가 웹주소 입력메뉴에 위치하게 되면 문장예측입력방법의 데이터베이스에서 웹주소만을 선택할 수 있도록 문장추출을 웹주소만을 구분한 영역에서 검색하도록 데이터베이스를 구성하면 검색의 속도를 증가시켜 효율적인 문장예측이 가능하게 한다. 그림 27은 커서가 그림 26에서 보이는 바와 같이 웹주소창에 위치하는 경우 검색되는 문장이 웹주소만으로 이루어지도록 한 경우를 보여주고 있다. 이렇게 문장예측입력방법을 위한 데이터베이스 구성을 세분하여 원하는 문장을 추출하도록 하는 것은 문장예측입력방법에서 추출되는 문장의 수를 가급적 적게하여 입력하고자 하는 문장이 예측문장으로 추출되도록 하기 위함이다.
웹주소 key sequence
첫번째 두번째 세번째
www.***.com 111 63361 739
www.bbc.com 111 997 739
www.youtube.com 111 2322291 739
www.daum.net 111 4129 912
www.naver.com 111 94711 739
www.cnn.com 111 799 739
문장예측입력방법에 있어서 추출되는 문장의 나열 순서는 예측 문장의 빈도수에 따라 우선순위를 두어 많이 사용되는 문장을 최우선적으로 나열하여 사용자가 선택하도록 한다. 이는 단어예측입력의 경우에 하나의 단어에 대해서 적용하는 것을 원용하는 것인데, 본 발명에서는 문장의 빈도수외에 문장을 구성하는 각 단어의 key sequence와 입력된 key sequence가 일치할 경우에 높은 우선순위를 부여하여 key sequence가 일치하는 경우를 우선적으로 배열하도록 한다. 예를 들어 도 28의 경우를 설명하면, 현재 입력된 key sequence는 '22'이다. 그리고 이에 해당하는 한글 단어는 '너'가 있고, 숫자로는 '11'이 해당되고, 영어로는 'TT'가 있다. 따라서, 이들을 포함하는 문장이 완전히 일치하지 않는 '11월'을 포함하는 문장 '11월 착각'보다 우선순위가 높아서 예측문장표시창에서 앞쪽에 배열되는 것이다. 이를 정리하면 표 23과 같다. 즉 표 5에 따라 문장예측입력방법 데이터베이스에 추출된 문장에 대해 문장을 구성하는 각 단어의 key sequence와 그에 대응하는 입력키의 key sequence를 비교하여, 동일한 key sequence를 갖는 단어의 갯수 'n'을 산출하고, 동시에 문장을 구성하는 단어의 갯수 'm'을 산출하여 'n'이 큰 문장에 높은 우선순위를 부여하고, 만약 'n'이 동일하면 'm'이 작은 문장이 큰 문장보다 더 높은 우선순위를 부여하여 문장을 배열하여 가장 적합한 문장을 선택하도록 한다. 만약에 'n'과 'm'이 동일한 경우라면, 각 문장의 빈도수에 따라 우선순위(빈도수가 큰면 우선순위가 높다)를 결정하여 배열하면 된다. 이러한 기준에 비추어 도 28의 '11월 착각'은 n = 0이고 나머지 문장들은 n = 1이므로 '11월 착각'이 예측문장표시창에서 마지막에 배열되는 것이다.
우선순위
산출 순서
내용
1 문장을 구성하는 key sequence와 일치하는 입력 key sequence의 갯수(n) 산출
2 문장을 구성하는 단어의 갯수(m) 산출
3 n이 큰 문장이 높은 우선순위를 갖는다.
4 n이 동일한 문장의 경우,
m이작은 문장이 높은 우선순위를 갖는다.
도 29는 본 발명의 문장예측입력방법을 위한 한글자판의 한 예를 보여주고 있다. 이것이 도 28에 보여지는 한글자판과 다른 점은 'ㅂㅍ'키를 좌측 하단에 배치하고, 모음 중에서 'ㅜ, ㅓ, ㅔ'가 좌측에서 위로부터 차례대로 키배열되고, 우측에는 'ㅗ, ㅏ, ㅐ'가 위로부터 차례대로 배열된다. 그리고, 'ㅡ, ㅣ, ㅢ'가 중앙의 위쪽 키에 지정된다. 이런 배열을 하게 되는 배경은, 자음의 경우 천지인의 배열과 유사하도록 하여 사용자가 자음의 위치를 쉽게 숙지할 수 있도록 한 것이며, 모음의 경우는 복모음(ㅝ, ㅞ, ㅘ, ㅙ)의 입력을 쉽게 하기 위해 'ㅜ, ㅓ, ㅔ'와 ㅗ, ㅏ, ㅐ'를 일직선 상에 배열하고, 'ㅚ, ㅟ'입력을 편리하게 하기 위해 'ㅜ'와 'ㅗ'를 'ㅣ'와 이웃하게 배열한 것이다.
도 30a는 단어예측입력 방법에서 'few'라는 단어를 입력하기 위해 swipe 방식(터치센서를 갖는 입력방식에 있어서 입력하고자 하는 키를 하나씩 터치하는 것이 아니라 손가락이 터치센서에 처음 닿은 위치의 키를 첫 문자로 시작하고, 손가락이 터치센서에 닿은 상태에서 입력하고자 하는 문자에 해당하는 키를 연속으로 스쳐 지나가면 입력이 되도록 하는 방식)으로 'f', 'e', 'w'가 지정된 키를 지나는 손가락 궤적으로 'few'가 입력된다. 그리고 이러한 swipe 방식에서 동일한 키를 두 번이상 입력해야 하는 경우도 한 번의 터치(드래그 과정에서는 문자가 지정된 키를 한 번만 통과)로 입력이 완성되도록 한다. 도 30a에 보이는 자판은 구글 병음자판으로 중국어와 영어(단어예측입력방법이 적용됨)를 입력할 수 있는데, swipe 방식으로 'few'를 입력하기 위해서 'def'키를 터치하고 'mno'키를 지나서 'wxyz'키를 터치하고 손가락이 이격하면 도 30a에 보이는 바와 같이 'few'가 입력된다. 하지만 도 30a의 좌측 예측단어표시창(302)에 보여지는 예측 단어는 20개가 된다. 실제로는 도 30a의 자판 시스템은 예측단어를 보여줄 수 있는 예측단어표시창(302)이 16개의 단어를 보여줄 수 있어서 마지막 한 줄(303)은 숨어 있는 것을 옆의 화살표(304)를 터치하여 예측단어표시창(302)에 보여지게 한 후 선택해야 한다. 즉 swipe 방식으로 키입력은 신속해졌지만 예측단어를 표시할 수 있는 공간이 제한될 경우 예측단어를 표시창(302)에 표시하고 선택하는데 오랜 시간이 걸려서 입력과정 전체를 봤을 때 신속성이 저하되는 상황을 맞게된다. 따라서, 전체적인 입력의 신속성을 증가시키기 위해서는 예측단어의 수를 감소시켜야 하며, 이를 위해서는 두 가지 면에서 swipe 방식을 보완하여야 한다. 그 방법의 아래의 표 24와 같이 두 가지로 요약할 수 있다.
방법 1 swipe 궤적이 지나치는 키에 대해 키입력이 한 번만 이루어지는 경우와 두 번 이상 이루어지는 경우를 구분한다
방법 2 방법 1이 적용되는 경우,
swipe 직선 궤적이 3개 이상의 키를 포함하지 않도록 자판의 키를 배열
방법 1은 swipe 입력방법을 적용하는 알고리즘에 해당하는 구성이다. 따라서, 이 해결방법은 swipe 궤적이 이루어진 다음에 궤적이 지나치는 키에 대해 한 번 혹은 두 번 이상 키입력이 이루어지는 한 가지의 키입력순서(key sequence)에 해당하는 단어만을 예측하도록 하면 된다. 그에 반해서 방법 2는 알고리즘에 의해 실현되는 것이 아니라 키배열의 기하학적인 변화를 가져오게 되는 방법으로 자판 형태의 변화를 수반하게 된다.
방법 1을 'few'입력과 관련하여 살펴보면, 도 30a의 swipe 궤적 301에 대한 예측단어에는 'def'키를 두 번 입력해야 하는 'few'와 한 번만 입력해야 하는 'ex'가 동시에 포함되어 있어서 방법 1이 적용되지 않은 것을 보여준다. 따라서, 방법 1을 적용하고자 한다면 도 30a의 swipe 궤적(301)은 수정되어야 한다. 일반적으로 표 1의 방법을 적용하기 위해서는 동일한 키를 두 번 이상 입력해야 되는 경우 동일한 키 영역 내에서 원의 궤적을 그리도록 하여 단순히 지나치는 궤적과 달리하여 해당 키의 반복입력을 실행하도록 한다. 혹은 손가락이 해당 키에 머무르는 시간을 길게하여 짧게 지나치는 경우에는 한 번의 키입력이 이루어지고, 길게 머무르는 경우에는 머무르는 시간에 따라 입력횟수를 증가시킨다. 이렇게 swipe 궤적이 기하학적인 모양은 같더라도 머무르는 시간 혹은 키에 머무르는 모양을 달리하여 키입력 반복 횟수를 구분함으로서 동일한 swipe 궤적에서 여러개의 키입력순서(key sequence)가 발생하는 것을 방지할 경우, 도 30a의 궤적 301로 인해 예측되는 단어 'few'와 'ex'는 구분이 되므로, 'few'를 입력하고자 그려지는 궤적('def'키에 손가락이 머무르는 시간을 길게 하거나, 'def'키에서 원을 그리는 동작)에 대해서는 'ex', 'DX', 'DW', 'ez' 등의 단어는 예측단어의 목록에 추출되지 않게 된다. 즉 표 24의 방법 1은 swipe 궤적이 지나치는 키의 반복 입력을 포함함으로서 많아지는 예측단어를 정리하여 그 갯수를 줄일 수 있게 된다. 그리고, 표 24의 방법 2와 관련하여 도 30a의 'few'의 입력으로 살펴보고자 한다. 도 30a의 'few'를 입력하기 위한 swipe 궤적(301)은 표 24의 방법 1을 만족시키기 위해 'def'키에서 원의 궤적을 그리거나 머무르는 시간을 길게한 후 'def'키와 'wxyz'키를 직선 연결하는 궤적을 그리도록 수정되어야 한다. 이렇게 궤적을 수정하여도 도 30a의 자판에서는 이들 키의 중간에 위치한 'mno'키를 swipe 궤적이 피할 수 없으므로 'm', 'n', 'o'를 포함하는 단어를 단어예측 알고리즘으로만으로 배제시킬 수 없다. 만약에 'mno'키를 지나치지 않기 위해서 궤적을 변경하게 되면 이웃한 키 'jkl'을 지나치게 되므로, 'mno'키를 피할 수 없게 된다. 따라서, 표 24의 방법 2을 구현하기 위해서는 자판상의 어떠한 두 키를 연결하는 직선궤적 내에 또 다른 키가 위치하지 않도록 배열하는 것이다. 이를위해 도 30a의 자판이 변형되는 과정을 도식적으로 설명한 것이 도 30b이다. 도 30b의 (가)는 표 24의 방법 2를 적용해야 하는 상황을 설명하고 있다. 즉 도 30b의 (가)에서 보이는 바와 같이 모서리에 위치 한 키(1, 3, 5, 7번 키)를 연결하는 궤적(305)은 중간에 위치한 키(2, 4, 6, 8번 키)를 거치게 되어 이들 중간에 위치한 키의 위치를 변경해야만 표 24의 방법 2를 구현할 수 있게 된다. 그리고 표 24의 방법 2를 구현하기 위해 2, 4, 6, 8번 키의 위치를 변경한 것을 보여주는 것이 도 30b의 (나)이다. 요약하면 도 30b의 (가)에서 자판의 모서리에 위치한 1, 3, 5, 7번 키를 고정시킨 상태에서 이들 모서리에 위치한 키를 연결하는 swipe 궤적(305)이 2, 4, 6, 8번 키의 중심을 지나지 않도록 이들 2, 4, 6, 8번 키를 이동시키고, 0번 키의 경우는 이동할 위치가 마땅치 않으므로 0번 키의 위치를 비우는 구성이다. 그리고 이렇게 2, 4, 6, 8번 키를 이동시키게 되면 자연스럽게 8각형의 꼭지점에 키를 배치한 형태가 이루어지게 된다. 여기서 고려해야 할 점은 2, 4, 6, 8번 키의 원래 위치에서 움직이는 이동거리를 어느 정도 해야 하는 점이다. 도 30b의 (다)와 (라)를 예를 들어 설명한다면, 4번 키가 3번 키와 5번 키를 연결하는 궤적(306)으로부터 가능한한 멀리 이동하면 좋을 수 있지만 그 거리가 길어지다 보면 4번 키가 궤적(306)으로부터 멀어질 수 있는 반면에 2번, 3번, 4번 키가 동일선 상에 위치하는 상황이 벌어지게 되므로 도 30b(나)와 같이 2번, 4번, 6번, 8번 키를 정8각형의 꼭지점에 배열되는 형태가 가장 바람직하고, 구체적으로는 도 30b의 (다)와 (라)에 보여지는 궤적(306, 307)이 swipe 궤적 판단 알고리즘으로 구분이 되는 범위 내에서 거리를 조정하면 된다. 이상의 내용을 정리하면 문자키가 8개인 자판의 경우 단어예측입력방법에 있어서 swipe 방식을 적용할 때 예측단어의 갯수를 줄이기 위해 8각형의 중심 영역을 비우고, 꼭지점에 8개의 문자키를 배열하여 두 개의 문자키를 연결하는 직선 궤적이 다른 문자키의 중심을 벗어나도록 하여 예측단어의 갯수를 최소화되도록 자판을 구성하는 것이다. 즉 입력하고자 하는 두 개의 키를 잇는 궤적이 입력을 원하지 않는 키의 중심을 지나치지 않도록 하여 swipe 궤적에 대해 하나의 키입력순서(key sequence)만이 이루어지도록 하는 구성이다.
도 31a에 보여지는 자판은 실시예 38에서 제시된 구성을 바탕으로 7각형의 꼭지점에 7개의 문자키를 배열한 것이다.(도 31a에 보여지는 자판에서 서로 이웃한 문자키의 중심을 연결하면 7각형을 이룬다.) 영어 qwerty 자판의 키 배열을 이용하기 위해 정7각형의 자판 형태를 적용한 것이다. 7개의 키에 'qwer', 'tyu', 'iop', 'asdf', 'ghjkl', 'zxc', 'vbnm' 문자 그룹을 지정한 것이다. 그 특징을 살펴 보면 정 7각형의 각 꼭지점에 해당하는 위치에 키를 배열한 형태이다. 키를 이렇게 배열하여 swipe 방식의 입력 방법에서 얻게 되는 장점은 입력하고자 하는 키를 향하는 손가락 궤적이 두 개의 키 사이에 다른 문자키가 위치하지 않는 점이다. 예를 들면, '모기'라는 한글 단어를 swipe 방식으로 입력하기 위한 손가락 궤적이 도 31b에 보여지는 자판에서 만들어지는 것과 일반적인 자판형태(도 31c)에서 만들어지는 것을 비교하여 설명하고자 한다. 도 31c는 일반적인 키패드 형태로 9개의 키로 구성된 격자형 자판을 보여주고 있다. 도 31b와 도 31c의 궤적(붉은색 궤적)은 '모기'를 입력하기 위한 손가락 궤적을 보여주고 있다. 즉, 'ㅁ'이 지정된 키에서 터치를 시작하여 'ㅗ'가 지정된 키와 'ㄱ'이 지정된 키를 차례대로 지나서 마지막으로 'ㅣ'가 지정된 키에 다다라 손가락을 자판으로부터 이격하여 swipe 방식의 입력 방법이 이루어진다. 이러한 swipe 궤적으로부터 '모기'를 예측하여 입력할 수 있게 된다. 하지만 도 31c에 보여지는 궤적에서는 '모기'외에도 '모눈'이라는 단어를 swipe 방식으로 입력하는 경우에도 같은 궤적을 거치게 된다. 즉 'ㅗ'가 지정된 키와 'ㄱ'이 지정된 키로 이동하는 과정에 원하지 않는 키('ㄴ'이 지정된 키)를 지나치게 되어 원하지 않는 키를 누르는 상황이 만들어지게 되는 것이다. 이에 반해서 도 31b에 보여지는 자판의 키배열에서는 'ㅗ'가 지정된 키에서 'ㄱ'이 지정된 키를 이동하는 궤적에 다른 키 영역을 지나치지 않으므로 도 31c와 달리 원하지 않는 키가 입력되지 않는 것이다. 즉 도 31b에 보여지는 자판에서의 키배열은 하나의 키에서 나머지 6개의 키로 연결되는 직선 궤적상에 다른 키가 존재하지 않아 swipe 방식에 의한 입력방법이 입력하고자 하는 단어의 철자에 해당하는 키를 하나씩 눌러주는 것과 동일한 결과를 가져오도록 하는 것이다. 즉 도 31c에 보여지는 일반적이 격자형 자판의 경우 일직선 상에 위치한 3개의 키를 지날 경우 중간의 키를 입력해야 하는 지 여부가 불분명하여 중간키의 입력을 포함하지 않는 key sequence와 중간키의 입력을 포함하는 key sequence로 인하여 key sequence가 두 가지 발생하게 된다. 만약에 swipe 궤적이 일직선 상에 있는 3개의 키를 지나는 경우가 두 번 있게 되면 3개의 키를 지나는 각각의 궤적에 대해 2개씩 총 4가지 key sequence가 발생하여 한 가지의 key sequence만 발생하는 도 31b에 보여지는 자판에 비해 예측되어야 하는 단어의 숫자가 4 배 증가하게 된다. 따라서 증가된 예측된 단어의 갯수로 인해 선택하는 과정이 힘들어지게 되는 것이다. 이러한 상황이 문장예측에 적용 되었을 때 문장을 구성하는 단어가 3개이고, 각 단어마다 swipe 궤적에 대해 4가지의 key sequence가 발생한다고 가정하면 문장 예측을 위한 key sequence 조합은 64가지에 이른다. 더군다나 각각의 key sequence 조합에 4가지의 문장이 예측된다고 하면 예측 가능한 문장의 총 수는 265개가 된다. 이렇게 많아진 예측 문장에서 원하는 문장을 선택하는 것은 실질적으로 불가능할 지경에 이르게 되는 것이다. 이러한 점에서 ambiguous key 자판을 swipe 방식으로 입력할 경우 입력하고자 하는 키와 키를 연결하는 경로 상에 원하지 않는 키가 위치하지 않도록 키를 배열하는 것이 중요하다. 이러한 점에서 도 31b에 보여지는 바와 같이 7각형의 꼭지점(도 31b 각 키의 중심을 연결하면 7각형이 이루어진다.) 혹은 7각형의 각 변에 키를 배열하도록 하여 swipe 방식의 입력시에 각 키를 잇는 최단 거리 궤적에 원하지 않는 키가 위치하지 않도록 할 수 있게 되는 것이다. 실시예 38과 본 실시예의 구성은 다각형의 꼭지점에 문자키를 배열하여 2개의 꼭지점을 연결하는 swipe 궤적이 단 하나만의 키입력순서를 갖는다는 점에서 동일하다. 다만 본 실시예의 7각형 자판 형태는 사용자가 자판 내의 키 배열(문자의 배열)을 용이하게 인식할 수 있도록 일반적으로 사용되는 qwerty 자판의 키를 7개로 그룹화하여 7개의 키에 지정하게 되어 실시예 38의 8각형 형태가 7각형 형태의 자판으로 변형된 것이다.
실시예 39에서 살펴 본 7각형의 꼭지점에 키를 배치하여 swipe 방식의 입력방법에서 swipe 궤적에 대한 키입력순서(key sequence)의 단일성(하나의 swipe 궤적에 해당하는 key sequence가 하나만 존재하는 경우를 지칭함)을 유지하기 위해서는 각 키에서 이웃한 키 특히 두 번째로 이웃한 키로 연결되는 직선 궤적이 바로 이웃한 키의 중심을 지나치지 않도록 해야 한다. 이를테면 도 32a에 보여지는 궤적 307은 4번 키의 중심을 통과하므로 4번 키의 입력이 이루어지고, 궤적 306은 4번 키의 중심으로부터 벗어난 영역을 지나쳐서 키입력이 이루어지지 않는다. 즉 4번 키 영역에서 궤적의 꺽임 정도에 따라 궤적이 4번 키를 통과한 것인지의 여부를 판단하게 된다. 이러한 궤적 판단 기준은 자판에서 터치가 이루어지는 지점을 지정하는 포인팅 장치에 따라 그 내용이 조절되어야 한다. 이를테면 자판을 터치하는 포인팅 장치가 스타일러스 펜과 같이 정확히 터치 지점을 알 수 있으면 사용자가 도 32a의 궤적 306과 307과 같이 정확히 구분하여 따라 갈 수 있지만 손가락을 이용하여 터치하는 경우라면 실제 손가락이 터치하는 지점이 키의 중심인지 아닌지 알 수가 없다. 따라서 사용자는 306에 해당하는 궤적을 의도하지만 실제로는 궤적 308, 309, 310을 따라서 움직일 수도 있는 것이다. 그러므로 도 32a에 보여지는 다양한 궤적(306, 307, 308, 309)을 고려하여 궤적을 판단하는 기준은 궤적이 키를 지나치는 지의 여부와 더불어서 306과 같이 직선형태의 궤적과 307과 같이 꺽인 형태의 궤적의 차이를 구분하여 그 기준이 마련된다. 즉 4번 키를 지나는 궤적의 기하학적인 형태(꺽인 정도)에 따라 4번 키의 입력 여부가 판단되므로 도 32a(마)에서 보이는 바와 같이 궤적이 키의 중심 영역을 지나친다고 하여도 키입력이 이루어지지 않는 경우도 있게 된다. 따라서, 사용자들은 이렇게 만들어진 기준이 사용자의 손가락 혹은 포인팅 장치가 만드는 궤적과 부합하지 않을 경우 시행착오를 거치면서 이 기준에 맞춰서 적응해 가야 하는 과정을 거치거나 사용자의 습관에 맞게 궤적 판단 기준을 변경할 수 있도록 하면 된다. 즉 swipe 방식의 입력방법은 터치 방식으로 각각의 키를 입력하는 입력방법에 비해 에러가 생길 확률이 존재하게 된다. 이러한 에러 발생 비율을 줄이기 위해 다각형의 꼭지점에 배치된 각각의 키의 크기를 축소하는 방안을 고려하고자 한다. 이러한 방안의 하나로 도 32b에 보이는 바와 같이 정다각형의 꼭지점에 배치되는 키의 크기를 축소하는 것이다. 도 32b에 보여지는 정다각형들은 도 32b의 (가)에 보여지는 것처럼 동일한 크기의 원에 내접하는 도형들이다. 그리고, 각 도형의 꼭지점에 배치되어 있는 키는 두 개의 키를 잇는 궤적이 다른 키를 지나치지 않도록 키의 크기를 조절한 것이며, 도 32b의 키는 다각형의 꼭지점에 배칠될 때 키가 가질 수 있는 최대 크기를 보여주고 있다. 즉 도 32b의 (다)~(바)에 보이는 바와 같이 각 정다각형의 1번 키에서 두 번째로 근접한 3번 키로 연결하는 직선궤적(324, 325, 326, 327)은 사용자가 1번 키에서 3번 키로 이동하는 궤적의 영역(320)의 바깥쪽 경계가 된다. 따라서, 2번 키의 경우 1번 키와 3번 키를 잇는 궤적 영역(320)의 경계선(324, 325, 326, 327)에 접하게 된다. 이렇게 정다각형의 꼭지점에 배열되는 키의 크기를 조절하여 두개의 키를 잇는 궤적이 다른 키를 지나치지 않도록 하는 것이 본 실시예의 구성이다. 따라서 도 32b의 자판 형태에서 swipe 궤적의 판단 기준은 "궤적이 지나치는 키는 모두 키입력순서(key sequence)에 포함"하는 것으로 정해지므로, 사용자도 swipe 궤적이 원하는 키만을 지나치도록 하면 swipe 궤적에 대해 신경쓰지도 않아도 되는 장점을 가지게 된다. 즉 도 32a에 보여지는 키배열에서는 궤적 306(4번 키의 키입력 없음)과 궤적 307(4번 키의 키입력 실행)을 구분하는 궤적 판단 기준을 사용자가 정확히 파악할 수 없으므로 궤적을 그린 후에 입력 결과를 보고 정확히 입력이 되었는지의 여부를 확인해야 하는 반면에 도 32b의 키배열에서는 지나치는 키 영역을 눈으로 확인할 수 있어서 궤적이 판단기준에 맞는지 여부를 사용자가 눈으로 확인하게 되어 도 32a의 궤적 판단기준에 따른 확인 과정을 생략할 수 있으므로 신속하고 편리한 입력을 제공하게 된다.
도 32b에서 보는 바와 같이 두 개의 키를 연결하는 직선 궤적이 또 다른 키의 영역을 지나치지 않기 위한 조건을 충족하기 위해 각각의 키가 가질 수 있는 최대 크기는 정다각형의 꼭지점의 갯수가 많아질수록 작아진다. 더 나아가서 도 32b에 보여지는 키는 두 개의 키를 잇는 궤적인 다른 키를 지나치지 않을 수 있는 최대 크기이므로 키의 크기가 더 작아지면 도 32b의 1번 키에서 3번 키를 잇는 궤적이 2번 키를 지나칠 확률이 낮아진다. 반면에 사용자가 키의 선택을 용이하게 하기 위해 키와 키의 거리를 유지한 상태에서 키의 크기를 증가시키고자 한다면 도 32b에 보이는 것처럼 다각형의 꼭지점의 갯수를 줄여야 한다. 즉 키의 갯수를 감소시켜야 한다. 반대로 키의 갯수를 증가시키고자 한다면 정다각형의 꼭지점의 갯수가 증가하고 그에 따라 정다각형의 꼭지점에 배치되는 키의 크기가 줄어들 수 밖에 없다. 즉 키의 갯수와 키의 크기는 반비례하는 현상이다. 만약에 키의 선택을 용이하게 하기 위해 키의 크기를 증가시키고자 한다면, 다각형에 배치되는 문자키의 개수를 작게해야 하는데 이 경우 결과적으로 예측입력방법에서 각각의 키에 지정되어야 할 문자의 갯수가 많아지는 단점을 가져오게 된다. 즉 하나의 키에 지정되는 문자의 갯수가 많아지면, 그에 따라 동일한 키입력으로부터 예측되는 단어의 숫자도 증가하게 되어 키의 크기가 커져서 키 선택은 쉬워질 수 있지만 예측된 단어의 갯수가 증가되어 많아진 예측 단어 중에서 원하는 단어를 선택하는 과정이 어려워지는 단점을 가져오게 된다. 이러한 단점을 보완하기 위해 키의 크기를 증가시키는 방안으로 키의 갯수를 줄이지 않고도 siwpe 궤적에 대한 키입력순서(key sequence)의 단일성을 유지시키는 방법이 도 33에 보여지고 있다. 요약하면 동일한 정다각형에 배치된 키의 크기를 증가시키게 되면 siwpe 궤적이 원하지 않는 키와 중첩되는 부분이 발생하게 되는데 이 중첩되는 부분을 비활성화시켜서 키의 크기가 커져도 swipe 궤적에 대한 key sequence의 단일성을 유지시키는 방법이다. 도 33의 내용으로 자세히 설명하면, 도 33a는 정칠각형의 꼭지점에 키가 배치되어 1번 키와 3번 키를 연결하는 모든 직선 궤적에 대해 key sequence의 단일성이 유지되는 상태이다. 키의 지름을 두 배로 증가시킨 것이 도 33b이다. 키의 지름을 두배로 증가시킬 경우 1번 키와 3번 키를 연결하는 직선궤적이 통과하는 영역(333과 335 사이의 영역)은 2번 키의 반 정도와 중첩하게 된다. 이렇게 중첩하게 되면 1번 키와 3번 키를 잇는 궤적에 대하여 키입력순서(key sequence)가 '1'-'3'인 경우와 '1'-'2'-'3'인 경우 모두 가능하게 되어 swipe 궤적에 대한 키입력순서(key sequence)의 단일성이 무너지게 되므로 궤적 333을 334로 이동시켜서 직선궤적이 통과하는 영역을 줄이고 이 가상영역(334와 335 사이의 영역)과 2번 키의 중첩영역을 비중첩영역으로 간주하는 것이다. 이렇게 비중첩영역을 정의하게 되면, 1번 키의 접촉점이 면적이 확대되기 이전의 영역(336)에 머무르면 3번 키로의 이동 궤적이 2번 키와 중첩할 가능성이 낮아지므로 swipe 궤적에 대한 키입력순서(key sequence)는 '1'-'3'으로 판별된다. 일반적으로 손가락으로 터치센서를 접촉하는 경우 대략적으로 손가락이 키의 중심에 가깝게 위치하므로 실제 사용자가 swipe 하는 과정은 도 33a와 같은 키의 배열에서 일어나는 과정과 유사하다. 따라서, 도 33c에서 보이는 바와 같이 1번 키와 3번 키의 연결 궤적을 축소한 영역(334와 335 사이의 영역)을 차례대로 2번 키로부터 7번 키까지 적용하여 얻어지는 영역(2번 키와 4번 키, 3번 키와 5번 키, 4번 키와 6번 키, 5번 키와 7번 키, 6번 키와 1번 키, 7번 키와 1번 키 사이의 영역)을 조합하면 가상의 영역인 정칠각형의 영역(337)이 형성된다. 즉 이 가상영역을 비중첩영역으로 정의하여 swipe 과정에서 이 영역을 지나치면 손가락 접촉점(접촉점이 마우스 커서로 대응되는 경우, 커서의 위치점)이 키를 지나치더라도 키입력으로 인식하지 않도록 하는 것이 본 실시예의 고안이다. 이러한 내용을 바탕으로, 사용자의 편리성을 증가하기 위해 키의 크기와 비중첩영역을 정의하는 가상의 궤적선 334을 사용자가 원하는만큼 궤적선 333으로부터의 이격 거리를 조절할 수 있는 방법을 제공할 수도 있다. 그리고, swipe 궤적 334를 직선이 아닌 호(arc)로 정의하여 사용자의 손가락 움직임(혹은 마우스 커서의 움직임)에 맞게 적용시키는 방법을 제공할 수도 있는 것이다. 본 실시예에서 제공하는 비중첩영역을 설정하게 되면 swipe 궤적의 단일성을 훼손하지 않으면서도 키의 크기를 증가시켜 키 선택의 용이성과 swipe 동작의 편리성을 도모할 수 있게 된다. 더 나아가서 도 34에 보이는 바와 같이 키의 모양이 원형이 아닌 다양한 기하학적 도형이 적용 가능하며, 도 34c에 보여지는 것처럼 비접촉 가상영역(337) 내에 추가적인 키를 배치하여 기호, 공백 등의 1~7번 키가 담당하지 않는 비문자 입력과 그 외의 다양한 기능을 부가할 수 있다. 그리고, 비접촉 가상영역(337)내에 위치하는 이들 키(키 '가'~'사')는 단어예측입력 방식을 위한 swipe 궤적이 이들 키를 지나친다고 하여도 비접촉 가상영역 내에 위치하므로 1~7번 키에서 시작된 swipe 동작에는 이들 키로 인해 어떠한 입력도 이루어지지 않는다, 다만, 이들 키에서 접촉이 시작하는 경우 이들 키에서 접촉이 끝나는 단순 접촉인 경우 이들 키에 지정된 기능이 수행되고, 만약 이들 키를 벗어나는 드래그(swipe) 동작이 이어질 때는 그 궤적에 따라 추가적인 기능을 수행하여 입력의 다양성 및 효율성을 증가시킬 수 있다.
단어예측입력방법에서 swipe 방식으로 키입력이 이루어질 경우 동일한 키를 두 번이상 입력해야 하는 경우 한 번만 지나쳐도 단어가 예측되도록 할 수 있다. 즉 도 35a에 보이는 swipe 궤적은 'need'를 입력하기 위한 궤적이다. 'n'이 지정된 5번 키에서 터치를 시작하여 터치센서에 손가락이 닿은 상태에서 'e'를 입력하기 위하여 1번 키로 이동하고(1번 키를 지나치면 'e'가 하나만 포함되는 단어 뿐만 아니라, 'e'가 두 번이상 포함되는 단어도 데이터베이스에 추출된다), 이어서 'd'가 지정된 7번 키로 이동한 다음 손가락을 터치자판에서 떼면 'need'가 추출('need'뿐만 아니라 'e'가 하나만 포함된 'Ned'도 추출된다.)되어 입력된다. 이 경우 키 입력 순서는 '5'-'1'-'7'과 '5'-'1'-'1'-'7' 두 가지로 해석되는 것이다. 하지만 단어예측입력방법에서 swipe 방식으로 입력이 이루어질 경우 도 35a와 같이 swipe 궤적으로 키를 지나칠 때 그 키에 지정된 문자 하나만 포함되는 단어를 예측하도록 할 경우 'need'에서와 같이 'e'가 두 개 포함되어 있으므로 1번 키를 두 번 지나쳐야 하는데 도 31a에 보여지는 일반적인 격자 자판에서는 두 번을 지나칠 수 있는 방법이 없으므로 그 키에 머무르는 시간을 길게 하거나 그 키에서 원을 그리는 동작을 하여 두 번 지나치는 것과 같은 효과를 가져오게 한다. 이에 반해서 도 35에 보여지는 본 발명의 자판은 키를 벗어난 영역(비접촉 가상영역을 포함하는 영역)으로 드래그 했다 그 키로 다시 돌아오면 두 번 지나치는 결과를 가져오도록 하면 지나치는 키 영역이 (5)-(1)-(1)-(7) 순서로 정해져서 'need'가 예측되는 것이다. 이에 반해 도 35a의 경우는 손가락이 지나치는 키 영역이 (5)-(1)-(7)이므로 4개의 철자로 구성된 'need'는 예측될 수 없고 대신에 3개의 철자로 이루어지는 'Ned'가 예측되는 것이다. 도 35(다)는 'pioneer'를 입력하는 궤적을 보여주고 있다. 이는 도 35(나)의 궤적이 'need'의 'e'를 두번 입력하기 위해 비중첩영역으로 이동하였다 다시 1번 키로 돌아오는 궤적을 그리는데 반해 도 35(c)의 궤적은 'pioneer'의 'p', 'i', 'o'를 입력하기 위해 비중첩영역의 바깥쪽(문자키를 연결하는 7각형의 바깥쪽) 영역으로 이동하였다 다시 3번 키로 돌아오도록 하여 동일한 키를 3번 키입력하는 과정으로 인식하도록 하는 것이다. 마찬가지로 'pioneer'의 'eer'을 입력하기 위해 'n'을 입력하기 위한 5번 키를 지나친 후 1번 키로 이동하고 비중첩영역 바깥쪽 영역으로 이동하여 1번 키를 벗어났다 다시 1번 키로 돌아온 후 손가락이 이격하면 'eer'에 해당하는 1번 키를 3번 입력하는 과정으로 인식하여 35(c)의 궤적은 'pioneer'를 입력하기 위한 swipe 궤적이 되는 것이다. 도 35b와 도 35c를 정리하면 하나의 키를 접촉한 상태에서 비중첩영역으로 벗어낫다 이 키로 다시 돌아오면 키입력을 한 번 더 진행하고, 비중첩영역에 해당하는 다각형의 바깥쪽 영역으로 벗어낫다 다시 돌아오면 키 입력을 두 번 더 진행하도록 하는 구상이다. 이렇게 문자키를 연결하는 다각형의 안쪽과 바깥쪽 영역을 구분하여 swipe 궤적이 지나치는 영역으로 지정하여 키입력의 편리성을 증가시킬 수 있게 된다. 더불어 swipe 궤적으로 통과하는 키의 갯수와 단어를 구성하는 철자의 갯수를 일치시켜 예측되는 단어의 갯수가 줄어서 예측된 단어의 선택이 더욱 용이해진다. 더 나아가서 문장예측입력의 경우 swipe 궤적이 지나치는 키의 중복입력을 허용할 경우 문장을 구성하는 각 단어에 대한 키입력순서(key sequence)가 복수개가 되어 실시예 38에서 살펴 보았듯이 예측되는 문장의 갯수는 선택이 어려울 정도로 많아진다. 따라서, 실시예 38과 본 실시예의 구성은 swipe 궤적에 대한 key sequence(키입력순서) 단일성을 충족시키는 편리성과 정확성이 증대된 자판을 제공한다. 이상의 내용을 정리하면, 실시예 38에서는 원하지 않는 키입력을 방지하는 구성을 제공하고, 본 실시예는 동일한 키입력을 한 번하는 경우와 여러번 하는 경우를 구분하여 swipe 궤적에 대하여 단 하나의 키입력순서를 제공하여 예측되는 단어의 수를 최소화하는 방안을 제공한다.
한글과 영어와 같이 문장을 구성하는 단어 사이에 공백을 포함하는 언어와 달리 중국어나 일본어는 문장에 공백을 포함하고 있지 않다. 이러한 언어에 표 5의 기준은 적용할 수 없게 된다. 그러면 이들 공백을 포함하지 않는 non-space 언어에 표 5의 기준을 적용하기 위해서는 문장을 구성하는 요소를 세분한 다음 이들 세분된 구성 요소들 사이에 공백을 삽입하는 것이다. 간단하게는 non-space 언어들도 인터넷 검색을 하기 위해서는 검색 주제어들을 구분하기 위해 공백을 사용하게 된다. 검색에 이용되는 이들 주제어를 문장의 구분하는 요소로서 활용하여 공백을 포함하는 문장 구성을 이루는 것이다. 중국어는 그 유사성에서 영어와 비교될 수 있고, 일본어는 그 유사성에서 한글과 비교될 수 있다. 일본어의 경우 한글과 같이 명사에 조사가 결합하여 문장 내에서 구문적 기능이 정해지고, 용언(verb)의 경우 어미변화를 통해 시제를 나타나는 점에서 명사와 조사가 결합된 명사구를 문장을 구성하는 요소로 취급하고, 용언의 경우 어간과 어미가 결합된 용언구를 문장을 구성하는 요소로서 취급한다. 즉 아래의 '나는 학교에 갑니다.'라는 뜻의 일본어 문장 '私は學校に行きます。'를 살펴보면, 한글은 주어에 해당하는 '나는'과 부사절에 해당하는 '학교에'와 용언에 해당하는 '갑니다'가 각각 구분이 되어 있지만, 일본어의 경우 '나(는)'에 해당하는 '私(は)', '학교에'에 해당하는 '學校に', '갑니다'에 해당하는 '行きます'가 구분되지 않고 붙어서 표시된다. 따라서, 표 5의 구성과 관련하여 일본어 문장을 띄어쓰기를 적용하여 한글과 같은 문법적인 구조를 갖도록 하여 '私は 學校に 行きます。'와 같이 표시할 수 있고, 표 5의 기준에 따른 문장 예측입력 방법에 의해 일본어를 입력할 수 있게 된다. 즉 공백이 없는 일본어의 경우도 체언부와 용언부를 분리하며, 체언부는 체언과 조사의 결합으로 이루어지고 용언부는 용언과 어미가 결합된다. 이에 더불어 부사부와 목적어부도 체언부와 용언부와 분리되어 표 5의 기준에 따라 문장 예측입력 방법이 적용될 수 있게 된다. 따라서, 한글과 영문과 같이 공백문자를 포함하는 문장과 동일하게 중국어와 일어에도 실시예 29와 30에서 보여지는 문장예측입력 방법에 따른 검색방법이 동일하게 적용될 수 있는 것이다.
나는 학교에 갑니다.
私は學校に行きます。 (Watashiwagakkoniikimasu)
私は 學校に 行きます。 (Watashiha // gakkoni // ikimasu)
실시예 26에서 한글의 체언부와 용언부의 예측을 위한 데이터베이스가 체언과 조사, 용언의 어간과 어미부의 분리된 데이터베이스로 구축되어 이들 분리된 데이터베이스로부터 체언과 조사를 추출하여 체언부를 예측하고, 용언의 어간과 어미를 추출하여 용언부를 예측할 수 있음을 보여주었다. 이를 통해 체언부와 용언부 데이터 베이스가 커지는 것을 방지할 수 있게 되었다. 이러한 데이터베이스 구축 방법이 복합명사군에도 적용될 수 있다. 복합명사라 하면 두개 이상의 명사가 결합되어 새로운 명사를 만들게 되는데 모든 복합명사를 데이터베이스로 구축할 경우 그 크기가 방대해지므로 이를 간소화하기 위한 방안으로 복합명사를 구성하게 되는 명사를 결합할 수 있는 방법을 제공한다.
구체적인 방법은 'space'키를 연속으로 두 번 입력할 경우 'space'키 입력 후에 진행되는 키입력으로 예측되는 단어는 'space'키 이전에 이루어진 키입력으로 예측된 단어와 결합되어 하나의 (복합)단어로 예측단어 목록에 나열되도록 하는 것이다. 즉 '경기도재활공학서비스연구지원센터'라는 문구를 입력하기 위해서는 '경기도', '재활', '공학', '서비스', '연구', '지원', '센터'에 해당하는 키를 입력하되 각 단어에 해당하는 키입력이 이루어지면 'space'키를 두번 입력하여 이어지는 단어를 공백으로 구분하지 않고, 연결된 하나의 문구로 예측하여 추출하도록 하는 방법이다. 이러한 방법은 이름을 입력하는 경우에도 적용할 수 있다. 즉 '강찬감'이라는 고유명사가 데이터베이스에 등록되어 있지 않은 경우, '강', '찬', '감'으로 구분하여 이름을 구성하는 각 음절을 두 번의 'space'키입력으로 구분하면 '강', '찬', '감'이라는 단어(어휘)는 이미 데이터베이스에 등록되어 있으므로 이들 어휘를 조합하여 '강찬감'이라는 이름을 쉽게 입력할 수 있도록 하는 것이다.
따라서, 본 실시예 44는 한글의 경우 복합명사와 고유명사(성+이름)이 영어와 달리 함께 붙여 쓰여지므로, 각각을 구성하는 단어만을 데이터베이스에 등록하여 이들 단어를 조합하여 복합명사를 추출할 수 있는 방법을 제공하게 된다. 이렇게 할 경우 데이터베이스의 크기를 줄일 수 있도록 하고 더 나아가서 사용자가 원하는 데이터베이스에 등록되어 있지 않은 복합명사를 자유롭게 입력할 수 있는 방법을 제공한다. 사용자의 편리성을 위해 'space'를 두번 입력하는 방법을 다른 별도의 키를 통해 구현할 수도 있으며, 더 나아가서 'spce' 한 번 누름과 두 번 누름의 기능을 상호 교체하여 'space' 두 번 누름이 '공백' 입력 기능을 수행하고, 'space' 한 번 누름이 명사결합을 위한 기능을 수행하도록 할 수도 있다.
이상에서 살펴 본 바와 같이 본 발명의 문장예측입력방법은 적은 수의 키로도 입력의 편리성과 신속성을 향상시킬 수 있어서 스마트워치와 같은 모바일기기에서 그 효용성을 발휘할 수 있고 더 나아가서 리모컨과 같이 키의 개수가 제한되는 입력장치에 적용되어 리모컨이 지금까지 문자통신에 이용되지 못하던 상황을 극복하게 해주어 이들 기기의 활용성을 더욱 확대시키는 계기가 될 것이다. 향후 VR(가상현실)과 AR(증강현실)에서 사용될 리모컨 형태의 입력장치에서 8방향 키를 이용하여 효율적인 문자입력을 제공하게 될 것이다. 이를테면 최근에 유행하는 VR 리모컨의 경우 joystick을 방향조정을 위해 이용하는데, 본 실시예에서는 문자입력을 이들 joystick를 이용할 수 있는 방법을 제공하여 VR에서의 문자입력을 손쉽게 할 수 있는 방법을 제공한다.
도 38은 도 31c에 보여지는 자판을 joystick을 이용하여 키입력을 이룰 수 있도록 원형 형태로 변형한 것이다. 38(a), 38(b)는 joystick의 움직임에 따라 자판내에서 움직이는 포인터로서 구(sphere)형태를 한다. 이들 포인터를 좌우 joystick으로 움직이게 되며, 이들 포인터가 키와 접촉한 후 원래의 중앙의 위치로 돌아오면 이들 포인터가 마지막으로 접촉한 키에 해당하는 입력이 이루어지게 된다. 그리고 이들 두 개의 joystick이 각각 39(a)와 39(b)의 포인터(구-sphere)를 움직이도록 하여 입력속도를 배가시키게 된다.
실제로 도 38에 보이는 자판으로 입력하는 경우 하나의 joystick만을 이용하여 입력할 때는 분당 100~120타 정도의 입력을 이룰 수 있는데 반해 두 손으로 두 개의 joystick을 조작하여 입력할 경우 분당 200~250타 정도로 입력속도가 2 배가 된다.
이를 UI 관점에서 살펴보면, GUI 구조를 갖는 컴퓨터에서 커서는 하나만을 이용하는데 그 이유는 시각적으로 사용자가 추적할 수 있는 포커스(초점)는 하나밖에 될 수 없기 때문이다. 만약에 화면에 두 개의 포인터(커서)가 있어서, 사용자가 두 개의 포인터를 마우스로 조작한다고 가정해 보면, 포인터(커서)를 조작하기 위해서 사용자는 시각적으로 포인터에 초점(포커스)을 맞추고 포인터의 이동을 확인하면서 마우스를 조작하게 된다. 따라서, 사용자는 동시에 두 개의 포인터(커서)를 조작할 수 없으므로, 화면에 두 개의 포인터가 있다고 하더라도 시각적으로 두 개의 포인터를 동시에 포커스를 맞출 수 없으므로 두 개의 포인터를 동시에 조작할 수 없어서 포이터의 숫자가 증가해도 그에 따른 장점이 없다. 간혹 특별한 경우 하나의 윈도우에 여러개의 포인터를 제공하는 multi-pointer(cursor) system을 활용하기도 하는데 이는 1인용 컴퓨터를 위한 것이 아니라 단체로 여러명이 하나의 화면을 공유하여 함께 작업할 때, 각자에게 별도의 포인터(cursor)를 부여하여 각 개인이 하나의 포인터(커서)를 가지고 독립적으로 작업을 할 수 있도록 하기 위함이다. 따라서, 도 38의 자판처럼 두 개의 포인터를 작동하고자 한다면 시각적인 포커스(초점) 확인을 통해 포인터를 제어하는 마우스 시스템에서는 불가능하다. 본 실시예에서 제공하는 multi-pointer 방식은 시각적인 포커스(초점)을 이용하여 포인터를 제어하는 방식이 아닌 촉각에 의해 포커스(초점)를 확인하여 포인터를 제어하는 방식을 활용하는 것이다. 즉 시각적인 포커스(초점)에 기반한 마우스 대신에 joystick을 포인터 제어 장치로 이용하는 것이다. 포인터 제어장치로서 마우스와 joystick의 차이점은 마우스의 경우 포인터의 마우스의 변위(displacement, 수학적으로는 delta-x, delta-y)로 위치 변화를 결정하는데 반해 joystick은 joystick의 위치 값을 포인터의 좌표로 이용한다는 점이다. 수학적으로 설명하면 마우스의 경우에는 포인터의 새로운 위치를 산출하기 위해서는 마우스의 현재 좌표와 이동한 위치의 좌표의 차이 값인 변위(delta-x, delta-y)를 포인터의 이동에 이용한다. 이런 배경에서 마우스를 마우스패드에서 들어서 옮겨서 새로운 위치로 옮기면 마우스가 마우스패드에서 떨어져 있는 상태가 되어 마우스의 이동에 따른 변위가 포인터 위치 산출에 적용되지 않으므로 포인터는 움직이지 않고 고정되어 있다. 마우스의 위치가 변경되어도 포인터의 위치가 변하지 않으므로 마우스의 위치와 포인터의 위치는 1:1 대응이 되지 않는다. 이러한 방식을 상대좌표 방식이라고 하며 결과적으로 상대좌표계 기반의 포인터 제어는 eyes-free 기능을 제공할 수 없게 되는 것이다. 이러한 상대좌표 방식의 마우스와 달리 joystick의 경우는 절대좌표 방식에 기반하여 joystick의 위치로 포인터의 위치를 결정하게 된다. 도 38의 자판에 보이는 포인터(구)를 이용하여 설명하자면, joystick이 장치의 중심에 있을 경우 포인터도 도 38에 보이는 자판의 중심에 위치하게 된다. 이를 4 방향키로 비유하자면 joystick을 북쪽으로 움직이면 포인터도 북쪽 방향으로 움직이고, 손가락이 joystick을 놓게 되면 내장된 스프링에 의해 중심위치로 복귀하여 포인터도 자판의 중심으로 복귀하게 된다. 즉 joystick의 위치와 포인터의 위치가 1:1로 대응되는 절대좌표계 시스템이다. 하지만, 마우스의 경우는 마우스를 마우스패드로부터 들어서 마우스패드 다른 위치에 옮길 경우 포인터는 움직이지 않으므로, 마우스패드 상의 마우스의 위치는 포인터의 위치와 1:1 대응이 되지 않는다. 따라서, 마우스를 이용하여 포인터를 움직이는 경우 항상 포인터를 시각적으로 포커스(초점)을 맞춰서 추적하지 않으면 그 위치를 확인할 수 없는 것이다. 이러한 점에서 마우스의 포인터 제어는 eyes-free가 될 수 없다. 이에 반해 joystick은 포인터 제어가 eyes-free로 진행될 수 있는데 이는 손가락이 joystick의 위치를 인지하고, 포인터의 위치가 joystick의 위치에 1:1로 대응되므로 사용자는 촉각만으로도 joystick의 위치가 파악되고 그에 따라 포인터의 위치도 인지되는 것이다. 따라서 마우스를 이용할 경우 포인터의 포커스가 하나 밖에 이룰 수 없었던 것과 달리 joystick을 이용할 경우 좌우 손가락이 도 38에 보여지는 자판상의 두 개의 포인터의 위치를 촉각으로 동시에 포커스(초점)을 맞출 수 있는 것이다. 이러한 장점으로 사용자는 화면상의 포인터(구-sphere)를 동시에 제어할 수 있게 되는 것이다. 이는 열 손가락으로 키보드를 조작할 수 있는 경우에도 비유될 수 있다. 컴퓨터 키보드 입력에서 사용자는 열 손가락의 위치를 접촉을 통해 확인하고 있으므로 손가락의 위치를 보지 않고도 손가락의 움직임이 어느 키를 입력하게 할 수 있는지 인지할 수 있게 되는 이치와 같다. 따라서, joystick을 움직일 때 joystick의 동서남북, 더 나아가서 남동, 남서, 북동, 북서 등 8방향 위치를 손가락이 인식할 수 있으므로 포인터의 움직임을 보지 않더라도 포인터가 어는 방향으로 움직였는지 알 수 있고, 어느 키가 입력될 지 촉각으로 확인할 수 있다. 다만 도 39와 40에 보이는 부가적인 표시(포인터가 위치한 키의 색깔 변화)는 단지 손가락의 움직임을 확인해주는 기능을 수행하게 되는 것이다. 이러한 배경에서 본 실시예의 구성은 두 개의 joystick로 두 개의 포인터를 조작할 수 있도록 구성하여 joystick 하나만을 사용했을 때 입력속도가 느린 것을 극복하는 방안을 제공한다. 이를 통해 분당 200~300타에 이르는 통상적인 qwerty keyboard에 버금가는 입력 효율성을 가져와 vr 기기에서의 입력이 스마트폰과 같이 이루어질 수 있게 하여준다.
도 38에 보여지는 자판은 원주 방향으로 8개의 키만으로 구성되어 있어서, joystick의 원주 운동으로 모든 키를 선택할 수 있도록 한 것이 특징이다. 이러한 특징으로 joystick으로는 qwerty keyboard 같이 10개 이상의 문자키를 가지는 키보드에는 적용할 수 없었던 것을 문장 예측입력방법과 함께 2개의 포인터를 활용하여 vr 기기의 일반적인 방향조절 장치인 joystick으로도 문자입력이 쉽고 빠르게 이루어질 수 있게 되는 것이다.
결론적으로 joystick 두 개를 활용하여 입력 효율성을 배가시킨 eyes-free 입력장치를 제공하는 것이 본 실시예의 구성이다.
도 39는 실시예 45의 구성에 의한 자판에서 좌우 포인터(구-sphere)가 움직여서 자판상의 키에 위치할 때 키의 색상이 변화된 것을 보여주는 그림이다. 좌측 포인터가 위치하는 키의 색과 우측 포인터가 위치하는 키의 색을 달리하여 사용자가 쉽게 포인터의 위치를 인지할 수 있도록 하는 구성이다. 더 나아가서 좌우 포인터가 겹치게 될 경우 포인터가 위치한 키의 색이 각각의 포인터가 위치했을 때 나타나는 색(파란색과 분홍색)과 다른 색이 표시되도록 하면(도 40의 경우 좌우 포인터가 동시에 위치할 때 키의 색이 노란색으로 표시됨) 사용자는 포인터가 모드 동일한 키에 위치했음을 인지할 수 있어서 어떤 경우에도 시각적인 포인터의 위치 파악이 더욱 용이하게 되도록 하는 구성이 본 실시예 46의 구성이다.
본 실시예는 실시예 45에서 설명한 joystick 대신에 터치패드(혹은 터치스크린 등 x, y 방향을 제어할 수 있는 터치장치)사용하여 동일한 eyes-free 입력장치를 제공하는 구성을 제공한다. 이미 실시예 45에서 설명한 바와 같이 eyes-free 입력장치가 되기 위해서는 촉각에 의해 포인터의 위치를 인지할 수 있는 구성이 이루어져야 하며, 입력장치와 포인터의 위치가 1:1로 대응되는 구조여야 한다. 따라서, 본 실시예에 사용되는 터치장치는 절대좌표계를 기반으로 하여 포인터를 제어하여야 한다. 일반적으로 터치장치는 노트북에 사용되는 터치패드와 태블릿에 사용되는 터치스크린으로 구분할 수 있는데 두 가의 차이점은 터치패드가 마우스와 같이 상대좌표계에 기반하여 포인터(커서)를 제어하는데 반해 터치스크린은 절대좌표계에 기반하여 포인터(커서)를 제어한다. 다만 터치스크린은 스크린에 터치장치가 합치되어 별도의 포인터가 필요없는 상태여서 손가락의 위치가 바로 포인터의 위치라고 생각하면 된다.
따라서, 절대좌표계에 기반하여 x, y 방향을 제공하는 터치장치(터치패드, 터치스크린 등)에 엠보싱 혹은 요철을 만들어서 사용자가 방향을 인지할 수 있도록 하면, 포인터를 보지 않고도 터치장치를 접촉하는 손각락의 촉각만으로 원하는 방향 혹은 위치로 손가락을(결과적으로 포인터를) 이동할 수 있다. 이러한 구성을 갖는 터치장치 두 개를 이용하면 joystick 경우와 마찬가지로 입력의 효율성을 배가시킬 수 있게 된다.
도 41는 vr 기기의 컨트롤러를 보여주고 있는데, 41(b)는 방향 조절을 위한 터치패드로서 사용자의 엄지가 터치패드 영역을 터치하여 방향을 조절하게 된다. 즉 상대좌표계에 기반한 일반적인 노트북의 터치패드와 달리 절대좌표계에 기반하여 방향조절을 할 수 있도록 한 터치패드이다. 이 터치패드의 크기가 (엄지)손가락 관절운동으로 터치패드 전체를 터치할 수 있는 정도이고, 형태가 원형이어서 터치패드의 가장자리를 터치하게 되면 동서남북 8방향에 따라 손가락이 터치하는 부분의 모양이 바뀌므로 손가락이 터치패드 가장자리의 어느 부분을 터치하고 있는지 인지할 수 있다. 이러한 점에서 도 41(b)의 터치패드는 별도의 엠보싱 혹은 요철이 없어도 사용자가 현재 터치패드를 접촉하는 상황에서 터치패드의 중앙인지 아니면 가장자리에서 동서남북 사방향 더 나아가서 남동, 남서, 북서, 북동 8방향 중 어느 위치인지 파악이 가능하다. 이러한 구조의 터치장치의 경우 도 38에 보여지는 자판의 포인터를 작동시킬 수 있는 eyes-free 기능을 갖춘 포인팅 장치로 적용 가능하다. 따라서, 도 41의 vr 컨트롤러는 터치패드 구조에 자체를 달리하여 별도의 엠보싱과 요철이 없어도 eyes-free 기능을 수행할 수 있는 한 가지 예를 보여주고 있다. 그럼에도 터치장치의 표면에 엠보싱과 요철을 제공하여 사용자가 터치패드 내에서 손가락의 위치를 더욱 용이하게 인지할 수 있도록 할 수 있다.
특히 도 41에 보여지는 터치장치에 의한 포인터 제어는 joystick에 비해 그 입력속도를 증가시킨다. 그 이유는 joystick의 경우 joystick이 항상 중앙으로 회귀한 후에 원하는 키 위치로 이동해야 하는데 반해 터치장치에서는 터치패드의 중심으로 회귀할 필요가 없이 원하는 키 위치에서 손가락을 떼면(혹은 터치장치가 누름기능이 있는 경우 터치장치를 눌러주었다 터치가 유지된 상태에서 누름상태를 해제하면 키입력이 이루어지게 할 수도 있다. 더욱이 joystick도 누름기능이 있는 경우 누름기능으로 키입력을 수행할 경우 굳이 중앙으로 joystick을 이동하지 않고 바로 원하는 키의 위치로 joystick을 이동시킬 수 있다.) 키입력이 이루어지므로, 직선거리로 손가락 이동이 가능하여 입력속도가 증가된다. 가장 비교되는 예가 도 38의 자판에서 'qwer'키를 입력하고 바로 옆의 'tyu'키를 입력하는 경우 터치장치의 경우 손가락을 'qwer'키에서 뗀 후에 바로 옆으로 이동하면 되지만, joystick의 경우 포인터가 'qwer'키에 놓인 상태에서 중앙으로 이동했다 'tyu'키로 이동해야 하므로 입력속도가 상대적으로 느려질 수 밖에 없는 것이다. 실제로 절대좌표계에 기반한 터치장치로 입력할 경우 한 손만으로도 분당 200~250타가 가능하여 joystick보다 입력효율성 측면에서 낫다. 하지만 세계적으로 가장 대중적인 vr 기기인 oculus의 경우 joystick을 방향조절 장치로 채택하고 있어서 단지 문자입력장치로서만이 아니라 다른 기능도 고려해야 하므로 joystick이든 touch장치이든 그에 맞게 2개의 포인터를 이용한 본 발명의 문자입력 방법을 적용하면 입력속도에서 답답함을 느끼지 않을 분당 200타의 입력 속도를 구현할 수 있다. 더욱이 도 41의 터치장치를 포인팅 장치로 활용할 경우 2개의 터치장치를 사용한다면, 터치장치 단독으로 사용할 때보다 얻어지는 분당 200~250타보다 더욱 향상된 입력속도가 예상된다.
따라서, 본 발명의 문자입력방법은 입력장치를 볼 수 없어서 eyes-free가 요구되는 vr, ar, xr 기기에서 컨트롤러에 맞는 eyes-free 기능의 입력시스템을 제공하여 손쉽고 빠른 문자입력이 이루어지도록 한다.

Claims (9)

  1. 하나의 키에 다수의 문자가 지정되어 있고, 이들 키를 눌러주어 키 입력순서에 따라 이들 키에 지정된 문자의 조합으로 만들어지는 단어를 추출하여 입력하는 단어예측입력방법에 있어서 문자뿐만 아니라 기호도 문자처럼 하나의 키에 다수의 기호를 지정하여 이들 기호를 구분하지 않고 키를 한 번만 눌러주어 키에 지정된 기호가 포함된 단어뿐만 아니라 문구 및 문장까지 추출하도록 한 예측입력방법을 구현한 입력시스템.
  2. 청구항 1에 있어서, 문구예측입력방법으로 입력되는 기호 중에 공백문자(space)도 포함하는 문구예측입력방법을 구현한 입력시스템.
  3. 청구항 1에서, 문장입력을 위한 ambiguous 키 입력에 해당하는 문장이 없을 경우 입력된 ambiguous key sequence에 따라 문장을 등록하는 과정에서 기호 및 공백문자에 해당하는 ambiguous key 입력을 제외한 나머지 부분에 대해서는 단어예측입력을 적용하여 문장을 등록하는 방법을 구현한 입력시스템
  4. 청구항 1에서 문장입력을 위한 ambiguous 키 입력이 입력하고자 하는 문장을 이루는 각 단어의 일부분만 입력되어도 데이터베이스에서 그 문장을 예측문장으로 추출하도록 하여 선택/입력이 되도록 하는 방법을 구현한 입력시스템
  5. 청구항 1에서 기호를 하나의 키에 지정하여 문자와 기호를 구분하여 제한된 키를 갖는 입력기기를 위한 예측 입력시스템
  6. 청구항 2에서 'space'의 의미를 문장 내의 단어를 구분하는 'sentence-space'와 검색 시에 검색 단어 혹은 절의 구분을 하는 'search-space'를 구분하는 예측 입력시스템
  7. 청구항 1에서 입력환경에 따라 자판중에 배열된 'space' 키와 '기호' 키가 상호 전환되어 확장키를 이용하지 않고 한 번에 입력할 수 있는 키 배열을 갖는 예측 입력시스템
  8. 청구항 1에서 문장예측입력을 위한 키 입력이 이루어진 후에 검색되는 문장 혹은 절이 없어서 데이터베이스에 등록하는 과정에서 자판 내에 예측단어를 표시하여 선택이 가능하도록 한 단어예측입력방법을 활용하는 문장예측 입력시스템
  9. 청구항 1에서 한글예측입력의 경우 문법적 공백 키를 지정하여, 체언구와 용언구의 경우 체언 및 어간을 조사와 어미와 별도로 사전적 데이터베이스에 추출하여 별도로 추출된 조사 및 어미 예측목록과 결합되도록 하는 문장예측 입력시스템
KR1020220108021A 2022-08-28 2022-08-28 멀티 포인터를 활용한 문자 입력시스템 KR20240029703A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220108021A KR20240029703A (ko) 2022-08-28 2022-08-28 멀티 포인터를 활용한 문자 입력시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220108021A KR20240029703A (ko) 2022-08-28 2022-08-28 멀티 포인터를 활용한 문자 입력시스템

Publications (1)

Publication Number Publication Date
KR20240029703A true KR20240029703A (ko) 2024-03-06

Family

ID=90239898

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220108021A KR20240029703A (ko) 2022-08-28 2022-08-28 멀티 포인터를 활용한 문자 입력시스템

Country Status (1)

Country Link
KR (1) KR20240029703A (ko)

Similar Documents

Publication Publication Date Title
KR100377432B1 (ko) 문자/단어 생성 방법 및 이를 이용한 정보통신 서비스 방법
CN103038728B (zh) 例如在移动电话上使用触摸屏的多模式文本输入***
US9026428B2 (en) Text/character input system, such as for use with touch screens on mobile phones
KR100478020B1 (ko) 화면표시식키이입력장치
CN109844696B (zh) 多语言字符输入装置
JP2005092856A (ja) ジョイスティックを用いる中国語入力のためのシステムおよび方法
JP2007133884A5 (ko)
JP6681518B2 (ja) 文字入力装置
JP2017509080A (ja) 漢字入力装置と漢字入力方法、及びこれを用いた漢字検索方法
CN106168880B (zh) 一种输入控制的方法及终端
KR20240029703A (ko) 멀티 포인터를 활용한 문자 입력시스템
KR20240050779A (ko) 조이스틱과 안구 마우스를 활용한 문자 입력시스템
KR20240053333A (ko) 문장예측시스템의 예측단어 선택과 기호입력방법
KR20240056903A (ko) 문자키에 안내 키를 갖는 안구마우스 문장예측시스템
EP2668554A2 (en) Improved data entry systems
KR20230060649A (ko) 한글 문장예측 swipe 입력시스템
JP2012027741A (ja) 文字入力方法と装置
KR20230037415A (ko) 한글 문장예측 입력시스템
KR20220153983A (ko) 한글 문장예측 입력시스템
KR20230022675A (ko) 한글 문장예측 입력시스템
JP2013219638A (ja) 文字入力方法と装置
Raynal et al. DESSK: description space for soft keyboards
KR20190084865A (ko) 문장 예측입력시스템
KR100846042B1 (ko) 전기전자기기의 버튼효율 증대방법
McCaul et al. Predictive text entry in immersive environments