KR100891358B1 - 사용자의 다음 문자열 입력을 예측하는 글자 입력 시스템및 그 글자 입력 방법 - Google Patents

사용자의 다음 문자열 입력을 예측하는 글자 입력 시스템및 그 글자 입력 방법 Download PDF

Info

Publication number
KR100891358B1
KR100891358B1 KR1020060102354A KR20060102354A KR100891358B1 KR 100891358 B1 KR100891358 B1 KR 100891358B1 KR 1020060102354 A KR1020060102354 A KR 1020060102354A KR 20060102354 A KR20060102354 A KR 20060102354A KR 100891358 B1 KR100891358 B1 KR 100891358B1
Authority
KR
South Korea
Prior art keywords
string
prediction
user
input
character
Prior art date
Application number
KR1020060102354A
Other languages
English (en)
Other versions
KR20070043673A (ko
Inventor
봉래 박
Original Assignee
(주)트루시스템
봉래 박
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)트루시스템, 봉래 박 filed Critical (주)트루시스템
Publication of KR20070043673A publication Critical patent/KR20070043673A/ko
Application granted granted Critical
Publication of KR100891358B1 publication Critical patent/KR100891358B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars

Abstract

본 발명은 사용자의 문자 입력시 다음에 입력될 가능성이 높은 문자열들을 예측하여 제공해 줌으로써 사용자의 선택에 의하여 상기 문자열들 중 하나를 응용 프로그램으로 자동 입력하는 예측 기반의 글자 입력 시스템 및 그 글자 입력 방법에 관한 것이다.
본 발명의 글자 입력 시스템은, 학습 대상의 텍스트에서 문맥 요소별로 이어서 나타나는 경향이 있는 문자열들을 다양한 텍스트들로부터 추출하여 미리 저장한 기 구축 예측 문자열 DB와 실시간 생성되는 텍스트로부터 추출하여 구축하는 실시간 예측 문자열 DB들을 구비하고, 사용자의 실시간 입력 텍스트로부터 문맥 정보를 추출하는 문맥 추출 수단; 추출된 상기 문맥 정보를 이용하여 예측 문자열 DB로부터 사용자가 다음에 입력할 가능성이 크다고 판단되는 적어도 하나 이상의 예측 문자열을 선정하는 예측 문자열 선정 수단; 선정된 상기 예측 문자열을 화면에 표시하여 사용자에게 제시하는 예측 문자열 출력 수단; 제시된 상기 예측 문자열 중에서 사용자로부터 특정 예측 문자열을 선택받아 응용 프로그램상의 키 입력으로 자동 처리하는 예측 문자열 입력 수단; 및 사용자에 의해 새롭게 작성된 텍스트를 대상으로 실시간 학습하여 상기 실시간 예측 문자열 DB들을 구축하는 수단을 포함한다.
본 발명에 따르면, 사용자의 글자 입력시 다음번 입력이 예측되는 문자열들을 제시하고, 사용자로부터 특정 예측 문자열을 선택받아 입력함으로써 특정 글자 입력에 요구되는 키 버튼을 전부 누를 필요없이 완성된 글자나 단어의 문자열을 한 번의 선택으로 입력하여 사용자의 입력 편의성을 지원한다.

Description

사용자의 다음 문자열 입력을 예측하는 글자 입력 시스템 및 그 글자 입력 방법{System and its method for inputting character by predicting character sequence of user's next input}
도면을 설명하기에 앞서 본 발명에서 주로 사용되는 용어를 이하와 같이 정의한다.
************************ 용어의 정의 ************************
문맥 : 어휘가 구사되는 환경. 의미적 및 문법적 언어 환경을 의미함
문맥 요소 : 문맥을 표현하는 개개의 요소
문맥 정보 : 문맥 요소들로 구성되는 문맥에 대한 정보
기본 문자: 해당 언어의 기본이 되는 문자. 예) 영어의 a, b, c..., 한글의 자음 및 모음, 중국어의 부수 등
완성 문자: 한국어나 중국어와 같은 언어에서 나타나는 현상으로 몇 개의 기본 문자가 결합하여 생성되는 별도의 문자. 영어의 경우 기본 문자와 완성 문자가 동일. 예를 들어, 한국어에서 'ㄱ'과 'ㅏ'가 결합하여 '가'라는 새로운 문자를 생성함
불완전 문자: 하나 이상의 기본 문자들로 생성되고 완성 문자로 변형 가능성이 남아 있는 문자
문자열 : 하나 이상의 기본 문자들의 열. 완성 문자들의 열도 결국 기본 문자들의 열임.
불완전 문자열: 불완전 문자가 포함된 문자열 또는 예측 대상 문자열이 완성되지 않은 상태의 문자열
텍스트 : 하나 이상의 문자열들로 구성되는 문자열들의 열
현재 텍스트 : 학습 대상의 텍스트로서 학습 대상의 문자열과 그 앞 일정 길이 이내의 텍스트를 포함
직전 텍스트 : 예측이 필요한 시점까지 입력된 가장 최근 일정 길이 이내의 텍스트. 예측시 문맥 요소들이 추출되는 대상 텍스트임
연관성값 : 문맥 요소와 문자열이 연관된 정도값으로서 함께 발생한 횟수에 각각의 신뢰도에 따른 가중치가 반영된 값으로서 학습과정에서 누적됨
결합도 : 특정 문맥 요소에 특정 문자열이 배타적으로 이어서 나타나는 경향에 대한 정도값으로서 상기 누적된 연관성값에 근거하여 산출됨
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 후술하는 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되지 않아야 한다.
도 1 ~ 도 3은 본 발명의 일 실시예에 따른 화면 키보드의 예시도.
도 4는 본 발명의 주요 개념이 되는 어휘 연상 모델의 개념도.
도 5는 본 발명의 일 실시예에 따른 글자 입력 시스템의 개략적 구성도.
도 6은 도 5의 예측 문자열 DB(200)에 저장되는 학습 결과 데이터의 예시도.
도 7은 도 5의 예측 문자열 학습 수단의 기능 예시도.
도 8은 도 7의 최근 예측 문자열 DB의 SDB 구조 예시도.
도 9는 도 5의 글자 입력 시스템이 구축되는 사용자 단말의 개략적 구성도
도 10 ~ 도 15는 도 9에 도시한 사용자 단말의 예시도.
도 16은 본 발명의 일 실시예에 따른 글자 입력 방법의 전체 순서도.
도 17은 도 16의 단계(S20, S30)에서 예측 문자열을 예측하여 제시하는 단계의 상세 순서도.
도 18은 도 16의 단계(S80)에서 사용자의 현재 문자열을 실시간 학습하는 예측 문자열 DB 구축 단계의 상세 순서도로서 한국어에 적용한 일 사례
도 19는 도 18의 단계(S891)에서 최근성 요구에 따른 SDB를 이용한 최근 예측 문자열 DB 구축 단계의 상세 순서도.
도 20 및 도 21은 도 16의 단계(S60)에서 각각 단일타 입력 방식과 다중타 입력 방식에 의하여 사용자의 직접 입력을 처리하는 단계의 상세 순서도.
* 도면의 주요 부분에 대한 부호의 설명 *
1 : 시스템 2 : 예측 문자열 학습 수단
3 : 문맥 추출 수단 4 : 예측 문자열 선정 수단
5 : 예측 문자열 출력 수단 6 : 예측 문자열 입력 수단
10 : 화면 키보드 100 : 사용자 단말
200 : 예측 문자열 DB
본 발명은 사용자의 다음 글자 입력을 예측하는 글자 입력 시스템 및 그 글자 입력 방법으로서, 더욱 상세하게는, 사용자가 실시간으로 이미 입력한 텍스트 정보에 기초하여 다음번 입력이 예상되는 문자열들을 후보로 추천하고 사용자로부터 그 후보 중에서 실제로 입력하고자 한 문자열을 선택받아 자동 입력하는 글자 입력 시스템 및 그 글자 입력 방법에 관한 것이다.
사용자가 키 입력을 통하여 문자를 입력할 때 개별 키에 할당된 각각의 문자를 모두 입력해야만 하는 키 입력의 수고를 덜고 입력의 편의성을 향상하기 위하여 지금까지 많은 연구가 이루어졌었다.
필기 인식 방식은 화면(디스플레이)의 출력 기능에 입력 기능을 부여하여 사용자가 화면에 직접 손으로 글씨를 쓰면 그 글씨를 인식하여 문자 변환함으로써 사용자의 입력 수고를 덜었다. 하지만, 사용자마다 같은 글자에 대하여 글씨체가 다 다르기 때문에 인식 패턴의 표준을 정하기가 애매하고 실제 인식률이 인간의 시각적 지각력보다 낮기에 그 실용성이 문제시되었다.
음성 인식 방식은 사용자가 마이크를 통하여 음성을 입력하면 그 음성을 수신하여 글자로 변환하는 것으로서, 인식률이 좋을 경우 사용자의 음성 속도와 동시에 변환할 수 있기에 가장 빠르지만, 환경적 요인(장소, 외부 소음)에 따라 인식률 이 저하되고 인간의 청각적 지각력에 비하여 인식률이 낮은 문제점이 있었다. 또한, 인식률이 높을수록 고가의 장비가 요구되기에 실제로 제품화되는 데에는 아직 초보적인 수준이다.
또한, 종래의 글자 예측에 있어서 사용자가 문자열(띄어쓰기 없이 연속된 문자열임)의 처음부터 일부를 입력하면 그 후의 나머지 문자열을 예측하는 방식이 있었다. 이것은 사용자가 실제 입력하고자 하는 문자열의 앞 부분 기본 문자들을 입력하는 것이 요구되며, 사용자의 기 입력 문자에 기반하여 파생될 수 있는 완성된 문자열들을 제시(예 : 사전(事典) 방식 예측)하는 것이기에 완전한 예측이라 할 수 없었다.
한편, 전자장치의 입력장치(예 : 키보드, 키패드 등)의 경우, 제품의 소형화에 부응하여 키 버튼의 배치 및 수에 제약이 있기 때문에 보통 한 개의 키 버튼에는 여러 개의 문자들의 세트가 할당된다(다중타 방식). 예를 들어 컴퓨터 단말의 키보드는 개별 버튼마다 1개의 문자가 할당되는데 반하여 휴대폰 단말의 경우 개별 버튼마다 복수개의 문자가 할당된다. 이처럼 특정 키 버튼에 복수개 문자가 할당되는 경우에는 1개의 완성 문자를 입력하기 위하여 키 버튼의 입력 횟수가 배로 증가하게 된다.
이에 본 발명에서는 사용자의 키 버튼 선택에 의한 문자 입력시 그 입력 횟수를 최소화하여 사용자의 입력 편의성을 지원하고자 하였다.
본 발명은 전술한 바와 같은 점에 착안하여 창출된 것으로서, 학습 대상 텍 스트를 대상으로 문맥을 구성하는 요소들과 함께 인접하여 또는 문맥 범위 내에서 다음번 나오는 경향이 있는 문자열을 미리 학습하고 사용자의 실시간 입력 과정에서, 학습된 후보 대상의 예측 문자열을 제시함으로써 사용자가 개별 문자 키를 일일이 입력할 필요가 없는 예측 기반의 글자 자동 입력 서비스를 제공하는 것을 목적으로 한다.
또한, 예측을 위하여 선행되어야 하는 문맥 요소별 문자열 학습시, 인간이 어휘를 연상하는 과정을 모델링하여 주제에 밀접한 어휘, 최근에 자주 사용하는 어휘, 개개인의 언어 습관에 따라 친숙한 어휘, 일반인들이 기본적으로 알고 사용하는 어휘 등으로 그 발생 패턴을 구분하여 학습하고 예측시 이들이 서로 경쟁하게끔 함으로서, 고수준의 언어 처리 없이도 상기 단순한 문맥 기반 예측을 보완하고 고수준의 언어처리로도 불가한 예측까지 가능케 하여 사용자의 입력 문자에 대한 예측율을 효과적으로 높이는 것을 목적으로 한다.
또한, 문자열의 예측 실패시 사용자가 문자열을 완성하고자 다음 기본 문자를 입력할 때, 소형 정보기기의 입력 환경을 고려하여 보다 효율적으로 입력하고, 기 추출된 문맥 정보와 더불어 입력된 기본 문자 정보에 근거하여 다음 예측이 바로 이뤄지게 함으로써 궁극적으로 의도하는 문자열을 보다 빠르게 입력할 수 있도록 한다.
전술한 바와 같은 목적을 달성하기 위한 본 발명의 사용자의 다음 문자열 입력을 예측하는 글자 입력 시스템에 따르면, 임의 언어로 표기된 학습 대상의 텍스트로부터 의미적 관계 및 문법적 관계를 포함하는 문맥 정보를 분석하여 다음번 입력 문자를 학습한 예측 문자열 DB를 구축하고, 사용자의 실시간 입력시 다음번 입력이 예측되는 문자열을 상기 예측 문자열 DB로부터 선별하여 사용자에게 제공하는 글자 입력 시스템에 있어서, 학습 대상의 텍스트에서 문맥 요소별로 이어서 나타나는 경향이 있는 문자열들을 실시간 생성되는 텍스트로부터 추출하여 실시간 구축하는 적어도 하나 이상의 예측 문자열 DB를 구비하고, 사용자의 실시간 입력 텍스트로부터 적어도 하나 이상의 문맥 정보를 추출하는 문맥 추출 수단; 추출된 상기 문맥 정보로 각각의 예측 문자열 DB를 조회하여 적어도 하나 이상의 예측 문자열과, 문맥 정보와 예측 문자열 사이의 연관 정도를 나타내는 연관성 값을 추출한 후, 상기 연관성 값을 이용하여 개별 예측 문자열 DB에서 각각의 예측 문자열의 예측값(사용자가 다음에 입력할 가능성)을 평가한 후 전체 예측 문자열 DB에서 동일한 예측 문자열에 대한 예측값을 합산하여 적어도 하나 이상의 예측 문자열을 상기 예측값의 순서로 선정하는 예측 문자열 선정 수단; 선정된 상기 예측 문자열을 화면에 표시하여 사용자에게 제시하는 예측 문자열 출력 수단; 제시된 상기 예측 문자열 중에서 사용자로부터 특정 예측 문자열을 선택받아 응용 프로그램상의 키 입력으로 자동 처리하는 예측 문자열 입력 수단; 및 사용자에 의해 새롭게 작성된 텍스트를 대상으로 실시간 학습하여 상기 실시간 예측 문자열 DB들을 구축하는 실시간 학습 수단을 포함하여 사용자의 다음번 입력 문자를 예측하는 것을 특징으로 한다.
바람직하게, 상기 예측 문자열 선정 수단이 검색하는 예측 문자열 DB 중에, 범용 패턴 학습 기능을 수행하여 다양한 분야 및 계층에서 작성된 텍스트들로부터 문맥 요소별로 이어서 나타나는 경향이 있는 문자열들을 추출하여 미리 저장해 놓은 기 구축 예측 문자열 DB인 범용 예측 문자열 DB를 더 구비하는 것을 특징으로 한다.
바람직하게, 상기 예측 문자열은, 개별 키에 할당되는 기본 문자, 완성 문자, 단어, 숫자, 스페이스, 외국어 문자, 기호 및 이들의 조합으로 생성되는 모든 문자열을 포함하는 것을 특징으로 한다.
바람직하게, 상기 예측 문자열 DB는, 적어도 하나 이상의 DB로 구성되어 상기 실시간 학습 수단에 의하여 학습되고 상기 예측 문자열 선정 수단에 의하여 예측시 참조되는 DB로서, 문맥 정보의 분석을 통하여 예측 문자열을 출현하게 만든 문맥 요소; 상기 문맥 요소의 영향력에 의하여 이어서 나타나는 예측 문자열; 및 상기 문맥 요소 및 상기 예측 문자열의 연관성 정도를 나타내는 연관성값을 포함하는 학습 결과 데이터를 저장하는 것을 특징으로 한다.
또한, 본 발명의 사용자의 다음 문자열 입력을 예측하는 글자 입력 방법에 따르면, 임의 언어로 표기된 학습 대상의 텍스트로부터 의미적 관계 및 문법적 관계를 포함하는 문맥 정보를 분석하여 다음번 입력되는 문자를 학습한 예측 문자열 DB를 구축하고, 사용자의 실시간 입력시 다음번 입력이 예측되는 문자열을 상기 예측 문자열 DB로부터 선별하여 사용자에게 제공하는 글자 입력 방법에 있어서, (S10)사용자 단말이 개인 사용자의 학습 대상 텍스트를 실시간 학습하여 구축되는 적어도 하나 이상의 예측 문자열 DB를 구비하는 단계; (S20)사용자가 실시간 입력하는 문자열(직전 텍스트)로부터 추출 가능한 적어도 하나 이상의 문맥 요소를 추출하는 단계; (S30)추출된 상기 문맥 정보로 각각의 예측 문자열 DB를 조회하여 적어도 하나 이상의 예측 문자열과, 문맥 정보와 예측 문자열 사이의 연관 정도를 나타내는 연관성 값을 추출한 후, 상기 연관성 값을 이용하여 개별 예측 문자열 DB에서 각각의 예측 문자열의 예측값(사용자가 다음에 입력할 가능성)을 평가한 후 전체 예측 문자열 DB에서 동일한 예측 문자열에 대한 예측값을 합산하여 적어도 하나 이상의 예측 문자열을 상기 예측값의 순서로 선정하는 단계; (S40)선정된 상기 예측 문자열을 화면에 표시하여 사용자에게 제시하는 단계; (S50)예측이 성공이면, 제시된 상기 예측 문자열 중에서 사용자로부터 특정 예측 문자열을 선택받아 응용 프로그램상의 키 입력으로 자동 처리하는 단계; 및 (S80)상기 단계(S50)에서 예측 성공되거나 또는 사용자의 직접 입력의 도움을 받아 사용자가 입력하려는 문자열이 입력 완료된 경우, 새로 추가된 사용자의 문자열을 실시간 학습하여 대응하는 예측 문자열 DB에 학습 결과를 저장하는 단계를 포함하여 사용자의 다음번 입력 문자를 예측하는 것을 특징으로 한다.
바람직하게, 상기 단계(S10)는, 범용 패턴 학습 기능을 수행하여 다양한 분야 및 계층에서 작성된 텍스트들로부터 문맥 요소별로 이어서 나타나는 경향이 있는 문자열들을 추출하여 미리 저장해 놓은 기 구축 예측 문자열 DB인 범용 예측 문자열 DB를 더 구비하는 단계인 것을 특징으로 한다.
바람직하게, 상기 단계(S40) 이후에, (S60)예측이 실패이면, 사용자로부터 직접 기본 문자를 입력받고 자형 원리에 따라 기 입력된 기본 문자와 결합하여 불완전 문자를 형성하고, 상기 불완전 문자를 문맥 정보로 추가하는 단계; (S70)상기 단계(S60) 이후에, 예측 대상 문자열이 완성되는지를 판단하고, 완성되지 않은 경우 불완전 문자열을 문맥 정보에 추가하고 상기 단계(S20)부터 다시 수행하는 단계를 더 포함하여 예측 실패시 사용자가 직접 입력하는 기본 문자에 기반하여 다시 예측을 수행하는 것을 특징으로 한다.
이하, 첨부도면을 참조하여 본 발명의 바람직한 일 실시예의 구성을 상세하게 살펴본다.
<1. 글자 입력 시스템 구성>
1.1 시스템 소개
도 1 ~ 도 3은 본 발명의 기술을 처음 접하는 자의 기술적 이해를 돕기 위하여 사용자가 문자 예측 서비스를 제공받는 화면 키보드(10)를 예시하며, 그 화면 키보드(10)의 외형이나 기능에 본 발명의 기술을 한정하는 것은 아니다.
도 1을 참조하면, 화면 키보드(10)는 입력 내용 표출창(11), 예측 문자열 버튼(12) 및 그 외 다수의 버튼을 포함하여 구성된다.
상기 화면 키보드(10)는 글자 입력 시스템(1)이 구축된 사용자 단말(100)의 화면에 표시되는 사용자 인터페이스이다. 응용 프로그램상에서 문자를 입력하는 사용자는 화면 키보드(10)를 통하여 다음번 입력이 예측되는 적어도 하나 이상의 예측 문자열을 제공받고, 이 중에서 실제로 입력하고자 한 문자열과 일치하는 특정 예측 문자열을 선택하면 현재 텍스트의 다음 문자열로서 응용 프로그램에 자동 입력된다.
상기 입력 내용 표출창(11)은 사용자가 실시간으로 입력한 문자열이 표시된다. 이 문자열은 사용자가 가장 최근에 입력한 현재 텍스트로서 직접 입력한 문자와 선택을 통하여 입력한 예측 문자열을 포함한다. 이것은 응용 프로그램상에 실시간 자동 입력된 텍스트와는 별도로 사용자가 화면 키보드(10)에서 입력과 동시에 입력 글자들을 용이하게 확인하기 위함이다.
상기 예측 문자열 버튼(12)은 입력 내용 표출창(11)에 표시되는 최근의 텍스트에 근거하여 다음으로 입력될 가능성이 큰 개별 예측 문자열을 개별 버튼에 할당하여 나열하고 있다. 예측 문자열 버튼(12)의 배열 순서는 사용자의 입력 편의성을 지원하는 임의의 순서에 따른다. 예를 들면, 선택될 가능성이 큰 순서로 배열하거 나 또는 사용자가 인지하기 쉽도록 사전식 순서로 배열하는 것이다. 배열 순서는 사용자가 편한 순서로 설정할 수 있도록 하는 것도 가능하다. 즉, 사용자의 입력 편의성을 위하여 다양한 순서 배열이 가능하다.
또한, 화면 키보드(10)상에는 예측 문자열 버튼(12) 이외에 메뉴 버튼 및 특정 기능을 할당한 기능 버튼을 포함하고 있다.
또한, 단어 리스트(14)는 입력된 최근 텍스트에 근거하여 다음으로 입력될 가능성이 큰 단어들을 중심으로 보다 긴 문자열들을 정해진 순서대로 위부터 아래로 나열한다. 상기 단어 리스트는 상기 예측 문자열 버튼과 달리 예측된 문자열들이 그 길이가 더 길고 일정하지 않은 것을 특징으로 하며 길이가 긴 만큼 예측의 적중률은 상대적으로 낮을 수 있다. 예측의 적중률이나 길이가 다른 문자열들을 별도로 구분하여 제시하는 것이 사용자에게 더 편리할 수 있기 때문에 본 사례에서 구분해 보았다.
본 발명에서의 예측 문자열은 임의의 문자열을 구성하는 모든 문자들을 포함하는 개념으로서 개별 키에 할당되는 기본 문자(자소 또는 글자), 완성 문자, 단어, 숫자, 스페이스, 외국어 문자, 기호 및 이들의 조합으로 생성되는 모든 문자열이 포함된다. 예를 들어 한글 사용자에게 예측 문자열을 제공하는 경우, 한글(자소, 음절, 단어, 문자열)은 물론이고, 숫자(전화번호, 숫자열), 스페이스(띄어쓰기, tab), 한글과 혼용된 외국어 문자(영어, 일어, 한자 등), 기호('?', '.', ',' '#', '\', 'ㅜㅜ', '^^' 등) 및 이들이 조합되는 문자열까지도 예측이 가능하다. 즉, 사용자가 사용자 단말(100)에서 응용 프로그램에 입력할 수 있는 모든 문자 및 문자열의 예측이 가능하다.
언어별로 예측 대상 문자열 및 예측의 효과를 살펴보면, 한국어와 같이 일련의 키 버튼에 할당된 기본 문자(자소)를 조합하여 하나의 완성 문자(음절)를 입력하는 언어의 경우, "한"이라는 글자를 입력하기 위해서는 'ㅎ', 'ㅏ', 'ㄴ'의 3개 키를 연속적으로 눌러야 한다. 그러나 본 발명에서는 완성된 예측 문자열("한")을 사용자에게 추천하고 선택받기 때문에 사용자의 키 버튼 선택 횟수가 줄어들어 입력 시간이 단축된다. 또한, 예측 문자열이 단어("한국") 또는 2음절 이상의 문자열("한국에서는 ")일 경우 키 버튼 횟수는 더 급격히 줄어든다.
외국어를 예로 들면, 중국어의 경우 기본 문자(부수)의 조합을 통해 완성 문자를 입력하는 방식이 한국어와 유사하다. 영어(알파벳) 또는 일본어(가타카나 및 히라가나)의 경우 완성 문자의 개념이 없기 때문에 한글이나 중국어처럼 완성 문자를 고려한 예측은 존재하지 않으나 음가에 따른 분절 단위, 부분 문자열 또는 단어 단위로 예측함으로써 마찬가지로 키 입력 횟수를 크게 줄일 수 있다. 예를 들어, 단어 "people"이 사용자가 입력하려는 문자열이라 할 때 자체로 "people"를 예측해 주거나 먼저 분절 단위 'peo'를 예측해 주고 다음으로 'ple'를 예측해 준다. 물론 단어를 바로 예측해 주는 것이 더 바람직하겠지만 적중률이 낮을 가능성이 높아지는 문제가 있으므로 여러 단어들에 공통으로 나타나는 부분 문자열 또는 음가에 따른 분절 단위로 예측해주는 것이 더 현실적일 수 있다.
또한, 중국어 및 일본어에서는 병음 입력(로마자 입력) 방식에 따라서 완성 글자 또는 단어의 발음을 영문자로 입력하고 동시에 그 발음에 대응하는 글자 또는 단어를 추천받아 사용자가 선택 입력한다. 예를 들어 중국어로 사람이라는 뜻의 "人"을 입력하려면 발음을 영문 표기한 "ren"을 입력한다. 즉 1개의 글자 "人"을 입력할 때 'r', 'e', 'n'이라는 3개 영문 자소키를 선택해야 한다. 이 역시 복수개 키 버튼을 눌러 문자열을 입력하는 한글 입력 방식과 매우 유사하기에 본 발명이 적용될 경우 입력 시간 단축의 효과를 획득할 수 있다.
이러한 글자 입력시 단축효과를 얻기 위하여 일부 언어에서는 단순한 문자열 예측 방법이 사용되기도 하였는데, 대부분이 직전 인접 문자열(띄어쓰기 없이 연속된 문자열)에 근거하여 다음 문자열을 예측하는 것이었다. 즉 단어의 처음 부분 문자열은 하나하나의 기본 문자열을 직접 입력하고 이렇게 입력된 앞 부분 문자열에 근거하여 이후 문자열을 예측하는 방식이다.
이에 반하여 본 발명에서는 상기와 같은 단순한 방식과 달리, 문맥을 함축할 만한 문맥 요소들을 추출하고 이 문맥 요소와 예측 문자열과의 연관성을 정의하는 정보(의미적 및 문법적 관계를 고려한 언어 요소간의 밀접도)에 근거하여 어휘를 구성하는 문자열의 전부 또는 일부를 예측하는 방식으로 예측 대상 단어의 첫 문자열부터 예측이 가능하다. 예를 들어, "예쁜 아이의"이라는 기 입력된 텍스트에서 공백 다음에 띄어져 나올 문자열 또는 단어로 "얼굴", "마음" 등의 문자열을 바로 예측할 수 있다.
바로 예측이 가능한 이유를 상기 예를 통해 다시 설명하면, 사용자가 "얼굴"을 입력하고자 의도한 경우, 이미 예측 문자열 "얼굴"과 이 "얼굴"이라는 단어를 유발하게 한 다양한 문맥 정보들이 학습된 상태에서, 사용자가 현재까지 입력한 최 근 텍스트 "예쁜 아이의 "로부터 추출되는 문맥 요소들이 이미 학습된 문맥 정보에 포함되어 있기 때문에 이에 근거하여 "얼굴"을 예측할 수 있는 것이다.
한편, 모든 언어가 문자를 통해 어휘를 표시하고 의미적 및 문법적 연관성에 따라 어휘들이 배치됨에 따라 특정 어휘에 앞서 상호 연관된 문맥 요소들이 존재한다는 점이 모든 언어에서 동일하고 본 발명도 이러한 점에 근거하고 있기 때문에, 본 발명에서의 문맥 기반 문자 예측은 한국어 및 모든 외국어에 적용이 가능하다. 따라서, 이하에서는 한국어 예측을 위주로 설명하며 그 외 외국어 예측 또한 한국어 예측의 예시를 통하여 충분히 적용이 가능하다.
문자열 예측에 있어서 중요한 것은 예측의 적중률이다. 일반적으로 문자들이 결합하여 어휘를 생성할 때, 문자들의 조합 가능성은 매우 높은데 반해 실제 사용되는 어휘 수는 비교할 수 없을 만큼 적기 때문에 앞 부분의 일부 문자열이 알려진 상태에서 단어를 완성하는 다음 문자열을 예측하는 것은 그다지 어렵지 않은 편이며, 알려진 앞 문자열들이 길면 길수록 적중률이 높아지게 된다. 그러나 어휘 간의 조합은 실제로 가능한 경우 수가 너무 많아서 한 단어의 전체 또는 앞 부분 문자열을 예측하는 것은 결코 쉬운 일이 아니다.
단어(또는, 어절) 자체나 단어의 앞 부분 문자열을 높은 적중률로 예측하고 뒷부분 문자열은 더욱 높은 적중률로 예측하기 위해서는 형태소분석, 태깅, 구문 분석, 의미 분석, 문맥 분석, 대화분석 등 고수준의 자연어 처리가 필요하게 된다. 그러나 현재의 언어 처리 기술은 각 단계에서의 중의성(또는 모호성)이 매우 높아서 분석 결과 자체가 정확하지 못하고 상대적으로 큰 컴퓨터 자원과 시간을 필요로 하게 되는 문제점이 존재한다.
본 발명은 이러한 문제를 해결하기 위해 고수준의 언어 처리에 의존하기보다 오히려 문맥의 개념을 단순화하는 반면 인간이 어휘를 연상하는 환경을 모델링하고 그러한 환경을 구분하여 각각에 대해 개별적으로 학습하고 예측하는 방식을 적용함으로써 언어 처리 방식의 문제점을 효과적으로 극복할 뿐만 아니라 고수준의 언어 처리로도 예측이 불가능한 경우까지 처리할 수 있게 된다. 고수준의 언어 처리로 예측이 불가능한 경우란 동일한 문맥에서도 사람에 따라 또는 비언어적 환경에 따라 다음에 사용될 어휘가 다른 경우를 의미하며 언어 처리에만 의존하면 항상 같은 어휘만을 예측하는 문제가 발생한다.
따라서, 본 발명에서는 개별 언어에서 고수준의 자연어 처리에 비하여 상대적으로 단순한 문맥 분석과 어휘 연상 모델을 통해 단어나 어절의 첫 문자열 또는 띄어쓰기 다음에 나오는 문자열의 효과적인 예측이 가능하며 뒤이은 문자열의 예측이 보다 용이해진다. 그리고 개별 사용자의 언어 사용 패턴에 따른 어휘는 물론이고 어휘를 구사하는 환경에 적합한 어휘를 예측할 수 있다. 특히, 이러한 예측 기능은 고수준의 언어 처리를 하지 않기 때문에 특정 언어에 크게 구애받지 않고 모든 언어에 효과적으로 용이하게 적용할 수 있다.
도 2 및 도 3은 화상 키보드(10)의 초기 구동 동작과 예측 실패시의 후속 인터페이스 동작을 예시한다.
도 1에 도시한 화상 키보드(10)상에서 하단에 있는 키보드 형태의 키패드는 사용자 설정에 의하여 표시가 생략될 수 있다. 키패드는 화면의 넓은 영역을 차지 하여 다른 응용 소프트웨어가 노출될 수 있는 공간을 작게 만드는 문제가 있다. 만약, 사용자 단말(100)의 화면이 상대적으로 작은 소형 휴대용 단말일 경우(예 : PDA, 휴대폰 등), 키패드뿐만 아니라 입력 내용 표출창(11)까지도 생략될 수 있다. 이와 같은 경우, 사용자는 바 형태의 예측 문자열 버튼(12)만 화면에서 제공받고, 키패드 대신에 사용자 단말(100)의 키 입력 장치(101)를 통하여 입력하고, 예측 문자열 버튼(12)의 선택시 대응하는 예측 문자열은 배경 화면에 해당하는 응용 프로그램으로 바로 입력된다.
설명의 편의상 사용자가 "아름다운"을 입력하고자 하는 상태이고 음절 단위 예측에 따라서 완성 문자 1문자씩 예측 문자열로 제공받는 것으로 가정한다.
사용자가 사용자 단말(100)에서 화상 키보드(10)를 구동하면 화면 2a와 같은 윈도우 형태의 화상 키보드(10)가 초기 화면으로 표시된다. 사용자가 한글 입력을 위하여 "한" 기능 버튼을 선택하면, 화면 2b와 같이 복수개의 자소가 개별 버튼에 할당된 예측 문자열 버튼(12)이 표시된다.
사용자는 '아'를 입력하고자 첫 자소에 해당하는 'ㅇ'이 할당된 예측 문자열 버튼(12)을 선택한다. 여기서, 설명의 편의상 본 발명의 기술을 쉽게 이해시키기 위하여 사용자가 'ㅇ'을 입력하는 것으로 설명하였으나 실제로 본 발명에서는 앞에 기 입력된 텍스트가 있는 경우 첫 문장의 첫 문자열도 예측이 가능해지기 때문에 처음부터 '아'라는 완성 문자가 바로 예측될 수 있다.
사용자가 'ㅇ'을 선택하면, 화면 2c와 같이 불완전 문자 'ㅇ'으로 시작하는 개별 예측 문자열을 예측하여 개별 예측 문자열 버튼(12)에 자동 할당한다. 사용자 가 '아'에 대응하는 버튼(12)을 선택하면, 입력 내용 표출창(11)에 '아'가 표시된다. 이후로, '아'가 입력된 상태에서 사용자는 연속해서 예측 가능성이 높은 후보 대상의 예측 문자열을 제시받고 그 중에서 '름'에 대응하는 예측 문자열 버튼(12)을 선택한다. 이와 같은 방식으로 '다' 및 '운'에 대응하는 예측 문자열 버튼(12)을 선택한다. 정상적인 한글 입력에서는 키보드를 통하여 "아름다운"을 입력할 때 총 10회의 키 버튼 입력(ㅇ, ㅏ, ㄹ, ㅡ, ㅁ, ㄷ, ㅏ, ㅇ, ㅜ, ㄴ)이 요구되는데 반하여 한 글자씩 예측될 경우는 단 4회의 예측 문자열 버튼(아, 름, 다, 운) 입력이 요구된다.
이상은 한글의 음절 단위 예측이라 가정하여 완성 문자 1자씩을 예측 문자열 후보로 제시하는 것을 예시하였지만 본 발명에서는 보다 긴 문자열 단위 예측이 가능하기 때문에 사용자가 'o'을 입력한 상태에서 바로 앞 부분 '아름' 또는 어절 자체 '아름다운'을 예측하여 제시할 수 있다. 또한, 본 발명에서 예측이 100% 실패되면 실제 입력과 같이 10회의 키 버튼 선택이 요구된다. 반면에, 문자열 예측이 가장 이상적으로 성공되는 경우 "아름다운 "을 한 번에 예측하여 사용자가 미처 생각지도 못한 띄어쓰기까지 단 한 번의 키 버튼 선택으로 입력될 수도 있다.
위에서 사용자는 5회에 걸친 예측 문자열 버튼(12)의 선택을 통하여 "아름다운 "을 입력하고 다음으로 '것은'이라는 어절을 입력하려 한다면 화면 3a를 참조할 때, '것'이 예측되어 있으므로 단지 선택하는 것만으로 어절 '것은'의 첫 음절을 용이하게 입력 완료할 수 있다. 그러나 예측되지 않은 경우를 살펴보기 위해 다음으로 입력하려는 어절이 '천사' 즉, 텍스트 "아름다운 천사 ...."라는 문자열을 입 력하고자 하는 것으로 가정한다.
화면 3a를 참조하면, 사용자가 복수개 예측 문자열을 제시받았으나 그 중에 원하는 예측 문자열 '천'을 추천받지 못했다. 사용자는 기능 버튼을 선택하여 현재 세팅된 "문자열 예측 기능"을 "사용자 입력 기능"으로 전환한다. 단, "사용자 입력 기능"으로의 전환은 상기 키패드가 표시되어 있는 경우 바로 기본 문자의 입력이 가능하므로 불필요하다. 본 발명에서는 상기 키패드를 다중타 방식을 이용하여 화면에서 차지하는 영역이 최소화되게 함으로써 항상 화면 일 영역에 표시하고 바로 이용할 수 있게 하는 것도 하나의 목표로 하고 있다.
화면 3b와 같이 사용자 입력 기능으로 전환되면, "아름다운 "이 입력되었을 때 예상되는 자음 문자를 특정 순서로 나열한다. 사용자는 '천'을 입력하기 위하여 첫 자음에 해당하는 'ㅊ' 예측 문자열 버튼(12)을 선택한다. 여기서 본 발명은 자음 문자를 예측하여 그 예측 가능성에 따라 순서적으로 나열할 수도 있고 그냥 사전식 순서로 모든 자음을 나열할 수도 있다. 또한, 본 실시예에서는 표출공간의 제약으로 사용자가 직접 입력하려 할 때 별도의 입력 모드 전환 버튼을 눌러서 자소 버튼들이 나오게 하였지만, 상기에서 언급하였듯이, 휴대폰과 같은 소형 단말에서와 같이 개별 예측 문자열 버튼(12)에 복수개 자음을 할당하여 그 버튼 수를 줄인 후 항상 화면 일 측에 표출되어 있게 함으로서 즉시 사용자 직접 입력이 가능하게 할 수도 있다.
화면 3c는 'ㅊ'이 선택됨과 동시에 자동으로 불완전 문자 'ㅊ'으로 시작되는 예측 가능성이 높은 예측 문자열이 제시되는 화면이다. 사용자는 '천' 예측 문자열 버튼(12)을 선택한다. 만약, '천'을 제시받지 못한 경우 사용자는 'ㅓ'를 입력하고 예측은 '처'라는 불완전 문자에 기반하여 다시 재수행된다. 이러한 과정이 반복되어 다시 '천'을 제시받지 못한 경우 사용자는 'ㄴ'을 입력한다.
한편, 본 발명의 기술에서는 문자열 단위 예측에 따라서 'ㅊ' 다음에 바로 "천사" "천사가" 등이 예측될 수 있음은 물론이다.
1.2 시스템의 기본 개념 모델
본 발명의 기술은 3가지 개념 모델에 기반한다. 첫 번째는, 띄어쓰기 이후에 나오는(결합력이 약한) 어절(단어)의 첫 문자열까지도 예측할 수 있게 하는 문맥 정보 개념의 모델이다. 두 번째는 본 발명의 핵심 기술을 형성하는데 가장 중요한 개념으로써 실제 인간이 언어를 입력하는 상황에서 어휘를 연상하는 과정에 대한 개념 모델(어휘 연상 모델)이다. 그리고 마지막 세 번째는 예측 실패시 사용자의 입력 편의성을 지원하고자 응용한 모델로서 예측 실패로 인하여 사용자가 직접 입력하는 상황이 요구될 때 사용자가 직접 입력하는 기본 문자에 다중타 입력 방식을 적용한 다중타 입력 개념의 모델이다. 이하에서는 이들 기본 개념 모델을 하나씩 설명한다.
통상의 문자 예측은 주로 단어를 구성하는 인접 문자열(사이에 공백(space)없이 결합된 문자열) 중 앞 부분이 이미 입력된 상태에서 다음 부분을 예측하는 방식이다. 예를 들면, 음절 "아름"이 입력된 상태에서 "다운"(아름다운), "답고"(아름답고) 등을 예측하는 것이다. 영어의 경우는 "pe"가 입력된 상태에서 "ople"(people), "ace"(peace) 등을 예측하는 것이다.
그러나 본 발명에서의 문맥 정보 모델은 단순히 인접 문자열을 구성하는 문자들 간의 결합 가능성은 물론이며, 하나의 개별 문자열이 단어를 구성하여 전체 문장에서 차지하는 의미적 관계 및 문법적 관계로 정의되는 언어적 환경을 이용한다. 단어나 문장은 해당 언어를 표현하는 문자들로 구성된다. 문자들이 결합하여 단어를 만들기도 하고, 한국어의 경우 그 전에 음절을 만들기도 한다. 단어는 임의적으로 사용되는 것이 아니라 의미적으로 문법적으로 적합한 상황에서 사용되며 이를 언어학적으로 문맥 일치라 한다. 즉, 문맥 일치는 의미가 통하는 단어들이 문법에 맞게 사용된다는 것을 말한다. 예를 들어, "꽃이 달린다"는 의미적으로 통하지 않는 단어들이 함께 있어서 어색하고, "꽃이피었다"도 문법적으로 어긋났기 때문(띄어쓰기 규칙 위반)에 어색하다. '피다'라는 용언은 앞에 '꽃이'라는 문자열 다음에 올 수 있는데 공백을 사이에 둔 상황에서 가장 자연스러운 사용이 된다. 왜냐하면, '꽃'이라는 명사와 '이'라는 주격조사 다음에는 띄어쓰기를 해야 하며, '피다'라는 단어는 '꽃'이라는 단어와 의미적으로 통해야 하기 때문이다.
이와 같이 본 발명은 단순히 단어나 어절내 인접 문자열만을 고려한 것이 아니라 의미를 가진 단어 및 품사, 띄어쓰기 여부 등의 문법적 요소를 함께 고려하는 점에 특징이 있다. 일반적으로 단어나 어절을 구성하는 공백없이 결합된 문자열들은 결합력이 높은 편이지만 사이에 공백이 있는 경우(또는, 공백이 없다 하여도 다양한 어휘들과 함께 사용되는 어휘들의 경우) 결합력이 낮아서 공백 다음의 문자열을 예측하기 어렵다. 하지만, 이렇게 문맥을 고려하게 되면 의미적 관계 및 문법적 관계를 고려해야 하는 결합의 제약이 발생하고 예측 결정력이 강해져 공백 다음에 나오는 첫 번째 문자열의 예측도 가능해진다.
그리고 본 발명에서 문자열을 예측한다는 것은 예측 대상이 한국어의 경우 음절, 단어, 어절, 부분 음절열이 될 수 있고, 영어의 경우도 단어 또는 단어의 부분 문자열이 될 수 있고, 중국어의 경우 완성 한자 또는 한자열이 될 수 있다. 이와 같이 본 발명은 모든 언어에 적용될 수 있다. 왜냐하면, 모든 언어는 문맥을 가지게 되며, 그 문맥에 맞게 구성 문자열(단어)들 간에 의미적 관계 및 문법적 관계가 존재하기 때문이다.
본 발명의 예측 목적이 키 입력의 횟수를 줄이는 것이므로 1개 이상의 문자들의 열이 그 예측 대상이 되는데, 해당 언어의 특성에 맞게 그 단위를 정할 수 있다. 한국어의 경우 완성 문자는 자소들의 결합이고 중국어의 한자 완성 문자는 부수들의 결합이며 이 완성 문자의 나열로 단어 및 어절과 같은 문자열을 이룬다. 그리고 일어 및 영어는 완성 문자의 개념이 없기에 바로 기본 문자의 나열로 단어를 이룬다. 즉, 한국어의 예측 대상 단위는 기본 문자 예측, 완성 문자 예측(음절 단위 예측), 단어 및 문자열 단위의 예측이 가능하고, 영어의 경우, 기본 문자 예측, 단어 및 문자열 단위의 예측이 가능하다. 이 예측 단위는 해당 언어의 특성에 따라서 적절하게 예측 전략을 수립하여 설정할 수 있다. 이때 긴 문자열 단위의 예측이 입력의 편의성을 최대화하는 것은 물론이다. 그 이유는 모든 언어는 기본 문자의 입력으로 문자열을 형성하는데 이들의 입력 과정에는 일련의 키 스트로크(key stroke)가 요구되며, 문자열 단위의 예측이 성공일 경우 1번의 키 스트로크가 복수의 기본 문자 키 스트로크를 대신하기 때문이다. 하지만, 긴 문자열의 경우 예측의 적중률이 낮아질 수 있기 때문에 이를 고려하여 적절히 설정하는 것이 바람직하다.
이하에서는 본 발명의 핵심 기술을 형성하는데 가장 중요한 개념이 되는 어휘 연상 모델을 상세히 설명한다.
도 4는 본 발명의 개념이 되는 어휘 연상 모델의 개념을 도시한다.
사람들이 언어를 구사할 때 어휘 선정에 영향을 미치는 요소로서 크게 4종류의 어휘 지식이 있다고 가정한다. ㄱ)첫 번째는 주제에 관한 어휘들에 대한 지식, ㄴ)두 번째는 최근에 자주 사용하는 또는 유행하는 어휘들에 대한 지식, ㄷ)세 번째는 자신의 직업 및 언어적 습관과 밀접한 관련이 있는 어휘들에 대한 지식 및 ㄹ)마지막 네 번째로 일반 대중들에게 보편화된 기본적인 어휘들에 대한 지식이다. 그리고 이들 4종류의 어휘 지식이 어휘 연상에 영향을 미치는 정도가 각각 다르다고 가정한다. 우선 상기 ㄱ)의 지식이 어휘 연상에 큰 영향력을 가지며, 다음으로 ㄴ), ㄷ) 및 ㄹ) 순으로 영향력을 가진다. 전술한 ㄱ) ~ ㄹ) 순서는 4종류의 지식이 어휘 연상에 동시에 영향을 미치기는 하지만 그 정도가 서로 다르게 작용한다고 본다.
상기 가정을 컴퓨터 처리에 적합하게 모델화한 것이 도 4에 도시한 어휘 연상 모델이다. 주제별DB가 주제에 관한 어휘 지식(상기 ㄱ)과 대응), 최근성DB가 최근에 유행하는 어휘에 대한 지식(상기 ㄴ)과 대응), 개인성향DB가 어휘 구사자 자신의 언어적 습관에 따라 사용하는 어휘에 대한 지식(상기 ㄷ)과 대응), 마지막으로 범용예측DB가 일반적으로 사용되는 어휘에 대한 지식(상기 ㄹ)과 대응)을 각각 담당한다.
범용예측DB는 수많은 사람들이 다양한 분야에서 작성한 대량의 언어 말뭉치에서 미리 학습하여 구축되고, 개별성향DB는 본 지능형 한글 입력기를 사용하기 시작한 시점부터 사용할 때마다 사용자의 언어 습관을 실시간 누적 학습하면서 구축된다. 그리고 최근성DB는 최근에 사용된 일정 분량의 언어 사용 정보만을 실시간 학습하여 저장함으로써 구축되고, 주제별DB는 원칙적으로 특정 문서에 국한하여 실시간 학습된 언어 사용 정보가 저장되어 구축된 후 문서 작성이 완료되면 제거된다. 특정 문서의 완료 시점을 모를 경우 해당 정보기기의 파워 온(power on)한 시점부터 파워 오프(power off)한 시점까지만 유지된다. 이는 해당 정보기기를 사용하여 글을 입력하려 할 때에는 그 시점에 맞는 어떤 주제가 있을 것으로 가정하기 때문이며, 본 명세서에서 사용된 어휘들을 보아도 알 수 있듯이 특정 주제와 관련된 텍스트에서는 동일한 어휘들이 자주 반복되어 사용되는데 이를 예측에 반영하기 위함이다. 개별성향DB는 지속적으로 DB의 크기가 커지게 되지만 최근성DB는 항상 일정 크기 이하의 용량을 가지게 된다. 따라서, 최근성DB는 최근이라는 시간적 한시성으로 용량 제한 관리가 당연히 요구되며 경우에 따라서 지속적 학습을 통해 용량이 증가하는 DB의 경우에도 그 용량 제한 관리의 필요성이 있을 수 있다.
이들 각 DB들에 저장되는 언어 사용 정보란, 형태소분석 등의 언어분석을 통해 앞서 또는 기 입력된 글을 분석하여 추출한 문맥 요소와, 각 문맥 요소별로 이어서 함께 나타난 문자열(음절, 단어, 등) 간의 연관성에 대한 정보이다.
이와 같은 어휘 연상 모델에서 문자열의 예측은 각각의 예측정보DB들에 대해 동시에 수행된다. 사용자가 글을 입력중인 상황에서 바로 앞서 입력한 어절들과 현 재 입력중인 어절의 앞 부분(이하 "직전 텍스트"로 표기함)으로부터 문맥 요소들을 추출하고, 추출된 문맥 요소별로 함께 나타날 가능성이 높은 예측 문자열 후보들을 각 예측정보DB에서 검색한다. 그리고 문맥 요소별로 각 예측정보DB에서 검색된 예측 문자열 후보들을 통합 평가하여 사용자에게 제시되는 최종 예측 문자열을 선정한다.
최종 선정 방법에 대해서 설명하면, 다음과 같다.
본 발명에서 예측 문자열 후보들은 각각 특정 문맥 요소에 배타적으로 이어서 나타날만한 정도에 해당하는 정도값을 가지며 사용자는 이 중에서 높은 값 순서로 제시받는다. 이 정도값은 평가 방식에 따라 다양하게 존재할 수 있으며, 본 발명에서는 문맥 요소와 문자열이 함께 나타날 때마다 추출된 문맥 요소 및 문자열의 신뢰도를 의미하는 가중치와 각 DB의 특성을 고려한 평가 방식을 이용한다.
상기 가중치는 예측율과 직결되는 신뢰도 있는 정도값을 구하기 위해서 문맥 요소별로 문자열과의 결합력을 고려한 것이다. 상기 결합력이란 문맥 요소별로 위치 등에 따라 예측 대상 문자열의 예측에 미치는 영향력의 차이를 의미한다. 예를 들어 텍스트 "예쁜 아이에게 선물을"에서 문자열 '예쁜'은 '아이'에 밀접한 관계로 영향을 미치지만 '선물'에는 영향력이 약하다고 볼 수 있다. 하지만, 단지 문맥 요소와 예측 대상 간의 발생 정도에 따른 가중치만 고려하면 '선물을' 학습하려 할 때 '예쁜'과 '아이에게'에서 추출되는 문맥 요소들이 동일하게 '선물을' 예측하는 데에 적용되게 된다. 이럴 경우 예를 들어, "아이에게 예쁜 "에 이어서 '인형을' 예측해야 할 상황에 '선물'이 예측되어 나올 가능성이 커지게 되는 문제가 있다. 이에 거리 등 예측 대상 문자열에 미치는 영향력을 구별하여 문맥 요소와 문자열 간의 가중치를 산정하는 데에 반영한다. 즉, 학습 대상 문자열과 멀리 떨어진 문자열일수록 낮은 값을 할당하는데 이 가중치의 할당값은 당업자의 휴리스틱이나 전략에 따라서 정해질 수 있다.
또한, 문맥 요소와 예측 대상 문자열의 추출시에도 그 신뢰도가 다를 수 있는데, 예를 들어, 텍스트 "성웅 이순신의"에서 문맥 요소 '성웅_명사'와 함께 나오는 경향이 있는 다음 단어를 학습하기 위해, 기계적으로 어절 '이순신의'를 형태소 분석하면, 두 가지의 분석 '이순_명사+신의_명사'와 '이순신_고유명사+의_조사'가 가능하다. 이 경우 문맥 요소 '성웅_명사'와 함께 나오는 경향이 있는 단어로 '이순'과 '이순신' 모두를 고려할 수밖에 없다. 물로 고수준의 언어처리를 사용하면 단독으로 '이순신'의 추출이 가능할 수 있으나 쉽지 않으며, 일단 본 발명에서는 고수준의 언어처리에 크게 의존하지 않으므로 이상과 같은 문제가 발생할 수 있다. 이러한 경우 중의성이 발생한 정도만큼 그 신뢰도를 낮게 잡고 상기 가중치에 이를 반영한다. 따라서 상기 가중치는 문맥 요소와 문자열의 결합력이나 신뢰도에 따라 결정되게 된다. 물론 이러한 두 가지 가중치 설정 방식은 본 발명의 일 예로서 적용한 것이며 휴리스틱이나 적용 전략에 따라 달라질 수 있음은 물론이다.
이상과 같이 학습 대상 텍스트에서 문맥 요소와 문자열 쌍이 발견될 때마다 해당 가중치가 산정되고 전체 학습과정에서 이 가중치들은 각 예측정보DB별로 누적된다. 이 때 문맥 요소별로 일부 특정 문자열들과만 주로 함께 나타나는 경향이 있는 문맥 요소도 있고 별다른 편중없이 다양한 문자열들과 함께 나타나는 문맥 요소 도 있을 것이다. 물론 특정 문자열들과만 함께 나타나는 경향이 큰 문맥 요소일수록 해당 문자열들과 결합도가 높아 예측에 크게 도움되는 것은 물론이다. 이러한 문맥 요소와 문자열간의 결합도는 예측의 기본 척도가 되며 <수학식 1>에 의해 각 문맥 요소에 대해 각 예측 정보 DB별로 산출된다.
Figure 112006075895262-pat00001
여기서, "동일 유형"이라 함은 앞서서 예측 전략의 일환으로 설명한 예측 단위(예 : 기본 문자, 완성 문자(음절), 단어 및 문자열 단위)가 동일한 것을 말한다. 즉, 연관성값을 구할 때 음절 단위 또는 단어 단위라는 각각의 동일한 예측 단위 유형 내에서 구하는 것이다. 이 밖의 유형은 동일 길이의 문자열 등이 있을 수 있다. 유형을 구분하는 이유는 예측의 성격상 예측 단위가 기본 문자, 완성 문자, 단어 등의 문자열로 갈수록 가능한 문자의 조합이 많아지는 등으로 인하여 예측율이 낮아지기 때문에 동일한 예측 단위의 조건에서 예측율을 비교하는 것이 공평하기 때문이다. 물론 전략에 따라서는 구분하지 않고 동일하게 취급할 수도 있다.
<수학식 1>에 따르면 분모에 해당하는 "동일한 문맥 요소에 이어서 나타난 동일 유형의 모든 예측 문자열들과의 연관성값의 합계"가 클수록 문맥 요소의 결합도는 낮아지고 예측에 미치는 영향도 작음을 알 수 있다. 상기에서 언급하였듯이 문맥 요소별로 나타나는 문자열에 대한 학습은 일괄 또는 실시간으로 각 예측정보 DB들에 대해 수행된다. 예측정보DB에 따라 학습량이 많은 것도 있고 작은 것도 있는데, 학습량이 많은 DB일수록 문맥 요소별로 문자열들의 편중 현상도 작고, <수학식 1>의 분모를 크게 할 가능성이 높다.
이미 언급하였듯이, 각 예측정보DB들은 그 구축 원칙이 상이하다. 범용예측DB의 경우 다양한 직업과 계층의 사람들이 작성한 글에서 학습한 데이터로서 DB의 데이터량이 매우 크다. 반면 개별성향DB의 경우는 해당 사용자가 작성한 글에 대해서만 학습하기 때문에 상대적으로 데이터량이 적고 사용자의 언어 패턴에 편중된 면이 있다. 다음으로, 최근성DB는 일정 분량으로 제약되어 있기 때문에 데이터 양이 상기 두 DB에 비해 훨씬 작다고 볼 수 있다. 이는 후술되는 타사용자와의 커뮤니티 환경에서 구축되는 인바운딩 DB의 경우도 유사하다. 그리고 주제별DB는 원칙적으로 해당 정보기기를 켠 시점부터 종료 시점까지 작성된 글에 대해서만 학습이 이뤄지므로 데이터량이 가장 작다고 할 수 있다.
즉, DB의 용량이 작고 편중 현상이 강한 주제별 DB에 존재하는 문자열일수록 예측 후보로 선정될 가능성이 커지게 되며, DB의 용량이 크고 편중현상이 약한 범용 예측 DB에 존재하는 문자열일수록 예측 후보로 선정될 가능성이 작아지게 된다. 이것은 전술한 어휘 연상 모델의 DB 구조에서 주제별DB가 어휘 선정에 제일 영향이 크다는 내용과 일맥상통한다. 따라서 데이터량이 적은 DB에서 예측한 문자열일수록 높은 확률 결합도를 갖게 될 가능성이 크고 이들을 통합하여 평가할 때 확률이 높은 문자열이 우선 선택되게 되므로 주제별DB, 최근성DB, 개별성향DB, 범용예측DB 순으로 예측한 문자열이 선정될 가능성이 높다고 볼 수 있다. 이러한 현상은 본 발 명의 문자 예측 시스템이 사람처럼 오래된, 덜 친숙한 단어보다 최근에 자주 사용한, 친숙한 단어를 선호하여 예측해 주는 효과를 갖게 된다. 물론 주제별DB를 통해 예측한 문자열이 항상 최종 선정되는 것은 아니다. 비록 총 연관성값이 큰 DB에서 예측한 문자열의 경우도 편중된 어휘 관계가 존재하여 해당 연관성값이 매우 클 경우 주제별DB에서 선정한 문자열보다 더 높은 확률 결합도를 가질 수 있기 때문이다.
이와 같은 확률 결합도는 발생 빈도, 가중치, DB의 특성이 반영된 데이터량에 근거하여 객관적인 예측 가능성을 산출할 수 있게 한다. 문자열을 예측할 때, 이러한 확률 결합도를 문맥 요소별로 각 예측정보DB들에 대해 계산하게 되는데, 이때 문맥 요소의 유형에 따라 별도의 가중치를 부여하여 확률 결합도 산정에 반영한다. 이러한 가중치는 앞서 연관성값을 산정할 때, 문맥 요소의 유형에 따라 부여한 가중치와 유사하다. 즉, 직전 텍스트에서 추출한 문맥 요소 중에는 거리 등에 따라 예측에 미치는 영향력이 다르기 때문에 문맥 요소의 중요도를 별도의 가중치로 설정하여 검색된 문자열들의 확률 결합도에 반영한다. 예를 들어, 직전 텍스트가 '예쁜 아이에게 "일 때, 예측 대상으로부터 떨어져 있어서 예측에 미치는 영향력이 작은 것으로 판단되는 어절 '예쁜'에서 추출한 문맥 요소로 검색된 문자열들의 확률 결합도는 떨어진 거리만큼 그 값을 낮춘다.
또한, 예측 전략에 따라서는, 각 예측정보DB에 별도의 가중치를 설정하고 각 DB에서 추출된 문자열의 확률 결합도에 이를 반영할 수 있다. 이는 전략적으로 DB들의 비중을 구분하여 예측에 이용하려 할 때 적용하는데, 예를 들어, 특정 분야의 어휘들을 위주로 예측 받고자 하는 경우 특정 분야의 어휘들이 주로 학습된 DB를 주제별DB 형태로 본 예측 시스템에 포함하고(또는, 본 어휘 연상 모델의 새로운 구성 DB중 하나로 추가하여) 여기서 추출한 문자열들의 확률 결합도를 비중만큼 증가시킴으로써 해당 분야의 어휘(문자열)들을 주로 예측받게 된다. 다만, 보통의 경우에는 각 DB들 특성과 밀접하게 관련있는 용량이 상기 <수학식 1>의 분모에 반영되어 있기 때문에 별도의 가중치를 설정하지 않더라도 별문제는 없을 것으로 판단된다.
이렇게 각 DB별로 산출된 확률 결합도를 가지고 각 DB에서 예측한 문자열들을 합쳐서 정렬하는데, 이들 중에는 DB들 간에 동일한 문자열이 존재할 수 있다. 이 경우 해당 확률 결합도를 더하여 단일화한다. 그리고 문자열을 예측하기 위하여 기 입력된 텍스트, 즉 직전 텍스트에서 추출한 문맥 요소는 보통 여러 개이기 때문에, 다시 문맥 요소별로 추출된 문자열들을 합쳐서 정렬하는데, 이들 간에도 동일한 문자열이 존재하는 경우 이들의 결합도를 더하여 단일화한다. 그런 후 결합도가 가장 큰 문자열부터 일정 개수까지를 선정하여 사용자에게 제시하게 된다.
이상 학습된 문맥 요소별 문자열 및 연관성에 근거하여 문자열을 예측하는 방식을 설명하였다.
한편, 본 발명에서의 문자열 예측은 성공율 100%를 지향하지만 예측이 실패될 수 있다. 이때 사용자가 직접 기본 문자 입력을 하게 되는데 본 발명에서는 사용자의 입력 편의성을 최대한 보장하는 보완책으로서 다중타 입력 모델을 제안한다.
다중타 입력 모델의 예로서 휴대폰의 경우, 소형 휴대 단말에서 요구하는 크기 제약으로 인하여 1개의 키에 복수개의 기본 문자가 할당되어 키 눌림 횟수에 따라서 대응하는 문자가 각각 표시된다. 마찬가지로 본 발명의 다중타 입력 모델은 복수개 기본 문자를 1개의 버튼에 할당하여 화면에 표시한다. 이와 같은 다중타 입력 방식에서는 상대적으로 적은 키 버튼 수를 이용하여 전체 기본 문자를 한 화면에 표시할 수 있다. 예를 들면, 한국어에서 예측의 실패로 첫 자음을 사용자가 입력할 때 자음 19개를 각각 19개의 개별 버튼에 할당하는 것이 아니라 자음 3개씩 7개의 버튼에 배열하는 것이다. 즉, 19개 자음을 각각 19개의 버튼(12)에 할당할 때 소형 정보기기의 공간을 많이 차지하게 되는 문제를 단지 7개의 버튼을 사용하여 한 화면에서 모든 자음을 표시할 수 있어 사용자의 입력 편의성을 보장한다. 즉, 예측에 실패하여 사용자가 기본 문자를 입력하려 할 때, [도 3]에 제시된 예에서는 기본 문자들을 입력할 수 있는 상태로의 이전이 필요했는데, 다중타 버튼의 개수가 적으므로 소형정보기기라 하더라도 작은 영역에 처음부터 기본 문자 입력을 위한 버튼들을 표출할 수 있게 됨으로써 기본 문자 입력을 보다 빠르게 할 수 있게 된다.
물론, 문자열 예측은 새로 입력된 기본 문자 또는 그 기본 문자가 형성한 불완전 문자를 포함한 직전 텍스트에 근거하여 다시 수행하게 된다. 이와 같이 사용자가 직접 입력한 기본 문자가 포함된 미완성의 문자열을 더 포함한 텍스트를 기반으로 예측하는 경우 그 예측 범위는 줄어들어 예측 성공률은 더욱 증가한다.
다중타 입력 방식의 특성에 따라서 다중타 버튼에 "ㄱㅋㄲ"의 기본 문자가 배열되었을 때, 사용자가 "까치"를 입력하고자 'ㄲ'을 선택하려면 휴대폰의 다중타 입력 방식에서는 3회의 키 버튼을 눌러야 한다. 이에 본 발명의 다중타 입력 방식은 사용자가 한 번 키 버튼을 누를 때 'ㄱ', 'ㅋ', 'ㄲ'으로 시작하는 예측 문자열을 추천하고, 두 번 키 버튼을 누를 때 'ㅋ', 'ㄲ'으로 시작되는 문자열, 세 번 키 버튼을 누를 때 'ㄲ'으로 시작되는 예측 문자열을 추천한다. 즉, 최초로 한 번의 키 버튼을 누를 때 그 키에 할당된 모든 기본 문자로 파생되는 불완전 문자 또는 문자열을 기반으로 예측을 수행하여 사용자가 실제로 입력하려는 예측 문자열을 한 번에 선택할 수 있도록 보장하는 것이다.
여기서, 사용자가 문자열 "가방"의 예측 실패로 'ㄱ'을 입력했을 때 'ㄱ'으로 시작하는 후보 문자열 이외에 'ㅋ', 'ㄲ'으로 시작하는 예측 문자열까지 함께 추천받는다. 상대적으로 줄어든 'ㄱ'으로 시작하는 예측 문자열의 개수로 인하여 "가방"의 예측 실패가 발생할 수 있는데, 이 경우 'ㄱ'이 이미 입력된 상태이므로 다중타 모음 버튼 중 'ㅏ'를 입력할 수 있는 버튼을 다시 1번 선택한다. 이와 같은 다중타에 의한 예측 방식의 경우 이러한 재실패가 많아지지 않을까라는 우려가 있을 수 있지만 실제로 그 가능성은 낮다. 왜냐하면, 전술한 문맥 정보 모델과 어휘 연상 모델에 사용자가 직접 입력한 기본 문자 정보가 부가되면서 "가방"의 예측율은 높은 적중률로 보장되기 때문이다. 한편, 상기에서 예측에 실패하여 기본 문자를 입력함으로써 생성된 불완전 문자는 바로 응용프로그램으로 전송되지 않는 것이 바람직하다. 이는 완성 문자로의 변형 가능성이 남아 있기 때문에 응용 프로그램을 직접 접근하여 수정해야 하는 문제가 발생할 수 있기 때문이다(응용 프로그램내 내 용을 직접 수정하는 것은 쉽지 않고 가능하여도 절차가 번거로움). 따라서 불완전 문자는 예측을 통해서든 사용자의 직접 입력을 통해서든 완성되었을 때 응용프로그램으로 전송하는 것이 바람직하다. 물론 불완전 문자는 입력 내용 표출창(11)과 같은 임시 버퍼에 임시로 존재하게 된다.
따라서, 예측이 실패될 경우에도 본 발명의 다중타 입력 모델은 기본 문자의 입력을 보다 빠르게 수행할 수 있게 하여 사용자의 입력 편의성을 최대한 지원하는 역할을 한다.
이하에서는 전술한 기술적 메커니즘을 갖는 본 발명의 글자 입력 시스템(1)에 대한 구성을 실시예를 통하여 설명한다. 참고로 이하의 도 5 ~ 도 21의 기술 구성은 전술한 3가지 기본 개념 모델에 기인한다.
1.3 시스템 구성
도 5는 본 발명의 일 실시예에 따른 글자 입력 시스템(1)의 개략적 구성을 도시한다.
본 발명의 일 실시예에 따른 글자 입력 시스템(1)은 상기의 어휘 연상 모델을 구현하는 수단으로서 실시간 학습 수단(2), 문맥 추출 수단(3), 예측 문자열 선정 수단(4), 예측 문자열 출력 수단(5) 및 예측 문자열 입력 수단(6)을 포함하여 구성된다. 또한, DBMS 구조(또는, b-트리와 같은 파일저장시스템)로서 학습한 예측 문자열을 저장하는 적어도 하나 이상의 DB로 구성되는 예측 문자열 DB(200) 및 사용자가 현재까지 기 입력한 텍스트 중에서 최근의 텍스트를 저장하는 문자열 버퍼(300)를 더 포함한다.
1.4 시스템의 예측 문자열 학습
도 5에 도시한 상기 실시간 학습 수단(2)은 도 4에서 설명한 어휘 연상 모델의 개념에 기반하여 동일한 방식의 학습을 수행하고 그 학습 결과를 위상이 다른 예측 문자열 DB(200)들에 저장한다. 어휘 연상 모델에서의 예측정보DB는 글자 입력 시스템(1)에서 예측 문자열 DB(200)로 구현된다.
예측 문자열의 학습은 이미 예측 문자열을 알고 있는 상태의 학습 대상의 텍스트로부터 문맥 정보를 분석하는 단계에서부터 시작한다. 학습 대상의 텍스트는 범용 사용자가 이미 작성 완료한 텍스트이거나 또는 현재 사용자가 실시간 작성하고 있는 텍스트이다. 그리고 문맥 정보의 분석은 예측 문자열을 출현하게 만든 문맥 요소를 추출하는 것이다.
상기 문맥 요소는 예측 문자열에 선행되어 그 출현에 영향을 미치는 기본 문자, 완성 문자, 불완전 문자, 문자열, 단어, 어절, 품사, 형태소 등과 같은 언어학적 구성 요소들에 대한 정보를 나타낸다. 이러한 정보는 위에서 이미 설명한 언어적 환경에서의 의미적 관계 및 문법적 관계의 정보를 말한다.
즉, 문맥 요소는 텍스트 내에서 하나의 대상 글자(예측 문자열) 앞에 존재하는 하나 이상의 언어학적 구성 요소를 의미한다. 가장 문맥에 적합한 구성 요소는 상기 대상 글자에 가장 가까이에 위치한 구성 요소임은 물론이다. 이는 가까이에 위치할수록 언어적 지배력이 강하여 연관성이 높아지기 때문이다. 여기서, 전술한 예측 단위 이외에 또 하나의 예측 전략이 고려된다. 그 예측 전략은 어느 정도까지 가까이에 위치한 구성 요소들을 문맥 요소로 볼 것인 가이다. 왜냐하면, 문맥 요소 를 많이 추출할수록 예측의 정확도는 높아질 수 있으나 학습량 및 처리 용량의 부하에 따른 학습 시간 증가가 수반되고 특히 예측 문자열 DB(200)에 저장되는 학습 결과 데이터의 용량은 폭발적으로 증가하기 때문이다. 따라서, 가급적 예측에 미치는 영향력이 큰 유형의 문맥 요소들만을 선별하여 사용하는 것이 바람직하다.
이상의 문맥 요소는 복수개가 존재하여 특정 예측 문자열의 출현에 영향을 미칠 수 있으며, 그 복수개 문맥 요소는 특정 예측 문자열에 대하여 하나의 문맥 정보를 이룬다.
한편, 학습 또는 예측에 적용되는 예측 DB들은 선택적으로 포함될 수 있다. 사용자 단말(100)에 글자 입력 시스템(1)을 구축할 때 단말의 기억 용량, 처리 용량에 따라 포함 여부가 결정될 수 있다. 예를 들어, 소형 단말일 경우(예 : 휴대폰, 디지털 카메라, MP3 플레이어), 전략의 따라 대량인 범용 예측 DB 등 일부 DB를 배제하거나 각 DB들의 량을 최소로 제한할 수 있다. 이 제한은 예측 문자열 DB(200)들의 종류 및 개수에 영향을 미친다. 또한, 이런 경우 예측율이 저하될 수 있으나 소형 정보기기로 작성하는 텍스트가 그다지 다양하지 않다는 점을 감안하면 적중률이 크게 저하되지는 않는다.
도 6은 도 5의 학습 대상 텍스트의 문맥 정보를 분석하여 예측 문자열 DB(200)에 저장되는 학습 결과 데이터를 예시하는 것으로서 이에 본 발명을 한정하는 것은 아니다.
본 발명에서의 학습 시점은 이미 작성 완료된 학습 대상 텍스트를 일괄 학습하는 시점(예 : 범용 사용자의 텍스트)과 실시간 학습 수단(2)이 사용자가 실시간 입력하는 과정에서 추가 입력되는 텍스트를 실시간 학습하는 시점(예 : 개인 사용자의 실시간 입력 텍스트)이 존재한다. 이 2가지 학습 시점에서의 학습 수행 기능은 동일하기에 실시간 학습 수단(2)은 사전에 일괄 학습하는 데에도 사용될 수 있다(예 : 범용 예측 문자열 DB(201)의 구축). 따라서, 이하에서는 글자 입력 시스템(1)을 구축하는 초기 상황에서 실시간 학습 수단(2)을 이용하여 범용 사용자 텍스트의 일괄 학습을 수행하는 것을 가정하여 설명한다. 또한, 학습 문자열 "아름다운 영혼을 가진"을 학습하는 것으로 가정한다.
상기 예측 문자열 DB(200)는 문맥 요소, 예측 문자열 및 연관성값을 데이터 요소로 포함하는 레코드들로 구성된다(물론, 개념적으로 이러하고 실제에는 시스템의 효율을 고려하여 다양하게 구성될 수 있음은 물론이다.)
연관성값은 문맥 요소와 예측 문자열간의 연관성의 정도를 나타내는 값으로서, 학습 텍스트에서 함께 나타날 때마다 문맥 요소와 예측 문자열이 추출된 상황에 따라 그 신뢰도 정도가 정해진 가중치가 누적된 값이다. 가중치는 문맥 요소와 예측 문자열의 거리가 떨어질수록 낮고 가까울수록 높아진다. 또한, 거리뿐만 아니라 형태소 분석시 중의성으로 인해 문맥 요소와 문자열이 각각의 해당 어절로부터 단일하게 추출되지 않을 경우 가중치는 그만큼 낮아지게 된다. 따라서 자주 함께 나타날수록, 특히 인접하여 함께 나타날수록, 각각의 해당 어절로부터 단일한 분석 결과로 추출될수록 연관성값은 커지게 된다. 그리고 상대적으로 연관성값이 크다는 것은 동일한 문맥 요소의 출현 상황에서 대응하는 예측 문자열이 나오게 될 가능성이 높다는 것을 의미한다.
첫 문자 '아'를 학습하면 문맥 요소 중 하나가 "어절의 첫 문자를 예측하는 상황"이 되고, 글자 '아'를 예측 문자열(학습 글자)로 하여 연관성값을 구한다. 상기에서 언급한 바와 같이 이 연관성값은 연관성에 따른 가중치의 누적값으로서 예측 문자열 1회의 학습시마다 문맥 요소와 예측 문자열 사이의 신뢰성 정도에 따라서 정의된 단위 가중치를 DB에 저장된 연관성값에 누적시킨다. 이미 위에서 문맥 요소와 예측 문자열의 거리에 따라 가까이 위치하는 경우에 상대적으로 높은 가중치를 부여하고 멀리 떨어진 경우 낮은 가중치를 부여하는 것으로 이미 설명한 바 있다. 또한, 가중치는 분석시의 중의성 등에 따른 다양한 정보에 의하여 존재할 수 있음은 물론이다.
도 6의 예시에서 예측 성공시 사용자의 입력 편의성을 가장 크게 지원하는 '영혼을'의 경우(어절 단위 예측 또는 3음절 부분 문자열 단위 예측의 경우), 학습 대상의 현재 텍스트로부터 형태소 분석 등을 통하여 문자열 예측 단위 '영혼을'을 추출하고 직전 텍스트 '아름다운 '으로부터 가능한 문맥 요소들을 추출한다. 그리고 각각의 추출된 문맥 요소와 예측 문자열의 연관성에 따른 가중치를 연관성값에 누적시킨다. 여기서는 추출되는 문맥 요소를 4개로 예시하였으나 이에 한정하는 것은 아니다. 이와 같이 첫 문자열을 예측하는 상황은 예측 문자열 '영혼을', '영혼' 및 '영'에서도 학습된다. 그리고 현재 텍스트에서 예측 문자열의 학습이 완료되어 예측 문자열DB(200)에 저장되면 다음 예측부터는 직전 텍스트에 포함되어 문맥 요소 추출의 대상이 된다. 한편, 도 6에 예시에서는 문맥 요소가 긴 텍스트로 표현되었으나 이는 이해를 돕기 위함이고 실제로는 기호 등을 이용하여 단순화한 문자열 형태임은 당연하다.
전술한 바와 같이, 실시간 학습 수단(2)은 동일한 예측 문자열을 대상으로 적어도 하나 이상의 문맥 요소를 포함하는 문맥 정보를 획득하면 각 문맥 요소별로 예측 문자열 DB(200)를 검색하여 동일 예측 문자열이 발견될 경우 가중치를 연관성값에 누적시키고 데이터가 발견되지 않을 경우 신규 추가한다.
그리고 학습한 예측 문자열들은 예측 단위(예 : 완성 문자, 단어, 문자열 n자리 등)에 따라 사용자의 실시간 입력 과정에서 예측 문자열의 후보들로서 사용자에게 제시된다.
이하의 학습 대상 글자를 학습하는 과정은 전술한 바와 같이 직전 텍스트로부터 문맥 요소를 추출하고 현재 텍스트로부터 예측 문자열을 추출한 후 이들의 신뢰도 정도에 따른 가중치를 연관성값에 누적하는 방식으로 학습 결과를 생성하기에 그 상세한 설명은 생략한다.
도 5에서, 실시간 학습 수단(2)에 의하여 예측 문자열 DB(200)에 학습 결과 데이터가 저장되면, 사용자에게 예측 문자열 서비스를 제공할 수 있게 된다. 사용자가 가장 최근에 입력한 직전 텍스트는 문자열 버퍼(300)에 저장되고, 이 문자열 버퍼(300)는 예측 문자열을 추천하기 위하여 문맥 정보를 추출하는 임시 저장소 역할을 한다.
도 7은 도 5의 실시간 학습 수단(2)의 기능을 예시한다.
본 발명에서의 학습은 어휘 연상 모델에 근거하여 크게 3개의 학습 과정으로 구분될 수 있다. 1차 학습은 전술한 바와 같이 다양한 분야 및 다양한 계층의 사용 자가 작성한 학습 대상의 텍스트를 분석하여 일반 대중 사용자들의 범용 어휘 패턴에 기반하여 학습이 완료된 예측 문자열 DB(200)를 구성하는 것이다. 그리고 2차 학습은 본 시스템(1)을 사용하는 개인 사용자의 습관(글자 입력)화된 어휘 패턴에 기반하여 실시간 누적 학습을 수행하는 예측 문자열 DB(200)를 구성하는 것이다. 3차 학습은 전술한 학습 과정을 개별 사용자가 사용한 최근 어휘, 주제별 어휘 및 타 사용자와 교류(공유)한 어휘의 패턴에 기반하여 실시간 학습을 수행하는 예측 문자열 DB(200)를 구성하는 것이다. 이하에서는 전술한 학습 과정을 기반으로 구현되는 세부적인 학습 기능을 설명한다.
도 4의 어휘 연상 모델에서 예시한 예측정보DB는 본 시스템(1)에서 적어도 하나 이상의 예측 문자열 DB(200)로 구현되고, 이 예측 문자열 DB(200)에는 예측 전략 및 사용자 단말(100)의 환경에 따라 예측 서비스 이전에 선 학습이 요구되어 데이터가 기 구축되는 범용 예측 문자열 DB(201)와 사용자의 입력 과정에서 실시간으로 데이터가 구축되는 개인 예측 문자열 DB(202), 최근 예측 문자열 DB(203), 주제별 예측 문자열 DB(204) 및 인바운딩 DB(205)를 포함하게 된다. 이외에도 전략에 따라서는 별도 유형의 예측 문자열 DB가 포함될 수도 있다.
실시간 학습 수단(2)은 범용 패턴 학습 기능(21), 개인 패턴 학습 기능(22), 최근 패턴 학습 기능(23), 주제별 패턴 학습 기능(24) 및 공유 패턴 학습 기능(25)을 포함한다. 위 기능을 사용자별로 구분할 경우, 범용 패턴 학습 기능(21)은 사업자가 다양한 분야 및 다양한 계층의 다수의 사용자로부터 학습 텍스트를 얻어서 학습을 수행하는 기능이고, 공유 패턴 학습 기능은 채팅이나 동호회 게시판 등에서 해당 커뮤니티에서 회자되는 어휘 패턴에 대해 수행하는 기능이다. 나머지 기능은 개인 사용자의 어휘 사용 성향을 분석하여 학습을 수행하는 기능이다. 위에 열거한 기능(21 ~ 25)은 해당 정보기기의 시스템 상황에 따라 적어도 하나 이상의 기능을 조합하여 적절하게 구현될 수 있다.
상기 범용 패턴 학습 기능(21)은 다양한 분야 및 다양한 계층의 사용자의 텍스트를 분석하여 학습 결과 데이터를 범용 예측 문자열 DB(201)에 저장한다. 서비스 사업자는 다양한 분야의 사용자로부터 학습 문자열(예 : 말뭉치)을 얻으며, 신문 기사, 문학, 논문 등 가급적 범용성이 보장될 수 있는 문서들을 이용한다. 범용 예측 문자열 DB(201)는 서비스 사업자가 수집한 문서들에 대해 학습된 예측 문자열을 저장한다.
상기 개인 패턴 학습 기능(22)은 글자 입력 시스템(1)이 사용자 단말(100)에 구축된 후 지속적으로 개별 사용자가 실시간 입력하는 텍스트들을 분석하여 얻는 학습 결과 데이터를 개인 예측 문자열 DB(202)에 저장한다.
상기 최근 패턴 학습 기능(23)은 개별 사용자가 실시간으로 최근 입력한 일정량의 텍스트를 분석하여 최근 예측 문자열 DB(203)를 생성한다.
상기 주제별 패턴 학습 기능(24)은 개별 사용자가 특정 주제를 설정하여 실시간 입력하는 텍스트를 분석하여 주제별 예측 문자열 DB(204)를 생성한다. 즉, 사용자의 업무, 학업에 따라 그 종류를 특정하고 그에 관련되는 텍스트를 분석하여 학습한다. 특별히 설정하지 않는 경우, 해당 정보기기를 켠 시점에 구비되고 종료하는 시점에 사라지게 된다. 물론, 사용자의 기능 설정에 따라 시작과 종료되고 그 데이터가 지속적으로 증가하는 것도 가능하다.
이상과 같은 기능들에 의해, 본 발명의 시스템(1)은 사람처럼, 작성 중에 있는 또는 대화 중인 주제에 친숙한 어휘를 먼저 예측하고, 다음으로 최근 친숙한 어휘, 그리고 꾸준히 사용해 온 어휘를 중심으로 예측하게 되며 별다른 친숙성이 없을 경우 일반적으로 사용되는 어휘를 예측하게 된다. 특히 주제별 패턴을 학습하는 것은 본 명세서만 봐도 알 수 있듯이 특정 주제와 관련된 문서에서는 상당히 많은 어휘들이 동일하게 반복 사용되는 경향이 있으므로 유사한 문맥에서 바로 해당 어휘를 사용할 수 있게 하기 위함이다.
상기 공유 패턴 학습 기능(25)은 유무선 네트워크를 통하여 공유되는 환경(특정 사이트, 게시판, 블로그)에서 복수의 사용자가 실시간 입력하는 텍스트를 분석하여 공통의 주제어나 유행어의 예측 문자열을 주로 저장하는 인바운딩 DB(205)를 생성한다. 이는 사람이 상대방이 구사한 어휘를 되받아 사용하는 습성을 반영하여 예측할 수 있게 하기 위함이다.
전술한 바와 같이 예측 문자열 DB(200)는 사용자별, 주제별, 목적별로 구분되는 적어도 하나 이상의 DB(201 ~ 205)를 포함하여 구성된다. 서비스 사업자는 이외에도 특정 목적으로 대별되는 고유한 학습 기능을 구현하여 그에 대응하는 문자열 DB를 구축하는 것이 가능하다.
도 8은 도 5의 예측 문자열 DB의 SDB 구조를 예시한다.
앞서 언급했듯이 사용자의 현재 텍스트로부터 실시간 분석되는 학습 결과 데이터가 저장되는 일부 예측 문자열 DB(200)에서는 데이터 용량 증가에 따른 데이터 최적화가 요구될 수 있다.
이 중에서도 특히 최근 예측 문자열 DB(203)나 인바운딩 DB(205)는 그 목적상 최근 데이터에 기반하여 입력 예측성을 높이기 위한 것이기에 데이터의 최근성을 유지하는 최적화 관리가 요구된다. 개인 예측 문자열 DB(202)의 경우도 데이터량의 증가에 따른 저장 매체의 용량 부족 등의 이유로 최적화가 필요할 수 있다. 다만, 최근 예측 문자열 DB(203)와 달리 용량의 문제이기 때문에 임의 설정치 이하의 연관성값을 갖는 문자열들을 삭제하는 식의 정규화(normalization) 처리 등으로 용량의 제한이 가능하다. 물론 개인 예측 문자열 DB의 경우도 최근 예측 문자열 DB(203)처럼 최근성을 유지하는 방식으로 용량을 제한할 수도 있다. 이 경우 최근성은 최근 예측 문자열 DB(203)에서보다 훨씬 기간이 길다는 것은 당연하다. 개인 예측 문자열 DB(202)를 최근성 유지 방식으로 구현하면 개인 성향의 언어 습관이라 하더라도 너무 오래된 것은 배제하는 효과를 얻을 수도 있다.
최적화 관리에 대한 요구로서 본 발명의 실시간 학습 데이터를 저장하는 예측 문자열 DB(200)는 작은 DB(Small size DB)(이하, SDB라 칭함) 구조로 구축될 수 있다. 설명의 편의상 가장 적합하게 적용될 수 있는 최근 예측 문자열 DB(203)를 예로 들어 설명한다.
최근 예측 문자열 DB(203)는 작은 규모의 총 t개의 예측 문자열 DB(이하, SDB라 칭함)들로 분할되어 구성된다. 도면에 도시된 바와 같이, 각 SDB는 단방향 원형큐 형태로 상호 연결되어 있다. 그리고 이중 하나가 입력 대상 SDB(n)가 된다.
상기 실시간 학습 수단(2)이 최근 패턴 학습 기능(23)을 수행하여 현재 텍스 트로부터 신규 학습한 정보를 최근 예측 문자열 DB(203)에 저장하는 것은 상기 입력 대상 SDB(n)에 저장하는 것을 의미한다. 정보를 저장해 나가는 과정에서 현재 입력 대상 SDB(n)가 포화상태가 되면, 원형큐에서 입력 대상 SDB(n)에 연결된 다음 SDB(n+1)가 새로운 입력 대상 DB가 되며, 만일 새로운 입력 대상 DB가 이미 포화 상태에 있는 경우, 새로운 SDB(n+1)내에 저장된 모든 정보를 제거하여 초기화한 후 새롭게 저장한다. 이러한 방식을 통해 최근 예측 문자열 DB(203)는 효과적으로 항상 최근 입력된 문자열들에서만 추출된 정보를 유지할 수 있게 된다. 상기 포화 상태란 하나의 SDB별로 문맥과 예측 문자열이 추출되는 어절의 개수에 제한이 있는 상황에서 정해진 개수만큼의 어절에서 추출된 문맥과 예측 문자열이 모두 저장되었음을 의미한다. 최근 예측 문자열 DB가 여러 개의 부속 DB들로 구성되다 보니 동일한 문맥 요소가 부속 DB들에 분산되어 저장될 수 있다. 따라서 예측시에는 문맥 요소들로 검색할 때 각 부속 DB들에 대해 다 검색하며 동일한 예측 문자열이 발견될 경우 이들의 연관성값을 더한 값을 검색 결과에 포함한다. 한편, 개인 예측 문자열 DB를 SDB 구조로 구현하는 경우 최근성DB의 경우보다 SDB들의 제한 어절의 개수를 크게 잡는 것이 바람직하다. 그렇지 않은 경우 너무 많은 SDB들이 존재하게 되어 검색시 시간이 오래 걸릴 수 있기 때문이다.
1.5 시스템의 예측 문자열 제시 및 사용자 선택
도 5에 도시한 상기 문맥 추출 수단(3)은 문자열 버퍼(300)로부터 사용자가 실시간 입력한 최근의 직전 텍스트로부터 n개의 문맥 요소를 추출한다.
상기 예측 문자열 선정 수단(4)은 추출된 n개의 문맥 요소 각각에 대해 각각 의 문자열 DB(200)로부터 예측 문자열 및 연관성값을 검색한다.
n개의 문맥 요소에 대한 검색이 모두 완료되면 상기의 수학식 1을 이용하여 각 DB별로 문맥 요소와 문자열간의 결합도를 구한다. 여기서, 각 DB별로 확률로 표현되는 결합도를 구하는 이유는 균등화(Normalization)를 통해 용량이 서로 다른 DB들을 동등하게 비교할 수 있게 함으로써 각 DB들의 특성이 예측에 반영될 수 있게 하기 위함이다. 균등화 후 각 예측 문자열 DB(200)에서 추출된 하나의 문맥 요소별 문자열들 및 결합도들은 동일한 문자열별로 결합도들이 합산된다.
그리고 구해진 결합도에는 문맥 요소의 유형별로 예측에 미치는 영향력에 따른 가중치가 존재하는 경우 그 가중치가 결합도에 곱해져 최종 결합도가 산정된다. 이 가중치는 위에서 연관성값에 누적되는 문맥 요소의 유형에 따른 가중치와 유사한 것으로서 특정 문맥 요소가 예측에 미치는 영향력을 기준으로 한다. 즉, 동일한 문맥 요소로 각 DB들에서 검색된 문자열들이 하나로 합쳐지면서 가중치가 반영된 결합도도 합산되는 것이다. 이러한 합산은 상기 n개의 문맥 요소별로 동일하게 이뤄지게 된다.
개별 문맥 요소별로 결합도 산정이 완료되면, 전체 문맥 요소들을 대상으로 다시 동일한 예측 문자열별로 합산된다. 최종적으로 해당 문맥에 대해 예측 문자열 후보들 및 결합도들을 얻게 되고 결합도 값에 따라 정렬하여 결합도가 큰 문자열부터 제한된 개수만큼 선정한다. 이러한 선정 과정을 통해 사람이 어휘를 연상하는 것과 유사하게 적중률 높은 문자열 후보들을 예측할 수 있게 된다.
상기 예측 문자열 출력 수단(5)은 선정된 상기 예측 문자열 후보들을 특정 순서대로 화면에 표시하여 사용자에게 제시한다. 여기서, 예측 문자열의 제시 순서는 사용자의 입력 편의성을 위하여 다양한 순서가 가능하다. 예를 들면, 사용자의 직관적인 식별력을 높이고자 사전식 순서 또는 예측율 순서로 사용자에게 제시하는 것이다. 화면의 제약으로 일부 예측 문자열들을 표시한 경우 사용자는 방향키를 통하여 화면에 표시되지 않은 다음 예측 문자열들을 표시할 수 있음은 물론이다.
상기 예측 문자열 입력 수단(6)은 화면을 통하여 출력된 예측 문자열들 중에서 사용자가 선택하는 예측 문자열을 입력받고 실제 키패드상에서 일련의 해당 자소 키들이 눌려서 입력될 때와 같이 처리한다. 예를 들어, 사용자가 '한'이라는 예측 문자열 버튼(12)을 선택한 경우, 실제 입력장치상에서 'ㅎ', 'ㅏ', 'ㄴ'이라는 키가 연속적으로 입력된 것으로 에뮬레이팅한다.
실제로, 화면에 표시되는 예측 문자열 버튼(12)들은 다양한 방식으로 사용자에게 선택될 수 있다. 예를 들면, 마우스 선택 방식, 키 버튼 선택 방식, 터치 스크린 선택 방식 등이다. 이외에도 입력 또는 선택에 불편을 겪는 일부 장애인을 위하여 소정의 시간 간격으로 입력의 포커스가 개별 예측 문자열 버튼(12)상에서 자동 이동하는 도중에 사용자로부터 현재 포커스에 대응하는 특정 버튼의 선택을 입력받는 스캔 방식이 있을 수 있다. 이들 방식은 사용자가 이용하는 사용자 단말(100)의 종류 및 특성에 따라 중복적인 방식을 채택할 수도 있다.
1.6 시스템의 문자열 예측 실패시 사용자 입력
전술한 도 5 ~ 도 8의 글자 입력 시스템(1)에서 만약 사용자가 입력하고자 하는 글자를 예측 문자열로 제시받지 못한 경우, 도 3에서 예시한 바와 같이 사용 자는 직접 입력해야만 한다. 이때 본 발명에서는 사용자가 전체 기본 문자를 제시받고 특정 기본 문자를 직접 선택하는 방식과 기 학습된 기본 문자에 기반하여 가장 입력 가능성이 높다고 예측된 기본 문자들을 제시받아 특정 기본 문자를 선택할 수 있다.
사용자가 기본 문자를 선택하면 이 기본 문자로부터 파생되는 예측 문자열을 다시 예측한다. 이것은 예측 실패된 바로 이전의 문맥 요소에 사용자가 직접 선택한 기본 문자가 새로운 학습 정보로 추가되는 것이다. 이 추가된 학습 정보로 인하여 예측 가능성이 더욱 증가된다.
사용자가 예측 문자열을 제시받지 못하면 직접 입력 기능을 선택한다. 직접 입력 기능이 선택되면 사용자가 첫 자음을 선택할 수 있도록 자음이 할당된 버튼들을 제시한다. 또는 직접 입력 기능을 선택할 필요가 없도록 처음부터 자소 버튼이 제시되어 있을 수도 있다. 이때 개별 버튼에는 다중타 입력 모델에 따라서 복수개 개별 기본 문자가 할당된다. 이렇게 함으로써 버튼의 개수가 줄어 처음부터 화면에 자소 버튼을 표출할 수 있게 된다.
사용자의 입력 인터페이스 관점에서 보다 상세히 설명하면 다음과 같다. 한 개의 키 버튼에 복수개 문자(예 : "ㄱㅋㄲ")가 할당된 경우에서 사용자가 "꽃"을 입력하고자 하는 것으로 가정한다. 사용자가 키 버튼을 1번 누를 경우, 'ㄱ'이 입력되면서 'ㄱ', 'ㅋ', 'ㄲ' 각각으로 시작하는 현재 문맥에 맞는 예측 문자열을 제시한다. 이때 "꽃"이 예측되어 있으면 사용자는 이를 선택하고 이때 'ㄱ'은 "꽃"으로 변경된다. 하지만, "꽃"이 발견되지 않을 경우 다시 키를 누르면 이번에는 'ㅋ' 이 입력되게 되고 'ㅋ' 과 'ㄲ' 으로 시작하는 예측 후보들을 선정한다. 이런 식으로 하다 보면 "꽃"이 예측되는 가능성은 더욱 커진다. 다만, 3번 눌렀는데에도 '꽃'이 예측되어 나오지 않는 경우, 이미 'ㄲ'이 입력되어 있는 상태에서 모음 입력으로 이동된다. 모음의 경우도 하나의 버튼에 하나 이상의 모음이 할당되어 자음의 경우와 마찬가지로 작동할 수 있다. 다른 예로서 만일 다음에 입력하려는 문자열이 "강"이었다면, 처음 'ㄱ', 'ㅋ', 'ㄲ' 을 대표하는 버튼을 1번 누르고 예측 결과에 "강"이 없으면, 이미 'ㄱ'이 입력된 상태이므로 바로 모음 입력으로 이동한다. 그리고 마찬가지로 'ㅏ'를 입력할 수 있는 버튼을 누른다. 사용자에 의하여 불완전 문자 '가'가 입력된 상태라면 "강"이라는 예측 문자열의 예측율은 급속히 상승한다.
그리고 사용자가 개별 버튼으로 표출된 기본 문자 중 하나를 선택하면 이를 이용하여 기 입력된 문자와 조합되는 한글 자형 원리에 입각하여 불완전 문자를 형성한다. 예를 들어, 자음 'ㄱ'이 기 입력된 상태에서 모음 'ㅏ'가 입력되면 불완전 문자 '가'를 형성하여 문자열 버퍼(300)에 저장한다. 그리고 문맥 추출 수단(3)은 문자열 버퍼(300)로부터 불완전 문자 '가'를 조회하고, 예측 문자열 선정 수단(4)은 직전 텍스트에서 추출된 문맥 요소와 더불어 '가'를 기반으로 구성될 수 있는 '가방', '가시', '강아지' 등의 예측 문자열을 예측율에 따라 선정한다. 예측 문자열은 사용자에게 제시되고 이 중에서 특정 예측 문자열이 선택된다.
1.7 시스템을 구축한 사용자 단말
도 9는 도 5의 글자 입력 시스템(1)이 구축되는 사용자 단말(100)의 개략적 구성을 도시한다.
본 발명의 일 실시예에 따르는 사용자 단말(100)은 상기 글자 입력 시스템(1)이 구축되고, 키 입력 장치(101) 및 화면 출력 장치(102)를 포함한다.
상기 키 입력 장치(101)는 사용자가 사용자 단말(100)의 응용 프로그램에 글자를 입력하거나 또는 키에 대응하는 명령(기능)을 입력하는 장치이다. 예를 들면, 키보드, 키패드, 키 버튼 등이 있다.
상기 화면 출력 장치(102)는 키 입력 장치(101)의 키가 선택되어 대응하는 문자를 화면에 디스플레이하는 장치이다. 예를 들면, 모니터, LCD, PDP, 브라운관 등이 있다.
이와 같이 구성되는 사용자 단말(100)은 PC(데스크탑, 노트북, UMPC), 휴대폰, PDA, PMP, PSP, 게임기, TV set, 리모콘 등을 예로 들 수 있다.
전술한 도 1 ~ 도 3의 화면 키보드(10)는 화면 출력 장치(102)의 임의의 영역에 위치할 수 있다. 또한, 화면 키보드(10)는 바 형태의 예측 문자열 버튼(12)을 최소 구성 요소로 하고(도 12, 13, 15 참조), 입력 내용 표출창(11)이 더 포함될 수 있다(도 1 ~ 3, 도 14 참조).
화면 키보드(10)는 화면 임의의 위치에 표시되어 사용자가 그 위치를 옮길 수 있는 플로팅 표시 형식(도 1 ~ 도 3 참조)과 화면의 상단, 하단, 좌측 또는 우측 변에 고정되는 사이드 바 표시 형식(도 12 ~ 도 15 참조)이 가능하다. 그리고 이들 2개의 표시 형식을 혼합하여 툴 바와 같이 플로팅 표시 형식도 지원하고 사용자의 위치 설정에 의하여 특정 변에 고정되는 사이드 바 표시 형식을 지원하는 것 도 가능하다.
본 발명에서는 사용자 단말(100)의 결정에 따라서, 문자열 학습 전략, 예측 문자열 DB 구축 전략, 예측 문자열 표시 전략 및 선택 전략, 예측 문자열 실패시 사용자 문자 입력 전략 등의 예측 전략이 다양하게 구현될 수 있다.
도 10은 도 9의 사용자 단말(100)을 데스크 탑 PC로 예시한다.
사용자 단말(100)에는 글자 입력 시스템(1)의 설치 프로그램이 설치된다. 사용자는 화면 출력 장치(102)에 표시되는 화면 키보드(100)를 통하여 예측 문자열을 제시받는다. 사용자는 키 입력 장치(101)를 통하여 글자를 직접 입력할 수 있고, 화면 키보드(100)상의 예측 문자열을 선택할 수 있다. 물론, 마우스(미도시)의 이용도 가능하다.
다만, 특이할 점은 키 입력 장치(101)에 별도의 화면 표시 수단(1011)과 화면 표시 수단에 표출된 내용을 선택할 수 있는 수단을 구비한 것이다. 이것은 본 발명의 출원인이 선출원한 대한민국 등록 특허 10-0452556의 "키입력 보조시스템"에서 이미 소개한 기술이다.
사용자가 보통 키 입력 장치(101)와 화면 출력 장치(102)를 번갈아 보며 입력 작업을 하는데, 화면 표시 수단(1011)은 사용자가 키 입력 장치(101)에 입력하는 현재 문자열을 화면에 표시하여 사용자가 입력과 동시에 입력 문자열을 보다 쉽게 확인할 수 있게 한다. 즉, 화면 표시 수단(1011)을 추가하면 키 입력 장치(101)와 화면 표시 수단(1011)을 보게 되어 시야 범위를 더욱 줄임으로써 입력의 편의성이 증대된다.
도 11에서는 도 10의 화면 표시 수단(1011)을 이용하여 예측 문자열 출력 수단(5)이 출력하는 적어도 하나 이상의 예측 문자열을 표시하는 것이다. 즉, 사용자는 화면 표시 수단(1011)에서 적어도 하나 이상의 예측 문자열을 제시받고, 예측 문자열과 1:1로 매칭하는 선택 수단을 통해 특정 예측 문자열을 선택하여 입력하는 것이다.
도 12는 도 9의 사용자 단말(100)을 PDA로 예시한다.
개별 예측 문자열 버튼(12)은 화면 출력 장치(102)의 하단에 사이드 바 표시 형식으로 나열되어 있다. PDA는 터치 스크린 입력 방식을 지원하기 때문에 사용자는 터치 펜을 이용하여 원하는 예측 문자열을 선택하여 배경 화면의 응용 프로그램으로 입력한다.
도 13은 도 9의 사용자 단말(100)을 휴대폰으로 예시한다.
휴대폰 사용예에서는 화면 출력 장치(102)의 문자열 박스내 커서 위치에 입력될 가능성이 큰 글자들 중 가장 가능성이 큰 예측 문자열의 버튼(12)을 하단에 사이드 바 표시 형식으로 표출되게 된다. 사용자는 키 입력 장치(101)의 키패드 중에서 현재 화면 모드에서 사용하지 않는 '#' 버튼 키나 '*' 버튼 키를 통해 상기 표출된 예측 문자열을 선택한다. 물론 다른 버튼으로도 선택이 가능하다. 이 경우 해당 버튼의 기능과 겹칠 수 있으므로 별도의 규칙이 필요하다.
휴대폰과 같은 소형 휴대용 단말에서는 개별 키에 복수개 자소 문자가 할당되고 키의 눌림 횟수에 따라서 키에 차례로 배정된 개별 문자를 순서대로 입력하는 다중타 입력 방식의 키 입력 장치(101)를 구비한다.
휴대폰의 경우에는 사용자가 이모티콘 문자를 즐겨 사용하기 때문에 사용자에게 이모티콘 문자를 포함하는 예측 문자열을 제공할 수 있다.
도 14는 도 9의 사용자 단말(100)을 디지털 TV로 예시한다.
설명의 편의상 시청자가 TV 시청 도중에 원하는 상품을 구매하여 배송지 주소를 직접 입력하는 것으로 예시한다.
디지털 TV의 화면 출력 장치(102)의 하단에는 사이드 바 표시 형식으로 입력 내용 표출창(11)과 예측 문자열 버튼(12)으로 구성된 화면 키보드(10)가 표시된다. 개별 예측 문자열의 순서 위치는 리모컨과 같은 키 입력 장치(101)의 숫자 키에 배정된다. 사용자는 숫자 키를 선택하여 대응하는 예측 문자열을 입력한다.
도 15는 도 9의 사용자 단말(100)을 UMPC로 예시한다.
UMPC(Ultra Mobile PC)는 준 PC 급 사양에서 무선 인터넷 통신 기능, 멀티미디어 플레이 기능 및 간단한 응용 프로그램을 실행시킬 수 있는 PC이다. UMPC의 경우 사용자는 양손으로 UMPC의 양단을 잡은 상태에서 엄지 손가락을 이용하여 버튼을 선택할 수 있도록 지원한다.
이에 화면 출력 장치(102)의 마주하는 세로 변에 예측 문자열 버튼(12)을 사이드 바 표시 형식으로 배치하였다. 사용자는 양손으로 UMPC를 잡은 상태에서 엄지 손가락을 이용하여 터치 스크린 방식으로 원하는 예측 문자열을 선택한다. 물론 반드시 사이드 바 형태일 필요는 없다. 현재 UMPC에서 제공하는 엄지손가락 선택 방식인 호 형태의 문자 배치에 예측 문자열을 배치할 수도 있다.
<2. 글자 입력 방법 구성>
본 발명의 일 실시예에 따른 사용자의 다음 문자열 입력을 예측하는 글자 입력 방법은 전술한 예측 기반의 글자 입력 시스템(1)의 구축을 통하여 실현될 수 있다. 또한, 전술한 문맥 정보 모델, 어휘 연상 모델 및 다중타 입력 모델은 그대로 원용된다. 또한, 예측 문자열은 예측 전략에 따라서, 기본 문자 예측, 완성 문자 예측(한국어의 경우 1음절 예측), 단어 예측, 문자열 예측이 가능하다. 이상에서 설명한 바와 같이 문자열이란 상기의 기본 문자, 완성 문자, 단어를 모두 포함하는 개념이다. 이에 이하에서는 설명의 편의상 예측 대상 문자열은 한국어 1음절 문자라 가정하지만 일부에서 용어만 다를 뿐 설명내용이 일반 문자열 예측과 다른 것은 없다.
2.1 사용자 단말의 구축 방법
도 16은 본 발명의 일 실시예에 따른 글자 입력 방법의 상세 순서를 도시한다.
본 발명의 글자 예측 서비스를 제공하기 위하여, 사용자 단말(100)은 적어도 하나 이상의 예측 문자열 DB(200)를 저장한다(S10). 예측 문자열 DB(200)는 학습 대상 텍스트에서 예측 문자열에 선행되는 문맥 요소, 예측 문자열 및 그 연관성의 정도를 나타내는 연관성값을 포함한다. 그 데이터의 구조 및 예시는 이미 도 6을 통하여 설명한 바 있다.
예측 문자열 DB(200)는 도 7에 도시된 바와 같이 범용 예측 문자열 DB(201), 개인 예측 문자열 DB(202), 최근 예측 문자열 DB(203), 주제별 예측 문자열 DB(204), 인바운딩 DB(205)를 포함하여 구성되어, 이들 DB 중에서 적어도 하나 이 상의 DB를 포함하여 구성된다. 여기서, 범용 예측 문자열 DB(201)는 이미 학습을 완료하여 데이터 저장이 완료된 기 구축된 DB이고 나머지 DB들은 사용자의 입력 과정에서 실시간 학습 데이터를 저장하여 구축되는 DB이다.
본 발명의 서비스 사업자는 어느 DB를 사용자 단말(100)에 설치할 것인지 결정해야 한다. 왜냐하면, 글자 예측 서비스를 제공받는 사용자 그룹의 특성 및 예측 문자열 DB(200)가 구축되는 사용자 단말(100)의 처리 용량 및 기억 용량을 고려해야 보다 효과적인 예측 서비스를 제공할 수 있기 때문이다. 따라서, 사업자가 수립한 예측 전략은 예측 문자열 DB(200)의 구성에 영향을 미친다. 예측 문자열 DB(200)의 구성에 영향을 미친다는 것은 DB의 종류, 문맥 요소의 구성, 실시간 학습하는 데이터의 용량 관리 등에 영향을 미친다는 의미이다.
이와 같이 세분화된 예측 문자열 DB(200)는 설정된 환경에 따라서 학습을 수행하여 본 발명의 예측 적중률을 높이는 수단으로서 사용자의 입력 편의성에 이바지한다.
2.2 예측 문자열의 제시 및 사용자 선택 방법
예측 문자열 DB(200)가 사용자 단말(100)에 구축되어 사용자의 글자 입력에 따른 실시간 예측이 시작되면, 사용자가 실시간 입력 과정에서 예측을 통하여 선택한 문자열 또는 직접 입력한 문자열은 현재 텍스트에 추가되고, 현재 텍스트에서 추출된 예측 문자열은 직전 텍스트에서 추출된 문맥 요소와 함께 실시간으로 학습되어 예측 문자열 DB(200)에 저장된다. 1회의 학습이 완료되면 추출된 문맥 요소와 예측 문자열의 연관성 정도를 나타내는 가중치가 기존의 연관성값에 실시간 누적된 다.
이와 같은 과정에서 지금 사용자가 다음 글자를 입력할 때 예측 문자열 후보들을 추출하여 제시하고 사용자가 특정 예측 문자열 버튼(12)을 선택하는 과정을 이하에서 설명한다.
먼저, 사용자가 최근까지 입력하여 학습이 완료된 직전 텍스트로부터 가능한 문맥 요소들을 추출한다(S20). 상기 문맥 요소는 예측 문자열에 선행되어 그 출현에 영향력을 미치는 기본 문자, 완성 문자, 불완전 문자, 문자열, 단어, 어절, 품사, 형태소 등과 같은 언어학적 구성 요소들에 대한 정보를 나타낸다. 이들 언어학적 구성 요소는 개별 문맥 요소에서 복수개 존재할 수 있다. 또한, 이러한 정보는 위에서 이미 설명한 언어적 환경에서의 의미적 관계 및 문법적 관계의 정보를 말한다.
문맥 요소들을 추출하고 난 후, 추출된 문맥 요소들을 이용하여 적어도 하나 이상의 예측 문자열 DB(200)로부터 사용자가 다음에 입력할 글자일 가능성이 크다고 판단되는 적어도 하나 이상의 예측 문자열을 선정한다(S30).
도 17을 참조하여 상기 단계(S20) 및 (S30)를 상세히 설명하면 다음과 같다.
예측을 위하여 예측 전략으로 결정된 모든 예측 문자열 DB(200)를 준비한다(S21).
준비가 완료되면, 문자열 버퍼(300)로부터 사용자가 최근까지 입력한 직전 텍스트를 획득하고(S22), 이로부터 가능한 문맥 요소들을 추출한다(S23).
전체 n개의 문맥 요소가 추출되면, 개별 문맥 요소를 키로 하여 각각의 예측 문자열 DB(200)에서 이어서 나타나는 문자열들과 연관성값들을 모두 검색한다(S31).
각 문맥 요소별로, 모든 문자열들 및 연관성값들이 검색되면 상기 수학식 1에 의거하여 각각의 예측 문자열 DB별로 모든 이어서 나타난 동일 유형의 문자열들의 연관성값들의 합에서 각각의 연관성값을 나눠 결합도를 구한다(S32). 여기서 동일 유형의 문자열이란 서로 경쟁하는 예측 대상 문자열이 동등한 조건에서 경쟁할 수 있도록 하기 위하여 완성 문자, 단어 또는 동일 길이의 문자열과 같은 동일 예측 단위의 유형을 말한다.
결합도가 산정되면, 각각의 예측 문자열 DB(200)들에 걸쳐서 동일한 문자열들의 결합도를 합산한다(S33).
그리고 상기 문맥 요소의 신뢰도값으로 가중치가 존재하는 경우, 가중치를 각 결합도에 반영한다(S34). 문맥 요소의 신뢰도에 따른 가중치의 반영은 근거리의 문맥 요소가 보다 신뢰도 있는 예측 적중률을 갖기에 상대적으로 높은 가중치값을 결합도에 곱하는 것이고 반대로 원거리의 문맥 요소에 대하여 낮은 가중치값을 결합도에 곱하는 것이다.
하나의 문맥 요소에 대해 문자열들의 결합도를 구하면 다음번 문맥 요소에 대해서도 상기 단계(S31 ~ S34)를 수행한다(S35).
그리고 상기 단계(S31 ~ S35)가 개별 문맥 요소에 대해 각각 수행된 후 전체 예측 문자열 DB(200)를 대상으로 동일 문자열들이 존재하는 경우 해당 결합도를 합산하여 하나로 합친다(S36). 이상의 과정을 통해 전체 문맥 요소들에 대응하는 최 종 예측 문자열 및 통합된 결합도가 결정된다.
그리고 결정된 결합도 값의 순위에 따라서 예측 문자열들을 정렬한 후(S37), 가장 높은 문자열부터 정해진 N 개의 개별 예측 문자열을 선정한다(S38).
도 16을 참조하면, 선정된 예측 문자열은 화면에 표시 가능한 개수에 따라서 개별 예측 문자열 버튼(12)에 각각 할당되고 사용자 단말(100)의 화면으로 출력되어 사용자에게 표시된다(S40). 도 1 ~ 도 3의 화면 키보드(10)는 예측 문자열이 음절인 경우로서 사용자에게 표시되는 화면 인터페이스를 예시한다.
제시된 예측 문자열 중에서 사용자가 실제 입력하고자 한 다음 글자와 일치하는 예측 문자열 버튼(12)을 선택하면, 대응하는 예측 문자열이 응용 프로그램으로 입력될 수 있도록 에뮬레이팅 처리한다(S50). 사용자 단말(100)은 사용자로부터 마우스 입력, 키 버튼 입력(키보드 및 키패드), 터치 스크린 입력 또는 스캔 방식 입력을 통하여 예측 문자열을 선택받을 수 있다.
2.3 현재 입력된 문자열의 실시간 분석을 통한 학습 방법
예측 성공으로 상기의 응용 프로그램에 자동 입력하는 단계(S50)가 완료되어 사용자의 현재 텍스트가 추가되면 이를 기반으로 실시간 학습을 수행하여 대응하는 예측 문자열 DB(200)에 저장한다(S80). 실시간 학습 시작의 기준은 문장을 완료했을 때 또는 띄어쓰기(space)를 감지하여 한 어절이 완성되었을 때 등이며 사용자 단말(100)의 처리 부하에 따라 적절하게 고려될 수 있다. 예를 들면, 한 어절이 완성된 시점이다.
도 18은 문자열 예측이 완료되어 새로 추가된 문자열을 기반으로 실시간 학 습을 통한 예측 문자열 DB(200)의 구축 단계(S80)를 상세히 예시한다. 여기서, 예측 문자열 DB(200)는 실시간 학습되는 개인 예측 문자열 DB(202)와 최근 예측 문자열 DB(203)를 예로 들 수 있다. 주제별 예측 문자열 DB(204) 및 인바운딩 DB(205)의 경우도 동일하게 적용됨은 물론이다.
사용자가 본 발명의 예측기반 글자 입력 시스템(1)을 사용하여 문자열을 작성하는 중에 하나의 어절이 완성되어 현재 텍스트가 갱신되면 예측 문자열 DB(200)를 준비한 후(S81), 학습 대상의 현재 텍스트를 획득한다(S82).
다음으로, 현재 텍스트로부터 형태소 분석 등을 이용하여 가능한 예측 단위의 문자열들을 추출하고 추출된 문자열에 앞서 나타난 직전 테스트로부터 문맥 요소들을 추출하여 이들의 조합으로 쌍을 형성한다(S83).
문맥 요소와 예측 문자열의 쌍이 형성되면, 개별 문맥 요소를 키로 하여 예측 문자열 DB(200)에서 이어서 나타나는 문자열들 및 그 정도값인 가중치가 누적된 연관성값들을 검색한다(S84).
DB 검색 후, 상기 단계(S83)에서 추출한 문자열이 검색 결과의 예측 문자열로 존재하는지 여부를 판단하고(S85), 존재하는 경우 문맥 요소 및 문자열의 신뢰도 유형에 따른 준비된 가중치를 상기 단계(S84)에서 검색된 연관성값에 누적한다(S86). 여기서 신뢰도 유형은 거리 위치, 중의성 등으로 구분됨을 이미 설명한 바 있다. 그리고 존재하지 않으면, 신규 레코드의 추가로서 해당 문자열을 저장하고, 가중치를 그대로 연관성값으로 저장한다(S87).
개별 쌍에서의 문맥 요소에 대한 연관성값 누적이 완료되면, 다음 문맥 요소 와 문자열 쌍이 있는지를 판단하여 남아있는 쌍이 있으면 상기 단계(S84)를 수행한다(S88).
모든 쌍들에 대한 연관성값 누적이 완료되면, 학습 대상의 새로운 현재 텍스트가 남아있는지를 판단한 후 남아 있으면 상기 단계(S82)를 수행한다(S89). 물론 실시간 학습시에는 단계(S89)가 수행되기보다 단계(S88)가 완료되면 바로 예측 모드로 전환된다.
도 19는 도 18의 단계(S87)의 수행 과정에서 SDB를 이용한 예측 문자열 DB(200) 구축 단계의 상세 순서를 도시한다. 이 SDB는 최근 예측 문자열 DB(203)와 같이 최근성의 요구로 실시간 데이터 용량 관리에 매우 적합하게 이용될 수 있다.
최초로 최근 예측 문자열 DB(203)가 초기화된 N개의 작은 규모의 DB(이하, SDB라 칭함)들로 구성하고, 이들을 도 8에 도시된 것과 같이 원형큐(circular queue) 형태로 연결한다. 그리고 상기 SDB들 중 하나를 현재 처리 대상 SDB로 설정한다(S892). SDB들의 레코드 구성은 기본적인 예측 문자열 DB(200)의 구성을 따른다. 즉, 문맥 요소를 탐색키로 하고 예측 문자열 및 연관성값들을 저장할 수 있는 구조를 기본으로 하고 있다. 현재 처리 대상 SDB에 실시간 추출된 문맥별 예측 문자열 후보들에 대하여 신규로 저장하는 과정(S894)에서 현재 처리 대상 SDB가 포화상태가 되면(S893), 상기 원형큐에서 연결된 다음 SDB가 현재 처리 대상 SDB가 된다(S895). 이때 새롭게 설정된 현재 처리 대상 SDB가 이미 포화상태인 경우(S896), 저장된 레코드를 모두 지워서 초기화(S897)한 후 개별 사용자로부터 추출된 문맥별 예측 문자열 후보들을 계속 저장해 나간다. 이러한 과정이 개별 사용자의 입력 패 턴을 학습하는 과정에서 반복적으로 이뤄지게 된다.
상기에서 포화 상태의 규정은, DB의 용량에 대한 제한 등 정책적으로 결정할 수 있지만, 바람직하게는 각 SDB에 저장하게 될 문맥별 예측 문자열 후보들이 추출될 어절들의 개수에 대한 제한이다. 예를 들어, 하나의 SDB에 저장할 문맥별 예측 문자열 후보들이 추출될 어절의 개수를 최대 2,000개로 규정하였다면, 처음 2,000개의 어절들에서 추출한 문맥별 예측 문자열 후보들을 하나의 SDB에 저장하였다면 다음 2,000개의 어절들에 대해서는 원형큐에 연결된 다음 SDB가 저장 대상이 되는 방식이다.
2.4 문자열의 예측 실패시의 사용자 선택 방법
도 16을 참조하면(도 16은 전술한 바와 같이 예측 대상 문자열을 음절로 가정한 흐름도임. 따라서 문자열을 문자로 표현함), 상기 단계(S40) 이후에, 사용자가 제시받은 예측 문자열 버튼(12)에 입력하려는 문자가 없는 경우, 사용자는 기본 문자 키를 직접 입력하게 되는데, 사용자로부터 다음 기본 문자에 대한 정보의 획득 및 자형 원리에 따른 처리를 수행한 후(S60), 완성 문자가 생성되는지 여부를 판단한다(S70). 완성 문자가 생성되지 않는 경우, 불완전 문자를 직전 텍스트에 포함시켜 새로이 문자열 예측을 수행한다. 완성 문자가 생성되는 경우에는 예측이 실패되었으나 사용자의 기본 문자 입력 도움으로 완전한 예측 문자열이 응용 프로그램으로 자동 입력되고, 현재 텍스트의 추가로 인하여 상기 단계(S80)의 실시간 학습을 수행한다.
이하에서는 상기 단계(S60 및 S70)에 대하여 도 20의 단일타 키 입력 환경과 도 21의 다중타 키 입력 환경으로 구분하여 상세히 설명한다.
도 20을 참조하면, 개별 키에 개별 기본 문자가 할당된 단일타 키 입력 환경에서 사용자로부터 다음 문자 입력을 획득한다(S601). 문자 입력을 획득하면 이전에 입력된 불완전 문자가 있는지를 판단하고(S602), 기 입력된 문자가 있는 경우 자형 원리에 따른 결합을 한다(S603)(예 : 상기의 도 3의 'ㅊ'이 입력된 상태에서 'ㅓ'가 입력되면 '처'로 결합). 결합을 완료하면 완성 문자가 생성되는지를 판단한다(S70). 상기 단계(S602 및 S70)에서 아직 불완전 문자로서 존재하는 경우 그 문자를 임시로 저장한다. 임시 저장된 문자는 다음 예측시 기 추출된 문맥 정보에 추가되어 불완전 문자를 포함하는 예측 문자열을 예측하는데 이용되고, 완성 문자는 후술되는 단계(S80)를 통하여 실시간 학습되어 예측 정보로 이용된다.
도 21을 참조하면, 개별 키에 복수개 기본 문자가 할당된 다중타 키 입력 환경에서 사용자로부터 다음 문자에 대한 정보를 획득한다(S611). 문자 입력을 획득하면 키 눌림 횟수에 따라서 유효 구성 문자들을 획득한다(S612). 유효 구성 문자란 해당 키에 할당된 기본 문자 중 눌린 횟수에 의해 선택 여지가 남아 있는 문자를 의미한다. 이미 위에서 설명한 "ㄱㅋㄲ"이 할당된 개별 키에서 1번 눌리면 유효 구성 문자는 'ㄱ', 'ㅋ', 'ㄲ'이 되고 2번 눌리면 'ㅋ', 'ㄲ'이 되고 3번 눌리면 'ㄲ'이 되는 것이다. 유효 구성 문자가 획득되면 첫 번째 문자를 획득한 후(S613), 기 입력된 불완전 문자가 있는가를 판단한다(S614). 만약, 기 입력된 문자가 없다면 입력 기본 문자를 불완전 문자로 획득하고(S615), 다음 입력될 문자열이 상기 단계(S612)에서 획득한 유효 구성 문자들 중 하나로 이어진다는 정보를 기존의 문 맥 정보에 추가한다(S620). 그리고 기 입력 문자가 있다면 직전 입력 문자가 현재와 동일한 키에서 입력되었는지를 판단한다(S616). 동일 키에서 입력된 경우라면 직전 입력 문자를 상기 단계(S613)에서 획득한 첫 번째 문자로 대체하여 다시 자형원리에 따라 처리한 후 생성된 불완전 문자를 화면에 표시하고(S617), 동일 키에서 입력된 것이 아니라면 직전 입력 문자에 이어서 자형 원리에 따라서 결합한다(S618). 다음으로, 입력하려는 완성 문자가 생성되는가를 판단한 후(S70), 아닐 경우 입력받은 기본 문자를 불완전 문자로서 임시 저장하고(S619), 상기 단계(S620)를 수행한다. 이상에서 불완전 문자는 자형 조합에 따라서 화면에 일시적으로 표시되나 응용 프로그램으로의 자동 입력은 완성 문자 및 문자열의 입력 완료시까지 중단된다.
상기 단계(S60)는 예측 문자열 중에 사용자가 입력하려는 문자열이 존재하지 않는 경우, 문맥 요소를 더 확보하는 차원에서 입력하려는 문자열의 구성 문자를 사용자로부터 입력받아 문자열 예측의 정확도를 개선하기 위함이다. 사용자가 입력하려는 문자열의 첫 문자를 입력하면 입력된 문자 자체가 불완전 문자라는 새로운 문맥 정보로 추가되게 되어 다시 시도되는 문자열 예측에서 사용됨으로써 문자열 예측의 정확도가 개선되게 된다. 만일 첫 문자 정보에도 불구하고 예측 문자열 중에 사용자가 원하는 문자가 없는 경우, 사용자로부터 다음 문자를 더 입력받아 보다 구체적인 문맥 요소를 확보한 상황에서 문자열 예측이 이뤄지게 된다. 이 과정이 반복될수록 불완전 문자열은 예측 문자열에 더 가깝게 된다.
예를 들어, 사용자가 입력하려는 문자열이 '닭'인데 복수개의 예측 문자열 중에 음절 '닭'이 없으면 사용자가 초성 자음 'ㄷ'을 입력하게 되고 이에 근거하여 문자열 예측이 다시 수행되며, 다시 제시받은 예측 문자열 중에도 글자 '닭'이 없는 경우 사용자가 중성 모음인 'ㅏ'를 입력하게 되고 상기 두 자모가 결합된 불완전 문자 '다'가 문맥 요소로 추출되어 문자열 예측에 이용되는 식이다.
상술한 바와 같이, 본 발명에 따른 사용자의 다음 문자열 입력을 예측하는 글자 입력 시스템 및 그 글자 입력 방법의 실시예가 구성된다. 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.
특히, 상기 실시예에서는 인간의 어휘 연상 모델을 구현하는 과정에서 예측 정보 DB별로 확률 결합도 개념을 도입하여, 최근 사용된 어휘보다 주제별 어휘가, 개인 취향의 어휘보다 최근 사용된 어휘가, 일반적인 어휘보다 개인 취향의 어휘가 우선 예측될 가능성이 높게 하였는데, 반드시 결합도를 사용하지 않고, 단지 연관성값만을 사용하여 유사한 효과를 획득할 수도 있다. 예를 들어, 주제별 DB에서 연관성값이 높은 예측 문자열들을 최종 후보로 바로 선정하되, 정해진 예측 문자열 수를 채우지 못할 경우, 다음 최근성 DB에서 선정된 예측 문자열들을, 그 다음엔 개인성향 DB에서 선정한 문자열들을 추가하는 식으로 최종 예측 문자열 후보들을 선정하는 것이다. 물론 이 경우 결합도를 연산하는 과정이 필요없게 되는 장점과 함께 어느 정도 예측 적중률이 저하될 가능성이 존재한다.
또한, 본 발명에서는 어휘 연상 모델을 이용하여 다음에 입력될 가능성이 높은 문자열들을 예측하여 사용자에게 제시하였는데, 사용자에게 바로 제시하지 않고 문자인식 시스템이나 음성인식 시스템과 같은 언어인식 시스템과 연동할 경우, 인식 시스템의 정확도를 높이는 데에도 기여할 수 있다. 이 경우 예측 대상 문자열의 유형을 해당 시스템에 적합하게 설정하는 등 그다지 중요하지 않은 변경만이 필요할 것으로 판단된다.
본 발명에 따른 예측 기반의 글자 입력 시스템 및 그 글자 입력 방법은, 사용자의 글자 입력시 다음번 입력이 예측되는 문자열을 제시하고, 사용자로부터 특정 예측 문자열을 선택받아 자동 입력함으로써 특정 글자 입력에 요구되는 키 버튼을 전부 누를 필요없이 완성된 글자, 단어의 문자열을 한 번의 선택으로 입력하여 사용자의 입력 편의성을 지원한다.
본 발명에서의 문자열 학습과 예측은 텍스트의 의미 관계 및 문법적 관계를 형성하는 문맥 정보에 근거하여 수행하기 때문에 문장 또는 어절에서의 첫 문자까지 예측할 수 있고, 인간의 어휘 연상 과정을 모델링한 학습 및 예측 방법을 통해 인간과 유사하게 높은 정확도로 문자열을 예측할 수 있다.

Claims (30)

  1. 임의 언어로 표기된 학습 대상의 텍스트로부터 의미적 관계 및 문법적 관계를 포함하는 문맥 정보를 분석하여 다음번 입력 문자를 학습한 예측 문자열 DB를 구축하고, 사용자의 실시간 입력시 다음번 입력이 예측되는 문자열을 상기 예측 문자열 DB로부터 선별하여 사용자에게 제공하는 글자 입력 시스템에 있어서,
    학습 대상의 텍스트에서 문맥 요소별로 이어서 나타나는 경향이 있는 문자열들을 실시간 생성되는 텍스트로부터 추출하여 실시간 구축하는 적어도 하나 이상의 예측 문자열 DB를 구비하고,
    사용자의 실시간 입력 텍스트로부터 적어도 하나 이상의 문맥 정보를 추출하는 문맥 추출 수단;
    추출된 상기 문맥 정보로 각각의 예측 문자열 DB를 조회하여 적어도 하나 이상의 예측 문자열과, 문맥 정보와 예측 문자열 사이의 연관 정도를 나타내는 연관성 값을 추출한 후, 상기 연관성 값을 이용하여 개별 예측 문자열 DB에서 각각의 예측 문자열의 예측값(사용자가 다음에 입력할 가능성)을 평가한 후 전체 예측 문자열 DB에서 동일한 예측 문자열에 대한 예측값을 합산하여 적어도 하나 이상의 예측 문자열을 상기 예측값의 순서로 선정하는 예측 문자열 선정 수단;
    선정된 상기 예측 문자열을 화면에 표시하여 사용자에게 제시하는 예측 문자열 출력 수단;
    제시된 상기 예측 문자열 중에서 사용자로부터 특정 예측 문자열을 선택받아 응용 프로그램상의 키 입력으로 자동 처리하는 예측 문자열 입력 수단; 및
    사용자에 의해 새롭게 작성된 텍스트를 대상으로 실시간 학습하여 적어도 하나 이상의 상기 실시간 예측 문자열 DB를 구축하는 실시간 학습 수단
    을 포함하여 사용자의 다음번 입력 문자를 예측하는 것을 특징으로 하는 글자 입력 시스템.
  2. 제 1항에 있어서,
    상기 예측 문자열 선정 수단이 검색하는 예측 문자열 DB 중에
    범용 패턴 학습 기능을 수행하여 다양한 분야 및 계층에서 작성된 텍스트들로부터 문맥 요소별로 이어서 나타나는 경향이 있는 문자열들을 추출하여 미리 저장해 놓은 기 구축 예측 문자열 DB인 범용 예측 문자열 DB를 더 구비하는 것을 특징으로 하는 글자 입력 시스템.
  3. 제 1항 또는 제 2항에 있어서,
    상기 예측 문자열은,
    개별 키에 할당되는 기본 문자, 완성 문자, 단어, 숫자, 스페이스, 외국어 문자, 기호 및 이들의 조합으로 생성되는 모든 문자열을 포함하는 것을 특징으로 하는 글자 입력 시스템.
  4. 제 1항 또는 제 2항에 있어서,
    상기 예측 문자열 DB는,
    적어도 하나 이상의 DB로 구성되어 상기 실시간 학습 수단에 의하여 학습되고 상기 예측 문자열 선정 수단에 의하여 예측시 참조되는 DB로서,
    문맥 정보의 분석을 통하여 예측 문자열을 출현하게 만든 문맥 요소;
    상기 문맥 요소의 영향력에 의하여 이어서 나타나는 예측 문자열; 및
    상기 문맥 요소 및 상기 예측 문자열의 연관성 정도를 나타내는 연관성값
    을 포함하는 학습 결과 데이터를 저장하는 것을 특징으로 하는 글자 입력 시스템.
  5. 제 1항에 있어서,
    상기 문맥 요소는,
    예측 문자열에 선행되어 그 출현에 영향력을 미치는 기본 문자, 완성 문자, 불완전 문자, 문자열, 단어, 어절, 품사, 형태소 등과 같은 언어학적 구성 요소들에 대한 위치, 의미, 문법적 관계 등의 구체적 정보를 포함하고, 상기 정보는 언어적 환경에서의 의미적 관계 및 문법적 관계의 정보를 나타내는 것을 특징으로 하는 글자 입력 시스템.
  6. 제 4항에 있어서,
    상기 연관성값은,
    상기 문맥 요소와 상기 예측 문자열의 예측에 미치는 신뢰도에 따라 정의된 가중치가 누적되는 값으로서,
    상기 가중치는 문맥 요소와 예측 문자열의 거리 위치, 추출시의 중의성 등을 고려하여 각각 정의되는 것을 특징으로 하는 글자 입력 시스템.
  7. 제 1항에 있어서,
    상기 실시간 학습 수단은,
    개별 사용자가 실시간 입력하는 텍스트를 분석하여 개인 예측 문자열 DB를 생성하는 개인 패턴 학습 기능;
    개별 사용자가 실시간으로 최근 입력한 일정량의 텍스트를 분석하여 최근 예측 문자열 DB를 생성하는 최근 패턴 학습 기능;
    개별 사용자가 특정 주제를 설정하여 실시간 입력하는 텍스트를 분석하여 주제별 예측 문자열 DB를 생성하는 주제별 패턴 학습 기능; 및
    유무선 네트워크를 통하여 공유되는 환경(특정 사이트, 게시판, 블로그, 채팅)에서 복수의 사용자가 실시간 입력하는 텍스트를 분석하여 공통의 주제어나 유행어의 예측 문자열을 주로 저장하는 인바운딩 DB를 생성하는 공유 패턴 학습 기능
    중에서 적어도 어느 하나 이상의 기능을 이용하여 적어도 하나 이상의 예측 문자열 DB를 생성하는 것을 특징으로 하는 글자 입력 시스템.
  8. 제 1항에 있어서,
    상기 예측 문자열 DB는,
    사용자가 실시간 입력하는 텍스트를 분석하여 DB를 구축하는 환경에서 최근에 추출한 일정량의 데이터만을 저장해야 하거나 데이터 용량 제한이 요구될 경우, 적어도 하나 이상의 SDB(Small DB)들이 원형큐(circular queue) 형태로 연결되는 DB 구조로 구축하고,
    임의의 시점에서 지정된 n번째 SDB의 용량이 포화 상태이면, 자동으로 n+1번째 SDB가 지정되어 기존의 모든 데이터를 제거하고 초기화한 후 새로이 기록해 나가고,
    예측 문자열의 탐색시에는 전체 SDB에서 데이터가 조회되는 것을 특징으로 하는 글자 입력 시스템.
  9. 제 1항에 있어서,
    상기 예측 문자열 선정 수단은,
    상기 문맥 추출 수단이 추출한 n개의 문맥 요소의 각각에 대해 각각의 문자열 DB로부터 예측 문자열 및 연관성값을 검색하는 기능;
    각각의 문자열 DB에서 동일한 문맥 요소에 이어서 나타난 동일 유형의 모든 예측 문자열들의 연관성값 합계를 분모로 하고 해당 문자열의 연관성값을 분자로 하는 수학식을 이용하여 각 DB별로 문맥 요소와 문자열 간의 결합도 값(예측값에 해당)을 구하는 기능;
    각각의 문자열 DB에서 개별 문맥 요소별로 추출된 모든 문자열에 대해 동일한 문자열들의 결합도를 합산하며 통합하는 기능;
    각각의 문자열 DB에서 상기 결합도에 대하여 문맥 요소의 신뢰도값으로 가중치가 존재하는 경우 그 가중치가 결합도에 곱해져 최종 결합도를 산정하는 기능;
    전체 문자열 DB에서 각각의 문자열 DB별로 추출된 모든 문자열에 대해 동일한 문자열들의 결합도를 합산하며 통합하는 기능; 및
    최종적으로 해당 문맥에 대해 예측 문자열 후보들을 결합도가 큰 문자열부터 제한된 개수만큼 선정하는 기능
    을 포함하는 것을 특징으로 하는 글자 입력 시스템.
  10. 제 1항에 있어서,
    상기 예측 문자열 선정 수단은,
    개인 예측 문자열 DB, 최근 예측 문자열 DB, 주제별 예측 문자열 DB 및 인바운딩 DB 중에서 적어도 하나, 둘 또는 세 개 이상을 포함하는 상기 예측 문자열 DB로부터 적어도 하나 이상의 예측 문자열을 선정하는 것을 특징으로 하는 글자 입력 시스템.
  11. 제 10항에 있어서,
    상기 예측 문자열 선정 수단은,
    범용 예측 문자열 DB를 더 포함하는 상기 예측 문자열 DB로부터 적어도 하나 이상의 예측 문자열을 선정하는 것을 특징으로 하는 글자 입력 시스템.
  12. 제 1항에 있어서,
    예측 실패가 발생하는 경우,
    사용자가 직접 입력하게 되는 기본 문자는 복수개 기본 문자가 개별 문자열 버튼에 할당되는 다중타 입력 방식으로 할당되고,
    키 버튼의 눌림 횟수에 따라 1회 눌려진 경우 전체 복수개 기본 문자로 각각 파생되는 예측 문자열을 제시하고, 2회 눌려진 경우 첫 기본 문자를 제외한 나머지 기본 문자들로 각각 파생되는 예측 문자열을 제시하고, 3회 눌려진 경우 2번째까지의 기본 문자들을 제외한 나머지 기본 문자들로 각각 파생되는 예측 문자열을 제시하는 것을 특징으로 하는 글자 입력 시스템.
  13. 제 1항 또는 제 2항에 있어서,
    상기 글자 입력 시스템은,
    사용자로부터 키 또는 버튼 입력을 이용하여 문자 또는 명령(기능)을 입력받는 키 입력 장치; 및
    입력된 상기 문자를 화면에 출력하는 화면 출력 장치
    를 구비하는 PC(데스크탑, 노트북, UMPC), 휴대폰, PDA, PMP, PSP, 게임기, 리모콘을 포함하는 사용자 단말에 구축되는 것을 특징으로 하는 글자 입력 시스템.
  14. 제 13항에 있어서,
    상기 사용자 단말은,
    예측 문자열 출력 수단이 상기 화면 출력 장치의 일 영역에 적어도 하나 이상의 예측 문자열을 표시하고, 표시된 상기 예측 문자열은 상기 키 입력 장치내 특정 키나 버튼에 배정되어 사용자로부터 선택되는 것을 특징으로 하는 글자 입력 시스템.
  15. 제 14항에 있어서,
    상기 화면 출력 장치에 표시된 예측 문자열들이 상기 키 입력 장치내 특정 키나 버튼들에 배정되는 방식에 있어서,
    예측 문자열과 1:1로 배정되거나,
    또는 여러 개의 예측 문자열이 하나의 키나 버튼에 할당되고 눌린 횟수에 따라 선택되는 방식으로 배정되거나,
    하나의 키를 누를 때마다 예측 문자열들이 변경되며 다른 하나의 키로 선택이 되는 스크롤 방식으로 배정되는 것;
    을 특징으로 하는 글자 입력 시스템.
  16. 제 13항에 있어서,
    상기 사용자 단말은,
    개별 키에 복수개 문자가 할당되고 상기 키의 눌림 횟수에 따라서 상기 키에 차례로 배정된 개별 문자를 입력하는 다중타 방식의 키 입력 장치를 구비하고,
    예측 실패로 화면에 표시된 상기 예측 문자열 중에서 사용자가 입력하려는 문자가 존재하지 않아 직접 입력이 필요한 상태에서,
    특정 키가 선택되면 상기 키에 할당된 문자들 중 눌린 횟수에 따라 배제되지 않은 유효 문자들로부터 각각 파생되는 예측 문자열을 화면의 소정 영역에 표시하는 것을 특징으로 하는 글자 입력 시스템.
  17. 제 13항에 있어서,
    상기 사용자 단말이 디지털 TV이고,
    상기 문자열 출력 수단은 디지털 TV의 화면이며
    상기 키입력 장치는 디지털 TV의 리모콘인 상황에서,
    예측 문자열들이 디지털 TV의 일 영역에 표시되고,
    상기 표시된 예측 문자열들이 상기 키입력 장치의 특정 키들에 매칭되어 상기 키 입력 장치내 키들의 위치에 익숙한 사용자가 상기 문자열 출력 수단인 화면만 보면서도 용이하게 글을 입력할 수 있게 하는 것을 특징으로 하는 글자 입력 시스템.
  18. 제 13항에 있어서,
    상기 사용자 단말은,
    상기 키 입력 장치에 별도의 화면 표시 수단과 이 화면 표시 수단에 표시된 내용을 선택하는 선택 수단이 내장 또는 외장형으로 구비되고,
    상기 화면 표시 수단을 통하여, 사용자가 입력 중인 텍스트 및
    예측 문자열 출력 수단이 출력하는 적어도 하나 이상의 예측 문자열이 사용자에게 제공되고,
    상기 선택 수단에 의해 상기 예측 문자열들이 선택되는 것을 특징으로 하는 글자 입력 시스템.
  19. 임의 언어로 표기된 학습 대상의 텍스트로부터 의미적 관계 및 문법적 관계를 포함하는 문맥 정보를 분석하여 다음번 입력되는 문자를 학습한 예측 문자열 DB를 구축하고, 사용자의 실시간 입력시 다음번 입력이 예측되는 문자열을 상기 예측 문자열 DB로부터 선별하여 사용자에게 제공하는 글자 입력 방법에 있어서,
    (S10)사용자 단말이 개인 사용자의 학습 대상 텍스트를 실시간 학습하여 구축되는 적어도 하나 이상의 예측 문자열 DB를 구비하는 단계;
    (S20)사용자가 실시간 입력하는 문자열(직전 텍스트)로부터 추출 가능한 적어도 하나 이상의 문맥 요소를 추출하는 단계;
    (S30)추출된 상기 문맥 정보로 각각의 예측 문자열 DB를 조회하여 적어도 하나 이상의 예측 문자열과, 문맥 정보와 예측 문자열 사이의 연관 정도를 나타내는 연관성 값을 추출한 후, 상기 연관성 값을 이용하여 개별 예측 문자열 DB에서 각각의 예측 문자열의 예측값(사용자가 다음에 입력할 가능성)을 평가한 후 전체 예측 문자열 DB에서 동일한 예측 문자열에 대한 예측값을 합산하여 적어도 하나 이상의 예측 문자열을 상기 예측값의 순서로 선정하는 단계;
    (S40)선정된 상기 예측 문자열을 화면에 표시하여 사용자에게 제시하는 단계;
    (S50)예측이 성공이면, 제시된 상기 예측 문자열 중에서 사용자로부터 특정 예측 문자열을 선택받아 응용 프로그램상의 키 입력으로 자동 처리하는 단계; 및
    (S80)상기 단계(S50)에서 예측 성공되거나 또는 사용자의 직접 입력의 도움을 받아 사용자가 입력하려는 문자열이 입력 완료된 경우, 새로 추가된 사용자의 문자열을 실시간 학습하여 대응하는 예측 문자열 DB에 학습 결과를 저장하는 단계
    를 포함하여 사용자의 다음번 입력 문자를 예측하는 것을 특징으로 하는 글자 입력 방법.
  20. 제 19항에 있어서,
    상기 단계(S10)는,
    범용 패턴 학습 기능을 수행하여 다양한 분야 및 계층에서 작성된 텍스트들로부터 문맥 요소별로 이어서 나타나는 경향이 있는 문자열들을 추출하여 미리 저장해 놓은 기 구축 예측 문자열 DB인 범용 예측 문자열 DB를 더 구비하는 단계인 것을 특징으로 하는 글자 입력 방법.
  21. 제 19항에 있어서,
    상기 단계(S40) 이후에,
    (S60)예측이 실패이면, 사용자로부터 직접 기본 문자를 입력받고 자형 원리에 따라 기 입력된 기본 문자와 결합하여 불완전 문자를 형성하고, 상기 불완전 문자를 포함한 불완전 문자열을 문맥 정보 추출 대상 텍스트에 추가하는 단계;
    (S70)상기 단계(S60) 이후에, 예측 대상 문자열이 완성되는지를 판단하고, 완성되지 않은 경우 불완전 문자열을 문맥 정보에 추가하고 상기 단계(S20)부터 다시 수행하는 단계
    를 더 포함하여 예측 실패시 사용자가 직접 입력하는 기본 문자에 기반하여 다시 예측을 수행하는 것을 특징으로 하는 글자 입력 방법.
  22. 제 19항 또는 제 20항에 있어서,
    상기 예측 문자열은,
    개별 키에 할당되는 기본 문자, 완성 문자, 단어, 숫자, 스페이스, 외국어 문자, 기호 및 이들의 조합으로 생성되는 모든 문자열을 포함하는 것을 특징으로 하는 글자 입력 방법.
  23. 제 19항 또는 제 20항에 있어서,
    상기 단계(S10)는,
    문맥 정보의 분석을 통하여 예측 문자열을 출현하게 만든 문맥 요소;
    상기 문맥 요소의 영향력에 의하여 이어서 나타나는 예측 문자열; 및
    상기 문맥 요소 및 상기 예측 문자열의 연관성 정도를 나타내는 연관성값
    들로 구성되는 기 구축 예측 문자열 DB 및/또는 실시간 예측 문자열 DB로 구성되는 적어도 하나 이상의 예측 문자열 DB를 사용자 단말에 구비하는 단계인 것을 특징으로 하는 글자 입력 방법.
  24. 제 19항에 있어서,
    상기 문맥 요소는,
    예측 문자열에 선행되어 그 출현에 영향력을 미치는 기본 문자, 완성 문자, 불완전 문자, 문자열, 단어, 어절, 품사, 형태소 등과 같은 언어학적 구성 요소들의 위치, 의미, 문법적 관계 등에 대한 구체적 정보를 포함하고, 상기 정보는 언어적 환경에서의 의미적 관계 및 문법적 관계의 정보를 나타내는 것을 특징으로 하는 글자 입력 방법.
  25. 제 23항에 있어서,
    상기 연관성값은,
    상기 문맥 요소와 상기 예측 문자열의 예측에 미치는 신뢰도에 따라 정의된 가중치가 누적되는 값으로서,
    상기 가중치는 문맥 요소와 예측 문자열의 거리 위치, 추출시의 중의성 등을 고려하여 각각 정의되는 것을 특징으로 하는 글자 입력 방법.
  26. 제 19항에 있어서,
    상기 단계(S20)부터 상기 단계(S30)까지는 범용 예측 문자열 DB, 개인 예측 문자열 DB, 최근 예측 문자열 DB, 주제별 예측 문자열 DB 및 인바운딩 DB 중에서 적어도 하나, 둘 또는 세 개 이상을 포함하는 상기 예측 문자열 DB로부터 적어도 하나 이상의 예측 문자열을 실시간으로 선정하여 예측하는 과정으로서,
    (S21)예측을 위하여 예측 문자열 DB를 준비하는 단계;
    (S22)사용자가 최근까지 입력한 직전 텍스트를 문자열 버퍼로부터 획득하는 단계;
    (S23)획득한 상기 직전 텍스트를 문맥 정보 분석하여 추출 가능한 n개의 문맥 요소들을 추출하는 단계.
    (S31)n개의 문맥 요소가 추출되면, 개별 문맥 요소를 키로 하여 각각의 예측 문자열 DB에서 이어서 나타나는 문자열들과 연관성값들을 모두 검색하는 단계;
    (S32)동일한 개별 문맥 요소를 대상으로 이어서 나타난 동일 유형의 모든 문자열들의 연관성값들의 합계를 분모로 하고 해당 연관성값을 분자로 하는 수학식을 이용하여 각 DB별로 문맥 요소와 문자열간의 결합도값을 구하는 단계;
    (S33)개별 문맥 요소별로 추출된 모든 문자열에 대해 동일한 문자열들의 결합도값을 합산하며 통합하는 단계
    (S34)상기 통합된 문자열들의 결합도에 대하여 문맥 요소의 신뢰도값으로 가중치가 존재하는 경우, 그 가중치가 결합도에 곱해져 최종 결합도를 산정하는 단계;
    (S35)상기 단계(23)에서 추출된 다음번 문맥 요소가 있는지를 판단하고 있는 경우 상기 단계(S31 ~ S34)를 수행하는 단계;
    (S36)전체 예측 문자열 DB의 전체 문맥 요소를 대상으로 다시 동일한 예측 문자열별로 상기 결합도를 합산하며 통합하는 단계;
    (S37)상기 최종 통합된 예측 문자열들의 결합도의 순위에 따라서 예측 문자열들을 정렬하는 단계; 및
    (S38)가장 높은 순위의 예측 문자열부터 정해진 개수만큼의 개별 예측 문자열을 선정하는 단계
    를 포함하는 것을 특징으로 하는 글자 입력 방법.
  27. 제 21항에 있어서,
    상기 단계(S60)는,
    사용자가 직접 입력하게 되는 기본 문자에 대하여, 복수개 기본 문자가 개별 문자열 버튼에 할당하는 다중타 입력 방식으로 할당되고,
    키 버튼의 눌림 횟수에 따라 1회 눌려진 경우 전체 복수개 기본 문자로 각각 파생되는 예측 문자열을 제시하고, 2회 눌려진 경우 첫 기본 문자를 제외한 나머지 기본 문자들로 각각 파생되는 예측 문자열을 제시하고, 3회 눌려진 경우 2번째까지의 기본 문자들을 제외한 나머지 기본 문자들로 각각 파생되는 예측 문자열을 제시하는 것을 특징으로 하는 글자 입력 방법.
  28. 제 19항에 있어서,
    상기 단계(S80)는,
    사용자가 문자열을 작성하는 중에 현재 텍스트가 갱신되어 학습 시점이 도래하여 학습을 수행하는 단계로서,
    (S81)학습을 위하여 전체 예측 문자열 DB를 준비하는 단계;
    (S82)학습 대상의 현재 텍스트 획득하는 단계;
    (S83)상기 현재 텍스트로부터 형태소 분석 등을 이용하여 가능한 예측 단위별 문자열들을 추출하면서, 직전 텍스트로부터 가능한 문맥 요소들을 추출한 후 이들의 조합으로 쌍들을 형성하는 단계;
    (S84)문맥 요소와 예측 문자열의 쌍이 형성되면, 개별 문맥 요소를 키로 하여 개별 예측 문자열 DB마다 이어서 나타나는 문자열들 및 그 정도값인 가중치가 누적된 연관성값들을 검색하는 단계;
    (S85)DB 검색 후, 상기 단계(S83)에서 추출한 문자열이 검색 결과의 예측 문자열로 존재하는지 여부를 판단하는 단계;
    (S86)존재하는 경우, 문맥 요소 및 문자열의 신뢰도 유형에 따른 준비된 가중치를 상기 단계(S84)에서 검색된 연관성값에 누적하는 단계;
    (S87)존재하지 않는 경우, 해당 문맥 요소에 대해 문자열 및 연관성값(단위 가중치값)을 신규 레코드로서 예측 문자열 DB에 추가하는 단계; 및
    (S88)다음 문맥 요소와 문자열 쌍이 있는지를 판단하여 남아있는 쌍이 있으면 상기 단계(S84)를 수행하는 단계
    를 포함하는 것을 특징으로 하는 글자 입력 방법.
  29. 제 19항 또는 제 28항에 있어서,
    상기 단계(S80)는,
    개별 사용자가 입력하는 모든 텍스트를 분석하여 실시간 구축되는 개인 예측 문자열 DB에 학습 결과 데이터를 저장하는 단계;
    개별 사용자가 최근 입력한 일정량의 텍스트를 분석하여 실시간 구축되는 최근 예측 문자열 DB에 학습 결과 데이터를 저장하는 단계;
    개별 사용자가 특정 주제를 설정하여 입력하는 텍스트를 분석하여 실시간 구축되는 주제별 예측 문자열 DB에 학습 결과 데이터를 저장하는 단계; 및
    유무선 네트워크를 통하여 공유되는 환경(특정 사이트, 게시판, 블로그, 채 팅 등)에서 복수의 사용자가 실시간 입력하는 텍스트를 분석하여 실시간 구축되며 공통의 주제어나 유행어의 예측 문자열을 주로 저장하는 인바운딩 DB에 학습 결과 데이터를 저장하는 단계
    중의 하나 이상의 단계를 포함하는 것을 특징으로 하는 글자 입력 방법.
  30. 제 19항 또는 제 28항에 있어서,
    상기 단계(S80)는,
    사용자가 실시간 입력하는 텍스트를 분석하여 DB를 구축하는 환경에서 최근에 추출한 일정량의 데이터만을 저장해야 하거나 데이터 용량 제한이 요구될 경우,
    적어도 하나 이상의 SDB(Small DB)들이 원형큐(circular queue) 형태로 연결되는 DB 구조로 구축하고,
    임의의 시점에서 지정된 n번째 SDB의 용량이 포화 상태이면, 자동으로 n+1번째 SDB가 지정되어 기존의 모든 데이터를 제거하고 초기화한 후 새로이 기록해 나가고,
    예측 문자열의 탐색시에는 전체 SDB에서 데이터가 조회되는 것을 특징으로 하는 글자 입력 방법.
KR1020060102354A 2005-10-20 2006-10-20 사용자의 다음 문자열 입력을 예측하는 글자 입력 시스템및 그 글자 입력 방법 KR100891358B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20050099066 2005-10-20
KR1020050099066 2005-10-20

Publications (2)

Publication Number Publication Date
KR20070043673A KR20070043673A (ko) 2007-04-25
KR100891358B1 true KR100891358B1 (ko) 2009-04-01

Family

ID=38178052

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060102354A KR100891358B1 (ko) 2005-10-20 2006-10-20 사용자의 다음 문자열 입력을 예측하는 글자 입력 시스템및 그 글자 입력 방법

Country Status (1)

Country Link
KR (1) KR100891358B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101250900B1 (ko) * 2009-08-17 2013-04-04 한국전자통신연구원 문서정보 학습기반 통계적 hmm 품사 태깅 장치 및 그 방법
WO2020085567A1 (ko) * 2018-10-26 2020-04-30 아주대학교 산학협력단 순환신경망을 이용한 통신 메시지 해석 장치 및 그 방법

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100838818B1 (ko) * 2007-08-13 2008-06-17 홍성찬 문자입력장치
WO2009057721A1 (ja) * 2007-10-30 2009-05-07 Kyocera Corporation 携帯表示機器
KR101521924B1 (ko) * 2008-10-30 2015-05-20 엘지전자 주식회사 휴대용 전자기기 및 휴대용 전자기기의 한글 입력방법
GB201108200D0 (en) 2011-05-16 2011-06-29 Touchtype Ltd User input prediction
CN104007832B (zh) 2013-02-25 2017-09-01 上海触乐信息科技有限公司 连续滑行输入文本的方法、系统及设备
KR102295278B1 (ko) * 2014-10-30 2021-08-31 삼성전자주식회사 적응적인 키보드 인터페이스를 제공하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체
WO2016068455A1 (ko) 2014-10-30 2016-05-06 주식회사 플런티코리아 적응적인 키보드 인터페이스를 제공하기 위한 방법 및 시스템, 대화 내용과 연동되는 적응적 키보드를 이용한 답변 입력 방법
KR101645674B1 (ko) * 2014-11-04 2016-08-05 주식회사 케이티 자동완성 후보 단어 제공 방법 및 장치
CN105404401A (zh) 2015-11-23 2016-03-16 小米科技有限责任公司 输入处理方法、装置及设备
KR102125225B1 (ko) 2017-04-19 2020-06-22 (주)휴먼웍스 빅데이터 기반의 인공지능을 활용한 메시지 서비스의 개인 맞춤형 문장마디 제시 방법과 시스템
US10846477B2 (en) 2017-05-16 2020-11-24 Samsung Electronics Co., Ltd. Method and apparatus for recommending word
US11715042B1 (en) 2018-04-20 2023-08-01 Meta Platforms Technologies, Llc Interpretability of deep reinforcement learning models in assistant systems
US11307880B2 (en) 2018-04-20 2022-04-19 Meta Platforms, Inc. Assisting users with personalized and contextual communication content
US11676220B2 (en) 2018-04-20 2023-06-13 Meta Platforms, Inc. Processing multimodal user input for assistant systems
US11886473B2 (en) 2018-04-20 2024-01-30 Meta Platforms, Inc. Intent identification for agent matching by assistant systems
US11010179B2 (en) 2018-04-20 2021-05-18 Facebook, Inc. Aggregating semantic information for improved understanding of users
US11301627B2 (en) * 2020-01-06 2022-04-12 Sap Se Contextualized character recognition system
CN117218667B (zh) * 2023-11-07 2024-03-08 华侨大学 一种基于字根的中文文字识别方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040030928A (ko) 2002-07-18 2004-04-09
KR20050106613A (ko) 2004-05-06 2005-11-11 부산대학교 산학협력단 단어자동완성시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040030928A (ko) 2002-07-18 2004-04-09
KR20050106613A (ko) 2004-05-06 2005-11-11 부산대학교 산학협력단 단어자동완성시스템

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101250900B1 (ko) * 2009-08-17 2013-04-04 한국전자통신연구원 문서정보 학습기반 통계적 hmm 품사 태깅 장치 및 그 방법
WO2020085567A1 (ko) * 2018-10-26 2020-04-30 아주대학교 산학협력단 순환신경망을 이용한 통신 메시지 해석 장치 및 그 방법
KR20200047124A (ko) * 2018-10-26 2020-05-07 아주대학교산학협력단 순환신경망 및 분기예측에 기반한 통신 메시지 해석 장치 및 그 방법
KR102177741B1 (ko) 2018-10-26 2020-11-11 아주대학교산학협력단 순환신경망 및 분기예측에 기반한 통신 메시지 해석 장치 및 그 방법

Also Published As

Publication number Publication date
KR20070043673A (ko) 2007-04-25

Similar Documents

Publication Publication Date Title
KR100891358B1 (ko) 사용자의 다음 문자열 입력을 예측하는 글자 입력 시스템및 그 글자 입력 방법
US11416679B2 (en) System and method for inputting text into electronic devices
US11614862B2 (en) System and method for inputting text into electronic devices
US8713432B2 (en) Device and method incorporating an improved text input mechanism
KR100766169B1 (ko) 컴퓨터-구현 사전 학습 방법 및 상기 방법을 사용하는 장치, 입력 방법 및 상기 입력 방법을 사용하는 사용자 단말기 장치
US9104244B2 (en) All-in-one Chinese character input method
US7395203B2 (en) System and method for disambiguating phonetic input
US7088861B2 (en) System and method for chinese input using a joystick
US6307549B1 (en) Reduced keyboard disambiguating system
US7277732B2 (en) Language input system for mobile devices
US20160328377A1 (en) System and method for inputting text into electronic devices
JP2001509290A (ja) 減少型キーボード曖昧さ除去システム
US7912697B2 (en) Character inputting method and character inputting apparatus
CN107797676B (zh) 一种单字输入方法及装置
WO2008096934A1 (en) Prediction-based word inputting method
JP3492981B2 (ja) 音声仮名文字の入力順序を生成するための入力システム
KR20110072496A (ko) 특정기능어를 이용한 전자사전 검색 장치 및 검색 방법
AU747901B2 (en) Reduced keyboard disambiguating system
WO2004107211A1 (ja) 電子辞書

Legal Events

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

Payment date: 20120319

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee