KR20190024072A - 가상 키보드를 통하여 입력받은 문자열을 교정하는 모바일 장치 및 방법 - Google Patents

가상 키보드를 통하여 입력받은 문자열을 교정하는 모바일 장치 및 방법 Download PDF

Info

Publication number
KR20190024072A
KR20190024072A KR1020170110662A KR20170110662A KR20190024072A KR 20190024072 A KR20190024072 A KR 20190024072A KR 1020170110662 A KR1020170110662 A KR 1020170110662A KR 20170110662 A KR20170110662 A KR 20170110662A KR 20190024072 A KR20190024072 A KR 20190024072A
Authority
KR
South Korea
Prior art keywords
word
character string
input
candidate word
calibration
Prior art date
Application number
KR1020170110662A
Other languages
English (en)
Inventor
김주현
공경환
Original Assignee
필아이티 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 필아이티 주식회사 filed Critical 필아이티 주식회사
Priority to KR1020170110662A priority Critical patent/KR20190024072A/ko
Priority to PCT/KR2017/014137 priority patent/WO2019045185A1/en
Publication of KR20190024072A publication Critical patent/KR20190024072A/ko

Links

Images

Classifications

    • G06F17/273
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • 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/0236Character input methods using selection techniques to select from displayed items
    • 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/232Orthographic correction, e.g. spell checking or vowelisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Machine Translation (AREA)

Abstract

가상 키보드를 통하여 입력받은 문자열을 교정하는 모바일 장치 및 방법을 개시한다.

Description

가상 키보드를 통하여 입력받은 문자열을 교정하는 모바일 장치 및 방법{Mobile apparatus and method for correcting character string inputted through virtual keyboard}
가상 키보드를 통하여 입력받은 문자열을 교정하는 모바일 장치 및 방법에 관한 것이다.
모바일 기기 상에서 한글, 영문자, 숫자 등의 문자를 입력하는 과정에서 오타가 발생한 경우, 백스페이스(Backspace)와 같은 삭제키를 이용해 오타를 삭제하고 정타를 다시 입력하거나, 문자가 입력될 위치를 알리는 커서를 오타가 있는 곳으로 위치시킨 후 오타를 삭제하고 정타를 다시 입력할 수 있다. 이와 같은 오타 수정 방식은 오타를 즉시 발견하지 못하고 문자가 계속 입력된 경우, 오타 이후 입력된 정타들도 삭제하거나 커서를 오타가 있는 곳으로 위치를 이동시켰다가 다시 커서를 이동시켜야 하는 등 불편함이 있었다.
가상 키보드를 통하여 입력받은 문자열을 교정하는 모바일 장치 및 방법을 제공하는 것이다.
제 1 측면에 따른 가상 키보드를 통하여 입력받은 문자열을 교정하는 방법은 모바일 장치에 디스플레이된 가상 키보드를 통하여 문자열을 입력받는 단계; 상기 입력받은 문자열에 포함된 입력 단어에 대응되는 교정 후보 단어를 생성하는 단계; 상기 입력받은 문자열과 상기 입력 단어가 상기 교정 후보 단어로 대체된 교정 문자열에 대해 언어 모델을 적용한 적합도 확률과 상기 입력 단어와 상기 교정 후보 단어에 대한 상기 가상 키보드에서의 키 배치, 유사 발음, 유사 철자 중 적어도 하나에 기초한 가중치에 기초하여, 상기 입력 단어와 상기 교정 후보 단어 중 최적의 단어를 선정하는 단계; 및 상기 입력받은 문자열을 상기 선정된 최적의 단어를 포함하는 문자열로 대체하여 출력하는 단계;를 포함한다.
제 2 측면에 따른 가상 키보드를 통하여 입력받은 문자열을 교정하는 모바일 장치는 사용자 인터페이스; 컴퓨터 실행가능 명령어(computer executable instruction)를 저장하는 메모리; 및 상기 컴퓨터 실행가능 명령어를 실행함으로써, 모바일 장치의 상기 사용자 인터페이스에 디스플레이된 가상 키보드를 통하여 문자열을 입력받고, 상기 입력받은 문자열에 포함된 입력 단어에 대응되는 교정 후보 단어를 생성하며, 상기 입력받은 문자열과 상기 입력 단어가 상기 교정 후보 단어로 대체된 교정 문자열에 대해 언어 모델을 적용한 적합도 확률과 상기 입력 단어와 상기 교정 후보 단어에 대한 상기 가상 키보드에서의 키 배치, 유사 발음, 유사 철자 중 적어도 하나에 기초한 가중치에 기초하여, 상기 입력 단어와 상기 교정 후보 단어 중 최적의 단어를 선정하고, 상기 입력받은 문자열을 상기 선정된 최적의 단어를 포함하는 문자열로 대체하여 출력하는 프로세서;를 포함한다.
도 1은 일 실시예에 따른 가상 키보드를 통하여 입력받은 문자열을 교정하는 모바일 장치의 구성을 나타낸 블록도이다.
도 2는 일 실시예에 따른 가상 키보드를 통하여 입력받은 문자열을 교정하는 과정을 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 가상 키보드를 통하여 입력받은 문자열을 교정하는 방법을 나타낸 흐름도이다.
도 4는 일 실시예에 따른 가상 키보드를 통하여 입력받은 문자열을 교정하는 방법에서, 교정 후보 단어를 생성하는 과정을 나타낸 상세 흐름도이다.
도 5는 일 실시예에 따른 가상 키보드를 통하여 입력받은 문자열을 교정하는 방법에서, 최적의 단어를 선정하는 과정을 나타낸 상세 흐름도이다.
이하에서는 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 이하에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략한다.
한편, 본 명세서에서 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐 아니라, '그 중간에 다른 구성을 사이에 두고 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성이 다른 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들 더 포함할 수도 있다는 것을 의미한다.
또한, 본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
본 실시예들은 가상 키보드를 통하여 입력받은 문자열을 교정하는 모바일 장치 및 방법에 관한 것으로서 이하의 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서는 자세한 설명을 생략한다.
도 1은 일 실시예에 따른 가상 키보드를 통하여 입력받은 문자열을 교정하는 모바일 장치의 구성을 나타낸 블록도이다.
도 1을 참조하면, 일 실시예에 따른 가상 키보드를 통하여 입력받은 문자열을 교정하는 모바일 장치(100)는, 메모리(110), 프로세서(120), 사용자 인터페이스(130)를 포함할 수 있다. 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 알 수 있다.
모바일 장치(100)는 OS(Operating System)를 탑재하고, 모바일 장치(100)에 설치된 애플리케이션을 실행하여, 사용자 입력에 따른 처리 결과를 디스플레이할 수 있는 전자 장치로서, 스마트폰, 태블릿, 디지털 카메라 등이 될 수 있다. 애플리케이션은 애플리케이션 프로그램 또는 모바일 애플리케이션을 통칭하는 용어이다.
메모리(110)는 소프트웨어 및/또는 프로그램을 저장할 수 있다. 예를 들어, 메모리(110)는 애플리케이션, 애플리케이션 프로그래밍 인터페이스(API) 등과 같은 프로그램 및 다양한 종류의 데이터를 저장할 수 있다.
프로세서(120)는 메모리(110)에 저장된 데이터에 접근하여 이를 이용하거나, 또는 새로운 데이터를 메모리(110)에 저장할 수도 있다. 또한, 프로세서(120)는 메모리(110)에 설치된 프로그램을 실행할 수도 있다. 또한, 프로세서(120)는 외부로부터 수신한 애플리케이션을 메모리(110)에 설치할 수도 있다.
프로세서(120)는 적어도 하나의 프로세서를 포함할 수 있다. 프로세서(120)는 사용자 인터페이스(130)를 통해 수신한 사용자 입력에 대응되는 동작을 수행하도록 모바일 장치(100)에 포함된 다른 구성들을 제어할 수 있다. 프로세서(120)는 각 기능에 대응되는 특화된 프로세서를 적어도 하나 포함하거나, 하나로 통합된 형태의 프로세서일 수 있다. 예를 들어, 프로세서(120)는 메모리(110)에 저장된 프로그램을 실행시키거나, 메모리(110)에 저장된 데이터 또는 파일을 읽어오거나, 새로운 파일을 메모리(110)에 저장할 수도 있다.
사용자 인터페이스(130)는 사용자로부터 사용자 입력 등을 수신하거나, 모바일 장치(100)에서 애플리케이션 실행 결과, 사용자 입력에 대응되는 처리 결과, 모바일 장치(100)의 상태 등의 정보를 표시할 수 있다. 사용자 인터페이스(130)는 사용자로부터 입력을 수신하거나 모바일 장치(100)로부터 출력을 제공하기 위한 하드웨어 유닛들을 포함할 수 있으며, 이들을 구동하기 위한 전용 소프트웨어 모듈을 포함할 수도 있다. 예를 들어, 사용자 인터페이스(130)는 사용자 입력을 수신하는 터치 패널과 같은 조작 패널(operation panel) 및 화면을 표시하는 디스플레이 패널(display panel) 등을 포함할 수 있고, 조작 패널과 디스플레이 패널이 결합된 형태인 터치 스크린이 될 수 있으나, 이에 한정되지 않는다.
메모리(110)는 컴퓨터 실행가능 명령어(computer executable instruction)를 저장할 수 있다. 프로세서(120)는 메모리(110)에 저장된 컴퓨터 실행가능 명령어를 실행할 수 있다. 프로세서(120)는 모바일 장치(100)의 사용자 인터페이스(130)에 디스플레이된 가상 키보드를 통하여 문자열을 입력받을 수 있다. 프로세서(120)는 입력받은 문자열에 포함된 입력 단어에 대응되는 교정 후보 단어를 생성할 수 있다. 프로세서(120)는 입력받은 문자열과 입력 단어가 교정 후보 단어로 대체된 교정 문자열에 대해 언어 모델을 적용한 적합도 확률과 입력 단어와 교정 후보 단어에 대한 가상 키보드에서의 키 배치, 유사 발음, 유사 철자 중 적어도 하나에 기초한 가중치에 기초하여, 입력 단어와 교정 후보 단어 중 최적의 단어를 선정할 수 있다. 프로세서(120)는 입력받은 문자열을 선정된 최적의 단어를 포함하는 문자열로 대체하여 출력할 수 있다. 이하에서, 가상 키보드를 통하여 입력받은 문자열을 교정하는 과정에 대해서 상세히 설명한다.
도 2는 일 실시예에 따른 가상 키보드를 통하여 입력받은 문자열을 교정하는 과정을 설명하기 위한 도면이다.
도 2를 참조하면, 모바일 장치(100)가 가상 키보드를 통하여 입력받은 문자열을 교정하기 위해 수행하는 다양한 동작들을 설명하고 있다.
도 2에 도시된 바와 같이, 모바일 장치(100)는 모바일 장치(100)의 사용자 인터페이스에 디스플레이된 가상 키보드를 통하여 문자열을 입력받을 수 있다. 도 2를 보면, 가상 키보드를 통하여 "son"이 입력되었음을 알 수 있다. 입력받은 문자열은 적어도 하나 이상의 입력 단어를 포함할 수 있다. 문자열이 입력된 후, 띄워쓰기나 마침표가 사용되거나 입력 없이 소정의 시간이 경과하면, 모바일 장치(100)는 입력받은 문자열을 교정하는 과정을 수행할 수 있다.
모바일 장치(100)는 다양한 종류의 데이터베이스(이하, DB)를 활용하여, 입력받은 문자열을 교정하는 과정을 수행할 수 있다. 도 2를 참조하면, 인접키/비인접키 DB, 발음구별부호 DB, 단어 DB, 언어모델 DB 등이 도시되어 있으나, 모바일 장치(100)는 이에 한정되지 않고 다른 종류의 DB를 더 추가하여 활용할 수도 있다.
모바일 장치(100)는 인접키/비인접키 DB를 활용하여, 가상 키보드를 통하여 입력받은 문자열에 포함된 입력 단어를 구성하는 각각의 문자의 가상 키보드에서의 키 배치에 기초하여 제 1 교정 후보 단어를 생성할 수 있다. 예를 들어, 도 2에 도시된 바와 같이 "son"이라는 입력 단어에 대하여, "s" 키, "o" 키, "n" 키 각각의 인접키들을 조합하여 제 1 교정 후보 단어를 생성할 수 있다. 도 2를 참조하면, "s" 키의 인접키로서는, "e" 키, "d" 키, "x" 키, "z" 키, "a" 키, "w" 키가 있을 수 있으며, 설정에 따라 인접키의 범위를 확대하거나 축소할 수도 있다. 도 2를 참조하면, "o" 키의 인접키로서는, "p" 키, "l" 키, "k" 키, "i" 키가 있을 수 있고, "n" 키의 인접키로서는, "b" 키, "h" 키, "j" 키, "k" 키, "m" 키가 있을 수 있다. 한편, "s" 키, "o" 키, "n" 키 각각의 비인접키들을 조합하여 제 1 교정 후보 단어를 생성할 수도 있다. 제 1 교정 후보 단어 각각은 입력 단어와의 유사도에 해당하는 소정의 값을 가질 수 있다. 모바일 장치(100)는 입력 단어를 구성하는 각각의 문자의 가상 키보드에서의 위치와 인접키/비인접키들의 가상 키보드에서의 위치 간의 거리에 반비례하여 제 1 교정 후보 단어에 가중치를 부여할 수 있다. 다시 말해, 모바일 장치(100)는 제 1 교정 후보 단어의 유사도에 대해, 가상 키보드에서의 키 배치에 기초하여 가중치를 달리 적용할 수 있다.
모바일 장치(100)는 발음구별부호 DB를 활용하여, 가상 키보드를 통하여 입력받은 문자열에 포함된 입력 단어와의 유사 발음에 기초하여 제 1 교정 후보 단어를 생성할 수 있다. 예를 들어, 도 2에 도시된 바와 같이 "son"이라는 입력 단어에 대하여, "sun", "sson", "ssun", "sunn" 등의 제 1 교정 후보 단어를 생성할 수 있다. 제 1 교정 후보 단어 각각은 입력 단어와의 유사도에 해당하는 소정의 값을 가질 수 있다. 모바일 장치(100)는 유사 발음에 기초하여 제 1 교정 후보 단어에 가중치를 부여할 수 있다. 다시 말해, 모바일 장치(100)는 제 1 교정 후보 단어의 유사도에 대해, 유사 발음에 기초하여 가중치를 달리 적용할 수 있다.
모바일 장치(100)는 가상 키보드에서의 키 배치 및/또는 유사 발음에 기초하여 생성된 제 1 교정 후보 단어의 가중치가 적용된 유사도가 소정의 임계값 이상인지 판단하고, 소정의 임계값 이상인 제 1 교정 후보 단어를 추출할 수 있다. 제 1 교정 후보 단어로서 생성되었다 하더라도, 가상 키보드에서의 키 배치 및/또는 유사 발음에 기초한 유사도가 소정의 임계값 미만인 제 1 교정 후보 단어는 제거하기 위함이다.
모바일 장치(100)는 가상 키보드에서의 키 배치 및/또는 유사 발음에 기초하여 생성된 제 1 교정 후보 단어를 단어 데이터베이스와 매칭시켜, 매칭이 유효한 제 1 교정 후보 단어를 추출할 수 있다. 제 1 교정 후보 단어로서 생성되었다 하더라도, 단어 데이터베이스에 존재하지 않는, 유효하지 않은 단어를 제거하기 위함이다. 도 2에 도시된 바와 같이, 모바일 장치(100)는 제 1 교정 후보 단어를 단어 데이터베이스와 매칭시켜, "sun", "sunn"과 같이 유효한 단어를 추출할 수 있다.
모바일 장치(100)는 편집거리에 기초한 제 2 교정 후보 단어를 생성할 수 있다. 편집거리는 어떤 단어를 몇 번의 수정을 거쳐야 대상 단어가 되는지를 나타내는 척도로서, 편집거리 레벨에 따라 제 2 교정 후보 단어가 생성될 수 있다. 모바일 장치(100)는 사용자로부터 또는 기설정된 값에 따른 편집거리 레벨에 따라 제 2 교정 후보 단어를 생성할 수 있다. 예를 들어, 편집거리 레벨 3에 따라 제 2 교정 후보 단어를 생성하는 경우, 편집거리 레벨 1 내지 편집거리 레벨 3에 해당하는 단어들을 단어 DB로부터 추출하여 제 2 교정 후보 단어를 생성할 수 있다.
모바일 장치(100)는 제 1 교정 후보 단어와 제 2 교정 후보 단어를 병합하여, 입력받은 문자열에 포함된 입력 단어에 대응되는 교정 후보 단어를 생성할 수 있다. 이에 따라, 편집거리 기반으로 교정 후보 단어를 생성하는 경우보다 더욱 다양한 교정 후보 단어들을 확보하여, 교정 정확도를 높일 수 있다.
모바일 장치(100)는 입력받은 문자열에 포함된 입력 단어와 생성된 교정 후보 단어 중 최적의 단어를 선정하기 위해, 언어 모델 DB를 활용할 수 있다. 언어 모델 DB는 다양한 종류의 언어 모델을 가지고 있을 수 있다. 각각의 언어 모델을 소정의 조건이나 소정의 데이터에 기초하여 학습된 언어 모델일 수 있다. 모바일 장치(100)는 가상 키보드를 통해 문자열이 입력되는 상황이나 조건에 가장 적합한 언어 모델을 선택하여, 입력받은 문자열과 교정 문자열에 적용함으로써, 입력 단어가 입력받은 문자열 내에서 문맥상 적절한지 또는 교정 후보 단어가 교정 문자열 내에서 문맥상 적절한지를 판단하고, 그 결과, 적합도 확률을 획득할 수 있다. 예를 들어, 도 2에 도시된 바와 같이, 입력 단어 "son"과 교정 후보 단어 "sun", "sunn"이 생성되어 있고, "son"이라는 입력 단어가 문자열의 가장 마지막에 입력받은 입력 단어인 경우, 입력받은 문자열에서 가장 마지막에 입력받은 입력 단어 "son"이 문맥 상 적절한지, 입력받은 문자열에서 가장 마지막에 입력받은 입력 단어 "son"을 각각 교정 후보 단어 "sun"과 "sunn"으로 대체한 교정 문자열에서 "sun" 또는 "sunn"이 적절한지 판단하여, 각각에 대한 적합도 확률을 획득할 수 있다. 예를 들어, 입력받은 문자열이 "I have a daughter and a son"이라면, 문맥상 다른 교정 후보 단어보다 실제 입력받은 입력 단어 "son"이 가장 적합하다는 것을 알 수 있다. 다른 예를 들어, 입력받은 문자열이 "Is it the moon or the son?"이라면, 문맥상 교정 후보 단어 중 "sun"이 가장 적합하다는 것을 알 수 있다. 모바일 장치(100)는 입력받은 문자열과 교정 문자열에 대해 언어 모델을 적용하여, 적합도 확률로서 도출할 수 있다.
모바일 장치(100)는 입력받은 문자열과 교정 문자열에 대해 언어 모델을 적용하여 획득된 적합도 확률에 대해, 입력 단어와 교정 후보 단어에 대한 가상 키보드에서의 키 배치, 유사 발음, 유사 철자 중 적어도 하나에 기초하여 가중치를 달리 적용할 수 있다. 모바일 장치(100)는 가중치가 적용된 적합도 확률에 기초하여, 입력 단어와 교정 후보 단어 중 적합도 확률이 가장 높은 최적의 단어를 선정할 수 있다.
모바일 장치(100)는 가상 키보드를 통해 입력받은 문자열을 선정된 최적의 단어를 포함하는 문자열로 대체하여 출력함으로써, 가상 키보드를 통하여 입력받은 문자열을 교정할 수 있다.
도 3은 일 실시예에 따른 가상 키보드를 통하여 입력받은 문자열을 교정하는 방법을 나타낸 흐름도이다.
도 3을 참조하면, 310 단계에서, 모바일 장치(100)는 모바일 장치(100)에 디스플레이된 가상 키보드를 통하여 문자열을 입력받을 수 있다.
320 단계에서, 모바일 장치(100)는 입력받은 문자열에 포함된 입력 단어에 대응되는 교정 후보 단어를 생성할 수 있다. 입력받은 문자열에 포함된 입력 단어는 적어도 하나 이상일 수 있고, 하나의 입력 단어에 대해 적어도 하나의 교정 후보 단어가 있을 수 있다. 이하, 도 4를 참조하여, 교정 후보 단어를 생성하는 과정에 대해 상세히 설명한다.
도 4는 일 실시예에 따른 가상 키보드를 통하여 입력받은 문자열을 교정하는 방법에서, 교정 후보 단어를 생성하는 과정을 나타낸 상세 흐름도이다.
410 단계에서, 모바일 장치(100)는 가상 키보드에서의 키 배치 및/또는 유사 발음에 기초한 제 1 교정 후보 단어를 생성할 수 있다.
420 단계에서, 모바일 장치(100)는 생성된 제 1 교정 후보 단어의 유사도에 대해, 가상 키보드에서의 키 배치 및/또는 유사 발음에 기초하여 가중치를 달리 적용할 수 있다.
430 단계에서, 모바일 장치(100)는 가중치가 적용된 유사도가 소정의 임계값 이상인 제 1 교정 후보 단어를 추출할 수 있다. 다시 말해서, 모바일 장치(100)는 생성된 제 1 교정 후보 단어에서 가중치가 적용된 유사도가 소정의 임계값 미만인 제 1 교정 후보 단어를 제거할 수 있다.
440 단계에서, 모바일 장치(100)는 생성된 제 1 교정 후보 단어를 단어 데이터베이스와 매칭시켜, 매칭이 유효한 제 1 교정 후보 단어를 추출할 수 있다. 다시 말해서, 모바일 장치(100)는 생성된 제 1 교정 후보 단어에서 단어 데이터베이스에 존재하지 않는 단어를 제거할 수 있다.
420 단계 내지 430 단계에서의 가중치를 적용한 교정 후보 단어 여과와 450 단계의 단어 데이터베이스를 이용한 교정 후보 단어 여과는 그 순서가 바뀌어도 무방하며, 그 중 어느 하나가 생략될 수도 있다.
450 단계에서, 모바일 장치(100)는 편집거리에 기초한 제 2 교정 후보 단어를 생성할 수 있다. 모바일 장치(100)는 제 1 교정 후보 단어를 생성하는 과정과 제 2 교정 후보 단어를 생성하는 과정을 병렬적으로 처리(parallel processing)할 수 있다.
460 단계에서, 모바일 장치(100)는 제 1 교정 후보 단어와 제 2 교정 후보 단어를 병합할 수 있다. 이에 따라, 하나의 입력 단어에 대해 제 1 교정 후보 단어와 제 2 교정 후보 단어가 포함된, 적어도 하나의 교정 후보 단어가 생성될 수 있다.
다시 도 3으로 돌아와서, 330 단계에서, 모바일 장치(100)는 입력받은 문자열과 입력 단어가 교정 후보 단어로 대체된 교정 문자열에 대해 언어 모델을 적용한 적합도 확률과 입력 단어와 교정 후보 단어에 대한 가상 키보드에서의 키 배치, 유사 발음, 유사 철자 중 적어도 하나에 기초한 가중치에 기초하여, 입력 단어와 교정 후보 단어 중 최적의 단어를 선정할 수 있다. 이하, 도 5를 참조하여, 최적의 단어를 선정하는 과정에 대해 상세히 설명한다.
도 5는 일 실시예에 따른 가상 키보드를 통하여 입력받은 문자열을 교정하는 방법에서, 최적의 단어를 선정하는 과정을 나타낸 상세 흐름도이다.
510 단계에서, 모바일 장치(100)는 입력받은 문자열과 입력 단어가 교정 후보 단어로 대체된 교정 문자열에 대해 언어 모델을 적용한 적합도 확률을 획득할 수 있다.
520 단계에서, 모바일 장치(100)는 획득된 적합도 확률에 대해, 입력 단어와 교정 후보 단어에 대한 가상 키보드에서의 키 배치, 유사 발음, 유사 철자 중 적어도 하나에 기초하여 가중치를 달리 적용할 수 있다.
530 단계에서, 모바일 장치(100)는 가중치가 적용된 적합도 확률에 기초하여, 입력 단어와 교정 후보 단어 중 적합도 확률이 가장 높은 최적의 단어를 선정할 수 있다.
다시 도 3으로 돌아와서, 340 단계에서, 모바일 장치(100)는 입력받은 문자열을 선정된 최적의 단어를 포함하는 문자열로 대체하여 출력할 수 있다.
모바일 장치(100)는 교정 후보 단어를 최적의 단어라고 선정한 경우, 입력받은 문자열을 교정 후보 단어를 포함하는 교정 문자열로 대체하여 출력할 수 있다. 모바일 장치(100)는 입력받은 문자열에 포함된 입력 단어를 최적의 단어라고 선정한 경우, 입력받은 문자열을 동일한 입력받은 문자열로 다시 대체할 수도 있으나, 이와 같은 경우는 현재 입력받은 문자열을 그대로 출력할 수도 있다.
한편, 모바일 장치(100)는 선정된 최적의 단어를 포함하는 문자열을 모바일 장치(100)에 디스플레이하고, 선정된 최적의 단어를 포함하는 문자열에 대한 사용자의 선택에 따라 대체하여 출력할 수도 있다. 다시 말해서, 사용자가 대체하여 출력할 문자열을 확인하고, 사용자의 승인이 있는 경우에 입력받은 문자열을 최적의 단어를 포함하는 문자열로 대체하여 출력할 수 있다.
전술한 모바일 장치(100)의 구성요소들의 명칭은 달라질 수 있다. 또한, 본 개시에 따른 모바일 장치(100)는 전술한 구성요소들 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다.
한편, 상술한 실시예들은 컴퓨터에 의하여 실행 가능한 명령어 및 데이터를 저장하는 컴퓨터로 읽을 수 있는 기록매체의 형태로 구현될 수 있다. 상기 명령어 및 데이터 중 적어도 하나는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 소정의 프로그램 모듈을 생성하여 소정의 동작을 수행할 수 있다. 이와 같은 컴퓨터로 읽을 수 있는 기록매체는 read-only memory (ROM), random-access memory (RAM), flash memory, CD-ROMs, CD-Rs, CD+Rs, CD-RWs, CD+RWs, DVD-ROMs, DVD-Rs, DVD+Rs, DVD-RWs, DVD+RWs, DVD-RAMs, BD-ROMs, BD-Rs, BD-R LTHs, BD-REs, 마그네틱 테이프, 플로피 디스크, 광자기 데이터 저장 장치, 광학 데이터 저장 장치, 하드 디스크, 솔리드-스테이트 디스크(SSD), 그리고 명령어 또는 소프트웨어, 관련 데이터, 데이터 파일, 및 데이터 구조들을 저장할 수 있고, 프로세서나 컴퓨터가 명령어를 실행할 수 있도록 프로세서나 컴퓨터에 명령어 또는 소프트웨어, 관련 데이터, 데이터 파일, 및 데이터 구조들을 제공할 수 있는 어떠한 장치라도 될 수 있다.
이제까지 실시예들을 중심으로 살펴보았다. 개시된 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자는 개시된 실시예들이 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 발명의 범위는 전술한 실시예들의 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 발명의 범위에 포함된 것으로 해석되어야 할 것이다.

Claims (12)

  1. 모바일 장치에 디스플레이된 가상 키보드를 통하여 문자열을 입력받는 단계;
    상기 입력받은 문자열에 포함된 입력 단어에 대응되는 교정 후보 단어를 생성하는 단계;
    상기 입력받은 문자열과 상기 입력 단어가 상기 교정 후보 단어로 대체된 교정 문자열에 대해 언어 모델을 적용한 적합도 확률과 상기 입력 단어와 상기 교정 후보 단어에 대한 상기 가상 키보드에서의 키 배치, 유사 발음, 유사 철자 중 적어도 하나에 기초한 가중치에 기초하여, 상기 입력 단어와 상기 교정 후보 단어 중 최적의 단어를 선정하는 단계; 및
    상기 입력받은 문자열을 상기 선정된 최적의 단어를 포함하는 문자열로 대체하여 출력하는 단계;
    를 포함하는 가상 키보드를 통하여 입력받은 문자열을 교정하는 방법.
  2. 제 1 항에 있어서,
    상기 교정 후보 단어를 생성하는 단계는,
    상기 가상 키보드에서의 키 배치 및/또는 유사 발음에 기초한 제 1 교정 후보 단어를 생성하는 단계;
    편집거리에 기초한 제 2 교정 후보 단어를 생성하는 단계; 및
    상기 제 1 교정 후보 단어와 상기 제 2 교정 후보 단어를 병합하는 단계;
    를 포함하는 가상 키보드를 통하여 입력받은 문자열을 교정하는 방법.
  3. 제 2 항에 있어서,
    상기 제 1 교정 후보 단어를 생성하는 단계는,
    상기 생성된 제 1 교정 후보 단어의 유사도에 대해, 상기 가상 키보드에서의 키 배치 및/또는 유사 발음에 기초하여 가중치를 달리 적용하는 단계; 및
    상기 가중치가 적용된 유사도가 소정의 임계값 이상인 제 1 교정 후보 단어를 추출하는 단계;
    를 더 포함하는, 가상 키보드를 통하여 입력받은 문자열을 교정하는 방법.
  4. 제 2 항에 있어서,
    상기 제 1 교정 후보 단어를 생성하는 단계는,
    상기 생성된 제 1 교정 후보 단어를 단어 데이터베이스와 매칭시켜, 매칭이 유효한 제 1 교정 후보 단어를 추출하는 단계를 더 포함하는, 가상 키보드를 통하여 입력받은 문자열을 교정하는 방법.
  5. 제 1 항에 있어서,
    상기 최적의 단어를 선정하는 단계는,
    상기 입력받은 문자열과 상기 입력 단어가 상기 교정 후보 단어로 대체된 교정 문자열에 대해 언어 모델을 적용한 적합도 확률을 획득하는 단계; 및
    상기 획득된 적합도 확률에 대해, 상기 입력 단어와 상기 교정 후보 단어에 대한 상기 가상 키보드에서의 키 배치, 유사 발음, 유사 철자 중 적어도 하나에 기초하여 가중치를 달리 적용하는 단계; 및
    상기 가중치가 적용된 적합도 확률에 기초하여, 상기 입력 단어와 상기 교정 후보 단어 중 적합도 확률이 가장 높은 최적의 단어를 선정하는 단계;
    를 포함하는, 가상 키보드를 통하여 입력받은 문자열을 교정하는 방법.
  6. 제 1 항에 있어서,
    상기 출력하는 단계는,
    상기 선정된 최적의 단어를 포함하는 문자열을 상기 모바일 장치에 디스플레이하는 단계; 및
    상기 선정된 최적의 단어를 포함하는 문자열에 대한 사용자의 선택에 따라 대체하여 출력하는 단계;
    를 포함하는, 가상 키보드를 통하여 입력받은 문자열을 교정하는 방법.
  7. 사용자 인터페이스;
    컴퓨터 실행가능 명령어(computer executable instruction)를 저장하는 메모리; 및
    상기 컴퓨터 실행가능 명령어를 실행함으로써, 모바일 장치의 상기 사용자 인터페이스에 디스플레이된 가상 키보드를 통하여 문자열을 입력받고, 상기 입력받은 문자열에 포함된 입력 단어에 대응되는 교정 후보 단어를 생성하며, 상기 입력받은 문자열과 상기 입력 단어가 상기 교정 후보 단어로 대체된 교정 문자열에 대해 언어 모델을 적용한 적합도 확률과 상기 입력 단어와 상기 교정 후보 단어에 대한 상기 가상 키보드에서의 키 배치, 유사 발음, 유사 철자 중 적어도 하나에 기초한 가중치에 기초하여, 상기 입력 단어와 상기 교정 후보 단어 중 최적의 단어를 선정하고, 상기 입력받은 문자열을 상기 선정된 최적의 단어를 포함하는 문자열로 대체하여 출력하는 프로세서;
    를 포함하는 가상 키보드를 통하여 입력받은 문자열을 교정하는 모바일 장치.
  8. 제 7 항에 있어서,
    상기 프로세서는,
    상기 가상 키보드에서의 키 배치 및/또는 유사 발음에 기초한 제 1 교정 후보 단어를 생성하고, 편집거리에 기초한 제 2 교정 후보 단어를 생성하여, 상기 제 1 교정 후보 단어와 상기 제 2 교정 후보 단어를 병합하는, 모바일 장치.
  9. 제 8 항에 있어서,
    상기 프로세서는,
    상기 생성된 제 1 교정 후보 단어의 유사도에 대해, 상기 가상 키보드에서의 키 배치 및/또는 유사 발음에 기초하여 가중치를 달리 적용하고, 상기 가중치가 적용된 유사도가 소정의 임계값 이상인 제 1 교정 후보 단어를 추출하는, 모바일 장치.
  10. 제 8 항에 있어서,
    상기 프로세서는,
    상기 생성된 제 1 교정 후보 단어를 단어 데이터베이스와 매칭시켜, 매칭이 유효한 제 1 교정 후보 단어를 추출하는, 모바일 장치.
  11. 제 7 항에 있어서,
    상기 프로세서는,
    상기 입력받은 문자열과 상기 입력 단어가 상기 교정 후보 단어로 대체된 교정 문자열에 대해 언어 모델을 적용한 적합도 확률을 획득하고, 상기 획득된 적합도 확률에 대해, 상기 입력 단어와 상기 교정 후보 단어에 대한 상기 가상 키보드에서의 키 배치, 유사 발음, 유사 철자 중 적어도 하나에 기초하여 가중치를 달리 적용하여, 상기 가중치가 적용된 적합도 확률에 기초하여, 상기 입력 단어와 상기 교정 후보 단어 중 적합도 확률이 가장 높은 최적의 단어를 선정하는, 모바일 장치.
  12. 제 7 항에 있어서,
    상기 프로세서는,
    상기 선정된 최적의 단어를 포함하는 문자열을 상기 모바일 장치의 상기 사용자 인터페이스에 디스플레이하고, 상기 선정된 최적의 단어를 포함하는 문자열에 대한 사용자의 선택에 따라 대체하여 출력하는, 모바일 장치.
KR1020170110662A 2017-08-31 2017-08-31 가상 키보드를 통하여 입력받은 문자열을 교정하는 모바일 장치 및 방법 KR20190024072A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170110662A KR20190024072A (ko) 2017-08-31 2017-08-31 가상 키보드를 통하여 입력받은 문자열을 교정하는 모바일 장치 및 방법
PCT/KR2017/014137 WO2019045185A1 (en) 2017-08-31 2017-12-05 MOBILE DEVICE, AND METHOD FOR CORRECTING CHARACTER CHAIN ENTERED VIA A VIRTUAL KEYBOARD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170110662A KR20190024072A (ko) 2017-08-31 2017-08-31 가상 키보드를 통하여 입력받은 문자열을 교정하는 모바일 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20190024072A true KR20190024072A (ko) 2019-03-08

Family

ID=65527616

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170110662A KR20190024072A (ko) 2017-08-31 2017-08-31 가상 키보드를 통하여 입력받은 문자열을 교정하는 모바일 장치 및 방법

Country Status (2)

Country Link
KR (1) KR20190024072A (ko)
WO (1) WO2019045185A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110764647B (zh) * 2019-10-21 2023-10-31 科大讯飞股份有限公司 输入纠错方法、装置、电子设备和存储介质
CN111078028B (zh) * 2019-12-09 2023-11-21 科大讯飞股份有限公司 输入方法、相关设备及可读存储介质
CN114527927A (zh) * 2020-11-20 2022-05-24 阿波罗智联(北京)科技有限公司 输入信息的方法、装置、电子设备和存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7584093B2 (en) * 2005-04-25 2009-09-01 Microsoft Corporation Method and system for generating spelling suggestions
KR20130020418A (ko) * 2011-08-19 2013-02-27 주식회사 케이티 문자열 추천 방법
US8484573B1 (en) * 2012-05-23 2013-07-09 Google Inc. Predictive virtual keyboard
KR101349967B1 (ko) * 2012-06-07 2014-02-07 네이버 주식회사 모바일 키보드 오타 패턴에 대한 검색어 제안 로직 개선 방법 및 장치
US20140267045A1 (en) * 2013-03-14 2014-09-18 Microsoft Corporation Adaptive Language Models for Text Predictions

Also Published As

Publication number Publication date
WO2019045185A1 (en) 2019-03-07

Similar Documents

Publication Publication Date Title
US11625407B2 (en) Website scoring system
JP6526608B2 (ja) 辞書更新装置およびプログラム
US10242296B2 (en) Method and device for realizing chinese character input based on uncertainty information
US20210365803A1 (en) Machine-learning system and method for identifying same person in genealogical databases
US8976118B2 (en) Method for character correction
KR20190024072A (ko) 가상 키보드를 통하여 입력받은 문자열을 교정하는 모바일 장치 및 방법
US20210209482A1 (en) Method and apparatus for verifying accuracy of judgment result, electronic device and medium
KR20090023417A (ko) 의심스런 인식 결정을 식별하기 위한 방법 및 컴퓨터 판독가능 매체
JP6759824B2 (ja) 適応的な電子的リーディング支援の提供
US20210056960A1 (en) Natural language grammar improvement
CN110874364A (zh) 一种查询语句处理方法、装置、设备及存储介质
JP2019159814A (ja) 情報処理装置、情報処理方法及びプログラム
WO2019225007A1 (ja) 入力ミス検知装置、入力ミス検知方法および入力ミス検知プログラム
CN112817996A (zh) 一种违法关键词库的更新方法、装置、设备及存储介质
CN113010550B (zh) 结构化数据的批处理对象生成、批处理方法和装置
JP2006309377A (ja) 文書検索装置および文書検索方法ならびにそのプログラムと記録媒体
JP2018190030A (ja) 情報処理サーバ、その制御方法、及びプログラム、並びに、情報処理システム、その制御方法、及びプログラム
JP5870776B2 (ja) リンク付与装置、リンク付与方法、およびプログラム
CN115917527A (zh) 文档检索装置、文档检索系统、文档检索程序、以及文档检索方法
JP4558369B2 (ja) 情報抽出システム、情報抽出方法、コンピュータプログラム
KR20190090646A (ko) 단어 예측을 수행하는 방법 및 모바일 장치
KR20050026732A (ko) 사용자별로 최적화된 오타 교정 단어 제공 방법
JP2021086362A (ja) 情報処理装置、情報処理方法及びプログラム
JP6425989B2 (ja) 文字認識支援プログラム、文字認識支援方法及び文字認識支援装置
US11934414B2 (en) Systems and methods for generating document score adjustments

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