KR102182672B1 - 다국어 통합 자음 패턴 검색 방법 및 그 장치 - Google Patents

다국어 통합 자음 패턴 검색 방법 및 그 장치 Download PDF

Info

Publication number
KR102182672B1
KR102182672B1 KR1020140003657A KR20140003657A KR102182672B1 KR 102182672 B1 KR102182672 B1 KR 102182672B1 KR 1020140003657 A KR1020140003657 A KR 1020140003657A KR 20140003657 A KR20140003657 A KR 20140003657A KR 102182672 B1 KR102182672 B1 KR 102182672B1
Authority
KR
South Korea
Prior art keywords
consonant
character
string
search
searched
Prior art date
Application number
KR1020140003657A
Other languages
English (en)
Other versions
KR20150083961A (ko
Inventor
임인건
우호선
Original Assignee
(주)네온베리
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)네온베리 filed Critical (주)네온베리
Priority to KR1020140003657A priority Critical patent/KR102182672B1/ko
Priority to US14/549,901 priority patent/US9824139B2/en
Publication of KR20150083961A publication Critical patent/KR20150083961A/ko
Application granted granted Critical
Publication of KR102182672B1 publication Critical patent/KR102182672B1/ko

Links

Images

Classifications

    • 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/33Querying
    • G06F16/338Presentation of query results
    • 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/33Querying
    • G06F16/332Query formulation
    • G06F16/3322Query formulation using system suggestions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities

Abstract

본 발명의 일 실시예에 따라, 초성과 종성이 구별되는 표음 문자로 표기되는 언어로 미리 데이터베이스에 저장되어 있는 원본 문자열 목록에 대하여, 복수 개의 자음으로 구성된 자음 패턴을 입력함으로써, 종래의 기술보다 한정된 개수의 원본 문자열들을 검색 결과로서 추출하여 디스플레이 할 수 있는 다국어 통합 자음 패턴 검색 방법 및 장치가 개시된다.

Description

다국어 통합 자음 패턴 검색 방법 및 그 장치{THE METHOD FOR SEARCHING INTEGRATED MULTILINGUAL CONSONANT PATTERN AND APPARATUS THEREOF}
본 발명은 초성과 종성이 구별되는 표음 문자(phonogram)로 표기되는 언어의 원본 문자열 목록(original string list)에 대하여, 비연속적(non-consecutive)이어도 되는 임의의 위치의 자음 패턴(consonant pattern)에 기초하여 대표 언어(representative language)에 따라 통합 검색이 가능한 다국어 통합 자음 패턴 검색 방법(integrated multilingual consonant pattern search method) 및 장치에 관한 것이다.
인명, 주소, 단어 등과 같이 문자열(string)로 구성된 데이터를 검색하는 종래의 일 방법으로서 선두 검색 방법 또는 부분 문자열(substring) 검색 방법 등이 존재한다.
이와 관련하여, 종래의 한국공개문헌 특2001-0060249(문자열 비교 방법 및 문자열 비교를 이용한 정보 검색 장치)은 키로 사용되는 문자열을 입력하여 정보 검색하는 경우, 단순한 입력 실수가 있어도 원하는 정보를 고확률로 검색 가능하게 하는 구성을 개시하고 있다.
선두 검색(prefix search) 방법은 데이터 베이스(DB)에 저장되어 있는 검색될 문자열 전체 또는 검색될 문자열 내의 각각의 단어의 첫 문자부터 시작하여 검색할 문자열의 길이만큼 비교하여, 일치하면 검색 결과 목록(search result list)에 추가하는 방법이다. 이러한 선두 검색 방법의 가장 큰 장점은 구현이 매우 쉽고, 특히 DB의 문자열 목록이 순차적으로 정렬되어 있을 경우에 이진 검색(binary search) 등의 방법에 의해 고속으로 결과를 찾을 수 있다는 점이다. 그러나 이러한 선두 검색 방법은 사용자가 검색할 문자열 또는 단어의 선두를 모르면 검색이 불가능하다는 단점이 있다.
또한, 종래의 데이터 검색 방법 중 하나인 부분 문자열 검색 방법은, DB에 저장되어 있는 검색될 문자열에 검색할 문자열이 포함되어 있으면 검색 결과 목록에 검색될 문자열을 추가하는 방법이다. 이러한 부분 문자열 검색 방법은 이동 기기에 탑재된 대부분의 운영 체제(OS)가 제공하는 기본 함수로 손쉽게 구현 가능하기 때문에 소량의 데이터 검색 분야에서 종종 사용되고 있다. 그러나, 이러한 부분 문자열 검색 방법은 별도로 방대한 양의 색인을 해 놓지 않는 한 정렬에 의한 고속 검색이 불가능하여, 매번 검색할 때마다 DB에 저장되어 있는 전체 문자열들을 일일이 비교하여 검색해야 하기 때문에, 데이터의 개수가 많을 경우에는 검색 속도가 사용자가 인내하기 곤란할 정도로 느려진다는 단점이 있다. 특히 이동 기기에서의 빠른 검색 처리는 사용자의 검색 요구 충족 및 안전상 필수적인데 검색 속도가 느리다는 것은 추가적인 부작용(예컨대, 사용자가 이동 기기를 사용하며 이동 시 검색 속도가 느려 복수회에 걸쳐 반복적으로 데이터 필터링을 수행해야 할 때 안전 사고 발생 가능성이 증가 등)을 유발할 수 있다. 따라서 부분 문자열 검색은 주소록이나 사전과 같은 대용량의 데이터의 고속 검색에는 적절하지 않다. 또한, 부분 문자열 검색 방법을 쓰더라도 연속적이지 않은 문자 패턴은 검색할 수 없다는 문제점도 있다.
전술한 문제점들로 인하여, 이동 기기에서 빠르고 편리하며 효율적인 데이터 검색을 위해서, 고속 검색이 가능하면서도 문자 입력 회수 및 스크롤 양을 대폭 감소 시키기 위한 요구가 대두된다.
이동통신단말기, 차량 네비게이션, 전자사전 등과 같이 이동성을 기초로 하는 이동 기기에는 개인용 컴퓨터(PC)용 키보드와 같이 빠르고 적은 오타율로 문자를 효율적으로 입력할 수 있는 물리적인 키보드가 존재하지 않는다.
따라서, 기기에 저장되어 있는 데이터 등을 검색하기 위해서, 적은 개수이지만 물리적 버튼들을 가지고 있는 일반 휴대폰이나 전자사전에서는 문자 버튼을 눌러서 문자를 입력하고 화살표 버튼을 눌러서 화면상의 목록을 스크롤시켜야 하며, 버튼이 거의 없는 스마트폰이나 차량 네비게이션에서는 작은 화면에 표시되는 가상 키보드(virtual keyboard)의 키를 손가락 등으로 터치하여 문자를 입력하고 목록을 드래깅(dragging)하여 스크롤시켜야만 한다. 사용자가 이동 중이라면, 전술한 문자 입력과 화면 스크롤이 많으면 많을수록 신속한 처리가 곤란해져서 사용자에게 불편을 초래할 수 밖에 없다.
다시 말해서, 데이터 등을 검색을 하기 위한 종래의 검색 방법으로는 과도한 문자 입력 및 화면 스크롤을 초래하는 전술한 문제점이 있으므로, 본 발명에 따라 비연속적이어도 되는 자음 패턴에 기초하여 데이터 검색이 수행되도록 함으로써 데이터 검색 시 문자 등의 입력 회수 또는 스크롤 양을 대폭 감소시키고자 한다.
본 발명의 일 실시예에 따라 미리 저장된 원본 문자열 목록 중 복수개의 자음들의 입력을 통하여 적어도 하나의 문자열을 추출하여 디스플레이하는 다국어 통합 자음 패턴 검색 방법이 제공된다.
본 발명의 일 실시예에 따른 다국어 통합 자음 패턴 검색 방법은 데이터 베이스(DB)를 초기화하고, 검색될 상기 원본 문자열 목록을 생성하는 단계; 검색될 원본 문자열 목록을 독출하여 각각의 대표 언어별로 검색될 자음 문자열의 DB를 생성하는 단계; 문자 입력부를 통하여 입력된 복수개의 자음들을 포함하는 제 1 자음 패턴을 수신하는 단계; 문자 입력부와 관련된 대표 언어에 기초하여 생성된 검색될 자음 문자열의 DB에서 제 1 자음 패턴과 매칭되는 제 2 자음 패턴을 검색하는 단계; 검색된 제 2 자음 패턴을 포함하는 적어도 하나의 자음 문자열이 포함된 검색 결과 목록(search result list)을 생성하는 단계; 및 생성된 검색 결과 목록을 소정의 기준에 따라 정렬(sorting)하여 디스플레이하는 단계를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따른 제 2 자음 패턴은 제 1 자음 패턴과 문자 배치 순서는 동일하지만, 검색될 자음 문자열에 포함된 복수개의 자음 문자들 간의 배치 간격에 관계 없이 추출되어 조합된 패턴일 수 있다.
본 발명의 일 실시예에 따른 각각의 대표 언어별로 검색될 자음 문자열의 DB를 생성하는 단계는, 각각의 언어별 알파벳 스크립트(script)들 간의 유사성에 기초하여 미리 분류된 언어-스크립트군(language-script group)으로부터 제 1 스크립트(script)로 표현되는 대표 언어(representative language)를 선택하는 단계; 및 언어-스크립트군에 포함되는 제 2 스크립트(script)로 표현된 적어도 하나의 문자열을 대표 언어의 제 1 스크립트로 표현된 적어도 하나의 문자열로 변환하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 각각의 대표 언어별로 검색될 자음 문자열의 DB를 생성하는 단계는, 다국어 통합 자음 패턴 검색 장치와 연결된 문자 입력부에 상응하는 대표 언어에 기초하여 검색될 자음 문자열의 DB를 생성하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 각각의 대표 언어별로 검색될 자음 문자열의 DB를 생성하는 단계는, 미리 저장된 원본 문자열 목록에서 원본 문자열(original string)들을 하나씩 순차적으로 독출하는 단계; 독출된 원본 문자열에 포함된 각각의 문자를 상기 각각의 대표 언어별로 설정된 대표 문자 매핑표(mapping table)에 기초하여 대표 문자(representative character)로 변환하는 단계; 변환된 문자열에서, 각각의 대표 언어별로 설정된 제 1 문자 세트(character set)에 포함된 문자 이외의 문자를 제거함으로써 자음 문자열(consonant string)을 생성하는 단계; 및 생성된 자음 문자열을 검색될 자음 문자열의 DB에 추가하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 전술한 순차적으로 독출하는 단계, 대표 문자(representative character)로 변환하는 단계, 자음 문자열(consonant string)을 생성하는 단계, 및 DB에 추가하는 단계는 원본 문자열 목록에 포함된 모든 원본 문자열에 대하여 각각 수행될 수 있다.
본 발명의 일 실시예에 따른 제 1 문자 세트는 초성 자음(initial consonant)과 종성 자음(final consonant) 중 적어도 하나를 포함하는 문자 세트 또는 두문자(initial letter)를 포함하는 문자 세트를 포함할 수 있다.
본 발명의 일 실시예에 따른 생성된 자음 문자열은 부가적인 정렬 없이 원본 문자열 목록과 상응하게 검색될 자음 문자열의 DB에 순차적으로 추가될 수 있다.
본 발명의 일 실시예에 따른 데이터 베이스(DB)를 초기화하고, 검색될 원본 문자열 목록을 생성하는 단계는, 최상위 색인 테이블(root index table)을 검색될 자음 문자열의 DB에 생성하는 단계; 및 n개의 자음 문자를 포함하는 검색될 자음 문자열에서 m개의 자음 문자를 추출할 때, 추출될 자음 개수(m)의 최소값(Mmin)이 2 이상이라면, 대표 언어에 대응되는 제 1 문자 세트에 속한 전체 문자들에 대해, 적어도 1개 이상이고 (Mmin - 1)개 이하의 모든 자음 패턴을 각각 키로 가지는 미리결정된 색인 테이블(index table)들을 검색될 자음 문자열의 DB에서 생성하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 검색될 자음 문자열의 DB에 추가하는 단계는, n개의 자음 문자를 포함하는 검색될 자음 문자열에서 m개의 자음 문자를 추출할 때, 추출될 자음 개수(m)가 최소값(Mmin) 이상이고 최대값(Mmax) 이하인 모든 제 2 자음 패턴의 조합을 추출하는 단계; 추출된 각각의 제 2 자음 패턴의 문자열을 색인 키(index key)로 가지는 모든 색인 테이블들에 제 2 자음 패턴을 포함하는 자음 문자열을 가리키는 포인터(pointer)를 추가(add)하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 포인터(pointer)를 추가(add)하는 단계는, 추출된 제 2 자음 패턴에 상응하는 색인 테이블(index table)이 미생성되었다면, 추출된 제 2 자음 패턴에 기초하여 미생성된 색인 테이블을 동적(dynamically)으로 생성하는 단계; 및 하위 색인 테이블(sub-index table)인 전술한 동적으로 생성된 색인 테이블을 상위 색인 테이블(super index table)에 연결(link)하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 상위 색인 테이블은 하위 색인 테이블의 색인 키에서 마지막에 위치한 자음 문자가 제외된 패턴의 색인 키를 가지는 색인 테이블일 수 있다.
본 발명의 일 실시예에 따른 제 2 자음 패턴의 조합을 추출하는 단계에서, n개의 자음 문자를 포함하는 검색될 자음 문자열에서 m개의 자음 문자를 추출할 때, 상호 중복됨이 없이 추출될 모든 자음 패턴들의 최대값은,
Figure 112014002957912-pat00001
로 결정될 수 있다.
본 발명의 일 실시예에 따른 문자 입력부를 통하여 입력된 복수개의 자음들을 포함하는 제 1 자음 패턴을 수신하는 단계는, 문자 입력부를 통한 모든 모음(vowel) 키들의 입력을 제한하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 문자 입력부와 관련된 대표 언어로 생성된 검색될 자음 문자열의 DB에서 제 1 자음 패턴과 매칭되는 제 2 자음 패턴을 검색하는 단계는, 문자 입력부와 관련된 대표 언어로 생성된 검색될 자음 문자열의 DB에 포함된 모든 자음 문자열들을 하나씩 순차적으로 독출하는 단계; 및 제 1 자음 패턴과 독출된 자음 문자열을 비교함으로써 제 2 자음 패턴을 검색하는 단계를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따른 검색된 제 2 자음 패턴을 포함하는 적어도 하나의 자음 문자열이 포함된 검색 결과 목록(search result list)을 생성하는 단계는, 검색될 자음 문자열의 DB에 포함된 모든 자음 문자열에 대한 검색된 제 2 자음 패턴이 포함된 적어도 하나의 자음 문자열을 추출하여 목록화함으로써 검색 결과 목록(search result list)을 생성하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 문자 입력부와 관련된 대표 언어로 생성된 검색될 자음 문자열의 DB에서 제 1 자음 패턴과 매칭되는 제 2 자음 패턴을 검색하는 단계는, 최상위 색인 테이블을 현재 색인 테이블(current index table)로서 참조하고 루프 변수 k를 0으로 설정하는 단계; 현재 색인 테이블의 색인 키와 제 1 자음 패턴을 비교하는 단계; 현재 색인 테이블의 색인 키와 제 1 자음 패턴이 불일치한다면, 현재 색인 테이블에 연결되어 있는 적어도 하나의 하위 색인 테이블들의 색인 키의 마지막에 위치한 문자인 k번째 문자와 제 1 자음 패턴의 k번째 문자를 비교함으로써 일치하는 하위 색인 테이블을 검색하여, 검색된 하위 색인 테이블을 현재 색인 테이블로서 참조하고 루프 변수 k를 1만큼 증가시킨 후, 현재 색인 테이블의 색인 키와 제 1 자음 패턴을 재비교하는 단계; 및 현재 색인 테이블의 색인 키와 제 1 자음 패턴이 일치한다면, 검색 결과 색인 테이블로서 현재 색인 테이블을 지정하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따라 검색 결과 목록(search result list)을 생성하는 단계는, 전술한 비교 또는 재비교 시에, 현재 색인 테이블의 색인 키와 제 1 자음 패턴이 일치한다면, 검색 결과 색인 테이블이 가리키는(point) 적어도 하나의 자음 문자열을 검색 결과 목록으로서 생성하고, 제 1 자음 패턴과 일치하는 현재 색인 테이블의 색인 키가 발견되지 않는다면, 검색 결과가 없음을 나타내는 검색 결과 목록을 생성하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 자음 문자 입력을 위한 문자 입력부를 생성하는 방법은, 미리 결정된 자판 배열을 갖는 제 1 문자 입력부를 선택하는 단계; 제 1 문자 입력부에 배치된 복수개의 문자 키들 중에서 자음 키, 모음 키 및 부가기능 키들을 식별하는 단계; 식별된 복수개의 키들 중 자음 키 및 부가기능 키 중 적어도 하나를 활성화시키고 나머지 키들을 비활성화 시키는 단계; 및 활성화된 키로써 제 2 문자 입력부를 생성하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 비활성화 시키는 단계는, 식별된 복수개의 키들 중 자음 키 또는 부가기능 키 이외의 나머지 키들을 제거하거나 나머지 키들의 입력을 제한하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 자음 문자 입력을 위한 문자 입력부를 생성하는 방법은 활성화된 자음 키 또는 활성화된 부가기능 키의 위치 및 크기 중 적어도 하나를 변경하는 단계를 더 포함할 수 있다. 제 2 문자 입력부는 전술한 위치 및 크기 중 적어도 하나가 변경된 키를 포함하도록 생성될 수 있다.
본 발명의 일 실시예에 따른 활성화된 자음 키 또는 활성화된 부가기능 키의 위치 및 크기 중 적어도 하나를 변경하는 단계는, 자음의 음운 체계상(phonologically) 관련된 문자(character)들끼리 그룹핑하는 단계; 그룹핑된 그룹별로 대표 문자(representative character)를 결정하는 단계; 결정된 대표 문자를 제외한 그룹에 속하는 문자들을 제거하는 단계; 및 결정된 대표 문자를 나타내는 키의 위치 및 크기 중 적어도 하나를 변경하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 그룹핑된 그룹별로 대표 문자(representative character)를 결정하는 단계는, 자음 키의 대표 문자로의 매핑을 위하여 키 매핑 표(key mapping table)를 생성하는 단계; 및 생성된 키 매핑 표에 따라 그룹핑된 그룹별로 대표 문자를 결정하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 식별된 복수개의 키들 중 자음 키 및 부가기능 키 중 적어도 하나를 활성화시키고 나머지 키들을 비활성화 시키는 단계는, 제 1 문자 입력부가 속하는 대표 언어의 특성에 따라 식별된 복수개의 키들 중 초성으로 사용되는 자음만 또는 두문자로 사용되는 자음 및 모음만을 선택적으로 활성화시키고, 종성으로 사용되는 자음을 선택적으로 비활성화 또는 제거시키는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 제 1 문자 입력부 및 제 2 문자 입력부는, 표음식 키보드(phonetic keyboard) 또는 가상의 키보드일 수 있다.
본 발명의 일 실시예에 따른 미리 저장된 원본 문자열 목록 중 복수개의 자음들의 입력을 통하여 적어도 하나의 문자열을 추출하여 디스플레이하는 다국어 통합 자음 패턴 검색 장치는, 데이터 베이스(DB)를 초기화하고, 검색될 상기 원본 문자열 목록을 생성하는 초기화 설정부; 검색될 원본 문자열 목록을 독출하여 각각의 대표 언어별로 검색될 자음 문자열의 DB를 생성하는 자음 문자열 DB 생성부; 복수개의 검색될 자음들이 포함된 제 1 자음 패턴을 수신하기 위한 문자 입력부; 문자 입력부와 관련된 대표 언어에 기초하여 검색될 자음 문자열의 DB에서 제 1 자음 패턴과 매칭되는 제 2 자음 패턴을 검색하는 자음 패턴 검색부; 검색된 제 2 자음 패턴을 포함하는 적어도 하나의 자음 문자열이 포함된 검색 결과 목록(search result list)을 생성하는 검색 결과 목록 생성부; 및 생성된 검색 결과 목록을 소정의 기준에 따라 정렬하여 디스플레이하는 디스플레이부를 포함할 수 있다.
본 발명의 일 실시예에 따른 제 2 자음 패턴은 제 1 자음 패턴과 문자 배치 순서는 동일하지만, 검색될 자음 문자열에 포함된 복수개의 자음 문자들 간의 배치 간격에 관계 없이 추출되어 조합된 패턴일 수 있다.
본 발명의 일 실시예에 따른 자음 문자열 DB 생성부는, 각각의 언어별 알파벳 스크립트(script)들 간의 유사성에 기초하여 미리 분류된 언어-스크립트군(language-script group)으로부터 제 1 스크립트(script)로 표현되는 대표 언어(representative language)를 선택하고, 언어-스크립트군에 포함되는 제 2 스크립트(script)로 표현된 적어도 하나의 문자열을 상기 대표 언어의 제 1 스크립트로 표현된 적어도 하나의 문자열로 변환할 수 있다.
본 발명의 일 실시예에 따른 자음 문자열 DB 생성부는, 다국어 통합 자음 패턴 검색 장치와 연결된 문자 입력부에 상응하는 대표 언어에 기초하여 검색될 자음 문자열의 DB를 생성할 수 있다.
본 발명의 일 실시예에 따른 자음 문자열 DB 생성부는, 미리 저장된 원본 문자열 목록에서 원본 문자열(original string)들을 하나씩 순차적으로 독출하는 문자열 독출부; 독출된 원본 문자열에 포함된 각각의 문자를 각각의 대표 언어별로 설정된 대표 문자 매핑표(mapping table)에 기초하여 대표 문자(representative character)로 변환하는 문자 변환부; 변환된 문자열에서 각각의 대표 언어별로 설정된 제 1 문자 세트(character set)에 포함된 문자 이외의 문자를 제거함으로써 자음 문자열(consonant string)을 생성하는 자음 문자열 생성부; 및 생성된 자음 문자열을 검색될 자음 문자열의 DB에 추가하는 문자열 추가부를 포함할 수 있다.
전술한 순차적으로 독출하고, 대표 문자(representative character)로 변환하며, 자음 문자열(consonant string)을 생성하고, DB로의 추가는 원본 문자열 목록에 포함된 모든 원본 문자열에 대하여 각각 수행될 수 있다.
제 1 문자 세트는 초성 자음(initial consonant)과 종성 자음(final consonant) 중 적어도 하나를 포함하는 문자 세트 또는 두문자(initial letter)를 포함하는 문자 세트를 포함할 수 있다.
본 발명의 일 실시예에 따른 생성된 자음 문자열은 부가적인 정렬 없이 원본 문자열 목록과 상응하게 검색될 자음 문자열의 DB에 순차적으로 추가될 수 있다.
본 발명의 일 실시예에 따른 초기화 설정부는, 최상위 색인 테이블(root index table)을 검색될 자음 문자열의 DB에 생성하고, n개의 자음 문자를 포함하는 검색될 자음 문자열에서 m개의 자음 문자를 추출할 때, 추출될 자음 개수(m)의 최소값(Mmin)이 2 이상이라면, 대표 언어에 대응되는 제 1 문자 세트에 속한 전체 문자들에 대해, 적어도 1개 이상이고 (Mmin - 1)개 이하의 모든 자음 패턴을 각각 키로 가지는 미리결정된 색인 테이블(index table)들을 상기 검색될 자음 문자열의 DB에서 생성하고, 문자열 추가부는 n개의 자음 문자를 포함하는 검색될 자음 문자열에서 m개의 자음 문자를 추출할 때, 추출될 자음 개수(m)가 최소값(Mmin) 이상이고 최대값(Mmax) 이하인 모든 제 2 자음 패턴의 조합을 추출하고, 추출된 각각의 제 2 자음 패턴의 문자열을 색인 키(index key)로 가지는 모든 색인 테이블들에 상기 제 2 자음 패턴을 포함하는 자음 문자열을 가리키는 포인터(pointer)를 추가(add)할 수 있다.
본 발명의 일 실시예에 따른 문자열 추가부는, 포인터(pointer)를 추가(add)할 때 추출된 제 2 자음 패턴에 상응하는 색인 테이블(index table)이 미생성되었다면, 추출된 제 2 자음 패턴에 기초하여 미생성된 색인 테이블을 동적(dynamically)으로 생성하고, 하위 색인 테이블(sub-index table)인 동적으로 생성된 색인 테이블을 상위 색인 테이블(super index table)에 연결(link)하며, 상위 색인 테이블은 하위 색인 테이블의 색인 키에서 마지막에 위치한 자음 문자가 제외된 패턴의 색인 키를 가지는 색인 테이블일 수 있다.
본 발명의 일 실시예에 따른 문자열 추가부에 의하여 제 2 자음 패턴의 조합을 추출할 때 n개의 자음 문자를 포함하는 검색될 자음 문자열에서 m개의 자음 문자를 추출한다면, 상호 중복됨이 없이 추출될 모든 자음 패턴들의 최대값은,
Figure 112014002957912-pat00002
로 결정될 수 있다.
본 발명의 일 실시예에 따른 문자 입력부를 통하여 복수개의 자음들을 포함하는 제 1 자음 패턴을 수신할 때, 문자 입력부를 통한 모든 모음(vowel) 키들의 입력이 제한될 수 있다.
본 발명의 일 실시예에 따른 자음 패턴 검색부는, 문자 입력부와 관련된 대표 언어로 생성된 검색될 자음 문자열의 DB에 포함된 모든 자음 문자열들을 하나씩 순차적으로 독출하고, 제 1 자음 패턴과 독출된 자음 문자열을 비교함으로써 제 2 자음 패턴을 검색하며, 검색 결과 목록 생성부는 검색될 자음 문자열의 DB에 포함된 모든 자음 문자열에 대한 검색된 제 2 자음 패턴이 포함된 적어도 하나의 자음 문자열을 추출하여 목록화함으로써 검색 결과 목록을 생성할 수 있다.
본 발명의 일 실시예에 따른 자음 패턴 검색부는, 최상위 색인 테이블을 현재 색인 테이블(current index table)로서 참조하고 루프 변수 k를 0으로 설정하고, 현재 색인 테이블의 색인 키와 제 1 자음 패턴을 비교하여, 현재 색인 테이블의 색인 키와 제 1 자음 패턴이 불일치한다면, 현재 색인 테이블에 연결되어 있는 적어도 하나의 하위 색인 테이블들의 색인 키의 마지막에 위치한 문자인 k번째 문자와 제 1 자음 패턴의 k번째 문자를 비교함으로써 일치하는 하위 색인 테이블을 검색하여, 검색된 하위 색인 테이블을 현재 색인 테이블로서 참조하고 루프 변수 k를 1만큼 증가시킨 후 현재 색인 테이블의 색인 키와 제 1 자음 패턴을 재비교하고, 현재 색인 테이블의 색인 키와 제 1 자음 패턴이 일치한다면, 검색 결과 색인 테이블로서 상기 현재 색인 테이블을 지정할 수 있다
검색 결과 목록 생성부는, 전술한 비교 또는 재비교 시에, 현재 색인 테이블의 색인 키와 제 1 자음 패턴이 일치한다면, 검색 결과 색인 테이블이 가리키는 적어도 하나의 자음 문자열들을 검색 결과 목록으로서 생성하고, 제 1 자음 패턴과 일치하는 현재 색인 테이블의 색인 키가 발견되지 않는다면, 검색 결과가 없음을 나타내는 검색 결과 목록을 생성할 수 있다.
본 발명의 일 실시예에 따른 자음 문자 입력을 위한 문자 입력부를 생성하는 장치는, 미리 결정된 자판 배열을 갖는 제 1 문자 입력부를 선택하는 문자 입력부 선택부; 제 1 문자 입력부에 배치된 복수개의 문자 키들 중에서 자음 키, 모음 키 및 부가기능 키들을 식별하는 키 식별부; 식별된 복수개의 키들 중 자음 키 및 부가기능 키 중 적어도 하나를 활성화시키고 나머지 키들을 비활성화 시키는 키 상태 제어부; 및 활성화된 키로써 제 2 문자 입력부를 생성하는 문자 입력부 생성부를 포함할 수 있다.
키 상태 제어부는, 식별된 복수개의 키들 중 자음 키 또는 부가기능 키 이외의 나머지 키들을 제거하거나 나머지 키들의 입력을 제한할 수 있다.
본 발명의 일 실시예에 따른 자음 문자 입력을 위한 문자 입력부를 생성하는 장치는 활성화된 자음 키 또는 활성화된 부가기능 키의 위치 및 크기 중 적어도 하나를 변경하는 변경부를 더 포함할 수 있다. 제 2 문자 입력부는 위치 및 크기 중 적어도 하나가 변경된 키를 포함하도록 생성될 수 있다.
변경부는, 자음의 음운 체계상(phonologically) 관련된 문자(character)들끼리 그룹핑하고, 그룹핑된 그룹별로 대표 문자(representative character)를 결정하며, 결정된 대표 문자를 제외한 그룹에 속하는 문자들을 제거하고, 결정된 대표 문자를 나타내는 키의 위치 및 크기 중 적어도 하나를 변경할 수 있다.
본 발명의 일 실시예에 따라 그룹핑된 그룹별로 대표 문자(representative character)를 결정하는 것은, 자음 키의 대표 문자로의 매핑을 위하여 키 매핑 표(key mapping table)를 생성하고, 생성된 키 매핑 표에 따라 그룹핑된 그룹별로 대표 문자를 결정을 포함할 수 있다.
키 상태 제어부는, 제 1 문자 입력부가 속하는 대표 언어의 특성에 따라 식별된 복수개의 키들 중 초성으로 사용되는 자음만 또는 두문자로 사용되는 자음 및 모음만을 선택적으로 활성화시키고, 종성으로 사용되는 자음을 선택적으로 비활성화 또는 제거시킬 수 있다.
본 발명의 일 실시예에 따른 제 1 문자 입력부 및 제 2 문자 입력부는, 표음식 키보드(phonetic keyboard) 또는 가상의 키보드일 수 있다.
한편, 본 발명의 일 실시예에 의하면, 전술한 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.
본 발명에 따른 다국어 통합 자음 패턴 검색 방법에 의해, 초성과 종성이 구별되는 표음 문자로 표기되는 언어의 원본 문자열 목록에 대하여, 비연속적이어도 되는 임의의 위치의 자음 패턴의 대표 언어별 통합 검색이 가능하다. 다시 말해서, 사용자가 관심이 있는 데이터를 검색하고자 할 때, 최소한의 문자의 입력만으로 고속 검색이 가능하고, 대용량의 데이터일지라도 종래 대비 더욱 정확한 검색 결과를 제공할 수 있으므로 사용자에 의한 검색 결과의 검토가 용이해질 수 있다. 또한, 표음 문자로 표기되는 세계의 주요 언어에 대하여도, 각 언어마다 일관성 있게 통합해서 검색할 수 있게 된다.
또한, 자음 문자 입력을 위한 문자 입력부를 생성하는 방법에 따라, 각 국가별 표음식 표준 문자 입력부(예컨대, 키보드 등)에 대응하는 자음 문자 입력을 위한 문자 입력부를 생성하여 사용함으로써, 오타율의 감소와 문자 입력 속도의 향상을 기대할 수 있다. 다시 말해서, 이동 기기 등에서 제공될 소형의 문자 입력부로 문자를 입력하더라도 오타율을 최소화시킬 수 있고, 사용자는 종래 대비 더욱 빠른 문자 입력이 가능하다.
도 1a 및 1b는 종래의 단어 선두 검색을 사용하여 검색된 데이터의 결과와 본 발명의 일 실시예에 따라 자음 패턴 검색을 사용하여 검색된 데이터의 결과를 각각 도시한다.
도 2는 본 발명의 일 실시예에 따른 다국어 통합 자음 패턴 검색 방법의 흐름도를 도시한다.
도 3은 본 발명의 일 실시예에 따라 원본 문자열 목록으로부터 각각의 대표 언어별로 검색될 자음 문자열의 DB를 생성하는 방법의 흐름도를 도시한다.
도 4는 본 발명의 일 실시예에 따라 생성된 복수개의 색인 테이블들의 연결성을 이용한 데이터 추가 및 검색 방법을 도시한다.
도 5는 본 발명의 일 실시예에 따른 자음 패턴 비교 알고리즘을 나타낸 순서도이다.
도 6은 본 발명의 일 실시예에 따른 복수개의 색인 테이블들을 이용하여 데이터를 색인화 검색하기 위한 알고리즘을 나타낸 순서도이다.
도 7은 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 문자 입력부를 생성하는 방법의 흐름도를 도시한다.
도 8은 본 발명의 일 실시예에 따라 변경된 키를 포함하는 문자 입력부를 생성하는 방법의 흐름도를 도시한다.
도 9a 및 9b는 종래의 표준 한글 두벌식 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 한글 두벌식 키보드를 각각 도시한다.
도 10a 및 10b는 종래의 표준 영어 QWERTY 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 QWERTY 키보드를 각각 도시한다.
도 11a 및 11b는 종래의 표준 영어 AZERTY 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 AZERTY 키보드를 각각 도시한다.
도 12a 및 12b는 종래의 표준 영어 QWERTZ 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 QWERTZ 키보드를 각각 도시한다.
도 13a 및 13b는 종래의 일본어 romaji 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 romaji 키보드를 각각 도시한다.
도 14a 및 14b는 종래의 일본어 10-Key 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 9-Key 키보드를 각각 도시한다.
도 15a 및 15b는 종래의 표준 중국어 pinyin 키보드와 본 발명의 일 실시예에 따른 두문자 입력을 위한 pinyin 키보드를 각각 도시한다.
도 16a 및 16b는 종래의 중국어 zhuyin 키보드와 본 발명의 일 실시예에 따른 두문자 입력을 위한 zhuyin 키보드를 각각 도시한다.
도 17a 및 17b는 종래의 표준 러시아어 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 러시아 키보드를 각각 도시한다.
도 18a 및 18b는 종래의 표준 우크라이나어 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 우크라이나어 키보드를 각각 도시한다.
도 19a 및 19b는 종래의 표준 불가리아어 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 불가리아어 키보드를 각각 도시한다.
도 20a 및 20b는 종래의 세르비아어 키릴 문자 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 세르비아어 키릴 문자 키보드를 각각 도시한다.
도 21a 및 21b는 종래의 마케도니아어 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 마케도니아어 키보드를 각각 도시한다.
도 22는 본 발명의 일 실시예에 따른 다국어 통합 자음 패턴 검색 장치의 블럭도를 도시한다.
도 23은 본 발명의 다른 실시예에 따른 다국어 통합 자음 패턴 검색 장치의 블럭도를 도시한다.
도 24는 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 문자 입력부를 생성하는 장치의 블록도를 도시한다.
도 25는 본 발명의 다른 실시예에 따른 자음 문자 입력을 위한 문자 입력부를 생성하는 장치의 블록도를 도시한다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 본 발명의 명세서 전체에서 부가기능 키들은 편집용 키를 의미한다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1a 및 1b는 종래의 단어 선두 검색을 사용하여 검색된 데이터의 결과와 본 발명의 일 실시예에 따라 자음 패턴 검색을 사용하여 검색된 데이터의 결과를 각각 도시한다.
도 1a에 도시된 바와 같이, 데이터 검색 창(20)에 표시된 검색어(예컨대, jam)가 문자 입력부(10)를 통하여 수신되면, 미리 구축된 데이터베이스(DB)로부터 종래의 선두 검색(prefix search) 방식에 따라 검색어가 선두에 포함된 데이터가 검색되어 검색 결과 창(30)에 디스플레이될 수 있다. 선두 검색(prefix search) 방식은 DB에 저장되어 있는 검색될 문자열 전체 또는 검색될 문자열 내 각 단어의 첫 문자부터 시작하여 검색할 문자열의 길이만큼 비교하여, 일치하면 검색 결과 목록(search result list)에 추가하는 방식을 지칭한다. 그러나, 이러한 선두 검색 방식은 사용자가 검색할 문자열 또는 단어의 선두를 알지 못한다면 정확한 검색이 불가능하다는 단점이 있다. 예를 들어, 검색어로서 "th"가 수신되면, "Thomas Smith" 등과 같이 "th"로 시작하는 데이터는 검색될 수 있다. 그러나, 검색어로서 "sm"이 수신되면 "sm"으로 시작하는 데이터는 검색이 가능하지만, "Thomas Smith" 등과 같은 데이터는 검색되지 않는다.
또한, 소정의 검색어(예컨대, hom 등)가 수신되면, 미리 구축된 데이터베이스(DB)로부터 종래의 부분 문자열(substring) 검색 방식에 따라 데이터가 검색되어 검색 결과 창(30)에 디스플레이될 수 있다. 이러한 부분 문자열 검색은, DB에 저장되어 있는 검색될 문자열에 검색할 문자열이 포함되어 있으면 검색할 문자열이 포함된 검색될 문자열을 검색 결과 목록에 추가하는 방식을 지칭한다. 예를 들어, 검색어 "hom"이 수신되면 "Thomas Smith" 등과 같이 "hom"을 포함하는 데이터가 검색될 수 있다. 또한, 검색어 "길동"이 수신되면, "홍길동", "홍 길동" 등과 같이 "길동"을 포함하는 데이터가 검색될 수 있다. 그러나, 이러한 부분 문자열의 치명적인 단점은, 데이터 처리를 위한 개별적인 인덱싱이 미리 수행되어 있지 않다면 정렬(sort)에 의한 고속 검색이 불가능하여, 매번 검색할 때마다 DB에 저장되어 있는 전체 문자열들을 일일이 비교하여 검색해야 하기 때문에, 데이터의 검색에 소요되는 시간이 현저하게 증가될 수 있다는 문제점이 있다. 따라서 이러한 부분 문자열 검색은 주소록이나 사전 등과 같은 대용량의 데이터의 검색에는 적절하지 않다. 또한, 부분 문자열 검색 방법을 쓰더라도 연속적이지 않은 문자 패턴은 검색되지 않는다. 예컨대, 검색어로서 "ts"가 수신되면, "Thomas Smith" 등과 같은 데이터는 검색되지 않는다.
또한, 한글 입력을 위한 문자 입력부를 이용하여 검색어(예컨대, ㅎㄱㄷ)이 입력되면 종래의 초성 검색 방식에 따라 검색어(예컨대, ㅎㄱㄷ)을 포함하는 데이터가 검색되어 디스플레이될 수 있다. 이러한 초성 검색의 원리는 검색될 문자열을 구성하는 모든 음절에서 중성과 종성에 상관없이 초성만을 추출하여 검색하는 방식이다.
그러나 이러한 초성 검색은 초성에만 기초하여 초성이 일치하는 모든 데이터를 검색하게 되므로, 방대한 데이터베이스 검색 시 사용자가 관심이 없는 데이터까지도 검색 결과로서 표시하게 되어 사용자가 재차 데이터 필터링을 수행하거나 화면 스크롤을 과다하게 해야 하는 등 검색이 번거로워지는 문제가 있다. 예컨대, 전화번호부나 주소록에 저장되어 있는 데이터가 대용량, 즉 수백 개 이상의 항목을 포함한다면, 인명 또는 상호의 검색을 위하여 초성 3개(예컨대, ㅎㄱㄷ)를 입력했을 때, 경우에 따라 수십 개의 검색 결과가 표시되고, 결국 수 차례의 화면 스크롤을 해야만 사용자가 관심이 있는 검색 결과에 도달할 수 있는 경우가 발생하게 된다. 따라서, 여러 번의 스크롤 조작에 따른 데이터 필터링 횟수의 증가와 불필요한 시간 소모를 야기할 수 있다.
또한, 영어 단어 검색에 초성 검색을 적용하려 할 경우, 모든 영어 단어들의 음절(syllable) 분리에 대한 정보를 가지는 방대한 DB의 사전 구축 없이 종래의 데이터 검색 알고리즘만으로 영어 단어에서 초성을 완벽하게 구분해 내는 것이 사실상 불가능하다. 또한 나날이 생겨나는 신조어에 대한 지속적인 DB의 갱신이 수반되지 않는다면, 영어의 초성 검색은 불가능하다.
따라서 영어 단어 검색에는 단어 두문자(initial letter of a word) 검색 방식(예컨대, 검색어로 "ts"가 수신될 때, "Thomas Smith" 등과 같이 이름, 성의 두문자가 각각 "t", "s"인 데이터가 검색되는 경우)과 같은 단순한 방법만이 실현되어 있는데, 이러한 단어 두문자 검색 방식은 초성 검색보다 더 적은 개수의 검색 문자(예컨대, 인명의 경우 최대 2자)밖에 입력할 수 없기 때문에, 동일한 전체 데이터의 개수에 대하여 검색 결과가 초성 검색의 검색 결과보다 훨씬 더 많이 획득되므로, 추가적인 데이터 필터링이 수반된다는 문제점이 있다. 예컨대 전화번호부에서 이름과 성으로 구성되어 있는 영문 성명(full name)을 검색할 경우, 최대 2자밖에 입력할 수 없어 검색 결과 창에는 수많은 검색 결과가 표시되어 버리므로, 사용자는 검색 결과 창이 디스플레이된 화면의 스크롤에 많은 시간을 소모하게 된다는 불편함을 야기한다.
이동 기기들이 급속도로 전파되면서 형성된 모바일 환경에서의 시간적 또는 공간적 제약으로 인하여 최소한의 키 입력만으로 원하는 데이터를 신속히 검색하고자 하는 수요가 폭발적으로 증가하고 있다. 다시 말해서, 이동 기기가 보편화되면 될수록 개개인들의 정보가 계속해서 이동 기기에 대량으로 축적되므로 이러한 대량의 데이터에 기초한 종래의 한글 초성 검색 방식이나 영문 단어 두문자 검색 방식만으로는 신속하고 정확한 데이터 검색이 불가능하므로, 종래의 기술과 대비하여 데이터 검색을 손쉽게 하고자 하는 요구가 증가하고 있다.
본 발명의 일 실시예로 제공되는 다국어 통합 자음 패턴 검색 방법에 따르면, 방대한 규모의 데이터에 대한 빠르고 정확한 검색이 가능하다는 이점이 있다. 도 1b에 도시된 바와 같이, 자음 문자 입력을 위한 문자 입력부(11)를 통하여 검색어(예컨대, 검색어 입력창(21)에 표시된 "js")가 수신되면, 원본 문자열(예컨대, James Brown)에서 추출한 연속된 자음 문자열(예컨대, jmsbrwn)에서 중간의 몇몇 자음들을 선택적으로 제외하여 조합한 비연속적인 자음 문자열(예컨대, jsbr, jsw 등)에서 "js"가 포함된 데이터가 빠르고 정확하게 검색될 수 있다. 검색 결과는 검색 결과 창(31)에 디스플레이될 수 있다.
또한, 전술한 바와 같이 검색할 전체 데이터가 상대적으로 많을 때에, 한글 초성 검색의 경우 입력할 수 있는 초성의 개수가 검색할 문자열의 최대 음절 수 이하로 제한되기 때문에, 검색 결과가 과도하게 많이 표시는 문제가 있다. 이러한 문제에 대한 대응 방식 중 하나로 초성뿐만 아니라 종성까지도 검색에 포함시키는 방식의 자음 검색(consonant search) 방식이 제기되었지만, 종래의 자음 검색 방식은 연속하여 위치한 자음 밖에 검색하지 못한다는 단점이 있다. 다시 말해서, 종래의 자음 검색 방식(이하에서 연속 자음 검색(consecutive consonant search) 방식으로 지칭함)에 따르면, 검색어의 각 문자들이 입력된 순서가 뒤바뀌지 않도록 하여 임의의 위치(arbitrary position)에서 추출되어 조합된 자음 문자들의 패턴(예컨대, 불연속적인 자음 패턴)은 이러한 연속 자음 검색으로는 검색되지 않는다. 다시 말해서, 원본 문자열에서 추출한 연속된 자음 문자열에서 중간의 몇몇 자음들을 제외할 수 있어 비연속적(non-consecutive)일 수 있는 자음들의 문자열인 불연속적인 자음 패턴은 종래의 연속 자음 검색 방식으로는 검색되지 않는다. 따라서, 종래의 연속 자음 검색 방식은 종성이 제외되어 자음이 비연속적인 초성 검색을 전혀 지원하지 못하며, 그러므로 연속 자음 검색에서도 익숙한 초성 검색이 지원될 것으로 기대하던 사용자는 초성 검색 결과가 포함되지 않은 검색 결과를 획득하게 되므로, 검색 결과의 신뢰도가 떨어지게 된다. 예를 들어, "홍길동"에서 초성 및 종성이 포함되도록 자음 문자열을 추출하면 "ㅎㅇㄱㄹㄷㅇ"의 자음 문자열이 획득된다. 이러한 경우, 검색어로서 "ㅎㄱㄷ"이 수신되면, 종래의 초성 검색으로는 찾을 수 있는 "홍길동"이 검색되지 않을 수 있다. 대신에 연속하여 위치한 "ㅎㄱㄷ"을 포함하는 데이터(예컨대, "학동" 등)만이 검색될 수 있는데, "학동"에서 초성 및 종성이 포함되도록 자음 문자열을 추출하면 "ㅎㄱㄷㅇ"이 획득되기 때문에 검색어 "ㅎㄱㄷ"에 상응하는 자음 문자열 "ㅎㄱㄷ"이 순차적으로 포함된 데이터만이 검색될 수 있기 때문이다.
전술한 종래의 연속 자음 검색 방식의 문제점은 영문 단어 검색에서도 동일하게 적용될 수 있다. 예를 들어, 검색어로 "ts"가 수신되면, 종래의 단어 두문자 검색 방식으로는 찾을 수 있는 "Thomas Smith"는 검색되지 않는다. 대신에 두 개의 자음들을 연속해서 포함하는 데이터(예컨대, "Natasha")만 검색될 수 있다. 또한, 검색어로 "tmt"이 수신되면, 종래의 검색 방식으로는 "t", "m", "t"의 순서대로 소정의 간격만큼 이격되어 위치한 자음 문자열(예컨대, thmssmth)을 갖는 "Thomas Smith"을 찾지 못한다. 대신에 세 개의 자음들("t", "m", "t")을 연속해서 포함하는 데이터(예컨대 "Timothy")만 검색될 수 있다.
한글 성명(full name)의 경우, 각 음절의 초성 3문자에 임의의 종성이나 자음 문자 하나만 추가된 4문자의 자음 문자열 (또는 자음 패턴)이 검색어로서 수신되면, 검색 결과의 양이 대폭 축소될 수 있다. 다시 말해서, 검색될 DB에서 초성 3문자가 같은 성명들은 다수개가 존재할 수 있지만, 초성 3문자에 종성까지 검색어로서 포함시킨다면, 초성 3문자와 추가된 종성 문자까지 모두 동일한 성명들의 개수는 대폭 감소될 수 있다.
예를 들어 초성 3문자를 입력하면 수십 개의 검색 결과가 나타나서 화면 스크롤을 수 차례 해야 최종 결과를 찾을 수 있는 전화번호부 DB가 있다고 했을 때, 초성 3문자에 임의의 종성 1문자만 더 추가하여 검색하면 불과 몇 개의 검색 결과만 나타나게 된다. 예컨대, 검색어로서 "ㅎㄱㄷ"이 수신되면 "홍길동", "황규동" 등을 포함하여 "ㅎㄱㄷ"의 자음 패턴을 가지는 다수의 성명들이 검색될 수 있다. 이에 비하여 검색어로서 "ㅎㄱㄹㄷ"이 수신되면 "홍길동"과 "ㅎㄱㄹㄷ"의 자음 패턴을 갖는 소수의 성명들만이 검색될 수 있다.
다시 말해서, 본 발명의 일 실시예에서와 같이 임의의 위치에 존재하는 자음들이 추출되어 조합된 자음 패턴이 검색될 수 있다면, 사용자는 관심이 있는 검색어에 포함된 문자의 입력을 최소화하면서 빠르고 정확한 검색 결과를 획득할 수 있다. 즉, 검색 결과에 대한 과도한 스크롤 동작을 수행하지 않더라도 단번에 관심이 있는 데이터를 검색하거나 선택할 수 있다.
이동 기기에서 데이터 검색 효율의 극대화를 위하여 문자의 입력 회수나 스크롤의 양을 획기적으로 줄여야 한다는 필요성에 더하여, 스마트폰의 기능 향상과 더불어 전세계를 대상으로 한 사회관계망서비스(social network service, SNS)의 폭발적인 증가에 따라, 다국어(multi-language)의 사용으로 인해 발생하는 데이터 검색상의 제약을 해결해야 할 필요성도 최근 들어 대두되고 있다.
전형적인 예는 인명과 상호의 경우이다. 사용자들이 스마트폰 및 SNS로 개인적 관계 또는 사업을 세계적으로 손쉽게 확장시켜 갈 수 있게 됨에 따라, 스마트폰에 저장되는 인명 또는 상호가 사용자의 모국어뿐만 아니라 다른 나라의 언어로 쓰여지는 경우가 점차 늘어나고 있다. 가장 대표적인 경우가 사용자의 모국어와 국제 공용어인 영어가 혼용되는 경우이다. 이런 상황에서 국제 공용어인 영어는 물론이고, 각종 유럽어와 아시아의 중국어, 일본어 등 세계의 주요 언어에 대하여도 문자열의 임의의 위치의 문자들에 기초하여 조합된 패턴을 이용한 효율적인 데이터 검색 방법은 아직까지도 전혀 소개된 바가 없다.
예를 들어, 종래의 검색 방식 하에서, 검색어로서 "tms"가 수신되더라도 "Thomas Smith"가 검색되지는 않는다. 또한, 종래의 검색 방식 하에서, 검색어로서 "
Figure 112014002957912-pat00003
"가 수신되더라도 "
Figure 112014002957912-pat00004
"가 검색되지 않고, 검색어로서 "
Figure 112014002957912-pat00005
"가 수신되더라도 "
Figure 112014002957912-pat00006
"가 검색되지 않으며, 검색어로서 "
Figure 112014002957912-pat00007
"가 수신되더라도 "
Figure 112014002957912-pat00008
"가 검색되지는 않는다. 또한, 종래의 검색 방식 하에서, 검색어로서 "
Figure 112014002957912-pat00009
"가 수신되더라도 "
Figure 112014002957912-pat00010
"가 검색되지는 않는다.
근래에 본격적으로 진행되고 있는 세계화 추세로 인하여 이동 기기에서 다국어를 사용하는 경우가 점차 늘어나고 있으므로, 세계의 주요 언어에 대하여 빠르고 효율적이며 편리하면서도 각 언어마다 다르지 않고 일관성 있게 통합하여 데이터를 검색할 수 있는 본 발명과 같은 검색 방법이 필요성이 증대된다.
도 2는 본 발명의 일 실시예에 따른 다국어 통합 자음 패턴 검색 방법의 흐름도를 도시한다.
본 발명의 일 실시예에 따라 미리 저장된 원본 문자열 목록(original string list) 중 복수개의 자음들의 입력을 통하여 적어도 하나의 문자열을 추출하여 디스플레이하는 다국어 통합 자음 패턴 검색 방법은, 데이터 베이스(DB)를 초기화하고, 검색될 상기 원본 문자열 목록을 생성하는 단계(S100), 검색될 원본 문자열 목록을 독출하여 각각의 대표 언어별로 검색될 자음 문자열의 DB를 생성하는 단계(S200), 문자 입력부를 통하여 입력된 복수개의 자음들을 포함하는 제 1 자음 패턴을 수신하는 단계(S300), 문자 입력부와 관련된 대표 언어에 기초하여 생성된 검색될 자음 문자열의 DB에서 제 1 자음 패턴과 매칭되는 제 2 자음 패턴을 검색하는 단계(S400), 검색된 제 2 자음 패턴을 포함하는 적어도 하나의 자음 문자열이 포함된 검색 결과 목록(search result list)을 생성하는 단계(S500) 및 생성된 검색 결과 목록을 소정의 기준에 따라 정렬(sorting)하여 디스플레이하는 단계(S600)를 포함할 수 있다.
본 발명의 일 실시예에 따른 제 2 자음 패턴은 제 1 자음 패턴과 문자 배치 순서는 동일하지만, 검색될 자음 문자열에 포함된 복수개의 자음 문자들 간의 배치 간격에 관계 없이 추출되어 조합된 패턴일 수 있다.
본 발명의 일 실시예에 따르면 사용자로부터 복수개의 문자들을 수신하여, 미리 구축된 DB에 포함된 원본 문자열 목록을 효율적으로 검색할 수 있다. 다시 말해서, 초성 또는 종성 자음들의 입력만으로 과도한 화면 스크롤(screen scroll)이 필요 없을 정도로 소수의 문자열(string)들만이 검색 결과로서 화면에 표시되도록 할 수 있다. 본 발명의 일 실시예에 따른 자음 문자열(consonant string)은 일반적으로 초성 또는 종성 자음들의 집합, 예컨대, 복수개의 초성 또는 종성 자음들을 포함하는 문자열일 수 있다.
본 발명의 일 실시예에 따라 데이터 베이스(DB)를 초기화하고, 검색될 상기 원본 문자열 목록을 생성하는 단계(S100)는, 초기화 단계로서, 검색될 원본 문자열 목록이 포함된 DB의 초기화 단계가 포함될 수 있다. DB의 초기화는 각종 변수의 초기화(예컨대, 초기 변수값 설정 등), 메타데이터 등을 이용한 DB에 포함된 항목의 식별 등 데이터 검색을 위한 준비 단계를 총칭할 수 있다. 또한, 단계 S100에서 검색될 원본 문자열 목록이 생성될 수 있다. 원본 문자열이 포함된 DB로부터 원본 문자열 전부 또는 일부가 랜덤하게 추출되어 검색될 원본 문자열 목록으로 목록화될 수 있다.
본 발명의 일 실시예에 따라 검색될 원본 문자열 목록을 독출하여 각각의 대표 언어별로 검색될 자음 문자열의 DB를 생성하는 단계(S200)는, 원본 문자열 목록에 포함된 원본 문자열이 표현된 언어별로 원본 문자열을 분류하는 단계, 분류된 언어에 기초하여 검색될 자음 문자열의 DB를 생성하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 각각의 대표 언어별로 검색될 자음 문자열의 DB를 생성하는 단계(S200)는, 각각의 언어별 알파벳 스크립트(script)들 간의 유사성에 기초하여 미리 분류된 언어-스크립트군(language-script group)으로부터 제 1 스크립트(script)로 표현되는 대표 언어(representative language)를 선택하는 단계 및 언어-스크립트군에 포함되는 제 2 스크립트(script)로 표현된 적어도 하나의 문자열을 대표 언어의 제 1 스크립트로 표현된 적어도 하나의 문자열로 변환하는 단계를 포함할 수 있다.
다시 말해서, 각 언어별 알파벳 문자들간의 유사성을 가지는 언어-스크립트군에 대하여 특정한 스크립트(또는 문자)에 기반한 대표 언어를 선정하고, 소정의 언어-스크립트군(예컨대, 하기 표 1의 Catalan{ca-ES})에 속한 언어(ca)의 특정한 스크립트(또는 문자)로 쓰여진 모든 문자열들을 해당 대표 언어(예컨대, 하기 표 1의 English{Latin})의 특정한 문자로 쓰여진 문자열로 변환해 줌으로써, 개별적인 언어-문자군에 대해서 통합적으로 자음 검색이 가능할 수 있다.
Figure 112014002957912-pat00011
본 명세서에서 "스크립트(script) 또는 문자"는 특정한 알파벳 문자를 지칭할 뿐만 아니라 입력 장치(input device) 등을 통한 입력 방식(input technique)도 지칭할 수 있다. 따라서, 하나의 "언어-스크립트 조합(language-script combination)"을 하나의 문자 입력부에 일대일로 대응시킬 수 있다. 예컨대 상기 표 1에서 Romaji, Pinyin, Zhuyin 등은 입력 방식을 나타낸다.
본 발명의 일 실시예에 따라 각각의 대표 언어별로 검색될 자음 문자열의 DB를 생성하는 단계(S200)는, 다국어 통합 자음 패턴 검색 장치와 연결된 문자 입력부에 상응하는 대표 언어에 기초하여 검색될 자음 문자열의 DB를 생성하는 단계를 포함할 수 있다. 다시 말해서, 사용자의 필요에 따라 이동 장치 등의 입력 장치와 연결된 다수의 키보드들 중에서 어느 하나의 키보드에도 대응하지 않는 대표 언어에 대해서는, 검색될 자음 문자열의 DB를 생성하더라도 검색에 사용할 키보드가 없어서 효용이 전혀 없기 때문에 어느 키보드에도 대응하지 않는 대표 언어에 대해서는 DB를 생성하지 않는 것이 바람직하다.
예를 들어, 임의 언어-문자 조합의 대표 언어에 대하여, 문자 입력부가 해당 언어-스크립트군에 속한 키보드이되 자음 패턴 검색 전용으로 입력이 제한 또는 매핑되지 않은 종래의 국가 표준(national standard) 또는 관용(conventional) 키보드이면, 필요하다면, 해당 키보드에 대응하는 종래의 입력 방식(input method)에 따른 변환을 하지 않고, 모든 모음(vowel) 키들의 입력을 금지시키는 것과, 해당 대표 언어에 대응하여 정의되어 있는 자음 문자 세트에 속하지 않는 모든 자음 키들에 대해, 음운 체계상(phonologically) 유관한(related) 문자들끼리 그룹으로 묶고, 자음 문자 세트에 속해 있는 대표 문자(representative character) 하나에 각 그룹의 문자들을 매핑함으로써, 결과적으로 해당 대표 언어에 대해 정의되어 있는 자음 문자 세트만을 입력 받을 수 있는 키 입력 문자의 변환을 수행할 수 있다. 다만, 자음뿐만 아니라 일부 모음들도 포함될 수 있는 두문자 검색(initial letter search)일 경우에 모든 모음(vowel) 키들의 입력을 금지시키는 것이 적용되지 않으며, 대표 문자(representative character) 하나에 각 그룹의 문자들을 매핑하는 것은 일부 모음들도 이에 해당될 수 있다.
대표 언어의 언어-스크립트(또는 문자) 조합이 {한국어-한글}일 경우, 문자 입력부가 {한국어-한글} 언어-문자군에 속한 키보드이되 자음 패턴 검색 전용으로 입력이 제한 또는 매핑되지 않은 종래의 국가 표준 또는 관용 키보드이면, 모든 모음 키들의 입력을 금지시키는 것과, 쌍자음(twin consonant)과 복자음(compound consonant)을 조합하지(combine) 않고 단자음(single consonant)으로서만 입력 받는 것과, 종성 자음 키가 별도로 있을 경우 대응하는 초성 자음에 매핑함으로써 표 3의 특정한 자음 문자 세트만을 입력 받을 수 있다.
대표 언어의 언어-문자 조합이 {English-Latin}일 경우, 문자 입력부가 {English-Latin} 언어-문자군에 속한 키보드이되 자음 패턴 검색 전용으로 입력이 제한 또는 매핑되지 않은 종래의 국가 표준 또는 관용 키보드이면, 모든 모음 키들의 입력을 금지시키는 것과, 모든 자음 키의 문자들을 표 4의 실시 예와 같은 대표 문자 매핑표로 매핑함으로써 표 5의 특정한 자음 문자 세트만을 입력 받을 수 있다.
대표 언어의 언어-문자 조합이 {Japanese-Hirakana}일 경우, 문자 입력부가 도 13의 예시와 같은 관용 일본어 romaji 키보드이되 자음 패턴 검색 전용으로 입력이 제한 또는 매핑되지 않은 것이면, 모든 모음 키들의 입력을 금지시키는 것과, 모든 자음 키의 문자들을 표 18의 실시 예와 같은 대표 문자 매핑표로 매핑을 함으로써 표 7의 실시 예와 같은 특정한 자음 문자 세트만을 입력 받을 수 있다. 이때 대표 문자로는 일본어 표준 문자표인 50음도에서 임의의 단(段)을 선택하여 사용할 수 있으나, 표 7과 표 18는 일 실시예로서 hirakana의 あ단을 선택한 경우이다.
대표 언어의 언어-문자 조합이 {Japanese-Hirakana}일 경우, 문자 입력부가 도 14의 예시와 같이 일본에서 일반 휴대폰(feature phone) 및 스마트폰에 두루 쓰이는 일본어 10-key 키보드이되 자음 패턴 검색 전용으로 입력이 제한 또는 매핑되지 않은 것이면, 키들의 조합으로 입력된 모든 모음 문자들의 입력을 금지시키는 것과, 키들의 조합으로 입력된 모든 자음 문자들을 표 6의 실시 예와 같은 대표 문자 매핑표로 매핑함으로써 표 7의 실시 예와 같은 특정한 자음 문자 세트만을 입력 받을 수 있다. 이때 대표 문자로는 일본어 표준 문자표인 50음도에서 임의의 단(段)을 선택하여 사용할 수 있으나, 표 6과 표 7은 일 실시 예로서 hirakana의 あ단을 선택한 경우이다.
대표 언어의 언어-문자 조합이 {Chinese-Hanzi}일 경우, 문자 입력부가 표준 중국어 pinyin 키보드이면, 종래의 pinyin에서 hanzi로의 변환 없이, 각 알파벳 키를 두문자(initial letter) 하나씩으로서 입력 받되, 하나의 알파벳 키만으로 입력할 수 없는 3개의 자음, Zh, Ch, Sh에 대해서는 다음의 관계에 따라 각각 [V], [I], [U]키를 입력 받을 수 있다.
Figure 112014002957912-pat00012
이때 Zh, Ch, Sh 자음들은 각각 [V], [I], [U]키에 임의로 매핑될 수 있으나, 상기 매핑 관계는 일 실시 예로서 관용 double pinyin 키보드에서 해당 키들과 같은 매핑을 가지는 경우를 보여 준다.
대표 언어의 언어-문자 조합이 {Chinese-Hanzi}일 경우, 문자 입력부가 관용 중국어 zhuyin 키보드이되 자음 패턴 검색 전용으로 입력이 제한 또는 매핑되지 않은 것이면, 종래의 zhuyin로부터 hanzi로의 변환 없이, 일 실시 예로서의 표 21에 포함되어 있지 않은 모든 모음 키들의 입력을 금지시키는 것과, 일 실시 예로서의 표 21에 포함되어 있는 모든 자음 및 일부 대표 모음 키에 대해 표에 따라 매핑을 함으로써 표 9의 실시 예와 같은 특정한 자음 문자 세트만을 입력 받을 수 있다.
대표 언어의 언어-문자 조합이 {Russian-Cyrillic}일 경우, 문자 입력부가 {Russian-Cyrillic} 언어-문자군에 속한 키보드이되 자음 패턴 검색 전용으로 입력이 제한 또는 매핑되지 않은 종래의 국가 표준 또는 관용 키보드이면, 모든 모음 키들의 입력을 금지시키는 것과, 필요할 경우 표 12의 실시 예와 같은 대표 문자 매핑표로 매핑함으로써 표 13의 특정한 자음 문자 세트만을 입력 받을 수 있다. 이때 표 12는 일 실시 예로서, 대문자를 대표 문자로 정하고, 우크라이나어에서만 쓰이는 "
Figure 112014002957912-pat00013
"(Ge Upturn) 문자를 "
Figure 112014002957912-pat00014
"(Ge) 문자로 매핑하는 경우이다.
본 발명의 일 실시예에 따른 방법은 문자 입력부를 통하여 입력된 복수개의 자음들을 포함하는 제 1 자음 패턴을 수신하는 단계(S300)를 포함할 수 있다. 문자 입력부는 표음식 키보드(phonetic keyboard) 또는 가상의 키보드 등을 포함할 수 있다. 사용자는 검색하고자 하는 언어에 상응하는 문자 입력부를 통하여 적어도 하나의 검색어을 입력할 수 있다. 적어도 하나의 검색어는 적어도 하나의 자음 문자일 수 있다. 단계 S300에서의 사용자에 의한 복수개의 자음들의 입력은, 복수개의 자음들이 입력되는 순서에 따라 형성되는 소정의 자음 문자열의 수신에 상응할 수 있다. 예를 들어, 사용자가 영문자 "j", "s"의 순서로 자음 문자들을 입력한다면, 사용자 입력에 의하여 수신된 자음 문자열은 "js"이다. 이러한 소정의 자음 문자열은 이하에서 자음 패턴(consonant pattern)으로 지칭될 수 있다. 제 1 자음 패턴은 사용자 입력에 의하여 수신된 순서에 따라 소정의 방향으로 나란히 위치한 복수개의 자음들이 포함된 자음 문자열을 포함할 수 있다. 소정의 방향은 왼쪽에서부터 오른쪽으로 향하는 방향, 오른쪽에서부터 왼쪽으로 향하는 방향, 위에서부터 아래로 향하는 방향 또는 아래에서부터 위로 향하는 방향일 수 있다.
본 발명의 일 실시예에 따라 문자 입력부와 관련된 대표 언어에 기초하여 생성된 검색될 자음 문자열의 DB에서 제 1 자음 패턴과 매칭되는 제 2 자음 패턴을 검색하는 단계(S400)는 문자 입력부와 상응하는 언어에 기초하여 생성된 검색될 자음 문자열의 DB에서 제 1 자음 패턴과 동일하거나 유사한 패턴을 갖는 제 2 자음 패턴을 검색하는 단계를 포함할 수 있다.
본 발명의 일 실시에에 따른 검색된 제 2 자음 패턴을 포함하는 적어도 하나의 자음 문자열이 포함된 검색 결과 목록(search result list)을 생성하는 단계(S500)는 문자 입력부와 상응하는 언어에 기초하여 생성된 검색될 자음 문자열의 DB에서 검색된 제 2 자음 패턴을 포함하는 적어도 하나의 자음 문자열을 추출하고, 추출된 적어도 하나의 자음 문자열을 목록화하여 검색 결과 목록(search result list)을 생성하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 생성된 검색 결과 목록을 소정의 기준에 따라 정렬(sorting)하여 디스플레이하는 단계(S600)는, 검색될 자음 문자열의 DB에서 제 2 자음 패턴이 검색된 순서에 따라 검색된 자음 문자열에 상응하는 원본 문자열이 상위 랭크에 위치하도록 검색 결과 목록을 정렬하여 디스플레이하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 제 2 자음 패턴은 제 1 자음 패턴과 문자 배치 순서는 동일하지만, 검색될 자음 문자열에 포함된 복수개의 자음 문자들 간의 배치 간격에 관계 없이 추출되어 조합된 패턴일 수 있다. 예를 들어, 원본 문자열 "Thomas Smith"에서는 "thmssmth"의 검색될 자음 문자열이 획득될 수 있다. 검색될 자음 문자열 "thmssmth"는 "tm", "tmt", "tmth", "tsmth" 등과 같이 자음 문자들의 배치 간격에 관계없이 추출되어 조합된 제 2 자음 패턴이 획득될 수 있다. 예컨대, 검색어(또는 제 1 자음 패턴)로서 "tm"이 입력된다면, 본 발명의 일 실시예에 따라 제 1 자음 패턴과 동일한 제 2 자음 패턴(예컨대, "tm")을 포함하는 "thmssmth"의 자음 문자열을 갖는 원본 문자열 "Thomas Smith"가 포함된 검색 결과 목록이 생성되어 디스플레이될 수 있다.
도 3은 본 발명의 일 실시예에 따라 원본 문자열 목록으로부터 각각의 대표 언어별로 검색될 자음 문자열의 DB를 생성하는 방법의 흐름도를 도시한다.
본 발명의 일 실시예에 따라 각각의 대표 언어별로 검색될 자음 문자열의 DB를 생성하는 단계(S200)는, 미리 저장된 원본 문자열 목록에서 원본 문자열(original string)들을 하나씩 순차적으로 독출하는 단계(S210), 독출된 원본 문자열에 포함된 각각의 문자를 각각의 대표 언어별로 설정된 대표 문자 매핑표(mapping table)에 기초하여 대표 문자(representative character)로 변환하는 단계(S200), 변환된 문자열에서 각각의 대표 언어별로 설정된 제 1 문자 세트(character set)에 포함된 문자 이외의 문자를 제거함으로써 자음 문자열(consonant string)을 생성하는 단계(S230) 및 생성된 자음 문자열을 검색될 자음 문자열의 DB에 추가하는 단계(S240)를 포함할 수 있다. 또한, 순차적으로 독출하는 단계(S210), 대표 문자(representative character)로 변환하는 단계(S220), 자음 문자열(consonant string)을 생성하는 단계(S230), 및 DB에 추가하는 단계(S240)는 원본 문자열 목록에 포함된 모든 원본 문자열에 대하여 각각 수행될 수 있다. 본 발명의 일 실시예에 따른 제 1 문자 세트는 설명의 편의상 이하에서 "자음 문자 세트"로 지칭될 수도 있다.
본 발명의 일 실시예에 따르면, 다국어 통합 자음 패턴 검색 장치와 연결되는 저장 장치(미도시) 등에 미리 저장된 원본 문자열 목록으로부터 이러한 원본 문자열 목록에 포함된 모든 원본 문자열들을 하나씩 순차적으로 읽어 들이는 단계(S210), 검색될 자음 문자열의 DB의 생성에 사용될 대표 언어에 대하여 미리 정의된 대표 문자 매핑표에 따라, 해당 원본 문자열에 포함된 각 문자를 매핑표에 따른 대표 문자로 매핑하여 변환하는 단계(S220), 대표 언어별로 각각 상이하게 미리 정의된 자음 문자 세트에 속하지 않은 문자들을 변환된 문자열에서 모두 제거하여 자음 문자열을 생성하는 단계(S230), 생성된 자음 문자열을 검색될 자음 문자열의 DB에 추가하는 단계(S240)에 의하여 각각의 대표 언어별로 검색될 자음 문자열의 DB가 생성될 수 있다. 또한, S210, S220, S230 및 S240은 원본 문자열 목록의 끝에 도달할 때까지 반복하여 수행될 수 있다.
본 발명의 일 실시예에 따른 단계 S230 에서, 제 1 문자 세트(또는 자음 문자 세트)는 반드시 자음만일 필요는 없으며 임의의 문자들의 세트일 수 있다. 예를 들어, 자음 문자 세트는 대표 언어의 특성에 따라 초성 자음 및 종성 자음들의 문자 세트, 초성 자음들만의 문자 세트, 또는 두문자들의 문자 세트 등을 포함할 수 있다. 이와 같은 확장성과 범용성에 따라 자음 문자 세트는 임의의 표음 문자 기반의 언어와 해당 키보드 및 입력 방식에 공통으로 통합 적용될 수 있다. 다시 말해서, 본 발명의 일 실시예에 따른 제 1 문자 세트는 초성 자음(initial consonant)과 종성 자음(final consonant) 중 적어도 하나를 포함하는 문자 세트 또는 두문자(initial letter)를 포함하는 문자 세트를 포함할 수 있다.
본 발명의 일 실시예에 따른 순차 추가 알고리즘에 의한 DB 생성은 다음과 같다.
Figure 112014002957912-pat00015
단계 S220 및 단계 S230 에서, 대표 언어의 언어-스크립트 조합이 {한국어-한글(Korean-Hangul)}일 경우에 대하여, 하기 표 2와 같은 대표 문자 매핑표 및 표 3과 같은 자음 문자 세트가 미리 정의될 수 있다.
Figure 112014002957912-pat00016
Figure 112014002957912-pat00017
표 3에서 자음 문자 세트에 속한 문자들이 모두 초성으로 통일될 수 있도록 하기 위하여, 표 2의 매핑을 포함하여 모든 종성 자음들은 초성 자음으로 매핑될 수 있다. 또한, 필요에 따라 표 2에서 종성 복자음은 복자음을 구성하는 두 개의 자음 중에서 임의로 선택하여 매핑할 수 있으며, 아예 종성 복자음을 매핑하지 않고 제거할 수도 있다. 또한, 필요에 따라 표 3에서 무음인 "ㅇ"를 제거할 수도 있다.
단계 S220 및 단계 S230 에서, 대표 언어의 언어-스크립트 조합이 {English-Latin}일 경우에 대하여, 하기 표 4과 같이 "Unicode Normalization Form D" 표준의 정규화에 근거한 대표 문자 매핑표 및 표 5와 같은 자음 문자 세트가 미리 정의될 수 있다.
Figure 112014002957912-pat00018
Figure 112014002957912-pat00019
단계 S220 및 단계 S230 에서, 대표 언어의 언어-스크립트 조합이 {Japanese-Hirakana}일 경우에 대하여, 표 6와 같은 대표 문자 매핑표 및 표 7과 같은 자음 문자 세트가 미리 정의될 수 있다.
Figure 112014002957912-pat00020
Figure 112014002957912-pat00021
각 대표 문자는 hirakana 및 katakana에서 "아"(あ/ア), "이"(い/イ), "우"(う/ウ), "에"(え/エ) 또는 "오"(お/オ) 발음의 모음 및 대표 문자와 동일한 초성 또는 종성을 가지는 모든 문자들을 대표할 수 있다.
대표 문자로는 일본어 표준 문자표인 50음도에서 임의의 단(段)을 선택하여 사용할 수 있으나, 표6과 표7은 일 실시예로서 hirakana의 あ단을 선택한 경우를 보여 준다. 이 경우, 예컨대 は 문자는 hirakana は, ひ, ふ, へ, ほ와 katakana ハ, ヒ, フ, ヘ, ホ 등의 10 문자를 대표하고, ん 문자는 ん, ン 등의 2문자를 대표할 수 있다. 또한, 필요에 따라 초성 자음 검색만 할 경우 표 6과 표 7에서 종성 자음인 "ん"를 제거할 수도 있다.
단계 S220 및 단계 S230 에서, 대표 언어의 언어-스크립트 조합이 {Chinese-Hanzi}일 경우에 대하여, 표 8과 같은 대표 문자 매핑표 및 표 9와 같은 자음 문자 세트가 미리 정의될 수 있다.
Figure 112014002957912-pat00022
Figure 112014002957912-pat00023
여기서, 중국어는 자음과 모음의 조합이 아닌 초성과 종성의 조합이라는 점과 한자를 변환했을 때 초성 없이 종성만으로 된 한자의 검색이 필수적인 점을 고려하고, 최소한의 키 입력으로 검색할 수 있도록 하기 위하여, {Chinese-Hanzi} 조합의 대표 언어에 대해서는 각 hanzi 문자의 제1발음을 pinyin 문자열로 변환한 후 해당 pinyin 문자열의 두문자, 즉 첫 pinyin 문자만을 검색하는 두문자 검색을 실시할 수 있다.
또한, 두문자가 될 수 있는 pinyin 문자는 표 10와 같이 자음 21개와 모음 5개 등 총 26개인데, 그 중에서 "Zh", "Ch", "Sh"의 3개 자음은 1개의 음소이나 영문자 2개로 표기될 수 있다. 이 경우 그대로 두문자를 선택하면, 예를 들어 두문자 "Z"로는 음소 "Zh"와 "Z"를 구분할 수 없는 문제가 생긴다. 따라서, 이를 방지하기 위하여 표 11과 같이, pinyin 표준에 의하면 각 음절의 두문자가 결코 될 수 없는 "V", "I", "U" 문자에 "Zh", "Ch", "Sh"의 3개 자음을 각각 매핑할 수 있다. 이때 "Zh", "Ch", "Sh" 자음은 "V", "I", "U" 문자에 임의로 매핑시킬 수 있으나, 일 실시 예로서 관용(conventional) double pinyin 키보드와 동일한 매핑을 사용할 수 있다.
Figure 112014002957912-pat00024
Figure 112014002957912-pat00025
전술한 바와 같이, hanzi의 pinyin 두문자 변환 및 표 11의 매핑을 사용하여 모든 hanzi 문자에 대하여 예외 없이 hanzi의 1문자 당 영문 알파벳 1문자씩 일대일로 매핑시킴으로써, {Chinese-Hanzi} 대표 언어도 다른 모든 대표 언어와 마찬가지로 1자음 당 1문자를 전제로 하는 통합 검색이 가능해질 수 있다. 상기 표 8과 표 9는 일 실시 예로서 pinyin 대문자를 대표 문자로 정한 경우를 보여 주며, 필요에 따라 소문자를 대표 문자로 정할 수도 있다.
단계 S220 및 단계 S230 에서, 대표 언어의 언어-스크립트 조합이 {Russian-Cyrillic}일 경우에 대하여, 표 12와 같은 대표 문자 매핑표 및 표 13과 같은 자음 문자 세트가 미리 정의될 수 있다.
Figure 112014002957912-pat00026
Figure 112014002957912-pat00027
표 12는 일 실시 예로서, 대문자를 대표 문자로 정하고, 우크라이나어에서만 쓰이면서 키보드에 배치하기 곤란한 "
Figure 112014002957912-pat00028
"(Ge Upturn) 문자를 "
Figure 112014002957912-pat00029
"(Ge) 문자로 매핑하는 경우를 보여 준다. 또한, 표 13도 일 실시 예로서 러시아어의 모든 자음을 포함하되 우크라이나어의 "
Figure 112014002957912-pat00030
" 문자는 제외되어 있다.
한편, 본 발명의 일 실시예에 따라 생성된 자음 문자열은 부가적인 정렬 없이 원본 문자열 목록과 상응하게 검색될 자음 문자열의 DB에 순차적으로 추가될 수 있다.
예를 들어, 단계 S240에서 사용될 수 있는 가장 단순한 알고리즘(또는 방식)은 별도의 색인이 없어 DB 상에서의 저장 공간을 가장 적게 차지하지만, 검색 속도가 가장 느릴 수 있는 순차 추가(sequential addition) 알고리즘일 수 있다. 순차 추가 방식은 생성된 자음 문자열들을 특별한 정렬 없이 DB에 순차적으로 단순 추가하는 방식을 지칭할 수 있다. 본 발명의 일 실시에에 따르면, 순차 추가 방식에 따라 단순히 DB에 추가만 할 뿐이므로 특정한 언어나 문자에 종속적이지 않고 완전히 독립적이기 때문에, 이러한 순차 추가 방식은 임의의 표음 문자(phonogram) 기반의 언어에 공통으로 통합 적용될 수 있다.
또한 본 발명의 일 실시예에 따라 데이터 베이스(DB)를 초기화하고, 검색될 원본 문자열 목록을 생성하는 단계(S100)는, 최상위 색인 테이블(root index table)을 검색될 자음 문자열의 DB에 생성하는 단계 및 n개의 자음 문자를 포함하는 검색될 자음 문자열에서 m개의 자음 문자를 추출할 때, 추출될 자음 개수(m)의 최소값(Mmin)이 2 이상이라면, 대표 언어에 대응되는 제 1 문자 세트에 속한 전체 문자들에 대해, 적어도 1개 이상이고 (Mmin - 1)개 이하의 모든 자음 패턴을 각각 키로 가지는 미리결정된 색인 테이블(index table)들을 검색될 자음 문자열의 DB에서 생성하는 단계를 포함할 수 있다.
또한, 검색될 자음 문자열의 DB에 추가하는 단계(S240)는, n개의 자음 문자를 포함하는 상기 검색될 자음 문자열에서 m개의 자음 문자를 추출할 때, 추출될 자음 개수(m)가 최소값(Mmin) 이상이고 최대값(Mmax) 이하인 모든 제 2 자음 패턴의 조합을 추출하는 단계, 추출된 각각의 제 2 자음 패턴의 문자열을 색인 키(index key)로 가지는 모든 색인 테이블들에 제 2 자음 패턴을 포함하는 자음 문자열을 가리키는 포인터(pointer)를 추가(add)하는 단계를 포함할 수 있다.
최소값(Mmin)은 검색 시 최소 입력 가능 자음의 개수로서, 길이가 이 개수 미만인 자음 문자열은 검색되지 않을 수 있다. 또한, 최소값(Mmin)은 1 이상의 정수 값이며, 미리 설정해 놓을 수 있다.
또한, 최대값(Mmax)은 검색 시 최대 검색 가능 자음의 개수로서, 검색할 자음 패턴에서 이 개수를 초과하는 자음은 무시될 수 있다. 또한, 최대값(Mmax)은 최소값(Mmin)큰 값이어야 하며, 미리 설정해 놓을 수 있다.
본 발명의 일 실시예로서, 전술한 순차 추가 방식에 비해 알고리즘이 비교적 복잡하지만 검색 속도가 빠른 실시 예로서, 색인화 추가 알고리즘(또는 방식)이 제공될 수 있다. 색인화 추가 방식은, 특정 자음 패턴을 색인 키로 가지고, 하나의 상위 색인 테이블과 다수의 하위 색인 테이블들이 동적으로 연결될 수 있고, 다수의 자음 문자열 포인터들이 동적으로 추가될 수 있는 색인 테이블의 구조가 정의되어 있을 때, 임의의 길이(문자 개수) n의 자음 문자열에서 길이 m이 최소 Mmin개 이상이고 최대 Mmax개 이하인 모든 자음 패턴들의 조합을 추출하여 동적으로 색인하는 방식일 수 있다.
본 발명의 일 실시예에 따른 데이터 베이스(DB)를 초기화하고, 검색될 원본 문자열 목록을 생성하는 단계(S100)는 자음이 존재하지 않는 경우에 대응하는 빈 최상위 색인 테이블을 DB에 생성하는 단계, Mmin이 2 이상일 경우에, 대표 언어에 대응하는 자음 문자 세트에 속한 전체 문자들에 대해, 1개 이상, (Mmin - 1)개 이하의 모든 자음 패턴을 각각 키로 가지는 미리 결정된 색인 테이블들을 DB에 생성하는 단계 및 생성된 색인 테이블들을 연결시키는 단계를 포함할 수 있다.
또한, 단계 S240는 n 길이의 자음 문자열(예컨대, n개의 자음 문자를 포함하는 검색될 자음 문자열)에서 m개의 자음 문자를 추출할 때, 추출될 자음 개수(m)가 최소값(Mmin) 이상이고 최대값(Mmax) 이하인 모든 자음 패턴의 조합을 추출하는 단계 및 추출된 각 자음 패턴의 문자열을 색인 키로 가지는 모든 색인 테이블들에 추출된 자음 패턴을 포함하는 자음 문자열을 가리키는 포인터를 추가하는 단계를 포함할 수 있다.
또한, 전술한 포인터를 추가하는 단계는 추출된 제 2 자음 패턴에 상응하는 색인 테이블(index table)이 미생성되었다면, 추출된 제 2 자음 패턴에 기초하여 미생성된 색인 테이블을 동적(dynamically)으로 생성하는 단계 및 하위 색인 테이블(sub-index table)인 전술한 동적으로 생성된 색인 테이블을 상위 색인 테이블(super index table)에 연결(link)하는 단계를 더 포함할 수 있다. 상위 색인 테이블은 하위 색인 테이블의 색인 키에서 마지막에 위치한 자음 문자가 제외된 패턴의 색인 키를 가지는 색인 테이블일 수 있다.
다시 말해서, 본 발명의 일 실시에에 따르면, 전술한 포인터를 추가하는 단계는 추출된 특정 자음 패턴을 색인 키로 가지는 색인 테이블이 이미 생성되어 있지 않을 경우에, 해당 테이블을 동적으로 생성하고, 하위 색인 테이블인 해당 테이블의 키에서 마지막 문자가 제외된 패턴의 색인 키를 가지는 상위 색인 테이블에 연결하는 단계를 더 포함할 수 있다. 인덱싱 및 데이터 추가에 사용되는 각 데이터 요소들(예컨대, 검색될 각 자음 문자열, 추출된 자음 패턴들, 각 테이블의 색인 키 등)이 특정한 언어나 문자에 종속적이지 않고 완전히 독립적이기 때문에, 전술한 색인화 추가 방법은 임의의 표음 문자 기반의 언어에 공통으로 통합적으로 적용될 수 있다.
본 발명의 일 실시예에 따라 제 2 자음 패턴의 조합을 추출하는 단계에서, n개의 자음 문자를 포함하는 검색될 자음 문자열에서 m개의 자음 문자를 추출할 때, 상호 중복됨이 없이 추출될 모든 자음 패턴들의 최대값은,
Figure 112014002957912-pat00031
로 결정될 수 있다.
Mmax는 차후에 자음 검색을 할 때 검색할 자음 문자열의 최대 길이, 즉 최대 검색 가능한 자음의 개수와 동일하다. 검색할 자음 문자열의 길이에 제한을 두지 않으려면 Mmax값을 충분히 큰 값(예컨대 정수의 최대값)으로 설정하면 된다. 일 실시 예로서 Mmin을 2, Mmax를 8로 설정한 경우에, 검색될 자음 문자열의 길이에 따른 자음 패턴의 경우의 수의 최대값은 다음과 같다.
Figure 112014002957912-pat00032
또한, 본 발명의 일 실시예에 따라 문자 입력부를 통하여 입력된 복수개의 자음들을 포함하는 제 1 자음 패턴을 수신하는 단계(S300)는, 문자 입력부를 통한 모든 모음(vowel) 키들의 입력을 제한하는 단계를 더 포함할 수 있다. 이에 의하여, 문자 입력부를 통하여 모음 문자가 입력되는 것을 방지할 수 있다.
도 4는 본 발명의 일 실시예에 따라 생성된 복수개의 색인 테이블들의 연결성을 이용한 데이터 추가 및 검색 방법을 도시한다.
전술한 바와 같이, 본 발명의 일 실시예에 따른 색인화 추가(indexed addition) 알고리즘은 DB를 생성하기 위한 다른 알고리즘들과 비교하여 알고리즘이 간단하지는 않고, 검색 속도가 이론상 가장 빠르며, 소정의 DB 생성 시간이 소요되고, DB 상에서의 저장 공간(storage)도 적지 않게 차지하며, 특정한 언어나 문자에 종속적이지 않고 완전히 독립적이어서 임의의 표음 문자 기반의 언어에 공통으로 통합적으로 적용될 수 있다.
이러한 색인화 추가 알고리즘의 일 실시 예로서 자음 패턴의 길이의 최소값 Mmin이 2이고 최대값 Mmax가 8인 경우를 예로 들 수 있다. 여기서, Mmin이 1인 경우는 스크롤 없이 검색 결과를 찾을 가능성이 거의 없고, 자음 패턴을 8문자 이상 입력하고서도 검색 결과를 스크롤 없이 찾지 못할 경우가 거의 없기 때문에, 2 내지 8 문자의 자음 패턴 길이는 거의 대부분의 데이터 검색을 위한 적절한 범위라 할 수 있다. 또한, 한글 성명의 경우 초성 및 종성 자음의 최대 개수가 8개라는 점을 고려한다면, 적절한 자음 패턴의 길이는 2 내지 8이 될 수 있다.
또한, 특정 자음 패턴을 색인 키로 가지고, 하나의 상위 색인 테이블과 다수의 하위 색인 테이블들이 동적으로 연결될 수 있고, 다수의 자음 문자열 포인터들이 동적으로 추가될 수 있는 색인 테이블의 구조에 대한 일 실시 예는 하기 표 14와 같다.
Figure 112014002957912-pat00033
본 발명의 일 실시예로서 자음 문자열을 가리키는 포인터를 필드로 가지는 색인 테이블의 구조를 정의하였으나, 실제로는 자음 문자열 필드를 포함하는 임의의 테이블을 가리키도록 할 수 있다. 따라서, 하기 표 15에서는 이름 정보 테이블(name information table)을 가리키는 예를 들었다.
Figure 112014002957912-pat00034
예로써, 전화번호부의 경우 간단한 이름 정보 테이블은 도 4에 도시된 바와 같이 정의될 수 있다. 참고로 다수의 색인 레코드가 하나의 이름 정보 레코드에 연결될 수 있으므로, 특정한 성명에 대하여 이름 정보 테이블로서 생성된 레코드(record)는 하나의 DB 내에서 유일하도록 DB를 설계함으로써, 소요되는 DB의 저장 공간 크기를 최적화시킬 수 있다.
한편, 색인 테이블들간의 연결 구도를 직관적으로 나타내기 위하여 표 14와 표 15에서 각 포인터들을 화살표로, 색인 테이블을 색인 키의 상자(box)로 표시하고, 이름 정보 테이블은 포인터를 제외한 항목들의 상자로 표시하기로 한다.
설명의 편의상 색인 테이블의 수가 너무 많아지지 않도록 성명으로 짧게 "Smith"를 쓰기로 한다. 도 4에서는 성명이 "Smith"인 이름 정보 테이블이 준비되는 단계, {English-Latin} 언어-스크립트군을 위한 DB가 초기화되는 단계, 색인화 추가 알고리즘으로 "Smith"의 테이블을 최초로 추가하는 단계에 대한 일 실시예가 도시된다.
본 발명의 일 실시예에 따른 이름 정보 테이블이 준비되는 단계는 도 4에서 전체 자음 문자열이 "smth"인 이름 정보 테이블이 준비되어 있음을 의미한다. 또한, 언어-스크립트군을 위한 DB가 초기화되는 단계는, 전술한 최상위 색인 테이블(root index table)을 검색될 자음 문자열의 DB에 생성하는 단계 및 n개의 자음 문자를 포함하는 검색될 자음 문자열에서 m개의 자음 문자를 추출할 때, 추출될 자음 개수(m)의 최소값(Mmin)이 2 이상이라면, 대표 언어에 대응되는 제 1 문자 세트에 속한 전체 문자들에 대해, 적어도 1개 이상이고 (Mmin - 1)개 이하의 모든 자음 패턴을 각각 키로 가지는 미리결정된 색인 테이블(index table)들을 검색될 자음 문자열의 DB에서 생성하는 단계 및 미리결정된 색인 테이블들을 상호 연결하는 단계에 상응한다. 다시 말해서, 언어-스크립트군을 위한 DB가 초기화되는 단계에서는 비어 있는 최상위 색인 테이블을 생성한 후에, 표 5에 보인 {English-Latin} 조합의 자음 문자 세트 "bcdfghjklmnpqrstvwxz"의 각 문자마다 비어 있는 미리결정된 색인 테이블들을 미리 생성하고, 각 미리결정된 색인 테이블과 최상위 테이블을 상호 연결할 수 있다. 또한, 언어-스크립트군을 위한 DB가 초기화되는 단계에서는 모든 테이블들에 아무런 이름 정보 테이블도 아직 연결되어 있지 않다. 여기서 "상호 연결(mutual link)"이라 함은 연결할 두 테이블의 필드인 테이블 포인터가 각기 상대방 테이블을 가리키도록 설정하는 것을 의미할 수 있고, 다른 말로 "양방향 관계(bidirectional relationship)"라고도 지칭될 수 있다. 예컨대, 도 4에서 [Root]와 [s]가 상호 연결하는 경우, [Root]의 하위 색인 테이블 배열에 [s]를 가리키는 포인터를 추가하고, [s]의 상위 색인 테이블이 [Root]를 가리키도록 설정한다는 의미이다.
또한, 색인화 추가 알고리즘으로 "Smith"의 테이블을 최초로 추가하는 단계는 초기화된 DB에 최초로 "Smith"의 이름 정보 테이블을 색인하여 연결시키는 과정이며, 전술한 n개의 자음 문자를 포함하는 검색될 자음 문자열에서 m개의 자음 문자를 추출할 때, 추출될 자음 개수(m)가 최소값(Mmin) 이상이고 최대값(Mmax) 이하인 모든 제 2 자음 패턴의 조합을 추출하는 단계, 추출된 각각의 제 2 자음 패턴의 문자열을 색인 키(index key)로 가지는 모든 색인 테이블들에 제 2 자음 패턴을 포함하는 자음 문자열을 가리키는 포인터(pointer)를 추가(add)하는 단계 및 추출된 제 2 자음 패턴에 상응하는 색인 테이블(index table)이 미생성되었다면, 추출된 제 2 자음 패턴에 기초하여 미생성된 색인 테이블을 동적(dynamically)으로 생성하는 단계 및 하위 색인 테이블(sub-index table)인 동적으로 생성된 색인 테이블을 상위 색인 테이블(super index table)에 연결(link)하는 단계에 상응할 수 있다.
예를 들어, 길이가 4인 자음 문자열 "smth"에서 길이가 2 이상, 8 이하인 모든 자음 패턴들을 추출하면 하기 표 16과 같이 11개의 조합이 구해질 수 있다.
Figure 112014002957912-pat00035
전술한 예에서, 색인 테이블이 아무 것도 생성되어 있지 않기 때문에 미생성된 색인 테이블을 동적으로 생성하는 단계 및 하위 색인 테이블인 동적으로 생성된 색인 테이블을 상위 색인 테이블에 연결하는 단계가 먼저 실시되어야 한다. 따라서, 도 4에 도시된 바와 같이 총 11개의 색인 테이블을 DB에 동적으로 생성하여 추가하고, 각 색인 테이블을 해당 상위 색인 테이블에 상호 연결한다. 여기서 특정 색인 테이블의 상위 색인 테이블은 해당 색인 테이블의 색인 키에서 마지막 문자가 제외된 패턴의 색인 키를 가지는 색인 테이블로 정의될 수 있다. 그러므로, 예컨대 [smth]의 상위 색인 테이블 포인터가 마지막 문자인 "h"가 제외된 색인 키를 가지는 [smt]를 가리키도록 하고, [smt]의 하위 색인 테이블 배열에 [smth]를 가리키는 포인터를 추가하면 상호 연결된다.
전술한 예에서, 자음 문자열 "smth"의 색인에 필요한 11개의 모든 색인 테이블들이 존재하므로, 마지막으로 표 16에 해당하는 각 색인 테이블과 이름 정보 테이블을 상호 연결한다. 예컨대, [smth]의 이름 정보 테이블 배열에 "Smith"의 테이블을 가리키는 포인터를 추가하고, "Smith"의 테이블의 색인 테이블 배열에 [smth]를 가리키는 포인터를 추가하면 상호 연결된다.
본 발명의 일 실시예로서, "혼용 추가(hybrid addition)" 알고리즘이 사용될 수 있다. 혼용 추가 알고리즘은 순차 추가 및 색인화 추가 알고리즘을 혼용한 것으로서 DB를 생성하기 위한 다른 알고리즘들과 비교하여 두 알고리즘이 혼용되므로 전체적인 알고리즘이 가장 복잡하지만, 검색 속도가 사용자가 만족할 만큼 상당히 빠르고, DB 생성 시간이 색인화 추가 알고리즘보다 상대적으로 짧고, DB의 저장 공간을 색인화 추가 알고리즘보다 훨씬 작게 차지할 수 있다. 또한, 특정한 언어나 문자에 종속적이지 않고 완전히 독립적이어서 임의의 표음 문자 기반의 언어에 공통으로 통합적으로 적용될 수 있다.
혼용 추가 알고리즘은 여러 가지 방법으로 구현할 수 있겠으나, 본 발명의 일 실시예에 따르면 다음의 단계로 수행될 수 있다:
(a) 각 색인 테이블에서 하위 색인 테이블을 생성하지 않게 하는 이름 정보 테이블의 최대 개수로 정의되는 어떤 수 NT를 미리 정해 놓는 단계, (b) 특정 색인 테이블에 연결된 이름 정보 테이블의 개수가 NT를 넘지 않으면, 하위 색인 테이블을 생성하지 않는 단계, (c) 특정 색인 테이블에 연결된 이름 정보 테이블의 개수가 NT를 넘게 되면, 그 시점에 해당 색인 테이블에 연결되어 있는 모든 이름 정보 테이블에 대응하는 하위 색인 테이블들을 재귀적으로(recursively) 생성하는 단계. 다만, 생성되는 각 하위 색인 테이블의 하위 색인 테이블들의 생성 여부는 상기 (b) 단계의 조건에 따른다.
이와 같은 혼용 추가 알고리즘을 실시하면, 이름 정보가 NT개를 넘지 않는 색인 테이블의 경우 그 하위의 테이블을 전혀 생성하지 않아도 되기 때문에, DB 생성 시간 단축 및 DB 저장 공간의 절감이라는 두 가지 큰 효과를 볼 수 있다. 이러한 효과가 가능한 이유는 하기 표 17에 보인 바와 같이 DB 저장 공간 크기 증가율(DB 추가 시간 증가율에 비례)의 차이가 색인화 알고리즘과 혼용 알고리즘 간에 대단히 크기 때문이다. NT값은 DB 생성을 위한 혼용 추가 알고리즘에서 순차 추가와 색인화 추가를 결정하기 위한 경계값(threshold)일 수 있다. 특정 색인 테이블(index table)에 추가되는 데이터의 개수가 이 값 이하이면 순차 추가를 하고, 이 값 이상이면 색인화 추가를 수행할 수 있다.
Figure 112014002957912-pat00036
여기서 최적화의 관점에서 중요한 설정값은 NT인데, NT값은 NT개의 이름 정보 테이블을 전체 검색했을 때 걸리는 시간이 사용자가 느려서 불편하다고 느낄 만큼의 시간보다 짧으면 된다. 경험적으로 대략 0.1~0.5초 이내로 전체 검색이 가능하게 NT값을 설정해 주면, 부분적으로 전체 검색을 실시하는 혼용 추가 알고리즘을 썼음에도 불구하고, 사용자는 완전한 색인화 추가 알고리즘을 쓴 것과 거의 같은 정도의 검색 속도라고 느낄 수 있게 된다.
본 발명의 일 실시예로서 제공된 DB 추가 알고리즘에 따른 성능 비교는 다음과 같다.
Figure 112014002957912-pat00037
도 5는 본 발명의 일 실시예에 따른 자음 패턴 비교 알고리즘을 나타낸 순서도이다.
본 발명의 일 실시예에 따른 문자 입력부와 관련된 대표 언어로 생성된 검색될 자음 문자열의 DB에서 제 1 자음 패턴과 매칭되는 제 2 자음 패턴을 검색하는 단계는, 문자 입력부와 관련된 대표 언어로 생성된 검색될 자음 문자열의 DB에 포함된 모든 자음 문자열들을 하나씩 순차적으로 독출하는 단계 및 제 1 자음 패턴과 독출된 자음 문자열을 비교함으로써 제 2 자음 패턴을 검색하는 단계를 포함할 수 있다.
검색된 제 2 자음 패턴을 포함하는 적어도 하나의 자음 문자열이 포함된 검색 결과 목록(search result list)을 생성하는 단계는, 검색될 자음 문자열의 DB에 포함된 모든 자음 문자열에 대한 검색된 제 2 자음 패턴이 포함된 적어도 하나의 자음 문자열을 추출하여 목록화함으로써 검색 결과 목록(search result list)을 생성하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따라 순차 추가 방법으로 DB를 생성했을 경우에, 임의의 위치의 자음 패턴을 DB에서 검색하여 검색 결과 목록을 구하기 위하여 전체 검색(full search)을 수행할 수 있다.
예를 들어, 사용자가 현재 사용 중인 키보드(또는 활성화된 키보드)에 대응하는 대표 언어에 대응하는 DB에 저장되어 있는 모든 자음 문자열들을 하나씩 순차적으로 읽어 들이고, DB에서 읽어 들인 자음 문자열에서 검색할 자음 패턴을 비교하여 찾고, 찾을 경우 검색 결과 목록(search result list)에 검색된 자음 문자열을 추가하며, DB에서 검색될 마지막 자음 문자열에 도달할 때까지 전술한 순차적 독출, 패턴 비교 및 검색된 자음 문자열의 추가를 반복할 수 있다.
본 발명의 일 실시예에 따른 자음 패턴 비교 알고리즘의 일 실시예는 도 5에 도시된 바와 같다.
임시 문자 변수 C1, C2와 정수 루프 변수인 i, j를 초기화한다. 초기화는 C1, C2, i, j를 모두 제로로 설정하는 과정을 포함할 수 있다.
단계 S10에서, i가 검색할 자음 패턴의 길이(len_p)보다 작고, j가 검색될 자음 문자열의 길이(len_s)보다 작은지 여부를 결정한다. i가 검색할 자음 패턴의 길이(len_p)보다 작고, j가 검색될 자음 문자열의 길이(len_s)보다 작다면, 단계 S20으로 진행한다. 이와 반대의 경우에는 단계 S60으로 진행한다.
단계 S20에서, C1에 검색할 자음 패턴 문자열의 i번째 문자를 대입하고, i는 1만큼 증가시킨다. 여기서, 0번째 문자는 문자열의 첫 번째 문자일 수 있다.
단계 S30에서, C2에 검색될 자음 문자열의 j번째 문자를 대입하고, j는 1만큼 증가시킨다. 여기서, 0번째 문자는 문자열의 첫 번째 문자일 수 있다.
단계 S40에서, C2와 C1이 동일하지 않고, j가 len_s보다 작은지 여부를 결정한다. C2와 C1이 동일하지 않고, j가 len_s보다 작다면, 단계 S30을 반복한다. 이와 반대의 경우에는 단계 S50으로 진행한다.
단계 S50에서, C2와 C1이 상이한지 여부를 결정한다. C2와 C1이 상이하지 않다면 단계 S10을 반복한다. 이와 반대의 경우에는 단계 S60으로 진행한다.
단계 S60에서, C2와 C1이 동일하고, i가 len_p보다 크거나 같은 여부를 결정한다. C2와 C1이 동일하고, i가 len_p보다 크거나 같다면, 동일한 패턴이 검색된 것으로 결정한다. 이와 반대의 경우에는 동일한 패턴이 발견되지 않은 것으로 결정한다.
도 6은 본 발명의 일 실시예에 따른 복수개의 색인 테이블들을 이용하여 데이터를 색인화 검색하기 위한 알고리즘을 나타낸 순서도이다.
문자 입력부와 관련된 대표 언어로 생성된 상기 검색될 자음 문자열의 DB에서 상기 제 1 자음 패턴과 매칭되는 제 2 자음 패턴을 검색하는 단계는, 최상위 색인 테이블을 현재 색인 테이블(current index table)로서 참조하고 루프 변수 k를 0으로 설정하는 단계, 현재 색인 테이블의 색인 키와 제 1 자음 패턴을 비교하는 단계, 현재 색인 테이블의 색인 키와 제 1 자음 패턴이 불일치한다면, 현재 색인 테이블에 연결되어 있는 적어도 하나의 하위 색인 테이블들의 색인 키의 마지막에 위치한 문자인 k번째 문자와 제 1 자음 패턴의 k번째 문자를 비교함으로써 일치하는 하위 색인 테이블을 검색하여, 검색된 하위 색인 테이블을 현재 색인 테이블로서 참조하고 루프 변수 k를 1만큼 증가시킨 후, 현재 색인 테이블의 색인 키와 제 1 자음 패턴을 재비교하는 단계 및 현재 색인 테이블의 색인 키와 제 1 자음 패턴이 일치한다면, 검색 결과 색인 테이블로서 현재 색인 테이블을 지정하는 단계를 포함할 수 있다.
또한, 검색 결과 목록(search result list)을 생성하는 단계는, 비교 또는 재비교 시에 현재 색인 테이블의 색인 키와 제 1 자음 패턴이 일치한다면, 검색 결과 색인 테이블이 가리키는(point) 적어도 하나의 자음 문자열을 검색 결과 목록으로서 생성하고, 제 1 자음 패턴과 일치하는 현재 색인 테이블의 색인 키가 발견되지 않는다면, 검색 결과가 없음을 나타내는 검색 결과 목록을 생성하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따라 색인화 추가 방법으로 DB를 생성했을 경우에, 임의의 위치의 자음 패턴을 DB에서 검색하여 검색 결과 목록을 구하기 위하여 다음과 같은 색인화 검색(indexed search)이 수행될 수 있다.
단계 S1에서, 초기화 단계로서, 현재 사용 중인 키보드에 대응하는 대표 언어에 대응하는 DB에서 최상위 색인 테이블을 현재 색인 테이블(current index table)로서 참조하고 루프 변수 k를 0으로 설정할 수 있다. i 또는 j와 관련하여 전술한 것과 유사하게, 0번째 문자는 첫 번째 문자를 지칭한다.
단계 S2에서, 색인 추적 단계로서, 현재 색인 테이블의 색인 키(index key)와 검색하는 자음 패턴을 비교할 수 있다. 현재 색인 테이블의 색인 키와 검색하는 자음 패턴이 동일하다면, 검색 결과 색인 테이블로 현재 색인 테이블을 지정하고 단계 S3로 진행한다. 이와 반대의 경우에는 단계 S4로 진행한다.
단계 S3에서, 검색 결과 색인 테이블을 찾은 경우, 해당 테이블(예컨대, 현재 색인 테이블)이 가리키는 적어도 하나의 자음 문자열들을 검색 결과 목록(search result list)으로서 생성할 수 있다.
단계 S4에서, 현재 색인 테이블에 연결되어 있는 하위 색인 테이블들 중에서 색인 키 문자열의 마지막 문자인 k번째 문자와 자음 패턴의 k번째 문자를 비교할 수 있다. 다시 말해서, 하위 색인 테이블들의 색인 키 문자열의 k번째 문자와 검색할 자음 패턴의 k번째 문자가 동일한지 비교하여, 동일하다면 단계 S5로 진행한다. 이와 반대의 경우에는 단계 S6로 진행한다.
단계 S5에서, 일치하는 하위 색인 테이블을 찾은 경우, 해당 하위 색인 테이블을 현재 색인 테이블로서 참조하고 k를 1만큼 증가시킨 후에 색인 추적 루프를 단계 S2부터 반복한다. 이와 반대의 경우에는 단계 S6로 진행한다.
단계 S6에서는 검색 결과가 없음을 나타낼 수 있다.
필요에 따라 DB 용량을 좀 더 사용해도 된다면, 상기 단계 S4에서 하위 색인 테이블들의 색인 키들을 반복적으로 비교하는 대신, k번째 문자의 순서값을 첨자로 하는 배열(array)이 하위 색인 테이블들을 참조하도록 하면, 배열로 찾고자 하는 하위 색인 테이블을 한 번에 직접 참조할 수 있으므로 단계 S4의 반복을 제거할 수 있다.
전술한 색인화 검색 방법은 검색할 자음 패턴의 문자 개수만큼만 색인된 테이블들의 연결을 추적하여 참조하며, 최종적으로 찾은 검색 결과 색인 테이블에 해당 색인 키와 동일한 자음 패턴을 가지는 모든 자음 문자열들이 이미 검색되어 있어서 그 테이블 자체로서 검색 결과 목록이 되기 때문에, 이론적으로 가장 적은 횟수의 DB 참조로, 즉 가장 짧은 시간에 순간적으로 검색 결과 목록을 구할 수 있는 것을 특징으로 한다.
도 7은 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 문자 입력부를 생성하는 방법의 흐름도를 도시한다.
본 발명의 일 실시예에 따른 자음 문자 입력을 위한 문자 입력부를 생성하는 방법은, 미리 결정된 자판 배열을 갖는 제 1 문자 입력부를 선택하는 단계(S1000), 제 1 문자 입력부에 배치된 복수개의 문자 키들 중에서 자음 키, 모음 키 및 부가기능 키들을 식별하는 단계(S3000), 식별된 복수개의 키들 중 자음 키 및 부가기능 키 중 적어도 하나를 활성화시키고 나머지 키들을 비활성화 시키는 단계(S5000) 및 활성화된 키로써 제 2 문자 입력부를 생성하는 단계(S7000)를 포함할 수 있다.
본 발명의 일 실시예에 따른 문자 입력부는 표음식 키보드(phonetic keyboard) 또는 가상의 키보드를 포함할 수 있다.
표음 문자로 표시되는 임의의 언어 및 해당하는 국가 표준(national standard) 또는 관용(conventional)의 표음식 키보드가 사용 가능할 때, 본 발명의 일 실시예에 따라 오타 방지를 최소화시키고 빠른 입력이 가능하게 하며 사용자가 쉽게 적응할 수 있는 최적화된 문자 입력부가 생성될 수 있다. 설명의 편의를 위하여 문자 입력부는 자음 전용 키보드로 지칭될 수도 있다.
본 발명의 일 실시예에 따르면, 단계 S1000에서 표음 문자(phonogram)로 표시되는 임의의 언어-스크립트(language-script) 조합에 해당하는 국가 표준 또는 관용의 표음식 키보드(phonetic keyboard) 등을 선정할 수 있다.
단계 S3000에서 키보드에 배치된 키들 중에서 초성 및 종성 자음에 해당하는 자음 키, 모음에 해당하는 모음 키와 편집용 키(예컨대, 부가기능 키 등)들이 분리될 수 있다. 키의 분리는 키의 식별을 포함할 수 있다.
단계 S5000에서 자음 키 또는 최소한의 편집용 키 이외의 모든 키들은 비활성화 될 수 있다.
단계 S7000에서 활성화된 자음 키 또는 최소한의 편집용 키로써 문자 입력부가 생성될 수 있다.
본 발명의 일 실시예에 따르면, 비활성화 시키는 단계(S5000)는, 식별된 복수개의 키들 중 자음 키 또는 부가기능 키 이외의 나머지 키들을 제거하거나 나머지 키들의 입력을 제한하는 단계를 포함할 수 있다.
도 8은 본 발명의 일 실시예에 따라 변경된 키를 포함하는 문자 입력부를 생성하는 방법의 흐름도를 도시한다.
본 발명의 일 실시예에 따른 자음 문자 입력을 위한 문자 입력부를 생성하는 방법은 활성화된 자음 키 또는 활성화된 부가기능 키의 위치 및 크기 중 적어도 하나를 변경하는 단계(S6000)를 더 포함할 수 있다. 또한, 제 2 문자 입력부는 위치 및 크기 중 적어도 하나가 변경된 키를 포함하도록 생성될 수 있다.
본 발명의 일 실시예에 따라 사용자가 새로운 키보드에 쉽게 적응할 수 있도록 하려면 키보드 배치의 변화를 최소화시켜야 하므로 남은 자음 키들의 상대적인 위치를 최대한 유지하면서도, 빠른 입력이 가능하도록 하기 위하여 제거된 키들로 인한 여유 공간을 활용하여 각 키의 크기를 최대한 확대할 수 있다. 또한, 필요하다면, 공간 부족으로 배치가 곤란한 일부 키들을 여유 공간이 있는 위치로 이동시킬 수 있다.
본 발명의 일 실시예에 따른 활성화된 자음 키 또는 활성화된 부가기능 키의 위치 및 크기 중 적어도 하나를 변경하는 단계(S6000)는, 자음의 음운 체계상(phonologically) 관련된 문자(character)들끼리 그룹핑하는 단계, 그룹핑된 그룹별로 대표 문자(representative character)를 결정하는 단계, 결정된 대표 문자를 제외한 전술한 그룹에 속하는 문자들을 제거하는 단계 및 결정된 대표 문자를 나타내는 키의 위치 및 크기 중 적어도 하나를 변경하는 단계를 포함할 수 있다. 다시 말해서, 필요에 따라, 공간 부족으로 배치가 곤란한 키들을 음운 체계상 관련된 문자들끼리 그룹으로 묶고, 그룹별로 대표 문자를 선정하고, 그룹에 속하는 다른 모든 문자들을 제외하고 해당 대표 문자만을 배치함으로써, 문장 입력부 상에서 복수개의 키들의 효율적인 공간 배치가 가능하다.
본 발명의 일 실시예에 따른 그룹핑된 그룹별로 대표 문자(representative character)를 결정하는 단계는, 자음 키의 대표 문자로의 매핑을 위하여 키 매핑 표(key mapping table)를 생성하는 단계 및 생성된 키 매핑 표에 따라 그룹핑된 그룹별로 대표 문자를 결정하는 단계를 포함할 수 있다. 또한, 필요하다면, 대표 언어로의 통합을 위하여 배치된 모든 키들을 대표 언어의 문자로 매핑하여 변환해 주는 키 매핑 표(key mapping table)를 생성하여 적용할 수 있다.
본 발명의 일 실시예에 따른 식별된 복수개의 키들 중 자음 키 및 부가기능 키 중 적어도 하나를 활성화시키고 나머지 키들을 비활성화 시키는 단계(S5000)는, 제 1 문자 입력부가 속하는 대표 언어의 특성에 따라 식별된 복수개의 키들 중 초성으로 사용되는 자음만 또는 두문자로 사용되는 자음 및 모음만을 선택적으로 활성화시키고, 종성으로 사용되는 자음을 선택적으로 비활성화 또는 제거시키는 단계를 포함할 수 있다. 특정 언어의 특성상 초성 자음과 종성 자음을 모두 사용하는 자음 검색(consonant search)보다 각 음절(syllable)의 초성만을 검색하는 초성 검색(initial consonant search) 또는 각 음절 또는 단어(word)의 두문자만을 검색하는 두문자 검색(initial letter search) 방법이 문자 입력부 생성 및 문자 검색에 효율적일 경우에 초성 자음 또는 두문자에 쓰이는 모음들을 포함시킬 수도 있다. 또한, 특정 언어의 특성상 불필요할 경우에 종성에만 쓰이는 자음을 제외할 수도 있다.
전술한 바와 같이, 제 1 문자 입력부 및 제 2 문자 입력부는, 표음식 키보드(phonetic keyboard) 또는 가상의 키보드 등을 포함할 수 있다.
도 9a 및 9b는 종래의 표준 한글 두벌식 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 한글 두벌식 키보드를 각각 도시한다.
도 9a는 표준 한글 두벌식 키보드(10)의 일 예를 도시한다. 본 발명의 일 실시예에 따라 예컨대, 도 9b에 도시된 바와 같이 3행 14키 배치의 문자 입력부(11)가 생성될 수 있다. 이러한 문자 입력부(11)는 자음 전용 가상 키보드(virtual keyboard)로 지칭될 수 있다. 도 9b의 키보드에서 무음인 "ㅇ" 문자는 자음으로 간주하여 자음 검색에 포함시켰으나, 필요에 따라 제외시킬 수도 있다. 도 9b 및 이하의 도면들에서 하단 양쪽의 회색 키(11b)는 예시적인 편집용 키를 나타낸다.
도 10a 및 10b는 종래의 표준 영어 QWERTY 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 QWERTY 키보드를 각각 도시한다.
도 10a는 표준 영어 QWERTY 키보드의 일 예를 도시한다. 본 발명의 일 실시예에 따라 예컨대, 도 10b에 도시된 바와 같이 3행 20키 배치의 자음 전용 가상 키보드가 생성될 수 있다. 도 10b에서 모음 위치의 흰색 키(예컨대, 문자가 표기되지 않은 키)는 선택적으로 배치가 가능하고, 따라서 제거 가능하다.
도 11a 및 11b는 종래의 표준 영어 AZERTY 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 AZERTY 키보드를 각각 도시한다.
도 11a는 표준 영어 AZERTY 키보드의 일 예를 도시한다. 본 발명의 일 실시예에 따라 예컨대, 도 11b에 도시된 바와 같이, 3행 20키 배치의 자음 전용 가상 키보드가 생성될 수 있다. 도 11b에서 모음 위치의 흰색 키(예컨대, 문자가 표기되지 않은 키)는 선택적으로 배치가 가능하고, 따라서 제거 가능하다.
도 12a 및 12b는 종래의 표준 영어 QWERTZ 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 QWERTZ 키보드를 각각 도시한다.
도 12a는 표준 영어 QWERTZ 키보드의 일 예를 도시한다. 본 발명의 일 실시예에 따라 예컨대, 도 12b에 도시된 바와 같이, 3행 20키 배치의 자음 전용 가상 키보드가 생성될 수 있다. 도 12b에서 모음 위치의 흰색 키(예컨대, 문자가 표기되지 않은 키)는 선택적으로 배치가 가능하고, 따라서 제거 가능하다.
도 13a 및 13b는 종래의 일본어 romaji 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 romaji 키보드를 각각 도시한다.
도 13a는 관용(conventional) 일본어 romaji 키보드의 일 예를 도시한다. 본 발명의 일 실시예에 따라 예컨대, 도 13b에 도시된 바와 같이, 3행 12키 또는 13키 배치의 자음 전용 가상 키보드가 생성될 수 있다. 도 13b에서 일본어 종성 "ん"에 대응하는 [n]키는 선택적이고 임의의 위치에 배치할 수 있으며, 초성 검색만 필요할 경우에는 제거 가능하다.
도 13b의 키보드는, 각 자음 알파벳 키를 입력하면 입력된 키가 표 18에 따라 일대일로 일본어 대표 문자로 매핑되고, 이때 각 대표 문자는 hirakana 및 katakana에서 "아"(あ/ア), "이"(い/イ), "우"(う/ウ), "에"(え/エ) 또는 "오"(お/オ) 발음의 모음 및 대표 문자와 동일한 초성 또는 종성을 가지는 모든 문자들을 대표할 수 있다.
Figure 112014002957912-pat00038
대표 문자로는 일본어 표준 문자표인 50음도에서 임의의 단(段)을 선택하여 사용할 수 있으나, 표 18은 일 실시예로서 hirakana의 あ단을 선택한 경우를 보여 준다. 이 경우, 예컨대 "は" 문자는 hirakana "は", "ひ", "ふ", "へ", "ほ"와 katakana "ハ", "ヒ", "フ", "ヘ", "ホ" 등의 10 문자를 대표하고, "ん" 문자는 "ん", "ン" 등의 2문자를 대표할 수 있다.
도 14a 및 14b는 종래의 일본어 10-Key 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 9-Key 키보드를 각각 도시한다.
도 14a 는 일본에서 일반 휴대폰(feature phone) 및 스마트폰에 두루 쓰이는 일본어 10-key 키보드의 일 예를 도시한다. 본 발명의 일 실시예에 따라 도 14b와 같이 탁점이 없는 8개의 대표 문자 키와 탁점(dakuten) 키 등 총 9개의 키로 구성된 3x3 배치의 자음 전용 가상 키보드가 생성될 수 있다.
대표 문자로는 일본어 표준 문자표인 50음도에서 임의의 단을 선택하여 사용할 수 있으나, 도 14b는 일 실시예로서 hirakana의 あ단을 선택한 경우를 보여 준다. 필요할 경우 도 14b에서 탁점 키와 [ん]키의 위치를 맞바꿀 수도 있고, 초성 검색만 필요할 경우 [ん]키를 제거할 수도 있다.
종래의 관용 10-key와 달리, 도 14b의 대표 문자 키들은 연달아 입력되었을 때 50음도에서 같은 단의 다른 문자로 toggle되지 않을 수도 있다.
또한, 도 14b의 키보드는, 탁점(dakuten) 키가 연달아 입력되면 탁점 키 직전에 입력된 대표 문자가 표 19에 따라 탁점이 없는 문자와 탁점이 있는 문자 사이에 toggle되어 변환될 수 있다.
Figure 112014002957912-pat00039
도 15a 및 15b는 종래의 표준 중국어 pinyin 키보드와 본 발명의 일 실시예에 따른 두문자 입력을 위한 pinyin 키보드를 각각 도시한다.
도 15a는 표준 중국어 pinyin 키보드의 일 예를 도시한다. 본 발명의 일 실시예에 따라 도 15b에 도시된 바와 같이 3행 26키 배치의 두문자 전용 가상 키보드가 생성될 수 있다. 여기서, 중국어는 자음과 모음의 조합이 아닌 초성과 종성의 조합이라는 점과 한자를 변환했을 때 초성 없이 종성만으로 된 한자의 검색이 필수적인 점을 고려하고, 최소한의 키 입력으로 검색할 수 있도록 하기 위하여, 도 15b의 키보드는 각 음절(syllable)의 pinyin 두문자, 즉 첫 pinyin 문자만을 검색하는 두문자 검색(initial letter search)을 수행할 수 있다. 다시 말해서, pinyin 1음절 당 두문자 1개씩 대응되며, 해당 음절에서 두문자를 제외한 문자는 무시될 수 있다.
또한, 두문자가 될 수 있는 pinyin 문자는 표 10과 같이 자음 21개와 모음 5개 등 총 26개인데, 표준 영어 QWERTY 키보드에 해당 키가 존재하지 않는 "Zh", "Ch", "Sh"의 3개 자음은, pinyin 표준에 의하면 각 음절의 두문자가 결코 될 수 없는 "V", "I", "U" 문자의 키를 각각 대치하여 도 15b의 키보드와 같이 위치시킬 수 있다. 이때 "Zh", "Ch", "Sh" 자음은 "V", "I", "U" 문자의 키 위치에 임의로 매핑시킬 수 있으나, 도 15b에서는 일 실시예로서 관용 double pinyin 키보드에서 해당 키들과 같은 매핑을 가지는 경우를 보여 준다.
다국어 자음 검색의 효과적인 통합을 위하여, [B], [P] 키와 같이 문자가 1개인 키를 입력하면 매핑이 없고 [Zh], [Ch], [Sh] 키와 같이 문자가 2개인 키를 입력하면 표 20과 같이 매핑됨으로써, 표 10에 나열된 26개의 모든 pinyin 두문자가 각각 영어 알파벳 문자에 일대일로 대응될 수 있다. 이때 [Zh], [Ch], [Sh] 키들은 각각 "V", "I", "U" 문자에 임의로 매핑될 수 있으나, 표 20에서는 일 실시예로서 관용 double pinyin 키보드에서 해당 키들과 같은 매핑을 가지는 경우를 보여 준다.
Figure 112014002957912-pat00040
도 16a 및 16b는 종래의 중국어 zhuyin 키보드와 본 발명의 일 실시예에 따른 두문자 입력을 위한 zhuyin 키보드를 각각 도시한다.
도 16a는 관용 중국어 zhuyin 키보드의 일 예를 도시한다. 본 발명의 일 실시예에 따라 도16b와 같은 4행 27키 배치의 두문자 전용 가상 키보드가 생성될 수 있다. 여기서, 중국어는 자음과 모음의 조합이 아닌 초성과 종성의 조합이라는 점과 한자를 변환했을 때 초성 없이 종성만으로 된 한자의 검색이 필수적인 점을 고려하고, 최소한의 키 입력으로 검색할 수 있도록 하기 위하여, 도 16b의 키보드는 각 음절(syllable)의 zhuyin 두문자, 즉 첫 zhuyin 문자만을 검색하는 두문자 검색(initial letter search)을 실시할 수 있다. 다시 말해서, zhuyin 1음절 당 두문자 1개씩 대응되며, 해당 음절에서 두문자를 제외한 문자는 무시될 수 있다.
도 16b의 키보드는, 각 키의 면적을 최대한 크게 함으로써 오타를 줄이기 위하여, 모든 두문자를 표시하지 않는 대신에, 두문자가 될 수 있는 zhuyin 문자들 중에서 표 21과 같이 모든 자음 21개 및 대표 모음 6개 등 총 27개 문자에 대응하는 키를 가질 수 있다.
Figure 112014002957912-pat00041
두문자가 아닌 초성 자음만으로 검색할 경우 모음 키 6개는 제거될 수 있다. 또한, 필요에 따라 모음 키
Figure 112014002957912-pat00042
의 위치는 맞바꿀 수 있다.
도 16b의 키보드에서 각 키들은 표 21과 같이 1개의 pinyin 문자로 매핑 가능하기 때문에, 결과적으로 중국어를 표현하는 데 쓰이는 한자(hanzi), pinyin, zhuyin 등 세 가지 문자 세트들을 모두 pinyin으로 변환해 줌으로써 pinyin 키보드 또는 zhuyin 키보드를 병용하여 중국어 문자열을 통합 검색할 수 있다.
또한, 도 16b의 키보드에 포함되지는 않으나 두문자는 될 수 있는 9개의 모음 문자는 표 22와 같이 해당 pinyin의 첫 문자가 같은 대표 문자로 검색할 수 있는 것을 특징으로 한다. 예컨대 "
Figure 112014002957912-pat00043
"(ang)은 첫 pinyin 문자가 같은 "
Figure 112014002957912-pat00044
"(a)로, "
Figure 112014002957912-pat00045
"(er)는 마찬가지로 "
Figure 112014002957912-pat00046
"(e)로 검색 가능하다. 표 22에서 괄호 안의 영문자는 해당 zhuyin 모음에 1:1로 대응되는 pinyin 문자를 나타낸다.
Figure 112014002957912-pat00047
도 17a 및 17b는 종래의 표준 러시아어 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 러시아 키보드를 각각 도시한다.
도 17a는 표준 러시아어(Russian) 키보드의 일 예를 도시한다. 본 발명의 일 실시예에 따라 도 17b와 같은 3행 20키 배치의 자음 전용 가상 키보드가 생성될 수 있다. 도 17b에서 모음 위치의 흰색 키는 선택적이며 제거 가능하다.
도 18a 및 18b는 종래의 표준 우크라이나어 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 우크라이나어 키보드를 각각 도시한다.
도 18a는 표준 우크라니아어(Ukrainian) 키보드의 일 예를 도시한다. 본 발명의 일 실시예에 따라 도 18b와 같은 3행 20키 배치의 자음 전용 가상 키보드가 생성될 수 있다. 표준 우크라이나어 키보드에 포함되어 있고 자음이지만 도 18a 및 18b에 나타나 있지 않은 문자 "
Figure 112014002957912-pat00048
"(Ge Upturn, Unicode U+0490)는 선택적이며, 포함시킬 경우의 위치는 표준에 따라 3행 [Ч]의 좌측일 수 있다. 도 18b에서 모음 위치의 흰색 키는 선택적이며 제거 가능하다.
도 19a 및 19b는 종래의 표준 불가리아어 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 불가리아어 키보드를 각각 도시한다.
도 19a는 표준 불가리아어(Bulgarian) 키보드의 일 예를 도시한다. 본 발명의 일 실시예에 따라 도 19b와 같은 3행 20키 배치의 자음 전용 가상 키보드가 생성될 수 있다. 도 19b에서 모음 위치의 흰색 키는 선택적이며 제거 가능하다.
도 20a 및 20b는 종래의 세르비아어 키릴 문자 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 세르비아어 키릴 문자 키보드를 각각 도시한다.
도 20a 는 종래 세르비아어 키릴 문자(Serbian Cyrillic) 키보드의 일 예를 도시한다. 본 발명의 일 실시예에 따라 도 20b와 같은 3행 25키 배치의 자음 전용 가상 키보드가 생성될 수 있다. 도 20b는 각 키의 크기를 최대화시키기 위하여 임의의 편집용 키를 통상적인 3행이 아닌 1행에 배치한 예시이다.
도 21a 및 21b는 종래의 마케도니아어 키보드와 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 마케도니아어 키보드를 각각 도시한다.
도 21a는 종래 마케도니아어(Macedonian) 키보드의 일 예를 도시한다. 본 발명의 일 실시예에 따라 도 21b와 같은 3행 25키 배치의 자음 전용 가상 키보드를 생성할 수 있다. 도 21b는 각 키의 크기를 최대화시키기 위하여 임의의 편집용 키를 통상적인 3행이 아닌 1행에 배치한 예시이다.
도 22는 본 발명의 일 실시예에 따른 다국어 통합 자음 패턴 검색 장치의 블럭도를 도시한다.
미리 저장된 원본 문자열 목록(original string list) 중 복수개의 자음들의 입력을 통하여 적어도 하나의 문자열을 추출하여 디스플레이하는 다국어 통합 자음 패턴 검색 장치(2200)는, 데이터 베이스(DB)를 초기화하고, 검색될 원본 문자열 목록을 생성하는 초기화 설정부(2210), 검색될 원본 문자열 목록을 독출하여 각각의 대표 언어별로 검색될 자음 문자열의 DB를 생성하는 자음 문자열 DB 생성부(2220), 복수개의 검색될 자음들이 포함된 제 1 자음 패턴을 수신하기 위한 문자 입력부(2230), 문자 입력부와 관련된 대표 언어에 기초하여 검색될 자음 문자열의 DB에서 제 1 자음 패턴과 매칭되는 제 2 자음 패턴을 검색하는 자음 패턴 검색부(2240), 검색된 제 2 자음 패턴을 포함하는 적어도 하나의 자음 문자열이 포함된 검색 결과 목록(search result list)을 생성하는 검색 결과 목록 생성부(2250) 및 생성된 검색 결과 목록을 소정의 기준에 따라 정렬하여 디스플레이하는 디스플레이부(2260)를 포함할 수 있다. 제 2 자음 패턴은 제 1 자음 패턴과 문자 배치 순서는 동일하지만, 검색될 자음 문자열에 포함된 복수개의 자음 문자들 간의 배치 간격에 관계 없이 추출되어 조합된 패턴일 수 있다.
자음 문자열 DB 생성부(2220)는, 각각의 언어별 알파벳 스크립트(script)들 간의 유사성에 기초하여 미리 분류된 언어-스크립트군(language-script group)으로부터 제 1 스크립트(script)로 표현되는 대표 언어(representative language)를 선택하고, 언어-스크립트군에 포함되는 제 2 스크립트(script)로 표현된 적어도 하나의 문자열을 대표 언어의 제 1 스크립트로 표현된 적어도 하나의 문자열로 변환할 수 있다.
자음 문자열 DB 생성부(2220)는, 다국어 통합 자음 패턴 검색 장치와 연결된 문자 입력부에 상응하는 대표 언어에 기초하여 검색될 자음 문자열의 DB를 생성할 수 있다.
문자 입력부(2230), 자음 패턴 검색부(2240), 검색 결과 목록 생성부(2250)의 구체적인 동작에 대하여는 도 23과 관련하여 후술한다.
도 23은 본 발명의 다른 실시예에 따른 다국어 통합 자음 패턴 검색 장치의 블럭도를 도시한다.
자음 문자열 DB 생성부(2220)는, 미리 저장된 원본 문자열 목록에서 원본 문자열(original string)들을 하나씩 순차적으로 독출하는 문자열 독출부(2221), 독출된 원본 문자열에 포함된 각각의 문자를 각각의 대표 언어별로 설정된 대표 문자 매핑표(mapping table)에 기초하여 대표 문자(representative character)로 변환하는 문자 변환부(2222), 변환된 문자열에서 각각의 대표 언어별로 설정된 제 1 문자 세트(character set)에 포함된 문자 이외의 문자를 제거함으로써 자음 문자열(consonant string)을 생성하는 자음 문자열 생성부(2223) 및 생성된 자음 문자열을 검색될 자음 문자열의 DB에 추가하는 문자열 추가부(2224)를 포함할 수 있다. 순차적으로 독출하고, 대표 문자(representative character)로 변환하며, 자음 문자열(consonant string)을 생성하고, DB로의 추가는 원본 문자열 목록에 포함된 모든 원본 문자열에 대하여 각각 수행될 수 있다.
본 발명의 일 실시예에 따른 제 1 문자 세트는 초성 자음(initial consonant)과 종성 자음(final consonant) 중 적어도 하나를 포함하는 문자 세트 또는 두문자(initial letter)를 포함하는 문자 세트를 포함할 수 있다.
본 발명의 일 실시예에 따라 생성된 자음 문자열은 부가적인 정렬 없이 원본 문자열 목록과 상응하게 검색될 자음 문자열의 DB에 순차적으로 추가될 수 있다.
초기화 설정부(2210)는, 최상위 색인 테이블(root index table)을 검색될 자음 문자열의 DB에 생성하고, n개의 자음 문자를 포함하는 검색될 자음 문자열에서 m개의 자음 문자를 추출할 때, 추출될 자음 개수(m)의 최소값(Mmin)이 2 이상이라면, 대표 언어에 대응되는 제 1 문자 세트에 속한 전체 문자들에 대해, 적어도 1개 이상이고 (Mmin - 1)개 이하의 모든 자음 패턴을 각각 키로 가지는 미리결정된 색인 테이블(index table)들을 검색될 자음 문자열의 DB에서 생성할 수 있다.
문자열 추가부(2224)는, n개의 자음 문자를 포함하는 검색될 자음 문자열에서 m개의 자음 문자를 추출할 때, 추출될 자음 개수(m)가 최소값(Mmin) 이상이고 최대값(Mmax) 이하인 모든 제 2 자음 패턴의 조합을 추출하고, 추출된 각각의 제 2 자음 패턴의 문자열을 색인 키(index key)로 가지는 모든 색인 테이블들에 제 2 자음 패턴을 포함하는 자음 문자열을 가리키는 포인터(pointer)를 추가(add)할 수 있다.
문자열 추가부(2224)는, 포인터(pointer)를 추가(add)할 때 추출된 제 2 자음 패턴에 상응하는 색인 테이블(index table)이 미생성되었다면, 추출된 제 2 자음 패턴에 기초하여 미생성된 색인 테이블을 동적(dynamically)으로 생성하고, 하위 색인 테이블(sub-index table)인 동적으로 생성된 색인 테이블을 상위 색인 테이블(super index table)에 연결(link)할 수 있다. 상위 색인 테이블은 하위 색인 테이블의 색인 키에서 마지막에 위치한 자음 문자가 제외된 패턴의 색인 키를 가지는 색인 테이블일 수 있다.
문자열 추가부(2224)에 의하여 제 2 자음 패턴의 조합을 추출할 때 n개의 자음 문자를 포함하는 검색될 자음 문자열에서 m개의 자음 문자를 추출한다면, 상호 중복됨이 없이 추출될 모든 자음 패턴들의 최대값은,
Figure 112014002957912-pat00049
로 결정될 수 있다.
문자 입력부(2230)를 통하여 복수개의 자음들을 포함하는 제 1 자음 패턴을 수신할 때, 문자 입력부(2230)를 통한 모든 모음(vowel) 키들의 입력이 제한될 수 있다.
자음 패턴 검색부(2240)는, 문자 입력부와 관련된 대표 언어로 생성된 검색될 자음 문자열의 DB에 포함된 모든 자음 문자열들을 하나씩 순차적으로 독출하고, 제 1 자음 패턴과 독출된 자음 문자열을 비교함으로써 제 2 자음 패턴을 검색할 수 있다.
검색 결과 목록 생성부(2250)는 검색될 자음 문자열의 DB에 포함된 모든 자음 문자열에 대한 검색된 제 2 자음 패턴이 포함된 적어도 하나의 자음 문자열을 추출하여 목록화함으로써 검색 결과 목록을 생성할 수 있다.
자음 패턴 검색부(2240)는, 최상위 색인 테이블을 현재 색인 테이블(current index table)로서 참조하고 루프 변수 k를 0으로 설정하고, 현재 색인 테이블의 색인 키와 제 1 자음 패턴을 비교하여, 현재 색인 테이블의 색인 키와 제 1 자음 패턴이 불일치한다면, 현재 색인 테이블에 연결되어 있는 적어도 하나의 하위 색인 테이블들의 색인 키의 마지막에 위치한 문자인 k번째 문자와 제 1 자음 패턴의 k번째 문자를 비교함으로써 일치하는 하위 색인 테이블을 검색하여, 검색된 하위 색인 테이블을 현재 색인 테이블로서 참조하고 루프 변수 k를 1만큼 증가시킨 후 현재 색인 테이블의 색인 키와 제 1 자음 패턴을 재비교하고, 현재 색인 테이블의 색인 키와 제 1 자음 패턴이 일치한다면, 검색 결과 색인 테이블로서 현재 색인 테이블을 지정할 수 있다.
검색 결과 목록 생성부(2250)는, 비교 또는 재비교 시에, 현재 색인 테이블의 색인 키와 제 1 자음 패턴이 일치한다면, 검색 결과 색인 테이블이 가리키는 적어도 하나의 자음 문자열들을 검색 결과 목록으로서 생성하고, 제 1 자음 패턴과 일치하는 현재 색인 테이블의 색인 키가 발견되지 않는다면, 검색 결과가 없음을 나타내는 검색 결과 목록을 생성할 수 있다.
도 24는 본 발명의 일 실시예에 따른 자음 문자 입력을 위한 문자 입력부를 생성하는 장치의 블록도를 도시한다.
본 발명의 일 실시예에 따른 자음 문자 입력을 위한 문자 입력부를 생성하는 장치(2400)는, 미리 결정된 자판 배열을 갖는 제 1 문자 입력부를 선택하는 문자 입력부 선택부(2410), 제 1 문자 입력부에 배치된 복수개의 문자 키들 중에서 자음 키, 모음 키 및 부가기능 키들을 식별하는 키 식별부(2420), 식별된 복수개의 키들 중 자음 키 및 부가기능 키 중 적어도 하나를 활성화시키고 나머지 키들을 비활성화 시키는 키 상태 제어부(2430) 및 활성화된 키로써 제 2 문자 입력부를 생성하는 문자 입력부 생성부(2440)를 포함할 수 있다.
키 상태 제어부(2430)는, 식별된 복수개의 키들 중 자음 키 또는 부가기능 키 이외의 나머지 키들을 제거하거나 나머지 키들의 입력을 제한할 수 있다.
도 25는 본 발명의 다른 실시예에 따른 자음 문자 입력을 위한 문자 입력부를 생성하는 장치의 블록도를 도시한다.
본 발명의 일 실시예에 따른 자음 문자 입력을 위한 문자 입력부를 생성하는 장치(2400)는, 활성화된 자음 키 또는 활성화된 부가기능 키의 위치 및 크기 중 적어도 하나를 변경하는 변경부(2450)를 더 포함할 수 있다. 제 2 문자 입력부는 위치 및 크기 중 적어도 하나가 변경된 키를 포함하도록 생성될 수 있다.
변경부(2450)는, 자음의 음운 체계상(phonologically) 관련된 문자(character)들끼리 그룹핑하고, 그룹핑된 그룹별로 대표 문자(representative character)를 결정하며, 결정된 대표 문자를 제외한 그룹에 속하는 문자들을 제거하고, 결정된 대표 문자를 나타내는 키의 위치 및 크기 중 적어도 하나를 변경할 수 있다.
그룹핑된 그룹별로 대표 문자(representative character)를 결정하는 것은, 자음 키의 대표 문자로의 매핑을 위하여 키 매핑 표(key mapping table)를 생성하고, 생성된 키 매핑 표에 따라 그룹핑된 그룹별로 대표 문자를 결정할 수 있다.
키 상태 제어부(2430)는, 제 1 문자 입력부가 속하는 대표 언어의 특성에 따라 식별된 복수개의 키들 중 초성으로 사용되는 자음만 또는 두문자로 사용되는 자음 및 모음만을 선택적으로 활성화시키고, 종성으로 사용되는 자음을 선택적으로 비활성화 또는 제거시킬 수 있다.
제 1 문자 입력부 및 제 2 문자 입력부는, 표음식 키보드(phonetic keyboard) 또는 가상의 키보드 등을 포함할 수 있다.
전술한 바와 같이, 본 발명에 따른 다국어 통합 자음 패턴 검색 방법에 의해, 초성과 종성이 구별되는 표음 문자로 표기되는 언어의 원본 문자열 목록에 대하여, 비연속적이어도 되는 임의의 위치의 자음 패턴의 대표 언어별 통합 검색이 가능하다. 다시 말해서, 사용자가 관심이 있는 데이터를 검색하고자 할 때, 최소한의 문자의 입력만으로 고속 검색이 가능하고, 대용량의 데이터일지라도 종래 대비 더욱 정확한 검색 결과를 제공할 수 있으므로 사용자에 의한 검색 결과의 검토가 용이해질 수 있다. 또한, 표음 문자로 표기되는 세계의 주요 언어에 대하여도, 각 언어마다 일관성 있게 통합해서 검색할 수 있게 된다.
또한, 자음 문자 입력을 위한 문자 입력부를 생성하는 방법에 따라, 각 국가별 표음식 표준 문자 입력부(예컨대, 키보드 등)에 대응하는 자음 문자 입력을 위한 문자 입력부를 생성하여 사용함으로써, 오타율의 감소와 문자 입력 속도의 향상을 기대할 수 있다. 다시 말해서, 이동 기기 등에서 제공될 소형의 문자 입력부로 문자를 입력하더라도 오타율을 최소화시킬 수 있고, 사용자는 종래 대비 더욱 빠른 문자 입력이 가능하다.
전술한 효과들에 대하여 실례를 들어 구체적으로 기술하면 다음과 같다.
다음의 비교 결과는 한글일 경우에 종래의 초성 검색, 연속 자음 검색 방법 및 본 발명의 자음 패턴 검색 방법 간의 검색 결과의 차이를 명확히 보여 준다. 하기 비교 결과에서 보이는 바와 같이, 본 발명의 자음 패턴 검색 방법은 이론적으로 초성 검색 방법 및 연속 자음 검색 방법을 완전하게 포함하면서도 초성 검색 및 연속 자음 검색이 검색하지 못하는 비연속적인 자음 패턴을 검색할 수 있는 효과가 있다.
Figure 112014002957912-pat00050
또한, 다음의 비교 결과는 영어일 경우에 종래의 문자열 선두 검색, 단어 선두 검색, 부분 문자열 검색, 단어 두문자 검색 방법 및 본 발명의 자음 패턴 검색 방법 간의 검색 결과의 차이를 보여 준다.
Figure 112014002957912-pat00051
한편, 현재까지 널리 쓰이는 가장 효과적인 검색 방법인 초성 검색은 최소한의 키 입력만으로 검색이 가능하지만, 초성들만 일치하면 되므로 전체 데이터가 상대적으로 많을 경우에 관련 없는 검색 결과가 너무 많아 화면 스크롤을 해야 해서 검색이 번거로워지는 문제가 있다. 반면에 자음 패턴 검색은 초성은 물론이고 종성을 더 입력할 수 있기 때문에 초성 검색에 비하여 훨씬 더 검색 결과 개수를 한정할 수 있는 효과가 있다. 다음의 비교 결과는 한글일 경우에 종래의 초성 검색과 본 발명의 자음 패턴 검색을 비교하여, 검색 입력 문자의 개수에 따른 검색 결과의 개수 및 스크롤 필요 가능성에 대한 정성적인 비교 결과를 보여 준다.
Figure 112014002957912-pat00052
자음 전용 키보드 배치를 사용하면 오타율이 최소화되고 빠른 입력이 가능한 효과가 있는데, 그 효과가 가장 커지는 방법은 각 키들의 면적을 종래 표준 키보드에 비하여 충분히 증가시키는 경우이다. 일 예로서 한글용 자음 전용 키보드의 경우에 다음의 비교 결과와 같이 불필요한 모음 키들을 제거하는 대신 자음 키들의 크기를 확대함으로써 면적이 +92%나 증가한 것을 알 수 있다.
Figure 112014002957912-pat00053
오타율은 키의 면적이 충분히 크면 급격하게 줄어드는 특징이 있는 데다가, 더욱이 인체공학적으로 가로가 세로보다 긴 손끝의 형상을 감안하여 수평 방향으로 키의 면적을 충분히 증가시키는 것은 오타가 거의 없도록 줄여 주는 효과를 가진다. 이와 같이 오타율이 낮아질수록 결과적으로 그만큼 빠른 입력이 가능해진다. 자음 전용 한글 키보드 배치와 마찬가지로, 자음 전용의 일본어 romaji, 중국어 zhuyin 및 모든 키릴 문자(Cyrillic) 키보드 배치들은 종래 표준 키보드 배치에 비하여 자음 전용 키보드 배치에서의 키 면적이 수평 방향으로 증가할 수 있다. 또한, 문자 입력부 생성(또는 키보드 배치)의 특성상 모음 키들을 제거하기 곤란하여 자음 키들의 면적을 증가시킬 수 없는 경우에 오타율이 줄이는 차선의 방법은 모음 키들의 입력을 금지시키고 빈 키(dummy key)로 표시하든지 아예 제거하는 것이다.
예를 들어, 영문 QWERTY 키보드의 경우의 자음 전용 키보드에서는 총 5개의 모음 키, 즉 전체 키들 중에서 19%의 키가 빈 키로 표시되어 입력이 금지되어 있다. 이에 따라 검색에 쓰이지 않는 모음이 실수로 입력되어 생길 시간 낭비를 근본적으로 방지할 수 있으며, 모음 근처에 있는 자음 키들의 오타율을 상대적으로 감소시켜 주는 효과가 있으며, 결과적으로 빠른 입력이 가능하도록 해 준다.
Figure 112014002957912-pat00054
자음 전용 키보드의 또 다른 효과는 사용자가 실제로 입력할 수 있는 키들만 시각적으로 보여 주기 때문에 사용법이 직관적이라는 데 있다. 즉, 사용자에게 키보드상의 키들 중에서 입력 가능한 키들이 어떤 것들인지 키보드마다 일일이 설명해야 할 필요가 없는 장점이 있다. 이 점은 대개 사용자가 사용 설명서를 따로 읽지 않고 쓰게 마련인 이동 기기에서 필수적이다.
본원의 도 1a 및 1b와 관련하여, 임의 생성한 1,000개의 성명 중에서 James Smith라는 이름을 종래의 단어 선두 검색과 본 발명의 자음 패턴 검색을 이용하여 검색한 결과의 비교는 다음과 같다.
Figure 112014002957912-pat00055
Figure 112014002957912-pat00056
상기 비교 결과에 대한 분석에 따르면 본 발명의 자음 문자 패턴 검색 방법이 종래의 단어 선두 검색 방법에 비하여 성능 지수가 월등한 것을, 즉 훨씬 적은 문자로 신속한 검색이 가능한 것을 알 수 있다. 그 효과를 좀 더 구체적으로 분석하면 다음과 같다. 종래의 방법은 7~8문자를 입력해야 스크롤 없이 최종 결과를 찾을 수 있는 데 반하여, 본 발명의 방법은 단지 3~5문자만으로 최종 결과를 찾을 수 있다. 종래의 방법은 한 가지 방법으로밖에 입력할 수 없는 데 반하여(단어 선두부터 연속 입력), 본 발명의 방법으로는 다양한 패턴을 입력할 수 있을뿐만 아니라, 대부분의 경우에 최소 입력 개수의 자음 패턴을 구할 수 있는 특징이 있다(예컨대, 3문자 jth의 경우). 최소 입력 개수의 패턴은 경험적으로 구할 수도 있고, 프로그래밍적으로 구할 수도 있다.
본 발명의 일 실시예에 따른 장치와 관련하여서는 전술한 방법에 대한 내용이 적용될 수 있다. 따라서, 장치와 관련하여, 전술한 방법에 대한 내용과 동일한 내용에 대하여는 설명을 생략하였다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
이러한 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (39)

  1. 미리 저장된 원본 문자열 목록(original string list) 중 복수개의 자음들의 입력을 통하여 적어도 하나의 문자열을 추출하여 디스플레이하는 다국어 통합 자음 패턴 검색 방법에 있어서,
    초기화 설정부가 데이터 베이스(DB)를 초기화하고, 입력된 초성 등을 기준으로 상기 미리 저장된 원본 문자열 목록(original string list)에서 검색될 상기 원본 문자열 목록을 생성하는 단계;
    자음 문자열 DB 생성부가 상기 원본 문자열 목록을 독출하여 미리 분류된 언어-스크립트군에서 선택되어진 특정 국가의 언어를 대표하는 대표 언어별로 검색될 자음 문자열의 DB를 생성하는 단계;
    문자 입력부가 통하여 입력된 복수개의 자음들을 포함하는 제 1 자음 패턴을 수신하는 단계;
    자음 패턴 검색부가 상기 문자 입력부와 관련된 상기 대표 언어에 기초하여 생성된 상기 검색될 자음 문자열의 DB에서 상기 제 1 자음 패턴과 매칭되는 제 2 자음 패턴을 검색하는 단계;
    검색 결과 목록 생성부가 상기 검색된 제 2 자음 패턴을 포함하는 적어도 하나의 자음 문자열이 포함된 검색 결과 목록(search result list)을 생성하는 단계; 및
    디스플레이부가 상기 생성된 검색 결과 목록을 소정의 기준에 따라 정렬(sorting)하여 디스플레이하는 단계를 포함하고,
    상기 제 2 자음 패턴은 상기 제 1 자음 패턴과 문자 배치 순서는 동일하지만, 상기 검색될 자음 문자열에 포함된 복수개의 자음 문자들 간의 배치 간격에 관계 없이 추출되어 상기 대표 언어의 배열 순서대로 조합된 패턴인 것을 특징으로 하는 다국어 통합 자음 패턴 검색 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 미리 저장된 원본 문자열 목록(original string list) 중 복수개의 자음들의 입력을 통하여 적어도 하나의 문자열을 추출하여 디스플레이하는 다국어 통합 자음 패턴 검색 장치에 있어서,
    데이터 베이스(DB)를 초기화하고, 입력된 초성 등을 기준으로 상기 미리 저장된 원본 문자열 목록(original string list)에서 검색될 상기 원본 문자열 목록을 생성하는 초기화 설정부;
    상기 원본 문자열 목록을 독출하여 미리 분류된 언어-스크립트군에서 선택되어진 특정 국가의 언어를 대표하는 대표 언어별로 검색될 자음 문자열의 DB를 생성하는 자음 문자열 DB 생성부;
    복수개의 검색될 자음들이 포함된 제 1 자음 패턴을 수신하기 위한 문자 입력부;
    상기 문자 입력부와 관련된 상기 대표 언어에 기초하여 상기 검색될 자음 문자열의 DB에서 상기 제 1 자음 패턴과 매칭되는 제 2 자음 패턴을 검색하는 자음 패턴 검색부;
    상기 검색된 제 2 자음 패턴을 포함하는 적어도 하나의 자음 문자열이 포함된 검색 결과 목록(search result list)을 생성하는 검색 결과 목록 생성부; 및
    상기 생성된 검색 결과 목록을 소정의 기준에 따라 정렬하여 디스플레이하는 디스플레이부를 포함하고,
    상기 제 2 자음 패턴은 상기 제 1 자음 패턴과 문자 배치 순서는 동일하지만, 상기 검색될 자음 문자열에 포함된 복수개의 자음 문자들 간의 배치 간격에 관계 없이 추출되어 상기 대표 언어의 배열 순서대로 조합된 패턴인 것을 특징으로 하는 다국어 통합 자음 패턴 검색 장치.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 제1항의 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
KR1020140003657A 2014-01-11 2014-01-11 다국어 통합 자음 패턴 검색 방법 및 그 장치 KR102182672B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140003657A KR102182672B1 (ko) 2014-01-11 2014-01-11 다국어 통합 자음 패턴 검색 방법 및 그 장치
US14/549,901 US9824139B2 (en) 2014-01-11 2014-11-21 Method of searching for integrated multilingual consonant pattern, method of creating character input unit for inputting consonants, and apparatus for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140003657A KR102182672B1 (ko) 2014-01-11 2014-01-11 다국어 통합 자음 패턴 검색 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20150083961A KR20150083961A (ko) 2015-07-21
KR102182672B1 true KR102182672B1 (ko) 2020-11-24

Family

ID=53521582

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140003657A KR102182672B1 (ko) 2014-01-11 2014-01-11 다국어 통합 자음 패턴 검색 방법 및 그 장치

Country Status (2)

Country Link
US (1) US9824139B2 (ko)
KR (1) KR102182672B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106468960A (zh) * 2016-09-07 2017-03-01 北京新美互通科技有限公司 一种输入法候选项排序的方法和系统
USD839901S1 (en) * 2017-11-22 2019-02-05 Chien-Yi Kuo Computer display panel with graphical user interface for Chinese characters
CN108268143B (zh) * 2018-02-13 2021-03-26 清华大学 用于输入中文字符的键盘及其设置方法和输入方法
WO2020257973A1 (en) * 2019-06-24 2020-12-30 Citrix Systems, Inc. Detecting hard-coded strings in source code
CN112416145A (zh) * 2020-12-28 2021-02-26 山东云缦智能科技有限公司 一种与搜索内容自动关联简化的输入键盘
CN115905297B (zh) * 2023-01-04 2023-12-15 脉策(上海)智能科技有限公司 用于检索数据的方法、设备和介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5818437A (en) 1995-07-26 1998-10-06 Tegic Communications, Inc. Reduced keyboard disambiguating computer
US6205418B1 (en) 1997-06-25 2001-03-20 Lucent Technologies Inc. System and method for providing multiple language capability in computer-based applications
KR100288799B1 (ko) 1997-07-22 2001-05-02 구자홍 휴대용 단말기에서 인명 검색 방법
KR200298234Y1 (ko) 2002-09-14 2002-12-20 김민정 다국어용 키보드
US6885317B1 (en) 1998-12-10 2005-04-26 Eatoni Ergonomics, Inc. Touch-typable devices based on ambiguous codes and methods to design such devices
US7016896B2 (en) 2001-01-11 2006-03-21 International Business Machines Corporation Pattern search method, pattern search apparatus and computer program therefor, and storage medium thereof
KR101373552B1 (ko) 2013-02-14 2014-03-12 주식회사 한국스테노 터치스크린을 구비한 속기 장치

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950008022B1 (ko) * 1991-06-19 1995-07-24 가부시끼가이샤 히다찌세이사꾸쇼 문자처리방법 및 장치와 문자입력방법 및 장치
CA2227904C (en) * 1995-07-26 2000-11-14 Tegic Communications, Inc. Reduced keyboard disambiguating system
EP1018069B1 (en) * 1997-09-25 2002-07-24 Tegic Communications, Inc. Reduced keyboard disambiguating system
US7712053B2 (en) * 1998-12-04 2010-05-04 Tegic Communications, Inc. Explicit character filtering of ambiguous text entry
KR100286897B1 (ko) 1998-12-31 2001-04-16 옥치담 무선통신단말기의 전화번호 검색방법
US7286115B2 (en) * 2000-05-26 2007-10-23 Tegic Communications, Inc. Directional input system with automatic correction
US7610194B2 (en) * 2002-07-18 2009-10-27 Tegic Communications, Inc. Dynamic database reordering system
US6631501B1 (en) * 1999-06-30 2003-10-07 Microsoft Corporation Method and system for automatic type and replace of characters in a sequence of characters
KR100390361B1 (ko) * 2000-09-22 2003-07-07 안, 매튜 와이. 한글 키보드 시스템
US20020126097A1 (en) * 2001-03-07 2002-09-12 Savolainen Sampo Jussi Pellervo Alphanumeric data entry method and apparatus using reduced keyboard and context related dictionaries
US8200865B2 (en) * 2003-09-11 2012-06-12 Eatoni Ergonomics, Inc. Efficient method and apparatus for text entry based on trigger sequences
US7991608B2 (en) * 2006-04-19 2011-08-02 Raytheon Company Multilingual data querying
KR101426843B1 (ko) * 2009-08-23 2014-08-06 (주)티피다시아이 확장키를 이용한 정보입력시스템 및 정보입력방법
KR101599227B1 (ko) * 2010-11-22 2016-03-03 서경대학교 산학협력단 한글과 영문 등의 문자 입력이 용이한 터치 스크린용 면촉 자판
KR20130019441A (ko) * 2013-01-04 2013-02-26 강현구 초성과 종성만을 사용하는 검색 지원 방법 및 검색 지원 시스템
KR20150083173A (ko) * 2014-01-08 2015-07-17 한국전자통신연구원 휴대 단말의 텍스트 편집 장치 및 그 방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5818437A (en) 1995-07-26 1998-10-06 Tegic Communications, Inc. Reduced keyboard disambiguating computer
US6205418B1 (en) 1997-06-25 2001-03-20 Lucent Technologies Inc. System and method for providing multiple language capability in computer-based applications
KR100288799B1 (ko) 1997-07-22 2001-05-02 구자홍 휴대용 단말기에서 인명 검색 방법
US6885317B1 (en) 1998-12-10 2005-04-26 Eatoni Ergonomics, Inc. Touch-typable devices based on ambiguous codes and methods to design such devices
US7016896B2 (en) 2001-01-11 2006-03-21 International Business Machines Corporation Pattern search method, pattern search apparatus and computer program therefor, and storage medium thereof
KR200298234Y1 (ko) 2002-09-14 2002-12-20 김민정 다국어용 키보드
KR101373552B1 (ko) 2013-02-14 2014-03-12 주식회사 한국스테노 터치스크린을 구비한 속기 장치

Also Published As

Publication number Publication date
US20150199426A1 (en) 2015-07-16
KR20150083961A (ko) 2015-07-21
US9824139B2 (en) 2017-11-21

Similar Documents

Publication Publication Date Title
US10809914B2 (en) System and method for inputting text into electronic devices
KR102182672B1 (ko) 다국어 통합 자음 패턴 검색 방법 및 그 장치
US9659002B2 (en) System and method for inputting text into electronic devices
US20080294982A1 (en) Providing relevant text auto-completions
JP2012256353A (ja) ショートハンド・オン・キーボード・インタフェースにおいてテキスト入力を改善するためのシステム、コンピュータ・プログラムおよび方法(キーボード上のショートハンド・オン・キーボード・インタフェースにおけるテキスト入力の改良)
CN104808807A (zh) 用于汉字拼音输入的方法和装置
KR101657886B1 (ko) 한자 입력장치와 한자 입력방법 및 이를 이용한 한자 검색방법
CN103257721A (zh) 在点击过程中不断变化以快速输入汉语拼音的屏幕键盘
JP4890551B2 (ja) 文字変換装置、文字変換装置の制御方法
US9563282B2 (en) Brahmi phonemics based keyboard for providing textual inputs in indian languages
KR20090035409A (ko) 문자입력장치
JP2008059389A (ja) 語彙候補出力システム、語彙候補出力方法及び語彙候補出力プログラム
KR100862242B1 (ko) 단어 검색 방법
KR101977594B1 (ko) 외국어 발음 한글 표기 방법 및 시스템
CN104850237A (zh) 输入法衍生候选项生成与处理方法
CN102662491A (zh) 一种基于八叉树的拼音输入法
CN110502128B (zh) 一种汉字多元输入方法及系统
KR20230022675A (ko) 한글 문장예측 입력시스템
KR20220153983A (ko) 한글 문장예측 입력시스템
KR20230037415A (ko) 한글 문장예측 입력시스템
KR20230060649A (ko) 한글 문장예측 swipe 입력시스템
KR20240029703A (ko) 멀티 포인터를 활용한 문자 입력시스템
KR101669799B1 (ko) 잉크 텍스트 처리 장치 및 방법
KR20230016611A (ko) 단어 뒷부분 입력 방법
JP5278377B2 (ja) 電子装置およびプログラム

Legal Events

Date Code Title Description
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant