KR20040107965A - 시스템 전반의 입력언어모드 인식방법 및 장치와 이를이용한 입력언어모드 자동전환방법 및 장치 - Google Patents

시스템 전반의 입력언어모드 인식방법 및 장치와 이를이용한 입력언어모드 자동전환방법 및 장치 Download PDF

Info

Publication number
KR20040107965A
KR20040107965A KR1020030038679A KR20030038679A KR20040107965A KR 20040107965 A KR20040107965 A KR 20040107965A KR 1020030038679 A KR1020030038679 A KR 1020030038679A KR 20030038679 A KR20030038679 A KR 20030038679A KR 20040107965 A KR20040107965 A KR 20040107965A
Authority
KR
South Korea
Prior art keywords
input language
keystroke
mode
input
language mode
Prior art date
Application number
KR1020030038679A
Other languages
English (en)
Other versions
KR100634496B1 (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 KR1020030038679A priority Critical patent/KR100634496B1/ko
Priority to US10/867,791 priority patent/US7562007B2/en
Publication of KR20040107965A publication Critical patent/KR20040107965A/ko
Application granted granted Critical
Publication of KR100634496B1 publication Critical patent/KR100634496B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/263Language identification

Landscapes

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

Abstract

본 발명이 적용되는 해당 시스템의 전반적인 입력언어모드 인식방법 및 장치와 이를 이용한 입력언어모드 자동전환방법 및 장치가 개시된다. 입력언어모드 자동전환장치는 입력언어모드 자동전환기능의 기동여부를 결정하는 제어신호를 발생시키는 제1 유니트, 상기 제1 유니트로부터 제공되는 제어신호가 오프인 경우 소정의 입력장치를 통해 수신되는 키스트로크를 바이패스시키고, 제1 유니트로부터 제공되는 제어신호가 온인 경우 소정의 입력장치를 통해 수신되는 키스트로크의 입력언어모드 인식결과에 따라서, 수신된 키스트로크를 바이패스시키거나, 적어도 하나 이상의 이전 키스트로크를 강제적으로 삭제하는 동시에 상기 적어도 하나 이상의 이전 키스트로크와 수신된 키스트로크를 모드전환하는 제2 유니트, 및 제1 및 제2 입력언어 전자사전을 참조하여, 수신된 키스트로크의 스캔코드의 입력언어모드를 인식하고, 현재 입력언어모드, 인식된 입력언어모드, 키스트로크 삭제범위 및 키스트로크 전환범위에 대한 정보를 제2 유니트로 제공하는 제3 유니트를 포함한다. 이에 따르면, 운영체제 자체나 입출력 장치 하드웨어 자체를 확장시킴으로써 해당 시스템의 특정 응용프로그램에서만 동작하는 것이 아니라, 해당 시스템에서 동작하는 기존의 모든 응용프로그램에서의 입력모드 전환이 자동으로 수행되게 함으로써 해당 시스템 사용자의 키입력 작업시 편리성을 극대화시켜 줄 수 있다.

Description

시스템 전반의 입력언어모드 인식방법 및 장치와 이를 이용한 입력언어모드 자동전환방법 및 장치 {Input language recognition method and apparatus and method and apparatus for automatically interchanging input language modes employing the same}
본 발명은 키보드 또는 키패드를 구비하는 모든 기기에 있어서 입력되는 키스트로크에 대하여 적어도 두가지 이상의 입력언어모드를 인식하는 방법 및 장치와, 이를 이용한 입력언어모드 자동전환방법 및 장치에 관한 것이다.
일반적으로 한글과 영문을 혼용하는 종래의 응용프로그램에서 한글과 영문의 입력을 위해서는 키보드상의 한/영 전환키를 사용하여 한글 입력모드 또는 영문 입력모드로 전환해야 한다. 응용프로그램의 종류에 따라 한/영 전환키의 사용빈도에는 차이가 있을 수 있으나, 사용자로서는 한/영 전환키를 한글, 영문을 입력할 때마다 사용하는 것이 매우 불편하다. 특히, 인터넷을 이용하는 횟수가 빈번한 요즘, 예를 들어 웹브라우저 프로그램, 검색 프로그램 등과 같은 응용 프로그램에서 인터넷 도메인 주소 또는 검색어 입력을 위하여 한글과 영문을 번갈아가며 입력해야 한다. 이러한 경우, 사용자는 키보드에서 한글입력모드 또는 영문입력모드를 판별하고, 이에 적합하도록 한/영 전환키를 사용해야 한다. 그러나, 상반된 입력모드에서 작업을 하고 있는 경우, 문자를 입력한 후에야 비로소 잘못 입력되었음을 발견하므로써 기입력된 내용을 수정해야 하는 불편함이 따른다.
예를 들어, 웹브라우저 프로그램상에서 인터넷 도메인 주소를 입력하거나 검색어를 입력할 경우, 사용자는 현재 키보드가 한글입력모드인지 영문입력모드인지를 판별하지 않고 인터넷 도메인 주소 또는 검색어를 입력하게 되는 경우가 빈번하다. 즉, 도메인 주소가 'www.hangul.com' 인 경우 키보드가 한글입력모드이면 'ㅈㅈㅈ.ㅗ무혀ㅣ.채ㅡ' 과 같이 입력되어 웹브라우저 화면에 나타난다. 따라서, 사용자는 입력된 문자열들을 삭제하고, 한글 또는 영문입력모드로 전환하여 원하는문자들을 재입력해야 하는 불편함이 따랐다.
최근 아래아한글, 훈민정음, MS 워드 등과 같은 워드 프로세서에서는 문서를 작성하면서 일일이 한글 자판이나 영문 자판을 바꿔가면서 입력해야 하는 번거로움을 해소시키기 위하여, 한글을 영문 자판으로, 영문을 한글 자판으로 잘못 입력한 경우 자동으로 고쳐 주는 한영입력모드 자동전환 기능을 부가하였다. 그런데, 이러한 한영입력모드 자동전환 기능에서는, 예를 들어 사용자가 한글을 영문 자판으로 입력하는 경우, 잘못 입력된 문자를 제대로 전환하기 위해서는 반드시 스페이스바 또는 엔터키를 눌러야만 하는 단점이 있었다. 또한, 일단 자동전환기능을 설정해 두면 사용자가 해당 자판으로 제대로 입력시킨 문자라 하더라도 자동전환기능에 의해 전환해야 되는 문자로 설정된 경우에는 스페이스바나 엔터키를 누름과 동시에 사용자의 의사와는 상관없는 문자와 입력모드로 전환됨으로써 오히려 사용자를 불편하게 하는 문제점이 있었다. 또한, 이와 같은 한영입력모드 자동전환기능은 워드 프로세서와 같은 응용프로그램에만 한정될 뿐 아니라, 인식율이 내장된 전자사전의 용량에 따라서 좌우되기 때문에 그 유용성이 떨어지는 문제점이 있었다.
따라서, 본 발명이 이루고자 하는 기술적 과제는 키보드 또는 키패드를 구비하는 모든 기기에 있어서 매 키스트로크에 대한 입력언어모드를 실시간으로 인식하는 방법을 제공하는데 있다.
본 발명의 다른 목적은 키보드 또는 키패드를 구비하는 모든 기기에 있어서 키스트로크시 삽입에러, 반복에러 또는 탈락에러가 발생되더라도 이러한 에러를 포함하는 키스트로크에 대한 입력언어모드를 통계적인 방법에 의거하여 인식하는 방법을 제공하는데 있다.
본 발명의 또 다른 목적은 키보드 또는 키패드를 구비하는 모든 기기에 있어서 각 사용자에 대하여 적응적으로 사전에 등록된 어휘 이외의 어휘(Out-Of-Vocabulary)에 대한 입력언어모드를 인식하는 방법을 제공하는데 있다.
본 발명의 또 다른 목적은 키보드 또는 키패드를 구비하는 모든 기기에 있어서 사용되는 운영체제 자체를 확장시킴으로써 워드프로세서 뿐만 아니라 키입력을 필요로 하는 모든 응용 프로그램에서 입력언어모드 인식결과에 따라서 적어도 두가지 입력언어모드를 자동전환하는 방법 및 장치를 제공하는데 그 목적이 있다.
본 발명의 또 다른 목적은 키스트로크 수행 중 스페이스바나 엔터키를 누르지 않고도 높은 인식율을 가지고 적어도 두가지 입력언어모드를 자동전환하는 방법 및 장치를 제공하는데 있다.
본 발명의 또 다른 목적은 각 사용자에 대하여 적응적으로 사전에 등록된 어휘 이외의 어휘에 대한 입력언어모드를 인식하고, 인식결과에 따라서 적어도 두가지 입력언어모드를 자동전환하는 방법 및 장치를 제공하는데 있다.
상기 목적들을 달성하기 위하여 본 발명에 따른 따른 입력언어모드 인식방법은 (a) 소정의 인식단위로 수행되며, 매 키스트로크시 수신되는 키스트로크의 스캔코드에 대한 노드가 제1 또는 제2 입력언어 오토마타에 존재하는지를 판단하여 상기 수신된 키스트로크의 스캔코드에 대한 입력언어모드를 인식하는 단계; 및 (b) 상기 (a) 단계에서의 판단결과, 상기 수신된 키스트로크의 스캔코드에 대한 노드가제1 및 제2 입력언어 오토마타에 모두 존재하는 경우, 상기 인식단위내에서 상기 수신된 키스트로크의 스캔코드에 대한 노드가 제1 또는 제2 입력언어로 대기 또는 종결 상태마크를 갖는지를 판단하여 상기 수신된 키스트로크의 스캔코드에 대한 입력언어모드를 인식하는 단계를 포함하는 것을 특징으로 한다.
상기 목적들을 달성하기 위하여 본 발명에 따른 따른 입력언어모드 인식장치는 제1 입력언어로 이루어지는 어휘를 소정의 인식단위로 사전에 등록한 제1 입력언어 전자사전; 제2 입력언어로 이루어지는 어휘를 소정의 인식단위로 사전에 등록한 제2 입력언어 전자사전; 입력언어모드 자동전환기능에 의해 강제 삭제 및 모드변환시킨 키스트로크에 대하여 사용자가 직접 삭제와 모드전환을 행한 사용자언어를 등록한 사용자언어 전자사전; 및 상기 제1 및 제2 입력언어 전자사전과 상기 사용자언어 전자사전을 참조하여, 매 키스트로크시 수신되는 키스트로크의 스캔코드의 입력언어모드를 인식하고, 현재 입력언어모드, 인식된 입력언어모드, 키스트로크 삭제범위 및 키스트로크 전환범위에 대한 정보를 제공하는 적응적 인식부를 포함하는 것을 특징으로 한다.
상기 목적들을 달성하기 위하여 본 발명에 따른 따른 입력언어모드 자동전환방법은 (a) 입력언어모드 자동전환기능의 기동여부를 결정하는 제어신호를 발생시키는 단계; (b) 상기 (a) 단계에서 발생되는 제어신호가 오프인 경우 소정의 입력장치를 통해 수신되는 키스트로크를 바이패스시키는 단계; 및 (c) 상기 (a) 단계에서 발생되는 제어신호가 온인 경우, 상기 소정의 입력장치를 통해 수신되는 키스트로크의 입력언어모드 인식결과에 따라서, 상기 수신된 키스트로크를 바이패스시키거나, 적어도 하나 이상의 이전 키스트로크를 강제적으로 삭제하는 동시에 상기 적어도 하나 이상의 이전 키스트로크와 상기 수신된 키스트로크를 모드전환하는 단계를 포함하는 것을 특징으로 한다.
상기 목적들을 달성하기 위하여 본 발명에 따른 따른 입력언어모드 자동전환장치는 입력언어모드 자동전환기능의 기동여부를 결정하는 제어신호를 발생시키는 제1 수단; 상기 제1 수단으로부터 제공되는 제어신호가 오프인 경우 소정의 입력장치를 통해 수신되는 키스트로크를 바이패스시키고, 상기 제1 수단으로부터 제공되는 제어신호가 온인 경우 상기 소정의 입력장치를 통해 수신되는 키스트로크의 입력언어모드 인식결과에 따라서, 상기 수신된 키스트로크를 바이패스시키거나, 적어도 하나 이상의 이전 키스트로크를 강제적으로 삭제하는 동시에 상기 적어도 하나 이상의 이전 키스트로크와 상기 수신된 키스트로크를 모드전환하는 제2 수단; 및 제1 및 제2 입력언어 전자사전을 참조하여, 상기 수신된 키스트로크의 스캔코드의 입력언어모드를 인식하고, 현재 입력언어모드, 인식된 입력언어모드, 키스트로크 삭제범위 및 키스트로크 전환범위에 대한 정보를 상기 제2 수단으로 제공하는 제3 수단을 포함하는 것을 특징으로 한다.
상기 입력언어모드 인식방법은 바람직하게로는 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체로 구현할 수 있다. 또한, 상기 입력언어모드 자동전환방법은 바람직하게로는 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체로 구현할 수 있다.
도 1은 본 발명의 일실시예에 따른 입력모드 자동전환장치의 구성을 보여주는 블럭도,
도 2는 도 1에 도시된 키보드 필터 드라이버의 동작을 설명하는 흐름도,
도 3은 도 1에 도시된 입력언어모드 인식부의 세부적인 구성을 보여주는 블럭도,
도 4a 및 도 4b는 도 3에 도시된 제1 및 제2 입력언어 전자사전과 사용자언어 전자사전을 구성하는 오토마타 구조의 일예를 보여주는 도면,
도 5는 도 4a 및 도 4b에 도시된 오토마타 트리구조를 이용한 입력언어모드 인식과정을 보여주는 도면, 및
도 6은 도 3에 도시된 적응적 인식부의 동작을 설명하는 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일실시예에 따른 입력언어모드 자동전환장치의 구성을 보여주는 블럭도로서, 운영시스템(100)에 있어서 윈도우즈 후킹 드라이버(111), 키보드 디바이스 드라이버(112), 키보드 필터 드라이버(113) 및 키보드 클래스 드라이버(114)를 포함하는 커널모듈(110)과, 입력언어모드 인식부(121) 및 WIN32 서브시스템/USER32(122)를 포함하는 유저모듈(120)로 이루어진다. 여기서는 운영시스템(100)으로 윈도우즈(Windows)를, 입력장치(미도시)로 키보드를 예를 들어 설명하기로 하고, 제1 입력언어와 제2 입력언어를 각각 영문과 한글로 설정하기로 한다.
도 1을 참조하면, 커널모듈(110)에 있어서 윈도우즈 후킹 드라이버(111)는 운영시스템(100)의 쉘에서 실행되는 모든 응용프로그램의 프로세스들의 쓰레드(thread)에 연결된 모든 창들을 전체적으로 관리하고 추적한다. 즉, 운영시스템(100) 내부의 커널모듈(110)과 유저모듈(120)의 콤포넌트 서비스를 이용하여 현재 사용자가 전체 스크린 화면 중 어느 특정 창에서 작업을 하고 있는지를 추적한다. 윈도우즈 후킹 드라이버(111)는 컴퓨터 시동시 본 발명에 따른 입력언어모드 자동전환기능 가동여부를 선택하도록 하는 사용자 인터페이스를 통해 입력되는 키입력에 따른 사전 제어신호를 발생시키거나, 사용자가 현재 작업 중인 창을 추적하여 본 발명에 따른 입력언어모드 자동전환기능을 필요로 하는 창인지 여부에 따른 사후 제어신호를 발생시킨다. 이를 위하여 등록된 모든 응용프로그램에 대하여생성가능한 창들 중에서, 본 발명에 따른 입력언어모드 자동전환기능을 필요로 하지 않는 창을 설정한다. 예를 들면, 자체적으로 제1입력언어/제2입력언어 즉, 영문/한글 모드전환기능을 가지고 있는 워드 프로세서용 창 또는 ID 혹은 패스워드를 입력하는 창 등이 여기에 해당한다.
키보드 디바이스 드라이버(112)는 키보드로부터 입력되는 제1 또는 제2 입력언어모드의 키스트로크에 해당하는 스캔코드를 발생시킨다. 키보드 디바이스 드라이버(112)는 PS/2, USB, 시리얼과 같은 다양한 방식의 인터페이스를 지원한다.
키보드 필터 드라이버(113)는 윈도우즈 후킹 드라이버(111)로부터 제공되는 사전 제어신호 또는 사후 제어신호에 따라서 동작된다. 즉, 사전 제어신호 또는 사후 제어신호가 입력언어모드 자동전환기능을 가동시키지 않는 오프신호인 경우에는 키보드 디바이스 드라이버(112)로부터 제공되는 제1 또는 제2 입력언어모드의 스캔코드를 그대로 키보드 클래스 드라이버(114)로 바이패스시킨다. 한편, 사전 제어신호 및 사후 제어신호가 입력언어모드 자동전환기능을 가동시키는 온신호인 경우에는 매 키스트로크시마다 후술할 입력언어모드 인식부(121)로부터 제공되는 입력언어모드 인식결과에 따라서, 키보드 디바이스 드라이버(112)로부터 제공되는 제1 또는 제2 입력언어모드의 스캔코드를 그대로 키보드 클래스 드라이버(114)로 바이패스시키거나, 제1 소정 범위의 키스트로크를 삭제하는 스캔코드와 함께 제2 소정 범위의 키스트로크에 대하여 모드전환한 스캔코드를 생성하여 키보드 클래스 드라이버(114)로 제공한다. 여기서, 제1 소정 범위는 삭제범위를 나타내는 것으로서, 현재 키스트로크의 입력언어모드를 인식하기 위하여 이전의 적어도 하나 이상의 키스트로크들과 결합되는 경우, 현재의 입력언어모드와 인식된 입력언어모드가 상이한 경우 결합된 이전 키스트로크들의 수를 나타낸다. 한편, 제1 소정 범위의 값이 존재하는 경우에는 제2 소정 범위는 전환범위를 나타내는 것으로서, 현재 키스트로크를 부가하여야 하므로 1 만큼 큰 값이 된다.
키보드 클래스 드라이버(114)는 WIN32 서브시스템/USER32(122)에 인터페이스를 제공하기 위한 것으로서, 키보드 필터 드라이버(113)를 통해 제공되는 스캔코드를 키코드로 전환하여 WIN32 서브시스템/USER32(122)으로 제공한다.
한편, 유저로직(120)에 있어서, 입력언어모드 인식부(121)는 키보드 필터 드라이버(113)를 통해 키보드 디바이스 드라이버(112)로부터 제공되는 키스트로크에 대한 스캔코드를 수신하고, 소정의 인식단위, 여기서는 유사형태소 단위(MLU; Morpheme-Like Unit)로 매 키스트로크에 대한 스캔코드의 입력언어모드를 인식하여, 현재 입력언어모드와 인식된 입력언어모드, 두 입력언어모드의 상이에 따른 삭제범위 및 전환범위를 각각 나타내는 시작스트로크와 종료스트로크에 대한 정보를 키보드 필터 드라이버(113)로 제공한다.
WIN32 서브시스템/USER32(122)는 응용프로그램부(130)의 각종 응용프로그램을 관리하는 기능을 수행한다.
응용프로그램부(130)는 도스창, MS 워드나 아래아 한글과 같은 워드 프로세서, 인터넷 익스플로러와 같은 웹브라우저, Direct X를 이용한 게임 소프트웨어, 메신저 또는 메모장 등과 같이 키입력을 필요로 하는 모든 응용 프로그램을 나타낸다. 이때, ID 또는 패스워드 등을 입력하는 응용 프로그램과 같이 입력언어모드자동전환기능을 필요로 하지 않는 응용 프로그램은 포함되지 않는다. 만약, 윈도우즈 운영시스템에 내장되는 인터넷 익스플로러와 같은 응용프로그램은 유저모듈(120)에 포함되는 것으로 나타낼 수 있으나, 설명의 편의상 응용프로그램부(130)는 운영시스템과의 별개의 구성요소로 나타내기로 한다.
또한, 다른 운영시스템에 적용할 경우 변형을 용이하게 하기 위하여 입력언어모드 인식부(121)를 유저모듈(120)에 포함시키는 것으로 구성하였으나, 키보드 필터 드라이버(113)과 함께 커널모듈(110)에 포함시키는 것도 가능하다.
상기와 같은 구성의 입력언어모드 자동전환장치의 동작을 신호 흐름순(①~⑤)으로 살펴보면 다음과 같다.
먼저, 본 발명에 따른 입력언어모드 자동전환장치는 기존의 운영시스템의 자체 동작에는 영향을 미치지 않도록 하는데 특징이 있는 것이다. 따라서, 윈도우즈 후킹 드라이버(111)로부터 사전 제어신호가 오프이거나, 사전 제어신호가 온이면서 사후 제어신호가 오프인 경우(①), 키보드 필터 드라이버(113)는 키보드 디바이스 드라이버(112)로부터 매 키스트로크시마다 발생되는 스캔코드(②)를 바이패스시켜 그대로 키보드 클래스 드라이버(114)로 제공한다(⑤).
한편, 윈도우즈 후킹 드라이버(111)로부터 사전 제어신호가 온이면서 사후 제어신호가 온인 경우(①), 키보드 필터 드라이버(113)는 키보드 디바이스 드라이버(112)로부터 매 키스트로크시마다 발생되는 스캔코드(②)를 입력언어모드 인식부(121)로 제공한다(③). 키보드 필터 드라이버(113)는 입력언어모드 인식부(121)로부터 제공되는 인식결과와 삭제 및 전환범위(④)에 따라서, 현재 키스트로크의 바이패스, 현재 키스트로크에 대한 모드전환처리, 이전 키스트로크에 대한 삭제처리와 이전 키스트로크와 현재 키스트로크에 대한 모드전환처리 중 어느 하나를 수행하여 키보드 클래스 드라이버(114)로 제공한다(⑤).
도 2는 도 1에 있어서, 키보드 필터 드라이버(113)의 동작을 설명하는 흐름도이다.
도 2를 참조하면, 201 단계에서는 키보드 디바이스 드라이버(112)로부터 매 키스트로크에 대한 스캔코드를 수신한다.
202 단계에서는 윈도우즈 후킹 드라이버(111)로부터 제공되는 사전 제어신호 및/또는 사후 제어신호를 모니터링하여 입력언어모드 자동전환기능이 온 상태인지 여부를 판단한다. 상기 202 단계에서의 판단결과, 입력언어모드 자동전환기능이 오프 상태인 경우 203 단계로 이행하여 상기 201 단계에서 수신된 스캔코드를 그대로 바이패스시켜 키보드 클래스 드라이버(114)로 제공한다.
204 단계에서는 상기 202 단계에서의 판단결과, 입력언어모드 자동전환기능이 온 상태인 경우 상기 201 단계에서 수신된 스캔코드가 영어의 알파벳, 한글의 자음 또는 모음에 해당하는 자판의 스캔코드인가를 판단한다. 여기서는 설명의 편의상 한글의 자음 및 모음을 알파벳으로 통칭하기로 한다. 상기 204 단계에서의 판단결과, 상기 201 단계에서 수신된 스캔코드가 알파벳이 아닌 경우, 예를 들면 숫자나 기호인 경우 203 단계로 이행하여 상기 201 단계에서 수신된 스캔코드를 그대로 바이패스시켜 키보드 클래스 드라이버(114)로 제공한다.
205 단계에서는 상기 204 단계에서의 판단결과, 상기 201 단계에서 수신된스캔코드가 알파벳인 경우, 상기 201 단계에서 수신시 현재 입력언어모드와 수신된 키스트로크에 대한 입력언어모드 인식결과 결정된 입력언어모드가 서로 동일한지 여부를 판단한다. 상기 205 단계에서의 판단결과, 수신시 현재 입력언어모드와 수신된 키스트로크에 대하여 인식된 입력언어모드가 서로 동일한 경우 203 단계로 이행하여 상기 201 단계에서 수신된 스캔코드를 그대로 바이패스시켜 키보드 클래스 드라이버(114)로 제공한다.
206 단계에서는 상기 205 단계에서의 판단결과, 수신시 현재 입력언어모드와 수신된 키스트로크에 대하여 인식된 입력언어모드가 서로 다른 경우 입력언어모드 인식부(121)로부터 제공되는 삭제범위 및 전환범위에 대한 정보에 근거하여 현재 키스트로크에 대한 모드전환처리, 적어도 하나 이상의 이전 키스트로크에 대한 삭제처리와 함께 적어도 하나 이상의 이전 키스트로크와 현재 키스트로크에 대한 모드전환처리 중 어느 하나를 수행하여 키보드 클래스 드라이버(114)로 제공한다
도 3은 도 1에 있어서, 입력언어모드 인식부(121)의 세부적인 구성을 보여주는 블럭도로서, 제1 및 제2 입력언어 전자사전(301,302), 사용자언어 전자사전(303) 및 적응적 인식부(304)로 이루어진다. 여기서 사용자언어 전자사전(303)은 제1 및 제2 입력언어로 이루어지므로 제1 및 제2 입력언어 전자사전(301,302)에 각각 추가하여 구현할 수도 있다.
도 3을 참조하면, 제1 및 제2 입력언어 전자사전(301,302)은 형태소에서부터 어절에 이르는 유사형태소단위(MLU)로 사용자가 입력할 가능성이 있는 다양한 어휘 및 부가적인 정보가 등록된다. 이때, 어휘 등록시 차지하는 메모리의 용량을 감소시키면서 인식속도를 증대시키기 위하여 유한상태오토마타(Finite State Automata)를 이용하여 학습한 결과인 어휘결정트리 구조로 등록된다.
사용자언어 전자사전(303)은 키입력을 필요하는 창에서 사용자가 입력한 키스트로크에 대하여 본 발명에 따른 자동모드전환을 수행하였을 때, 자동모드전환 결과에 대하여 사용자에 의한 삭제동작 및 모드전환이 재차 행하여졌는지를 적응적 인식부(304)에서 모니터링하고, 사용자에 의한 삭제동작 및 모드전환이 재차 행하여진 어휘를 등록한다. 제1 및 제2 입력언어 전자사전(301,302)과 마찬가지로 유한상태오토마타를 이용하여 학습한 결과인 어휘결정트리 구조로 등록된다. 예를 들면, 채팅시 사용되는 신조어 또는 약어나, 제1 및 제2 입력언어 전자사전(301,302)에 등록되지 않은 전문용어 또는 새로운 어휘 등에 대해서도 사후에 사용자언어 전자사전(303)에 추가로 등록시킬 수 있어 인식율을 향상시킬 수 있게 되는 것이다.
적응적 인식부(304)는 제1 및 제2 입력언어 전자사전(301,302)과 사용자언어 전자사전(303)을 참조하여, 키보드 필터 드라이버(113)로부터 제공되는 현재 수신된 키스트로크 또는 이전에 수신된 적어도 하나 이상의 키스트로크와 결합한 현재 수신된 키스트로크의 입력언어모드를 적응적으로 인식한다. 그 결과, 적응적 인식부(304)는 수신된 키스트로크의 현재 입력언어모드, 인식된 입력언어모드, 삭제 및 전환범위에 대한 정보를 키보드 필터 드라이버(113)로 제공한다.
도 4a 및 도 4b는 도 3에 있어서, 제1 및 제2 입력언어 전자사전(301,302)과 사용자언어 전자사전(303)을 구성하는 오토마타 구조의 일예를 보여주는 도면으로서, 도 4a는 제1 입력언어인 영문, 도 4b는 제2 입력언어인 한글에 대한 어휘결정트리를 보여준다.
먼저, 도 4a를 살펴보면, 영문 오토마타 구조는 k개의 서브트리(402,403)로 이루어지는 하나의 슈퍼트리(401)로 구성된다. 여기서, 슈퍼트리(401)가 가질 수 있는 서브트리의 수(k)는 각 서브트리(402,403)의 베이스노드(404)의 수와 동일하다. 영문 오토마타 구조의 경우, 각 베이스노드(404)의 입력데이터는 소문자 26개, 대문자 26개로 총 52개가 존재하며, 따라서 서브트리의 수(k)도 52개로 유한하다. 한편, 베이스노드(404)는 최대 52개까지의 자식노드(또는 서브노드, 405)를 가질 수 있으며, 이는 반복적으로 하위에 계속되는 모든 자식노드에 적용된다. 서브트리(402,403)의 최상위노드 즉, 베이스노드의 깊이를 레벨 0으로 정할 경우, 서브트리(402,403)가 가질 수 있는 최대 깊이(또는 최대 레벨)는 영문 학습데이터에서 최대길이를 가지는 어휘에 따라 결정된다.
한편, 도 4b를 살펴보면, 한글 오토마타 구조는 영문 오토마타 구조와 마찬가지로 m개의 서브트리(412,413)로 이루어지는 하나의 슈퍼트리(411)로 구성된다. 여기서, 슈퍼트리(411)가 가질 수 있는 서브트리의 수(m)는 각 서브트리(412,413)의 베이스노드(414)의 수와 동일하다. 한글 오토마타 구조의 경우, 각 베이스노드(414)의 입력데이터는 단자음 14개, 복자음 5개로 총 19개가 존재하며, 따라서 서브트리의 수(m)도 19개로 유한하다. 한편, 베이스노드(414)는 초성-중성-종성과 관련된 한글의 결합규칙에서 허용하는 개수 만큼의 자식노드(또는 서브노드, 415)를 가질 수 있으며, 이는 반복적으로 하위에 계속되는 모든 자식노드에 적용된다. 서브트리(412,413)의 최상위노드 즉, 베이스노드의 깊이를 레벨 0으로 정할 경우, 서브트리(412,413)가 가질 수 있는 최대 깊이(또는 최대 레벨)는 한글 학습데이터에서 최대길이를 가지는 어휘에 따라 결정된다.
따라서, 본 발명에 적용되는 오토마타 구조의 깊이 및 크기는 영문 및 한글 학습데이터에 따라서 동적으로 결정되어진다.
한편, 영문 오토마타 구조에서 노드가 가질 수 있는 입력데이타의 집합을 A, A의 원소에 대한 인덱스를 i, 각 노드의 깊이를 j라 하면, 각 노드에 대한 입력데이타의 집합은 Aij로 나타낼 수 있으며, 이는 다음 수학식 1과 같이 표현된다.
Ai j = {a,b,...,z,A,B,...,Z}, i=0,1,...,51, j=0,1,...,jmax-1
여기서, jmax는 영문 학습데이타에서 최대길이를 갖는 단어의 총 키스트로크의 수에 해당한다.
도 5는 도 4a 및 도 4b에 도시된 오토마타 트리구조를 이용한 입력언어모드 인식과정의 일예를 보여주는 것이다.
도 5를 참조하면, 인식단위인 유사형태소단위에서 제1 키스트로크 내지 제3 키스트로크가 각각 Q(ㅂ), K(ㅏ), D(ㅇ)이면, 베이스노드(501)에서부터 시작하여 노드(502)를 거쳐 노드(503)에서 '방'이라는 복합문자로서 한글모드로 종결상태 마크가 표시된다. 한편, 제1 키스트로크 내지 제3 키스트로크가 각각 Q(ㅂ), K(ㅏ), D(ㅇ), R(ㄱ), N(ㅜ), L(ㅣ)이면, 베이스노드(501)에서부터 시작하여노드(502) 내지 노드(505)를 거쳐 노드(506)에서 '방귀'이라는 복합문자로서 한글모드로 종결상태 마크가 표시된다. 한편, 제1 키스트로크 내지 제3 키스트로크가 각각 Q(ㅂ), K(ㅏ), A(ㅁ)이면, 베이스노드(501)에서부터 시작하여 노드(502)를 거쳐 노드(507)에서 '밤'이라는 복합문자로서 한글모드로 종결상태 마크가 표시된다. 한편, 제1 키스트로크 내지 제3 키스트로크가 각각 Q(ㅂ), U(ㅕ), E(ㄷ), E(ㄷ), N(ㅜ)이면, 베이스노드(501)에서부터 시작하여 노드(508) 내지 노드(510)를 거쳐 노드(511)에서 'QUEEN'이라는 복합문자로서 영어모드로 종결상태 마크가 표시된다.
도 6은 도 3에 도시된 적응적 인식부(304)의 동작을 설명하는 흐름도로서, 매 인식단위에 대하여 매 키스트로크시마다 수행되어진다. 여기서는 설명의 편이를 위하여 사용자언어 전자사전(303)에 등록된 사용자언어에 대한 제1 및 제2 입력언어 오토마타가 제1 및 제2 입력언어 전자사전(301,320)에 추가된 것으로 가정한다. 또한, 상태마크로서 유지상태(STAYED), 대기상태(EXPECTED), 종결상태(COMPLETED)를 사용한다. 유지상태(STAYED)는 현재 키스트로크의 스캔코드에 대한 노드가 한글 및 영문 오토마타에 모두 존재하지 않는 상태를 정의하고, 키입력시 삽입에러, 탈락에러 및 중복에러에 의해 야기되는 오탈자에 대해서도 인식이 가능하도록 한다. 대기상태(EXPECTED)는 현재 키스트로크의 스캔코드에 대한 노드가 한글 또는 영문 오토마타에 존재하면서 현재 키스트로크까지의 합성문자, 예를 들면 1 음절의 합성문자가 영문 또는 한글 중 어디에 속할 것인지를 통계적으로 추정할 수 있는 상태를 정의한다. 종결상태(COMPLETED)는 현재 키스트로크까지의 합성문자가 한글 또는 영문 오토마타에 존재하면서, 정확하게 한글 또는 영어중 하나로 인식될 수 있는 상태를 정의한다. 이와 같은 각 상태에 대한 정보는 제1 및 제2 입력언어 전자사전(301,302)과 사용자언어 전자사전(303)의 오토마타 구조에 부가된다.
도 6을 참조하면, 601 단계에서는 키보드 필터 드라이버(113)로부터 제공되는 현재 키스트로크의 스캔코드에 대한 노드가 한글 및 영문 오토마타에 모두 존재하는지를 판단한다. 602 단계에서는 상기 601 단계에서의 판단결과, 현재 키스트로크의 스캔코드에 대한 노드가 한글 및 영문 오토마타에 모두 존재하는 것이 아닌 경우, 키보드 필터 드라이버(113)로부터 제공되는 현재 키스트로크의 스캔코드에 대한 노드가 한글 오토마타에 존재하는지를 판단하고, 603 단계에서는 한글 오토마타 트리구조에 존재하는 경우 현재 키스트로크의 스캔코드가 한글모드에 해당하는 것으로 판단한다.
604 단계에서는 상기 602 단계에서의 판단결과 키보드 필터 드라이버(113)로부터 제공되는 현재 키스트로크의 스캔코드에 대한 노드가 한글 오토마타에 존재하지 않는 경우, 영문 오토마타에 존재하는지를 판단하고, 605 단계에서는 영문 오토마타에 존재하는 경우 현재 키스트로크의 스캔코드가 영문모드에 해당하는 것으로 판단한다. 한편, 상기 604 단계에서의 판단결과 키보드 필터 드라이버(113)로부터 제공되는 현재 키스트로크의 스캔코드에 대한 노드가 영문 오토마타에 존재하지 않는 경우, 606 단계로 이행하여 이전 키스트로크의 입력언어모드로 결정한다. 이와 같이 현재 키스트로크의 스캔코드에 대한 노드가 한글 및 영문 오토마타에 모두 존재하지 않기 때문에 현재 키스트로크를 이전 키스트로크의 입력언어모드로 결정하는 상태가 유지상태(STAYED)로 정의된다.
607 단계에서는 상기 601 단계에서의 판단결과, 현재 키스트로크의 스캔코드에 대한 노드가 한글 및 영문 오토마타에 모두 존재하는 경우 현재 키스트로크까지의 합성문자가 한글 및 영문으로서의 종결상태 마크를 모두 가지는지를 판단한다. 608 단계에서는 상기 607 단계에서의 판단결과, 합성문자가 한글 및 영문으로서의 종결상태를 모두 가지는 경우 이전 단어의 입력언어모드로 결정한다. 그 이유는 확률적으로 같은 모드에서 키스트로크가 계속 수행될 상관도가 높기 때문이다.
609 단계에서는 상기 607 단계에서의 판단결과, 합성문자가 한글 및 영문으로서의 대기 또는 종결 상태마크를 모두 가지는 것이 아닌 경우 한글 대기 또는 종결 상태마크를 가지는지를 판단하고, 한글 대기 또는 종결 상태마크를 가지는 경우 현재 키스트로크의 스캔코드가 한글모드에 해당하는 것으로 판단한다(603 단계).
610 단계에서는 상기 609 단계에서의 판단결과, 합성문자가 한글 및 영문으로서의 대기 또는 종결상태 마크를 모두 가지는 것이 아닌 경우 영문 대기 또는 종결 상태마크를 가지는지를 판단하고, 영문 대기 또는 종결 상태마크를 가지는 경우 현재 키스트로크의 스캔코드가 영문모드에 해당하는 것으로 판단한다(605 단계). 한편, 상기 610 단계에서의 판단결과 합성문자가 영문 대기 또는 종결 상태마크를 가지는 것이 아닌 경우 606 단계로 이행하여 이전 키스트로크의 입력언어모드로 결정한다.
한편, 현재 입력언어모드와 상기 각 단계에서 결정된 입력언어모드가 서로 상이한 경우에는 상기 각 단계에서 입력언어모드 결정에 기여한 적어도 하나의 이전 스트로크를 삭제하기 위한 삭제범위와, 적어도 하나의 이전 스트로크와 현재 스트로크를 모드전환하기 위한 전환범위를 현재 입력언어모드 및 결정된 입력언어모드와 함께 발생시킨다.
다음, 표 1은 최종적으로 키입력하고자 하는 어휘가 한글과 영문이 혼용된 '황광일a는'이라고 가정할 경우, 입력언어모드 인식부(304)의 동작을 순차적으로 보여주는 테이블로서, 여기서 각 알파벳 a, g, d, h, r, 1음절 단어인 호, 황, 고, 과, 광, 이, 일은 대기상태 마크, as, asm은 종결상태 마크를 가지는 것으로 본다. 이에 대하여 도 1 및 도 6과 결부시켜 설명하기로 한다.
순번 실제 키스트로크 현재입력언어모드 인식된입력언어모드 삭제범위 전환범위 디스플레이되는키스트로크
1 한글 영문 0 1(ㅎ) g
2 h 영문 한글 1(g) 2(gh)
3 한글 한글 0 0
4 한글 한글 0 0
5 한글 영문 0 1(ㄱ) 황r
6 h 영문 한글 1(r) 2(rh) 황고
7 한글 한글 0 0 황과
8 한글 한글 0 0 황광
9 한글 영문 0 1(ㅇ) 황광d
10 l 영문 한글 1(d) 2(dl) 황광이
11 한글 한글 0 0 황광일
12 한글 영문 0 1(ㅁ) 황광일a
13 s 영문 영문 0 0 황광일as
14 m 영문 영문 0 0 황광일asm
15 s 영문 한글 2(sm) 3(sms) 황광일a는
표 1을 참조하면, 제1 키스트로크로 'ㅎ(g)'가 입력되면, 601 단계에서의 판단결과, 제1 키스트로크 'ㅎ'와 'g'에 대한 스캔코드에 대한 노드가 한글 및 영문 오토마타에 통상 베이스노드로서 모두 존재하기 때문에 607 단계로 이행하여 한글 및 영문 대기상태 또는 종결상태 마크를 가지는지를 판단한다. 여기서, 'g'와 'ㅎ' 중 'g'이 영문 대기상태 마크를 가지므로 610 단계에 의해 제1 키스트로크를 'g'로 인식하고, 그 결과 삭제 및 전환범위에 대한 정보를 각각 '0'와 '1'로 키보드 필터 드라이버(113)로 제공한다. 그러면, 키보드 필터 드라이버(113)는 제1 키스트로크인 'ㅎ'를 'g'로 모드전환하여 키보드 클래스 드라이버(114)로 제공하고, 현재의 입력언어모드를 영문모드로 전환한다.
제2 키스트로크로 'h(ㅗ)'가 입력되면, 601 단계에서의 판단결과, 제1 키스트로크에 이어져 제2 키스트로크의 스캔코드에 대한 노드가 한글 및 영문 오토마타에 모두 존재하는 것으로 판단하고, '호'가 대기상태 마크를 가지는 것으로 전제되어 있으므로 607 내지 609 단계에 의해 제1 및 제2 키스트로크를 한글모드로 결정한다. 현재 입력언어모드가 영문이고 인식된 입력언어모드가 한글이므로 이전 제1 키스트로크를 삭제하기 위한 삭제범위와 제1 및 제2 키스트로크를 모드전환하기 위한 전환범위를 각각 '1'과 '2'로 키보드 필터 드라이버(113)로 제공한다. 그러면, 키보드 필터 드라이버(113)는 현재 화면상에 디스플레이되어 있는 제1 키스트로크인 'g'를 삭제하기 위한 스캔코드와 제1 및 제2 키스트로크의 스캔코드인 'gh'를 '호'로 모드전환하여 키보드 클래스 드라이버(114)로 제공하고, 현재의 입력언어모드를 한글모드로 전환한다. 제3 내지 제11 키스트로크에 의해 '황광일'에 대한 인식을 종료하고, 이에 대한 설명은 생략하기로 한다.
다음, 제12 키스트로크로 'ㅁ(a)'가 입력되면, 601 단계에서의 판단결과, 제12 키스트로크의 스캔코드에 대한 노드가 한글 및 영문 오토마타에 통상 베이스노드로서 모두 존재하기 때문에 607 단계로 이행하여 한글 및 영문 대기상태 또는 종결상태 마크를 가지는지를 판단한다. 여기서, 'ㅁ'과 'a' 중 'a'가 대기상태 마크를 가지므로 610 단계에 의해 제12 키스트로크를 'a'로 인식하고, 그 결과 삭제 및 전환범위에 대한 정보를 각각 '0'와 '1'로 키보드 필터 드라이버(113)로 제공한다. 그러면, 키보드 필터 드라이버(113)는 제12 키스트로크인 'ㅁ'을 'a'로 모드전환하여 키보드 클래스 드라이버(114)로 제공하고, 현재의 입력언어모드를 영문모드로 전환한다.
제13 키스트로크로 's(ㄴ)'가 입력되면, 601 단계에서의 판단결과, 제12 키스트로크에 이어져 제13 키스트로크의 스캔코드에 대한 노드가 영문 오토마타에만 존재하므로 제604 단계에 의해 의해 제13 키스트로크를 영문모드로 결정한다. 현재 입력언어모드가 영문이고 인식된 입력언어모드가 영문이므로 삭제범위 및 전환범위를 모두 '0'으로 현재 입력언어모드 및 인식된 입력언어모드와 함께 키보드 필터 드라이버(113)로 제공한다. 그러면, 키보드 필터 드라이버(113)는 제13 키스트로크인 's'를 그대로 바이패스시켜 키보드 클래스 드라이버(114)로 제공하는 것과 함께 현재 입력언어모드인 영문모드를 그대로 유지한다.
제14 키스트로크로 'm(ㅡ)'가 입력되면, 601 단계에서의 판단결과, 제12 및 제13 키스트로크에 이어져 제14 키스트로크의 스캔코드에 대한 노드가 영문 오토마타에만 존재하므로 제604 단계에 의해 의해 제14 키스트로크를 영문모드로 결정한다. 현재 입력언어모드가 영문이고 인식된 입력언어모드가 영문이므로 삭제범위 및 전환범위를 모두 '0'으로 현재 입력언어모드 및 인식된 입력언어모드와 함께 키보드 필터 드라이버(113)로 제공한다. 그러면, 키보드 필터 드라이버(113)는 제13 키스트로크인 'm'을 그대로 바이패스시켜 키보드 클래스 드라이버(114)로 제공하는 것과 함께 현재 입력언어모드를 그대로 유지한다. 여기서, 'as'와 'asm'이 모두 영문 종결 상태마크를 가지나, 종결상태로 결정되기까지의 키스트로크 수가 많은 어휘인 'asm'이 'as'에 비하여 우선순위를 가진다.
제15 키스트로크로 's(ㄴ)'가 입력되면, 601 단계에서의 판단결과, 제12 내지 제14 키스트로크에 이어져 제15 키스트로크의 스캔코드에 대한 노드를 살펴보면 'asms' 중 'sms' 가 한글 오토마타에만 존재하므로 제602 단계에 의해 제15 키스트로크를 한글모드로 결정한다. 현재 입력언어모드가 영문이고 인식된 입력언어모드가 한글이므로, 모드결정에 기여한 키스트로크의 수에 따라서 삭제범위 및 전환범위를 각각 '2'와 '3'으로 현재 입력언어모드 및 인식된 입력언어모드와 함께 키보드 필터 드라이버(113)로 제공한다. 그러면, 키보드 필터 드라이버(113)는 제13 및 제13 키스트로크인 'sm'를 삭제하기 위한 스캔코드와 제13 내지 제15 키스트로크의 스캔코드인 'sms'를 '는'으로 모드전환하여 키보드 클래스 드라이버(114)로 제공하고, 현재의 입력언어모드를 한글모드로 전환한다.
상술한 바와 같은, 본 발명에 따른 입력언어모드 자동전환기능은 시스템 시동시 화면에 사용자 인터페이스가 디스플레이되는 것과 함께, 시스템 트레이 메뉴로 표시되어 마우스로 해당 아이콘을 가리키면 해당 기능을 기술한 메시지가 나타나고, 마우스의 오른쪽 버튼으로 해당 아이콘을 누르면 커스텀화할 수 있는 메뉴가 나타나도록 프로그래밍될 수 있다.
다음 표 2는 본 발명에 따른 입력언어모드 자동전환방법의 성능을 평가하기 위하여 본 발명(gAutoIME), 훈민정음(hun), 아래아한글(hwp), MS 워드(msword)의 자동전환에 따른 인식율을 실험한 결과를 나타낸 것이다.
제1 실험(chat1) 제2 실험(chat2) 제3 실험(culture1) 제4 실험(culture2) 제5 실험(economics1) 제6 실험(economics2)
gAutoIME 100.00 99.73 100.00 100.00 99.51 100.00
hun 100.00 98.74 95.34 99.02 96.79 97.12
hwp 100.00 99.10 100.00 100.00 99.75 99.87
msword 100.00 98.56 94.98 98.24 97.04 97.49
제7 실험(politics1) 제8 실험(politics2) 제9 실험(programming1) 제10 실험(programming2) 제11 실험(report1) 제12 실험(report2)
gAutoIME 100.00 100.00 98.51 99.64 99.20 99.40
hun 99.36 98.29 76.63 95.67 96.67 95.31
hwp 99.62 99.52 99.59 100.00 99.60 99.76
msword 98.46 98.34 82.34 97.11 94.67 94.83
여기서, 제1 및 제2 실험은 채팅관련어휘, 제3 및 제4 실험은 문화관련어휘, 제5 및 제6 실험은 경제관련어휘, 제7 및 제8 실험은 정치관련어휘, 제9 및 제10 실험은 프로그래밍관련어휘, 제11 및 제12 실험은 보고용문서 관련어휘에 대하여 각각 실험한 예를 나타낸다.
상기 표 2를 살펴보면, 본 발명에 의한 입력언어모드자동전환방법(gAutoIME)은 훈민정음(hun)이나 MS 워드(msword)에 비해서는 매우 우수한 인식율을 보임을 알 수 있고, 아래아한글(hwp)과는 거의 동등한 인식율을 보임을 알 수 있다.
본 발명은 여기서 일실시예로 든 윈도우즈 운영시스템 뿐만 아니라, 도스(DOS), 유닉스(UNIX), 리눅스(LINUX) 등과 같은 운영시스템에도 용이하게 적용될 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플라피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
상술한 바와 같이, 본 발명에 따르면 키보드 또는 키패드를 구비하는 모든 기기에 있어서 매 키스트로크에 대한 입력언어모드를 실시간으로 인식할 수 있을 뿐 아니라, 키스트로크시 삽입에러, 반복에러 또는 탈락에러가 발생되더라도 이러한 에러를 포함하는 키스트로크에 대한 입력언어모드를 통계적인 방법에 의거하여 인식함으로써 인식율을 획기적으로 높일 수 있다. 또한, 각 사용자에 대하여 적응적으로 사전에 등록된 어휘 이외의 어휘(Out-Of-Vocabulary)에 대해서도 입력언어모드를 인식가능하도록 함으로써 인식율을 대폭적으로 향상시킬수 있다.
또한, 키보드 또는 키패드를 구비하는 모든 기기에 있어서 사용되는 운영체제 자체를 확장시킴으로써 워드프로세서 뿐만 아니라 키입력을 필요로 하는 모든 응용프로그램 중 입력언어모드 자동전환기능이 제한되지 않은 응용프로그램에서 입력언어모드 인식결과에 따라서 적어도 두가지 입력언어모드가 자동전환되고, 그 결과 사용자의 작업시 편리성을 극대화시켜 줄 수 있다.
또한, 실시간으로 매 키스트로크의 입력언어모드에 대한 높은 인식율을 보장할 뿐 아니라 각 사용자에 대하여 적응적으로 사전에 등록된 어휘 이외의 어휘에 대한 입력언어모드를 인식하고, 이에 따라서 적어도 두가지 입력언어모드를 자동전환함으로써 키보드 또는 키패드를 구비하는 일반 개인용 컴퓨터, 노트북, 휴대폰, 휴대용 전자사전 또는 PDA 사용자들의 전반적인 키보드 입력환경을 획기적으로 개선시켜 줄 수 있다.
또한, 한국어 응용의 한글/영문모드 인식 외에도 일본어 응용의 경우 히라가나/카타가나/칸지/영어모드 인식으로 전환가능하고, 그외 중국어 또는 유럽어 응용 등에도 대용량 전자사전을 제작하는 기본언어 이외에 큰 변형없이 적용가능하다.
이상 도면과 명세서에서 최적 실시예들이 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (24)

  1. (a) 소정의 인식단위로 수행되며, 매 키스트로크시 수신되는 키스트로크의 스캔코드에 대한 노드가 제1 또는 제2 입력언어 오토마타에 존재하는지를 판단하여 상기 수신된 키스트로크의 스캔코드에 대한 입력언어모드를 인식하는 단계; 및
    (b) 상기 (a) 단계에서의 판단결과, 상기 수신된 키스트로크의 스캔코드에 대한 노드가 제1 및 제2 입력언어 오토마타에 모두 존재하는 경우, 상기 인식단위내에서 상기 수신된 키스트로크의 스캔코드에 대한 노드가 제1 또는 제2 입력언어로 대기 또는 종결 상태마크를 갖는지를 판단하여 상기 수신된 키스트로크의 스캔코드에 대한 입력언어모드를 인식하는 단계를 포함하는 것을 특징으로 하는 입력언어모드 인식방법.
  2. 제1 항에 있어서, 상기 방법은
    (c) 상기 (a) 및 (b) 단계에서 인식된 입력언어모드와 현재 입력언어모드가 상이한 경우, 입력언어모드 인식에 기여한 적어도 하나 이상의 이전 키스트로크를삭제하기 위한 삭제범위와 상기 입력언어모드 인식에 기여한 적어도 하나 이상의 이전 키스트로크와 상기 수신된 키스트로크를 상기 인식된 입력언어모드로 모드전환하기 위한 전환범위에 대한 정보를 제공하는 단계를 더 포함하는 것을 특징으로 하는 입력언어모드 인식방법.
  3. 제1 항에 있어서, 상기 (a) 단계는
    (a1) 상기 수신된 키스트로크의 스캔코드에 대한 노드가 제1 입력언어 오토마타에만 존재하는 경우 상기 수신된 키스트로크의 스캔코드를 상기 제1 입력언어모드로 판단하는 단계;
    (a2) 상기 수신된 키스트로크의 스캔코드에 대한 노드가 제2 입력언어 오토마타에만 존재하는 경우 상기 수신된 키스트로크의 스캔코드를 상기 제2 입력언어모드로 판단하는 단계; 및
    (a3) 상기 수신된 키스트로크의 스캔코드에 대한 노드가 제1 및 제2 입력언어 오토마타에 모두 존재하지 않는 경우 상기 수신된 키스트로크의 스캔코드를 바로 이전 키스트로크의 입력언어모드로 판단하는 단계를 구비하는 것을 특징으로 하는 입력언어모드 인식방법.
  4. 제1 항에 있어서, 상기 (b) 단계는
    (b1) 상기 수신된 키스트로크의 스캔코드에 대한 노드가 제1 입력언어로만 대기 또는 종결 상태마크를 갖는 경우 상기 수신된 키스트로크의 스캔코드를 상기제1 입력언어모드로 판단하는 단계;
    (b2) 상기 수신된 키스트로크의 스캔코드에 대한 노드가 제2 입력언어로만 대기 또는 종결 상태마크를 갖는 경우 상기 수신된 키스트로크의 스캔코드를 상기 제2 입력언어모드로 판단하는 단계;
    (b3) 상기 수신된 키스트로크의 스캔코드에 대한 노드가 제1 및 제2 입력언어로 대기 또는 종결 상태마크를 모두 갖는 경우 상기 수신된 키스트로크의 스캔코드를 이전 단어의 입력언어모드로 판단하는 단계; 및
    (b4) 상기 수신된 키스트로크의 스캔코드에 대한 노드가 제1 및 제2 입력언어로 대기 또는 종결 상태마크를 모두 갖지 않는 경우 상기 수신된 키스트로크의 스캔코드를 바로 이전 키스트로크의 입력언어모드로 판단하는 단계를 구비하는 것을 특징으로 하는 입력언어모드 인식방법.
  5. 제1 항에 있어서, 상기 제1 및 제2 입력언어 오토마타는 사전에 미리 등록된 학습데이터 및 사용자에 대하여 적응적으로 추후에 등록된 학습데이터에 의해 학습되어 형성되는 것을 특징으로 하는 입력언어모드 인식방법.
  6. 제1 항에 있어서, 상기 (a) 및 (b) 단계에서는 상기 제1 및 제2 입력언어 오토마타에서 대기 또는 종결 상태로 결정되는데 기여한 키스트로크수가 많은 어휘를 우선순위로 하여 인식하는 것을 특징으로 하는 입력언어모드 인식방법.
  7. 제1 항 내지 제6 항 중 어느 한 항에 있어서, 상기 인식단위는 유사형태소단위인 것을 특징으로 하는 입력언어모드 인식방법.
  8. 제1 항 내지 제7 항 중 어느 한 항에 기재된 상기 입력언어모드 인식방법을 실행할 수 있는 프로그램 코드를 저장한 컴퓨터로 읽을 수 있는 기록매체.
  9. 제1 입력언어로 이루어지는 어휘를 소정의 인식단위로 사전에 등록한 제1 입력언어 전자사전;
    제2 입력언어로 이루어지는 어휘를 소정의 인식단위로 사전에 등록한 제2 입력언어 전자사전;
    입력언어모드 자동전환기능에 의해 강제 삭제 및 모드변환시킨 키스트로크에 대하여 사용자가 직접 삭제와 모드전환을 행한 사용자언어를 등록한 사용자언어 전자사전; 및
    상기 제1 및 제2 입력언어 전자사전과 상기 사용자언어 전자사전을 참조하여, 매 키스트로크시 수신되는 키스트로크의 스캔코드의 입력언어모드를 인식하고, 현재 입력언어모드, 인식된 입력언어모드, 키스트로크 삭제범위 및 키스트로크 전환범위에 대한 정보를 제공하는 적응적 인식부를 포함하는 것을 특징으로 하는 입력언어모드 인식장치.
  10. 제9 항에 있어서, 상기 제1 및 제2 입력언어 전자사전과 상기 사용자언어 전자사전은 유한상태 오토마타 구조로 이루어지는 것을 특징으로 하는 입력언어모드 인식장치.
  11. (a) 입력언어모드 자동전환기능의 기동여부를 결정하는 제어신호를 발생시키는 단계;
    (b) 상기 (a) 단계에서 발생되는 제어신호가 오프인 경우 소정의 입력장치를 통해 수신되는 키스트로크를 바이패스시키는 단계; 및
    (c) 상기 (a) 단계에서 발생되는 제어신호가 온인 경우, 상기 소정의 입력장치를 통해 수신되는 키스트로크의 입력언어모드 인식결과에 따라서, 상기 수신된 키스트로크를 바이패스시키거나, 적어도 하나 이상의 이전 키스트로크를 강제적으로 삭제하는 동시에 상기 적어도 하나 이상의 이전 키스트로크와 상기 수신된 키스트로크를 모드전환하는 단계를 포함하는 것을 특징으로 하는 입력언어모드 자동전환방법.
  12. 제11 항에 있어서, 상기 방법은
    (d) 제1 및 제2 입력언어 전자사전과 사용자언어 전자사전을 참조하여, 상기 수신된 키스트로크의 스캔코드의 입력언어모드를 인식하고, 현재 입력언어모드, 인식된 입력언어모드, 키스트로크 삭제범위 및 키스트로크 전환범위에 대한 정보를 상기 (c) 단계로 제공하는 단계를 더 포함하는 것을 특징으로 하는 입력언어모드 자동전환방법.
  13. 제11 항 또는 제12 항에 있어서, 상기 방법은 소정의 운영시스템의 커널모듈에서 수행되어지는 것을 특징으로 하는 입력언어모드 자동전환방법.
  14. 제12 항에 있어서, 상기 (a) 내지 (c) 단계는 소정의 운영시스템의 커널모듈에서, 상기 (d) 단계는 유저모듈에서 수행되어는 것을 특징으로 하는 입력언어모드 자동전환방법.
  15. 제11 항 또는 제12 항에 있어서, 상기 (a) 단계에서 상기 제어신호는 시스템 시동시 입력언어모드 자동전환기능 가동여부를 선택하도록 하는 사용자 인터페이스를 통해 발생되는 사전 제어신호와, 사용자가 현재 작업 중인 창을 추적하여 입력언어모드 자동전환기능을 필요로 하는 창인지 여부에 따른 사후 제어신호로 이루어지는 것을 특징으로 하는 입력언어모드 자동전환방법.
  16. 제12 항에 있어서, 상기 제1 및 제2 입력언어 전자사전과 상기 사용자언어 전자사전은 유한상태 오토마타 구조로 이루어지는 것을 특징으로 하는 입력언어모드 자동전환방법.
  17. 제12 항에 있어서, 상기 (d) 단계에서 상기 입력언어모드 인식단위는 유사형태소단위인 것을 특징으로 하는 입력언어모드 자동전환방법.
  18. 제11 항 내지 제17 항 중 어느 한 항에 기재된 상기 입력언어모드 자동전환방법을 실행할 수 있는 프로그램 코드를 저장한 컴퓨터로 읽을 수 있는 기록매체.
  19. 입력언어모드 자동전환기능의 기동여부를 결정하는 제어신호를 발생시키는 제1 수단;
    상기 제1 수단으로부터 제공되는 제어신호가 오프인 경우 소정의 입력장치를 통해 수신되는 키스트로크를 바이패스시키고, 상기 제1 수단으로부터 제공되는 제어신호가 온인 경우 상기 소정의 입력장치를 통해 수신되는 키스트로크의 입력언어모드 인식결과에 따라서, 상기 수신된 키스트로크를 바이패스시키거나, 적어도 하나 이상의 이전 키스트로크를 강제적으로 삭제하는 동시에 상기 적어도 하나 이상의 이전 키스트로크와 상기 수신된 키스트로크를 모드전환하는 제2 수단; 및
    제1 및 제2 입력언어 전자사전을 참조하여, 상기 수신된 키스트로크의 스캔코드의 입력언어모드를 인식하고, 현재 입력언어모드, 인식된 입력언어모드, 키스트로크 삭제범위 및 키스트로크 전환범위에 대한 정보를 상기 제2 수단으로 제공하는 제3 수단을 포함하는 것을 특징으로 하는 입력언어모드 자동전환장치.
  20. 제19 항에 있어서, 상기 제1 내지 제3 수단은 소정의 운영시스템의 커널모듈로 구현되는 것을 특징으로 하는 입력언어모드 자동전환장치.
  21. 제19 항에 있어서, 상기 제1 및 제2 수단은 소정의 운영시스템의 커널모듈로, 상기 제3 수단은 유저모듈로 구현되는 것을 특징으로 하는 입력언어모드 자동전환장치.
  22. 제19 항에 있어서, 상기 제어신호는 시스템 시동시 입력언어모드 자동전환기능 가동여부를 선택하도록 하는 사용자 인터페이스를 통해 발생되는 사전 제어신호와, 사용자가 현재 작업 중인 창을 추적하여 입력언어모드 자동전환기능을 필요로 하는 창인지 여부에 따른 사후 제어신호로 이루어지는 것을 특징으로 하는 입력언어모드 자동전환장치.
  23. 제19 항에 있어서, 상기 제1 및 제2 입력언어 전자사전은 사전에 미리 등록된 학습데이터 및 사용자에 대하여 적응적으로 추후에 등록된 학습데이터에 의해 학습되어 형성되는 유한상태 오토마타 구조로 이루어지는 것을 특징으로 하는 입력언어모드 자동전환장치.
  24. 제19 항에 있어서, 상기 제3 수단에서 상기 입력언어모드 인식단위는 유사형태소단위인 것을 특징으로 하는 입력언어모드 자동전환장치.
KR1020030038679A 2003-06-16 2003-06-16 입력언어모드 인식방법 및 장치와 이를 이용한 입력언어모드 자동전환방법 및 장치 KR100634496B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020030038679A KR100634496B1 (ko) 2003-06-16 2003-06-16 입력언어모드 인식방법 및 장치와 이를 이용한 입력언어모드 자동전환방법 및 장치
US10/867,791 US7562007B2 (en) 2003-06-16 2004-06-16 Method and apparatus for recognizing language input mode and method and apparatus for automatically switching language input modes using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030038679A KR100634496B1 (ko) 2003-06-16 2003-06-16 입력언어모드 인식방법 및 장치와 이를 이용한 입력언어모드 자동전환방법 및 장치

Publications (2)

Publication Number Publication Date
KR20040107965A true KR20040107965A (ko) 2004-12-23
KR100634496B1 KR100634496B1 (ko) 2006-10-13

Family

ID=33516355

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030038679A KR100634496B1 (ko) 2003-06-16 2003-06-16 입력언어모드 인식방법 및 장치와 이를 이용한 입력언어모드 자동전환방법 및 장치

Country Status (2)

Country Link
US (1) US7562007B2 (ko)
KR (1) KR100634496B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100619504B1 (ko) * 2004-07-31 2006-09-08 최양길 자동 입력 모드 변환 방법 및 그 시스템
KR101541147B1 (ko) * 2007-09-06 2015-07-31 구글 인코포레이티드 동적 가상 입력 디바이스 구성

Families Citing this family (207)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
JP4574313B2 (ja) * 2004-10-04 2010-11-04 キヤノン株式会社 画像処理装置および方法
WO2007012912A1 (en) * 2005-07-27 2007-02-01 Nokia Corporation Method and device for entering text
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
GB0524354D0 (en) * 2005-11-30 2006-01-04 Ibm Method, system and computer program product for composing a reply to a text message received in a messaging application
US20070143410A1 (en) * 2005-12-16 2007-06-21 International Business Machines Corporation System and method for defining and translating chat abbreviations
US8566608B2 (en) 2006-02-02 2013-10-22 Strikeforce Technologies, Inc. Methods and apparatus for securing keystrokes from being intercepted between the keyboard and a browser
US8185376B2 (en) * 2006-03-20 2012-05-22 Microsoft Corporation Identifying language origin of words
US7881923B2 (en) * 2006-03-31 2011-02-01 Research In Motion Limited Handheld electronic device including toggle of a selected data source, and associated method
US7822434B2 (en) * 2006-05-09 2010-10-26 Research In Motion Limited Handheld electronic device including automatic selection of input language, and associated method
US7973954B2 (en) * 2006-08-28 2011-07-05 Sharp Laboratories Of America, Inc. Method and apparatus for automatic language switching for an imaging device
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US7561071B2 (en) * 2006-10-18 2009-07-14 General Electric, LD. Language independent real time communication device and method
US20080115072A1 (en) * 2006-11-09 2008-05-15 International Business Machines Corporation Method and apparatus for visually assisting language input mode indentification
CN101206659B (zh) * 2006-12-15 2013-09-18 谷歌股份有限公司 自动搜索查询校正
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US20120239834A1 (en) 2007-08-31 2012-09-20 Google Inc. Automatic correction of user input using transliteration
GB0717067D0 (en) * 2007-09-03 2007-10-10 Ibm An Apparatus for preparing a display document for analysis
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8583418B2 (en) * 2008-09-29 2013-11-12 Apple Inc. Systems and methods of detecting language and natural language strings for text to speech synthesis
US8712776B2 (en) 2008-09-29 2014-04-29 Apple Inc. Systems and methods for selective text to speech synthesis
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
WO2010067118A1 (en) 2008-12-11 2010-06-17 Novauris Technologies Limited Speech recognition involving a mobile device
US8380507B2 (en) 2009-03-09 2013-02-19 Apple Inc. Systems and methods for determining the language to use for speech generated by a text to speech engine
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US10255566B2 (en) 2011-06-03 2019-04-09 Apple Inc. Generating and processing task items that represent tasks to perform
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
DE202011111062U1 (de) 2010-01-25 2019-02-19 Newvaluexchange Ltd. Vorrichtung und System für eine Digitalkonversationsmanagementplattform
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
CN102193642A (zh) * 2010-03-04 2011-09-21 陈虎 输入过程中的语句提示及处理方法
WO2011150730A1 (zh) * 2010-05-31 2011-12-08 百度在线网络技术(北京)有限公司 一种用于英文与另一种文字混合输入的方法和设备
US8463592B2 (en) 2010-07-27 2013-06-11 International Business Machines Corporation Mode supporting multiple language input for entering text
US9058105B2 (en) * 2010-10-31 2015-06-16 International Business Machines Corporation Automated adjustment of input configuration
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US9002699B2 (en) * 2011-11-14 2015-04-07 Microsoft Technology Licensing, Llc Adaptive input language switching
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
JP5974794B2 (ja) * 2012-10-03 2016-08-23 富士通株式会社 提示プログラム、情報処理装置及び提示方法
US20140136210A1 (en) * 2012-11-14 2014-05-15 At&T Intellectual Property I, L.P. System and method for robust personalization of speech recognition
EP4138075A1 (en) 2013-02-07 2023-02-22 Apple Inc. Voice trigger for a digital assistant
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
US20140267047A1 (en) * 2013-03-15 2014-09-18 Qualcomm Incorporated Handling inappropriate input method use
KR101759009B1 (ko) 2013-03-15 2017-07-17 애플 인크. 적어도 부분적인 보이스 커맨드 시스템을 트레이닝시키는 것
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
CN110442699A (zh) 2013-06-09 2019-11-12 苹果公司 操作数字助理的方法、计算机可读介质、电子设备和系统
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
CN105265005B (zh) 2013-06-13 2019-09-17 苹果公司 用于由语音命令发起的紧急呼叫的系统和方法
US10791216B2 (en) 2013-08-06 2020-09-29 Apple Inc. Auto-activating smart responses based on activities from remote devices
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
TWI520017B (zh) * 2014-01-23 2016-02-01 艾維克科技股份有限公司 滑鼠按鍵功能設定方法及其系統
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US9606986B2 (en) 2014-09-29 2017-03-28 Apple Inc. Integrated word N-gram and class M-gram language models
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179588B1 (en) 2016-06-09 2019-02-22 Apple Inc. INTELLIGENT AUTOMATED ASSISTANT IN A HOME ENVIRONMENT
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10175770B2 (en) 2016-10-13 2019-01-08 International Business Machines Corporation Proactive input method editor switching
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
WO2018176365A1 (en) * 2017-03-31 2018-10-04 Orange Method for displaying a virtual keyboard on a mobile terminal screen
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770429A1 (en) 2017-05-12 2018-12-14 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK179549B1 (en) 2017-05-16 2019-02-12 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
US10460746B2 (en) 2017-10-31 2019-10-29 Motorola Solutions, Inc. System, method, and device for real-time language detection and real-time language heat-map data structure creation and/or modification
CN107894852A (zh) * 2017-11-13 2018-04-10 珠海市魅族科技有限公司 一种键盘切换方法及电子设备
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
US10496705B1 (en) 2018-06-03 2019-12-03 Apple Inc. Accelerated task performance
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US10565320B1 (en) 2018-09-28 2020-02-18 International Business Machines Corporation Dynamic multilingual speech recognition
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
CN109710150B (zh) * 2018-12-25 2021-02-12 维沃移动通信有限公司 按键控制方法及终端
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US11488406B2 (en) 2019-09-25 2022-11-01 Apple Inc. Text detection using global geometry estimators
TWI731453B (zh) * 2019-10-29 2021-06-21 宏碁股份有限公司 鍵盤模式切換系統與方法
KR102443304B1 (ko) * 2020-11-27 2022-09-15 한림대학교 산학협력단 기계학습을 통한 입력 언어의 인식장치 및 인식방법
US11995457B2 (en) 2022-06-03 2024-05-28 Apple Inc. Digital assistant integration with system interface
US11978436B2 (en) 2022-06-03 2024-05-07 Apple Inc. Application vocabulary integration with a digital assistant

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5257187A (en) * 1986-11-28 1993-10-26 Sharp Kabushiki Kaisha Translation machine system
KR950008022B1 (ko) * 1991-06-19 1995-07-24 가부시끼가이샤 히다찌세이사꾸쇼 문자처리방법 및 장치와 문자입력방법 및 장치
KR0165591B1 (ko) 1995-07-06 1999-01-15 이긍해 한영 혼용 입력장치에 적용되는 한.영 자동 전환 방법
US5966637A (en) * 1996-11-12 1999-10-12 Thomson Consumer Electronics, Inc. System and method for receiving and rendering multi-lingual text on a set top box
KR100213910B1 (ko) * 1997-03-26 1999-08-02 윤종용 한영 자동 변환기 및 방법
US6326953B1 (en) * 1998-06-24 2001-12-04 Microsoft Corporation Method for converting text corresponding to one keyboard mode to text corresponding to another keyboard mode
KR100322575B1 (ko) * 1998-07-15 2002-03-08 윤종용 범용문자오타변환기능을갖는컴퓨터
US6848080B1 (en) * 1999-11-05 2005-01-25 Microsoft Corporation Language input architecture for converting one text form to another text form with tolerance to spelling, typographical, and conversion errors
KR20010103912A (ko) 2000-05-12 2001-11-24 임일석 기입력된 문자들을 자동으로 한영 변환하기 위한 기능키를구비하는 컴퓨터용 키보드 장치 및 그의 한영 자동 변환방법
GB2366940B (en) * 2000-09-06 2004-08-11 Ericsson Telefon Ab L M Text language detection
FI20010644A (fi) * 2001-03-28 2002-09-29 Nokia Corp Merkkisekvenssin kielen määrittäminen
US7159191B2 (en) * 2003-03-03 2007-01-02 Flextronics Sales & Marketing A-P Ltd. Input of data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100619504B1 (ko) * 2004-07-31 2006-09-08 최양길 자동 입력 모드 변환 방법 및 그 시스템
KR101541147B1 (ko) * 2007-09-06 2015-07-31 구글 인코포레이티드 동적 가상 입력 디바이스 구성

Also Published As

Publication number Publication date
KR100634496B1 (ko) 2006-10-13
US7562007B2 (en) 2009-07-14
US20040260536A1 (en) 2004-12-23

Similar Documents

Publication Publication Date Title
KR100634496B1 (ko) 입력언어모드 인식방법 및 장치와 이를 이용한 입력언어모드 자동전환방법 및 장치
JP5501625B2 (ja) 不確定なテキスト入力から明確な文字をフィルタリングする装置及び方法
RU2206118C2 (ru) Система устранения неоднозначности с уменьшенной клавиатурой
US9026428B2 (en) Text/character input system, such as for use with touch screens on mobile phones
US6307548B1 (en) Reduced keyboard disambiguating system
US20050041011A1 (en) Method and user interface for entering text
US7719521B2 (en) Navigational interface providing auxiliary character support for mobile and wearable computers
CN101206528B (zh) 用多种词汇之一以及解析模态对简化用户输入文本的处理
KR20050038441A (ko) 문자인식장치 및 방법
JP2007133884A5 (ko)
WO1998033111A9 (en) Reduced keyboard disambiguating system
JP2000508093A (ja) 減少型キーボード曖昧さ除去システム
TW200900938A (en) Disambiguation of telephone style key presses to yield Chinese text using segmentation and selective shifting
WO2005048013A2 (en) Data input panel character conversion
KR20030008873A (ko) 자판 자동변환을 통한 문자 입력 방법 및 이 방법을실현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는기록 매체
JP3532780B2 (ja) 音声仮名文字の入力順序を生成するための入力システム
JP3492981B2 (ja) 音声仮名文字の入力順序を生成するための入力システム
KR20050048978A (ko) 터치 스크린을 가지는 기기에서 소프트웨어 키보드 자판배열 변경 장치 및 그 방법
Bhatti et al. Mistype resistant keyboard (NexKey)
KR20190137222A (ko) 개별 스위치 기능이 적용된 터치 키패드 및 이를 이용한 문자 입력 방법
JPH05324926A (ja) 文字入力方法及び装置
JPH0561855A (ja) 日本語処理装置
JP2001034607A (ja) フロント・エンド・プロセッサ、その処理方法および記録媒体
KR20010027545A (ko) 휴대 정보기기용 키보드
MXPA00002641A (es) Sistema de teclado reducido con eliminacion de ambiguedades

Legal Events

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

Payment date: 20120927

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130927

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140929

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150925

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170927

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20181004

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20190918

Year of fee payment: 14