KR101946545B1 - 오타 수정 방법 - Google Patents

오타 수정 방법 Download PDF

Info

Publication number
KR101946545B1
KR101946545B1 KR1020180111330A KR20180111330A KR101946545B1 KR 101946545 B1 KR101946545 B1 KR 101946545B1 KR 1020180111330 A KR1020180111330 A KR 1020180111330A KR 20180111330 A KR20180111330 A KR 20180111330A KR 101946545 B1 KR101946545 B1 KR 101946545B1
Authority
KR
South Korea
Prior art keywords
word
input
user
correction
library
Prior art date
Application number
KR1020180111330A
Other languages
English (en)
Other versions
KR20180107052A (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 KR1020180111330A priority Critical patent/KR101946545B1/ko
Publication of KR20180107052A publication Critical patent/KR20180107052A/ko
Application granted granted Critical
Publication of KR101946545B1 publication Critical patent/KR101946545B1/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
    • 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/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
    • 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)
  • Document Processing Apparatus (AREA)

Abstract

본 발명은 백스페이스 등의 삭제 기능키를 입력하거나 마우스 또는 터치로 커서를 옮기는 등의 번거로운 동작 없이 오타의 수정을 수행할 수 있는 방법을 제시한다. 또한, 본 발명에 따르면, 사용자의 수정 입력 의도를 정확히 반영하여 기존 자동 수정 기능에서 엉뚱한 단어로 수정되는 문제점도 해결될 수 있다.
이를 위하여, 사용자가 단어를 입력할 때마다 라이브러리와의 대비가 실행된다. 라이브러리에 수록되지 않은 단어는 수정 대상 후보로 등록된다. 신규 입력된 단어와 수정 대상 후보인 단어 간의 연관성이 계산된다. 계산된 연관성이 소정 값 이상일 경우, 사용자의 신규 단어 입력이 오타 수정 의도에서 이루어진 것임을 판단한다. 그 이후, 수정 대상 후보인 단어를 신규 입력 단어로 치환한다. 본 발명은 사용자가 직접 수정 명령을 내리는 경우에도 적용 가능하다.

Description

오타 수정 방법{TYPE ERROR CORRECTION METHOD}
본 발명은 문자 입력 시 오타가 많이 발생하는 스마트폰에서의 터치 키패드 입력 시뿐만 아니라 모든 모바일 기기(피처폰 포함)의 키패드 입력 시에도 적용될 수 있고, PC 상에서도 활용 가능한 오타 수정 방법 및 이를 구현한 장치에 관한 것이다.
PC 상에서 문자(영문, 한글, 숫자, 특수 문자 등 입력 가능한 모든 형태 포괄하는 의미임)를 입력할 때나 모바일 기기에서 문자를 입력할 때나 전형적인 오타 수정 방식은 백스페이스(Backspace) 등의 삭제 기능키를 입력하여 오타가 난 단어 이후의 단어를 모두 지우고 다시 입력하거나, 마우스(PC의 경우) 또는 손가락 터치로(모바일 기기의 경우) 커서를 오타가 난 단어로 옮기고 단어를 수정하는 것이었다.
그런데, 오타가 난 단어와 현재 커서 위치 사이에 정상적으로 입력된 단어들이 존재하는 경우에 백스페이스 등의 삭제 기능키를 입력하여 수정하는 방식에서는 오타가 난 단어뿐만 아니라 정상적으로 입력된 단어들도 지워져 버리는 문제점이 있었다. 마우스를 활용하여 커서를 옮길 경우에는 키보드에서 손을 떼어 마우스를 잡고 원하는 정확한 위치에 커서를 옮기는 동작과 그 이후 현재 위치로 커서를 다시 옮기는 동작이 필요하여 번거로웠다. 모바일 기기에서 손가락 터치로 커서를 옮길 경우에는 터치의 정확성이 떨어져서 원하는 위치에 커서를 한번에 옮기는 것이 힘들고 역시 번거로운 동작을 필요로 하였다.
위와 같은 오타 수정 방식의 번거로움을 줄이고자 등장한 것이 자동 수정 기능이다. 이 기능은 이미 상용화되어 있는 것으로서, 사용자가 A란 단어를 입력할 경우, 이를 오타로 판단하면 자동으로 B라는 단어로 고쳐주는 것이었다. 자동으로 수정 입력되는 B단어는 라이브러리에 이미 입력되어 있는 것으로서 사용자가 직접 입력하지 않은 것이다.
그런데, 자동 수정 기능에서는 수정 입력되는 단어가 사용자가 수정 의도를 가지고 입력한 단어가 아니고 시스템이 사용자가 실제로 입력하였을 것으로 추정하는 단어이므로, 추정의 정확성이 떨어지는 경우에는 문제가 발생하였다. 이는 라이브러리에 등록된 단어들에는 한계가 있다는 점에 일부 기인하였다. 실제로 현재 PC 상에서나 모바일 기기 상에서나 많은 사용자들이 신조어, 줄임말을 빈번히 사용하고 있는 실정이기 때문에 라이브러리의 업데이트가 빈번히 이루어지지 않는 경우 라이브러리의 한계는 더욱 두드러진다. 이러한 이유로 많은 사용자들이 자동 단어 수정 기능이 장치에 탑재되어 있음에도 불구하고, 이 기능을 off하여 문자를 입력하고 있다.
자동 수정 기능의 또 다른 문제점은 자동 수정이 단어 단위에서만 이루어진다는 것이다. 자동 수정 기능을 사용하더라도 현재 입력하고 있는 단어가 아닌 미리 입력한 단어에 오류가 발견되면, 앞서 기술한 전형적인 수정 방식에서와 같이, 백스페이스 등의 삭제 기능키를 입력하거나 마우스, 손가락 터치 등으로 커서를 옮겨서 삭제 후 수정 입력을 하여야 한다.
본 발명이 해결하고자 하는 과제는 앞서 기재한 종래기술의 문제점을 해결하는 것이다. 보다 구체적으로, 백스페이스 등의 삭제 기능키를 입력하거나 마우스 또는 터치로 커서를 옮기는 등의 번거로운 동작 없이 수정을 완료할 수 있도록 하는 오타 수정 방법 및 이를 구현한 장치를 제공하는 것이다.
이하에서, 위 과제를 해결하기 위하여 본 발명이 채용하고 있는 특유의 기술 수단에 대하여 설명한다.
본 발명의 기술 수단은 크게 세 가지로 분류할 수 있고, 각각의 분류는 사용자의 수정 의도를 자동으로 파악하는 방식과 사용자가 직접 수정 명령을 내리는 방식으로 나뉜다.
(제1 수단: 소정 범위의 이전 단어들과 신규 입력 단어 간의 비교)
본 수단은 이미 입력 완료된 단어에 오류가 있는 경우, 이 단어를 올바르게 신규 입력된 단어로 치환하는 것이다. 본 명세서에서 "단어"는 상호 간에 스페이스로 구분된 문자열로 정의된다.
먼저, 사용자의 수정 의도를 자동으로 파악하는 방식에 대하여 설명한다.
사용자가 단어를 입력할 때마다 라이브러리와의 대비가 실행된다. 라이브러리에 수록되지 않은 단어는 수정 대상 후보로 등록된다. 신규 입력된 단어와 수정 대상 후보인 단어 간의 연관성이 계산된다. 계산된 연관성이 소정 값 이상일 경우, 사용자의 신규 단어 입력이 오타 수정 의도에서 이루어진 것임을 판단한다. 신규 단어 입력 후 다음 단어를 치기 위하여 스페이스가 입력되면 수정 대상 후보인 단어를 신규 입력 단어로 치환한다.
다음으로, 사용자가 직접 수정 명령을 하는 방식에 대하여 설명한다.
사용자가 단어 입력 후 수정 명령을 내리면 이 단어를 수정 목표 단어로 인식한다. 수정 목표 단어 이전까지 입력된 단어들과 수정 목표 단어 간의 연관성이 계산된다. 계산된 연관성이 소정 값 이상인 단어가 존재하면 그 단어를 수정 목표 단어로 치환한다.
(제2 수단: 직전 단어와 신규 입력 단어 간의 비교)
본 수단은 사용자가 의도한 단어의 입력을 완료하기 이전에 오타의 입력을 인지하는 경우, 입력 의도한 단어를 완성하지 않은 채로 스페이스를 입력하고 오타를 포함한 직전 단어를 올바르게 신규 입력된 단어로 치환하는 것이다.
먼저, 사용자의 수정 의도를 자동으로 파악하는 방식에 대하여 설명한다.
사용자가 단어를 입력할 때마다 라이브러리와의 대비가 실행된다. 라이브러리에 수록되지 않은 단어는 수정 대상 후보로 등록된다. 신규 입력된 단어의 첫 번째 문자부터의 부분 문자열과 직전 입력된 수정 대상 후보인 단어 간의 연관성이 계산된다. 계산된 연관성이 소정 값 이상일 경우, 사용자의 신규 단어 입력이 오타 수정 의도에서 이루어진 것임을 판단한다. 신규 단어 입력 후 다음 단어를 치기 위하여 스페이스가 입력되면 수정 대상 후보인 단어를 신규 입력 단어로 치환한다.
다음으로, 사용자가 직접 수정 명령을 하는 방식에 대하여 설명한다.
사용자가 단어 입력 후 수정 명령을 내리면 이 단어를 수정 목표 단어로 인식한다. 수정 목표 단어의 첫번째 문자부터의 부분 문자열과 직전 입력된 단어 간의 연관성이 계산된다. 계산된 연관성 값이 소정 값 이상이면, 직전 입력된 단어를 수정 목표 단어로 치환한다.
(제3 수단: 한 단어 내의 문자열들 간의 비교)
본 수단은 사용자가 의도한 단어의 입력을 완료하기 이전에 오타의 입력을 인지하는 경우, 스페이스를 입력하지 않고 올바른 문자들을 연속해서 입력하여 단어를 완성한 이후 오타가 난 문자들을 올바른 문자들로 치환하는 것이다.
먼저, 사용자의 수정 의도를 자동으로 파악하는 방식에 대하여 설명한다.
사용자가 단어의 입력을 완료하면 입력된 단어와 라이브러리와의 대비가 실행된다. 입력된 단어가 라이브러리에 수록되지 않은 경우에 단어 내의 문자열들 중 연관성이 높은 패턴이 존재하는지의 여부가 판단된다. 상호 간에 연관성이 높은 문자열들이 존재하는 것으로 판단되면, 그 중 앞에 입력된 문자열을 뒤에 입력된 문자열로 치환한 단어가 라이브러리에 수록되었는지를 검토한다. 라이브러리에 수록된 것으로 확인되면, 앞에 입력된 문자열을 뒤에 입력된 문자열로 치환한다.
다음으로, 사용자가 직접 수정 명령을 하는 방식에 대하여 설명한다.
사용자가 단어 입력 후 수정 명령을 내리면 단어 내의 문자열들 간의 연관성이 계산된다. 상호 간에 연관성이 높은 문자열들이 존재하는 것으로 판단되면, 그 중 앞에 입력된 문자열을 뒤에 입력된 문자열로 치환한 단어가 라이브러리에 수록되었는지를 검토한다. 라이브러리에 수록된 것으로 확인되면, 앞에 입력된 문자열을 뒤에 입력된 문자열로 치환한다.
본 발명에 따르면, 백 스페이스 등의 삭제 기능키를 입력하지 않고서도 오타의 수정이 가능하므로, 기존의 방식에 비하여 빠르고 간편한 오타 수정이 가능해진다.
도1은 제1 수단 중 사용자의 의도를 자동으로 파악하는 것에 관한 실시예를 도시한다.
도2는 제1 수단 중 사용자가 직접 수정 명령을 하는 것에 관한 실시예를 도시한다.
도3은 제2 수단 중 사용자의 의도를 자동으로 파악하는 것에 관한 실시예를 도시한다.
도4는 제2 수단 중 사용자가 직접 수정 명령을 하는 것에 관한 실시예를 도시한다.
도5는 제3 수단 중 사용자의 의도를 자동으로 파악하는 것에 관한 실시예를 도시한다.
도6은 제3 수단 중 사용자가 직접 수정 명령을 하는 것에 관한 실시예를 도시한다.
도7은 제1 내지 제3 수단이 결합되어 수행되는 경우 중 사용자의 의도가 자동으로 파악되는 것에 관한 실시예를 도시한다.
도1은 제1 수단 중 사용자의 의도를 자동으로 파악하는 것에 관한 실시예를 도시한다. 사용자는 Happy Easter everyone의 입력을 의도하였으나, 실제로 입력한 것은 Hsppy Easter wveryone이다. 제1 수단에 따르면, 사용자가 단어를 입력할 때마다 라이브러리와의 대비가 실행되고, 라이브러리에 수록되지 않은 단어는 수정 대상 후보로 등록되므로, 위와 같은 입력의 경우 Hsppy와 wveryone이 수정 대상 후보가 된다. Hsppy Easter wveryone까지 입력한 상태에서 사용자는 일단 wveryone의 오타를 발견하고 이를 everyone으로 수정하고자 Hsppy Easter wveryone 다음 한 칸을 띄우고 everyone을 입력한다. 이제 사용자의 입력은 Hsppy Easter wveryone everyone이 되었다. 제1 수단에 따르면, 신규 입력된 단어와 수정 대상 후보인 단어 간의 연관성이 계산되는데, 신규 입력된 단어인 everyone이 수정 대상 후보 중 하나인 wveryone과의 연관성이 높으므로, 사용자가 신규로 입력한 everyone은 오타 수정 의도에서 이루어진 것으로 판단된다. 이러한 판단에 따라 수정 대상 후보 중 하나인 wveryone은 everyone으로 치환 입력되어, 스페이스를 입력하는 순간 Hsppy Easter wveryone everyone은 Hsppy Easter everyone으로 바뀐다. 이 상태에서 사용자는 Hsppy의 오타를 추가 발견하고 happy라는 올바른 단어를 입력한다. 수정 대상 후보들 중 하나인 wveryone이 치환 입력되었으므로, 현재 수정 대상 후보에는 Hsppy 밖에 없다. Hsppy와 happy와의 연관성이 높으므로, 사용자가 신규로 입력한 happy는 오타 수정 의도에서 이루어진 것으로 판단된다. 이러한 판단에 따라 수정 대상 후보인 Hsppy는 happy로 치환 입력되고, 그 과정에서 happy가 문장의 첫 단어임이 인식이 되면서 h가 대문자로 바뀌어 Hsppy Easter everyone은 Happy Easter everyone으로 입력된다. 이로써 수정 과정이 완료된다. 수정 후보군을 어느 정도까지의 범위, 예컨대 현재 입력하고 있는 단어의 10단어 이전까지로 할 것인지, 100단어 이전까지로 할 것인지, 아니면 문서 전체 범위로 할 것인지는 시스템이 처한 환경에 따라 자유롭게 설정될 수 있다. 이러한 수정 과정에서 사용된 연관성 판단 방법을 이하에서 설명한다.
단어 간의 연관성 판단은 다양한 방식으로 실행될 수 있다. 대표적으로는 아래 두 가지 방식이 활용된다. 첫번째 방식은 자판 배열에서 서로 이웃한 키는 상호 잘못 입력될 가능성이 매우 높다는 사실에 입각한 방식이다. 예컨대, everyone과 wveryone간의 연관성 판단에서 나머지 문자열을 제외한 각 단어의 첫 글자인 e와 w만 서로 다른데, e와 w는 자판 배열에서 서로 이웃하므로, e로 입력되었어야 할 것이 w로 잘못 입력되었을 가능성이 실제로 상당히 높으므로, everyone과 wveryone은 연관성이 높은 것으로 판단한다. 두번째 방식은 문자의 입력 순서가 뒤바뀐 경우를 연관성이 높은 것으로 판단하는 방식이다. 실제로, 빠른 속도로 문자를 입력할 때 입력되는 문자의 순서가 뒤바뀌는 경우가 빈번하게 발생한다. 예컨대, everyone과 evreyone간의 연관성 판단에서 나머지 문자열을 제외한 세번째와 네번째 단어만 각각 er과 re로 다르고, er과 re는 상호 순서만 뒤바뀌어 있다. 이러한 경우에 연관성이 높은 것으로 판단한다. 긴 단어를 입력하는 경우에는 이웃한 키의 잘못된 입력이나, 키의 입력 순서가 뒤바뀌어 입력되는 경우의 수가 증가할 수 있으므로, 연관성에 대한 정량화 처리에 있어서 단어의 길이에 따라 다른 기준의 적용이 가능하다.
도2는 제1 수단 중 사용자가 직접 수정 명령을 하는 것에 관한 실시예를 도시한다. 사용자는 Happy Easter everyone의 입력을 의도하였으나, 실제로 입력한 것은 Hsppy Easter wveryone이다. 사용자는 먼저 wveryone의 오류를 발견하고, 이의 수정을 위하여 Hsppy Easter wveryone 이후에 한 칸을 띄우고 everyone을 입력한다. 그 이후 수정 명령을 내린다. 수정 명령은 여러가지 형태로 실시될 수 있다. 수정 명령 기능 버튼이나 가상 키보드 상의 영역을 마련하는 방법이 있을 수 있고, 모바일 장치에서 구현되는 경우 모바일 장치를 살짝 흔들거나 키보드 전체 영역을 우측이나 좌측으로 이동시키는 터치 동작을 수정 명령으로 인식하게 하는 방법 등이 가능하다. 어떠한 방식으로든 everyone의 입력 후에 수정 명령을 인식하게 하면, 시스템은 everyone을 수정 목표 단어로 인식한다. 그 이후, 수정 목표 단어인 everyone과 그 이전에 입력된 단어들 간의 연관성이 계산된다. 이미 입력된 단어들 중 wveryone이 수정 목표 단어인 everyone과 연관성이 높으므로 wveryone은 everyone으로 치환 입력되어, Hsppy Easter wveryone everyone은 Hsppy Easter everyone으로 바뀐다. 이 상태에서 사용자는 Hsppy의 오타를 추가 발견하고 everyone에 한 칸을 띄우고 happy라는 올바른 단어를 입력한 후 재차 수정 명령을 내린다. 그러면, happy가 수정 목표 단어로 인식되고, 이미 입력된 단어들과의 연관성이 계산된다. 계산결과, Hsppy가 happy와의 연관성이 높이므로, Hsppy는 happy로 치환 입력되고, 그 과정에서 happy가 문장의 첫 단어임이 인식이 되면서 h가 대문자로 바뀌어 Hsppy Easter everyone은 Happy Easter everyone으로 입력된다. 이로써 수정 과정이 완료된다. 수정 목표 단어를 그 이전 입력된 어느 정도 범위의 단어들과 대비하여 연관성을 계산할 것인지, 예컨대 이전 입력된 10단어와 대비할 것인지, 100 단어와 대비할 것인지, 아니면 문서 전체의 단어들과 대비할 것인지는 시스템이 처한 환경에 따라 자유롭게 설정될 수 있다. 연관성 계산 방법은 위 도1의 실시예에서 설명한 것과 동일한 방법이 사용될 수 있다.
도3은 제2 수단 중 사용자의 의도를 자동으로 파악하는 것에 관한 실시예를 도시한다. 사용자는 I remember의 입력을 의도하고 입력을 하던 중 I teme까지 입력하고 reme라고 입력되었어야 할 것이, 실수로 teme로 입력된 것을 발견한다. 그 상태에서 스페이스를 눌러 한 칸을 띄우면 teme가 단어로 인식된다. 제2 수단에 따르면, 사용자가 단어를 입력할 때마다 라이브러리와의 대비가 실행되고, 라이브러리에 수록되지 않은 단어는 수정 대상 후보로 등록되는데, teme은 라이브러리에 없는 단어이기 때문에, 수정 대상 후보가 된다. 그 이후 사용자는 원래 입력을 의도하였던 단어인 remember를 입력하여 사용자의 입력은 I teme remember가 된다. 신규 입력된 단어의 첫문자, 즉 r부터의 부분 문자열과 직전 입력된 수정 대상 후보인 teme간의 연관성이 계산된다. 직전 입력된 수정 대상 후보인 teme가 4문자로 이루어져 있으므로 remember 중 첫 4문자인 reme와 teme와의 연관성이 검토되는 것이 가장 대표적인 부분 문자열 범위 설정 방식이나, 여기에 한정되지는 않는다. 직전 입력된 수정 대상 후보인 teme와 이후 입력된 단어의 첫번째 문자로부터의 부분 문자열인 reme간의 연관성이 높으므로, 시스템은 사용자가 신규로 입력한 단어인 remember가 오타 수정 의도로 입력된 것임을 판단한다. 그 이후, 수정 대상 후보인 teme가 remember로 치환되어 입력되고, 이로써 수정 과정이 완료된다. 연관성 계산 방법은 위 도1의 실시예에서 설명한 것과 동일한 방법이 사용될 수 있다.
도4는 제2 수단 중 사용자가 직접 수정 명령을 하는 것에 관한 실시예를 도시한다. 사용자는 I remember의 입력을 의도하였으나, 실제로 I teme까지 입력을 한 상태에서 teme가 오류임을 발견하고, 이의 수정을 위하여 I teme 이후에 한 칸을 띄우고 remember를 입력한다. 그 이후 수정 명령을 내린다. 다양하게 실시 가능한 수정 명령이 내려지면 remember는 수정 목표 단어로 인식된다. 수정 목표 단어의 첫번째 문자로부터의 부분 문자열과 직전 입력된 단어 간의 연관성이 계산되는데, 직전 입력된 단어인 teme가 4문자로 이루어져 있으므로 remember 중 첫 4문자인 reme와 teme와의 연관성이 검토되는 것이 가장 대표적인 부분 문자열 범위 설정 방식이나, 여기에 한정되지는 않는다. reme과 teme의 연관성이 높으므로, 직전 입력된 단어인 teme가 수정 목표 단어인 remember로 치환되어 수정 과정이 완료된다. 연관성 계산 방법은 위 도1의 실시예에서 설명한 것과 동일한 방법이 사용될 수 있다.
도5는 제3 수단 중 사용자의 의도를 자동으로 파악하는 것에 관한 실시예를 도시한다. 사용자는 I remember의 입력을 의도하였으나 I rene까지 입력을 한 상태에서 reme라고 입력하였어야 할 것을 rene로 입력한 것을 인지한다. 도3과 도4의 실시예에서와 같이 이 상태에서 스페이스를 눌러 잘못 입력된 rene를 일단 단어로 인식시킨 다음에 이를 대체할 remember를 새로 입력하여도 되지만, 본 실시예에서는 오타가 난 문자들 이후에 스페이스를 입력하지 않고 올바른 문자들을 연속해서 오타를 수정하는 방법에 대하여 설명하고 있다. 사용자는 I rene까지 입력을 한 상태에서 원래 입력 의도한 단어인 remember 중 첫번째와 두번째 문자는 올바르게 입력되었으나 세번째 문자부터 입력이 잘못되었으니 잘못된 세번째 문자부터 다시 입력한다. 따라서, 사용자의 입력은 I renemember이 되었다. renemember의 입력이 단어 단위로 마무리된 상태에서, 이 단어가 라이브러리와 대비된다. renemember는 라이브러리에 수록되지 않은 것으로 판명되고, 이에 따라서 단어 내의 문자열들 중 대비가 실행된다. 입력된 단어가 라이브러리에 수록되지 않은 경우에 단어 내의 문자열들 중 연관성이 높은 문자열들이 존재하는지의 여부가 판단된다. 본 실시예에서는 renemember 중 ne와 me가 연관성이 높은 문자열로 인식된 후 앞에 입력된 문자열인 ne가 뒤에 입력된 문자열인 me로 치환한 결과인 remember가 라이브러리에 수록되었는지를 검토된다. remember가 라이브러리에 수록된 것으로 확인되므로, ne를 me로 치환한 결과인 remember가 원래 입력한 renemember를 대체하여 수정 입력된다. 문자열 간 연관성 계산 방법은 이하에서 보다 구체적으로 설명한다.
renemember를 실시간으로 한 글자씩 입력하는 상황에서 부분 문자열인 ne와 me 간의 연관성 계산 방법은 다음과 같다. 여기서는 다양하게 구현될 수 있는 연관성 계산 방법 중에서 자판 배열상 가로 ?항으로 이웃한 키들 간의 오타 입력 가능성에 주목하여 기술한다. 즉, s가 입력되면 이 입력은 좌측으로 이웃한 a를 잘못 입력한 것이거나, 우측으로 이웃한 d를 잘못 입력한 것일 수 있다고 판단하는 것이다. 처음으로 r이 입력된 경우에는 비교할 문자열이 없다. re가 입력된 경우, 첫 번째 문자 r과 두 번째 문자 e는 이웃하므로 이전 r을 새로 입력한 e로 수정하려는 의도일 수 있다고 판단하여 수정후보 A로 등록한다. ren이 입력된 경우, 세 번째 문자 n은 첫 번째 문자 r이나 두 번째 문자 e와 이웃 관계가 없으므로 추가로 수정후보에 등록할 것이 없다. rene가 입력된 경우, 네 번째 문자 e와 첫 번째 문자 r이 상호 이웃 관계가 있으므로, ren 문자열을 수정하려는 의도에서 네번째 e를 입력한 것일 수 있다고 판단하여 수정후보 B로 등록한다. renem가 입력된 경우, 다섯 번째 문자 m과 세 번째 문자 n이 상호 이웃 관계에 있으므로, 문자열 ne를 수정하려는 의도에서 다섯 번째 문자 m을 입력한 것일 수 있다고 판단하여 수정후보 C로 등록하고, 문자열 en을 문자열 em으로 수정하려는 의도에서 다섯 번째 문자 m을 입력한 것일 수 있다고 판단하여 이를 수정후보 D에 등록한다. 이 시점에서, 수정후보 B의 경우 ren 문자열을 수정하기 위해서 r과 이웃한 e를 입력 했다고 한다면 e뒤에 문자 e의 입력이 뒤따라야 하는데, m을 입력했으므로, 수정후보 B는 최종 수정후보에서 제외된다. reneme가 입력된 경우, 첫 번째 문자 r과 여섯 번째 문자 e간에 상호 이웃 관계가 있으므로, 문자열 renem을 수정하려는 의도일 수 있다고 판단하여 수정후보 E에 등록한다. 또한 수정후보 C의 경우 ne에서 me로의 수정의도가 명확해지고, 수정후보 A의 경우 r을 e로 바꾸어 쓴 것이라면 첫 번째 문자 r을 제외한 입력된 문자열 eneme로 시작하는 단어는 라이브러리에 없으므로 수정후보에서 제외된다. renemem이 입력된 경우, 일곱 번째 문자 m과 세 번째 문자 n간에 상호 이웃 관계가 있으므로, 문자열 neme를 수정하려는 의도일 수 있다고 판단하여 수정후보 F에 등록한다. 또한 문자열 en을 문자열 em(여섯 번째, 일곱 번째 문자)으로 수정하려는 의도에서 m을 입력했을 수 있다고 판단하여 이를 수정후보 G에 등록한다. 이 시점에서, 수정후보 E의 경우 문자열 renem을 수정하기 위하여 em(여섯 번째, 일곱 번째 문자)을 입력하지 않으므로, 수정 후보에서 제외된다. renememb가 입력된 경우, 여덟 번째 문자 b는 세 번째 문자 n과 상호 이웃 관계에 있으므로 문자열 nemem을 수정하려는 의도일 수 있다고 판단하여 수정후보 H에 등록한다. 이 시점에서 수정후보 F의 경우, 문자열 neme를 수정하기 위하여 문자열 mb를 입력하지 않을 것이므로 수정후보에서 제외된다. 또한 수정후보 G의 경우, en(두 번째, 세 번째 문자)을 em(여섯 번째, 일곱 번째 문자)으로 수정하려고 하였다면, 네 번째 문자인 e와 여덟 번째 문자 b간에 적어도 이웃관계가 존재하여야 하는데 그렇지 않으므로, 수정후보에서 제외된다. renemembe가 입력된 경우, 아홉 번째 문자 e와 첫번째 문자 r과 이웃 관계가 존재하므로, 문자열 renememb를 수정하려는 의도일 수 있다고 판단하여 수정후보 I에 등록한다. renemember가 입력된 경우, 열 번재 r은 두 번째, 네 번째, 여섯 번째, 아홉 번째 e와 이웃 관계에 있으므로, 각각 수정후보 J, K, L, M에 등록한다. 이 시점에서 수정후보 H의 경우, 문자열 nemem을 수정하기 위하여 문자열 ber을 입력하지는 않으므로, 수정후보 H는 수정후보에서 제외된다. 최종으로 스페이스가 입력되는 경우, 수정후보 I는 renememb를 er로 수정할 수 없으므로 수정후보에서 제외되고, 동일한 이유에서 수정후보 J, K, L, M 모두 수정후보에서 제외된다. 최종적으로 남은 수정후보는 C와 D로서, ne을 me로 치환한 remember와 en을 em으로 치환한 remember가 동일 단어이고, 이 단어는 라이브러리에 있으므로, 최종 수정이 완료된다.
도6은 제3 수단 중 사용자가 직접 수정 명령을 하는 것에 관한 실시예를 도시한다. 사용자는 I remember의 입력을 의도하였으나, 실제로 I rene까지 입력을 한 상태에서 원래 입력 의도한 단어인 remember 중 첫번째와 두번째 문자는 올바르게 입력되었으나 세번째 문자부터 입력이 잘못되었음을 발견하고, 잘못된 세번째 문자부터 다시 입력한다. 따라서, 사용자의 입력은 I renemember이 되었다. 그 이후 수정 명령을 내린다. 다양하게 실시 가능한 수정 명령이 내려지면 renemember로 입력된 단어 내의 문자열들 중 연관성이 높은 문자열들이 존재하는지의 여부가 판단된다. 본 실시예에서는 renemember 중 ne와 me가 연관성이 높은 문자열로 인식된 후 앞에 입력된 문자열인 ne가 뒤에 입력된 문자열인 me로 치환한 결과인 remember가 라이브러리에 수록되었는지를 검토된다. remember가 라이브러리에 수록된 것으로 확인되므로, ne를 me로 치환한 결과인 remember가 원래 입력한 renemember를 대체하여 수정 입력된다. 문자열 간 연관성 계산 방법은 위 도5의 실시예에서 설명한 것과 동일한 방법이 사용될 수 있다.
이상에서 본 발명의 제1 내지 제3 수단 각각에 대하여 설명하였다. 각각의 수단들은 독립적으로 또는 서로 간에 결합되어 수행될 수 있다. 이하에서는 제1 내지 제3 수단이 모두 결합되어 수행되는 실시예에 대해서 설명한다.
도7은 제1 내지 제3 수단이 결합되어 수행되는 경우 중 사용자의 의도가 자동으로 파악되는 것에 관한 실시예를 도시한다.
모든 수단이 결합된 경우는 문자 하나를 입력할 때마다, 제1 내지 제3 수단에 따른 모든 검토가 실행된다. 문자가 입력되는 경우에 먼저 제1 수단인 이전에 입력했던 단어들과의 연관성을 비교하고, 그 다음 제2 수단인 직전 단어와의 신규 입력 단어의 부분 연관성을 비교하고, 최종적으로 신규 입력 단어 내의 연관성 있는 문자열을 도출하는 연관성 비교를 진행한다. 스페이스가 입력되는 경우, 제3 수단을 통해여 도출된 수정후보가 있다면 신규 입력 단어 내의 자동 수정을 실행하고, 수정된 신규 입력단어를 다시 문자 비교를 통하여 제1 수단 비교와 제2 수단 비교를 수행하여 수정 후보군을 도출하여 자동 수정을 진행한다.
도7의 실시예에서 사용자의 의도를 자동으로 파악하는 단계 대신 사용자가 직접 수정 명령을 내리는 단계가 사용되더라도 나머지 단계들은 여전히 유효하게 적용될 수 있다.

Claims (2)

  1. 오타 수정 방법에 있어서,
    사용자에 의해 입력된 제1 단어가 라이브러리에 수록되지 않은 것으로 판단된 경우, 상기 제1 단어 및 추가 입력된 제2 단어 내의 문자열들 간에 상호 연관성이 높은 문자열들이 존재하는지의 여부를 판단하는 단계와,
    상호 연관성이 높은 문자열들이 존재하는 것으로 판단되면, 상기 상호 연관성이 높은 문자열들 중 상기 제1 단어에 포함된 제1 문자열을 상기 제2 단어에 포함된 제2 문자열로 치환한 단어가 라이브러리에 수록되었는지를 검토하는 단계와,
    상기 치환한 단어가 라이브러리에 수록된 것으로 확인되면, 상기 제1 문자열을 상기 제2 문자열로 치환하여 입력하는 단계를 포함하는 것을 특징으로 하는 오타 수정 방법.
  2. 오타 수정 방법에 있어서,
    입력된 단어에 대한 수정 명령에 따라, 입력된 제1 단어 및 추가로 입력된 제2 단어 내의 문자열들 간에 상호 연관성이 높은 문자열들이 존재하는지의 여부를 판단하는 단계와,
    상호 연관성이 높은 문자열들이 존재하는 것으로 판단되면, 상기 상호 연관성이 높은 문자열들 중 상기 제1 단어에 포함된 제1 문자열을 상기 제2 단어에 포함된 제2 문자열로 치환한 단어가 라이브러리에 수록되었는지를 검토하는 단계와,
    상기 치환한 단어가 라이브러리에 수록된 것으로 확인되면, 상기 제1 문자열을 상기 제2 문자열로 치환하여 입력하는 단계를 포함하는 것을 특징으로 하는 오타 수정 방법.
KR1020180111330A 2018-09-18 2018-09-18 오타 수정 방법 KR101946545B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180111330A KR101946545B1 (ko) 2018-09-18 2018-09-18 오타 수정 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180111330A KR101946545B1 (ko) 2018-09-18 2018-09-18 오타 수정 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020130085428A Division KR101901744B1 (ko) 2013-07-19 2013-07-19 오타 수정 방법

Publications (2)

Publication Number Publication Date
KR20180107052A KR20180107052A (ko) 2018-10-01
KR101946545B1 true KR101946545B1 (ko) 2019-02-11

Family

ID=63878009

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180111330A KR101946545B1 (ko) 2018-09-18 2018-09-18 오타 수정 방법

Country Status (1)

Country Link
KR (1) KR101946545B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113435185A (zh) * 2020-03-23 2021-09-24 北京搜狗科技发展有限公司 输入纠错方法、装置和用于输入纠错的装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113293A1 (en) 2007-08-19 2009-04-30 Multimodal Technologies, Inc. Document editing using anchors

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113293A1 (en) 2007-08-19 2009-04-30 Multimodal Technologies, Inc. Document editing using anchors

Also Published As

Publication number Publication date
KR20180107052A (ko) 2018-10-01

Similar Documents

Publication Publication Date Title
KR101294558B1 (ko) 오타 수정 방법
US11614862B2 (en) System and method for inputting text into electronic devices
US10838513B2 (en) Responding to selection of a displayed character string
US10275152B2 (en) Advanced methods and systems for text input error correction
US8892996B2 (en) Spell-check for a keyboard system with automatic correction
US9092419B2 (en) Spell-check for a keyboard system with automatic correction
KR101381101B1 (ko) 문자열 사이의 연관성 판단을 통한 오타 수정 방법
JP4519381B2 (ja) 自動訂正機能を備えたキーボード・システム
KR101520455B1 (ko) 자동 수정을 갖는 키보드 시스템용 맞춤법 검사
US20130257732A1 (en) Adaptive virtual keyboard
KR101753625B1 (ko) 휴대용 단말기에서 오입력을 방지하기 위한 방법 및 장치
KR101332757B1 (ko) 삭제키 입력 없이 단어 또는 문자열을 수정하는 방법 및 이를 구현한 장치
EP2897055A1 (en) Information processing device, information processing method, and program
CN104317780A (zh) 一种中文输入文本的快速纠错方法
KR101946545B1 (ko) 오타 수정 방법
KR101901744B1 (ko) 오타 수정 방법
KR101575081B1 (ko) 일본어 입력 환경에서의 오류 수정 방법
KR101990929B1 (ko) 문자열 사이의 연관성 판단을 통한 오타 수정 방법
KR101689002B1 (ko) 모바일 단말기를 이용한 문자 수정 방법
KR102001652B1 (ko) 삭제키 입력 없이 단어 또는 문자열을 수정하는 방법 및 이를 구현한 장치
KR101680777B1 (ko) 오타 문자 수정 방법
KR101650421B1 (ko) 오타 수정 방법

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant