KR102197227B1 - 문자 변환 방법 및 이를 수행하는 장치들 - Google Patents

문자 변환 방법 및 이를 수행하는 장치들 Download PDF

Info

Publication number
KR102197227B1
KR102197227B1 KR1020190060681A KR20190060681A KR102197227B1 KR 102197227 B1 KR102197227 B1 KR 102197227B1 KR 1020190060681 A KR1020190060681 A KR 1020190060681A KR 20190060681 A KR20190060681 A KR 20190060681A KR 102197227 B1 KR102197227 B1 KR 102197227B1
Authority
KR
South Korea
Prior art keywords
language
character string
probability
character
typo
Prior art date
Application number
KR1020190060681A
Other languages
English (en)
Other versions
KR20200134754A (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 KR1020190060681A priority Critical patent/KR102197227B1/ko
Publication of KR20200134754A publication Critical patent/KR20200134754A/ko
Application granted granted Critical
Publication of KR102197227B1 publication Critical patent/KR102197227B1/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
    • 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/018Input/output arrangements for oriental characters
    • 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

문자 변환 방법 및 이를 수행하는 장치들이 개시된다. 일 실시예에 따른 문자 변환 방법은 제1 언어의 제1 문자열을 수신하는 단계와, 언어 토글 키의 누름에 응답하여 상기 제1 문자열이 오타인지 여부를 판단하고, 상기 제1 문자열이 오타로 판단된 경우에 상기 제1 문자열을 제2 언어의 제2 문자열로 변환하는 단계를 포함한다.

Description

문자 변환 방법 및 이를 수행하는 장치들{METHOD OF CONVERTING WORD AND APPARATUSES PERFORMING THE SAME}
아래 실시예들은 문자 변환 방법 및 이를 수행하는 장치들에 관한 것이다.
라틴 문자를 사용하지 않는 나라에서는 사용자가 컴퓨터에서 제공하는 두가지 언어 입력 모드들(또는 문자 입력 모드들)을 통해 영어과 자국어를 입력할 수 있다. 라틴 문자를 사용하지 않는 나라는 한국, 일본, 중국, 태국과 같은 나라일 수 있다.
예를 들어, 컴퓨터는 다중 언어 입력 모드를 지원하기 위해서 입력되는 언어를 전환하기 위한 특수 키(또는 토글 키(toggle key), 언어 토글 키(language toggle key))를 제공한다. 특수 키는 일반적으로 하나의 키로 정해져 있다. 특수 키는 특수 키가 눌러 질 때마다 언어 입력 모드를 전환(또는 변환)하는 토글 방식을 통해 컴퓨터에 입력되는 언어를 변환할 수 있다.
다만, 현재 컴퓨터에서 현재 언어 입력 모드에 대한 피드백이 사용자에게 적절히 제공되지 못하기 때문에, 사용자는 언어 입력 모드 인지 부조화에 따른 오타를 발생하곤 한다. 예를 들어, 사용자는 브라우져에서 “www” 대신에 “ㅉㅈ"를 입력하는 경우가 있다.
상술한 오타 문제는 잘못 입력한 문자열 전체를 삭제한 뒤에 언어 입력 모드를 전환한 후 문자를 다시 입력하거나, 언어 입력 모드를 전환한 후 잘못 입력한 문자열 전체를 삭제한 뒤에 문자열을 다시 정확히 입력해야하는 불편함이 있다. 상술한 오타 문제는 사용자가 문자를 입력할 때, 문자 입력 효율을 저해시킬 수 있다.
실시예들은 사용자가 문자의 언어를 변환하는 언어 토글 키 사용시, 사용자가 입력하는 문자의 오타 여부를 판단하고, 오타로 판단된 문자를 정타로 자동 변환하는 기술을 제공할 수 있다.
일 실시예에 따른 문자 변환 방법은 제1 언어의 제1 문자열을 수신하는 단계와, 언어 토글 키의 누름에 응답하여 상기 제1 문자열이 오타인지 여부를 판단하고, 상기 제1 문자열이 오타로 판단된 경우에 상기 제1 문자열을 제2 언어의 제2 문자열로 변환하는 단계를 포함한다.
상기 제1 문자열은 상기 언어 토글 키가 눌려지기 전까지 입력되었던 문자열 중에서 사용자가 사전 정의한 범위의 문자열일 수 있다.
상기 변환하는 단계는 오타를 복구하기 위한 오타 복구 모드가 활성화된 기간 동안에 입력되는 상기 제 문자열을 문자열 큐에 저장하는 단계와, 상기 문자열 큐에 저장된 상기 제1 문자열이 오타인지 여부를 판단하는 단계와, 상기 문자열 큐를 초기화하는 단계를 포함할 수 있다.
상기 변환하는 단계는 활성화 작동 범위에 기초하여 상기 제1 문자열이 오타인지 여부를 판단하여 오타를 복구하기 위한 오타 복구 모드를 활성화 또는 비활성화하는 단계를 포함할 수 있다.
상기 저장하는 단계는 상기 제1 문자열을 구성하는 복수의 문자들을 상기 문자열 큐에 저장하는 단계를 포함할 수 있다.
상기 판단하는 단계는 복수의 언어 오토마타들 중에서 적어도 하나에 기초하여 상기 제1 문자열의 언어가 상기 제1 언어일 확률 및 상기 제2 언어일 확률을 계산하는 단계와, 상기 계산 결과에 기초하여 상기 제1 문자열의 언어가 상기 제1 언어인지 여부를 판단하고, 상기 제1 문자열이 오타인지 여부를 결정하는 단계를 포함할 수 있다.
상기 계산하는 단계는 상기 제1 문자열을 구성하는 복수의 문자들의 수를 계산하는 단계와, 상기 복수의 문자들 중에서 상기 적어도 하나를 통과하는 문자의 수를 계산하는 단계와, 상기 적어도 하나 및 언어 사전에 기반한 언어 확률, 상기 복수의 문자들의 수, 및 상기 적어도 하나를 통과하는 문자의 수에 기초하여 상기 제1 언어일 확률 및 상기 제2 언어일 확률을 계산하는 단계를 포함할 수 있다.
상기 제1 문자열이 오타인지 여부를 결정하는 단계는 상기 제1 언어일 확률이 상기 제2 언어일 확률보다 높은 경우, 상기 제1 문자열을 정타로 결정하는 단계와, 상기 제1 언어일 확률이 상기 제2 언어일 확률보다 낮은 경우, 제1 문자열을 오타로 결정하는 단계를 포함할 수 있다.
상기 방법은 상기 언어 토글 키의 누름에 응답하여 입력될 문자열의 언어를 상기 제2 언어로 설정하는 단계를 더 포함할 수 있다.
일 실시예에 따른 문자 변환 장치는 통신 모듈과, 상기 통신 모듈을 통해 제1 언어의 제1 문자열을 수신하고, 언어 토글 키의 누름에 응답하여 상기 제1 문자열이 오타인지 여부를 판단하고, 상기 제1 문자열이 오타로 판단된 경우에 상기 제1 문자열을 제2 언어의 제2 문자열로 변환하는 컨트롤러를 포함한다.
상기 제1 문자열은 상기 언어 토글 키가 눌려지기 전까지 입력되었던 문자열 중에서 사용자가 사전 정의한 범위의 문자열일 수 있다.
상기 컨트롤러는 오타를 복구하기 위한 오타 복구 모드가 활성화된 기간 동안에 입력되는 상기 제1 문자열을 문자열 큐에 저장하고, 상기 문자열 큐에 저장된 상기 제1 문자열이 오타인지 여부를 판단하고, 상기 문자열 큐를 초기화할 수 있다.
상기 컨트롤러는 활성화 작동 범위에 기초하여 상기 제1 문자열이 오타인지 여부를 판단하여 오타를 복구하기 위한 오타 복구 모드를 활성화 또는 비활성화할 수 있다.
상기 컨트롤러는 상기 제1 문자열을 구성하는 복수의 문자들을 상기 문자열 큐에 저장할 수 있다.
상기 컨트롤러는 복수의 언어 오토마타들 중에서 적어도 하나에 기초하여 상기 제1 문자열의 언어가 상기 제1 언어일 확률 및 상기 제2 언어일 확률을 계산하고, 상기 계산 결과에 기초하여 상기 제1 문자열의 언어가 상기 제1 언어인지 여부를 판단하고, 상기 제1 문자열이 오타인지 여부를 결정할 수 있다.
상기 컨트롤러는 상기 제1 문자열을 구성하는 복수의 문자들의 수를 계산하고, 상기 복수의 문자들 중에서 상기 적어도 하나를 통과하는 문자의 수를 계산하고, 상기 적어도 하나 및 언어 사전에 기반한 언어 확률, 상기 복수의 문자들의 수, 및 상기 적어도 하나를 통과하는 문자의 수에 기초하여 상기 제1 언어일 확률 및 상기 제2 언어일 확률을 계산할 수 있다.
상기 컨트롤러는 상기 제1 언어일 확률이 상기 제2 언어일 확률보다 높은 경우, 상기 제1 문자열을 정타로 결정하고, 상기 제1 언어일 확률이 상기 제2 언어일 확률보다 낮은 경우, 제1 문자열을 오타로 결정할 수 있다.
상기 컨트롤러는 상기 언어 토글 키의 누름에 응답하여 입력될 문자열의 언어를 상기 제2 언어로 설정할 수 있다.
도 1은 일 실시예에 따른 전자 장치의 개략적인 블록도를 나타낸다.
도 2는 도 1에 도시된 문자 변환 장치의 개략적인 블록도를 나타낸다.
도 3은 일 실시예에 따른 문자 변환 방법을 설명하기 위한 일 예를 나타낸다.
도 4는 일 실시예에 따른 한영 변환 방법을 설명하기 위한 일 예를 나타낸다.
도 5는 일 실시예에 따른 확률 계산 과정을 설명하기 위한 일 예를 나타낸다.
도 6은 도 1에 도시된 문자 변환 장치의 동작을 설명하기 위한 순서도를 나타낸다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
제1 또는 제2등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해서 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 실시예의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 명세서에서의 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.
다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.
이하, 실시예들은 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 요소를 나타낸다.
도 1은 일 실시예에 따른 전자 장치의 개략적인 블록도를 나타낸다.
전자 장치(10)는 다중 언어 입력이 가능한 PC(personal computer), 데이터 서버, 또는 휴대용 전자 장치 등 다양한 장치일 수 있다. 휴대용 전자 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, 모바일 인터넷 디바이스(mobile internet device(MID)), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), e-북(e-book), 스마트 디바이스(smart device)으로 구현될 수 있다. 이때, 스마트 디바이스는 스마트 워치(smart watch) 또는 스마트 밴드(smart band)로 구현될 수 있다.
전자 장치(10)는 인터페이스(100), 문자 변환 장치(300) 및 디스플레이(500)를 포함할 수 있다. 도 1에서는 설명의 편의를 위해 인터페이스(100), 문자 변환 장치(300) 및 디스플레이(500)가 전자 장치(10)의 내부에 포함되는 것으로 도시하고 있지만, 이에 한정하는 것은 아니다. 예를 들어, 인터페이스(100), 문자 변환 장치(300) 및 디스플레이(500)는 전자 장치(10)와 통신이 가능한 별도의 장치로 구현될 수 있다.
인터페이스(100)는 사용자의 입력에 대응하는 신호를 문자 변환 장치(300) 및 디스플레이(500)에 전송하는 인터페이스 장치일 수 있다.
인터페이스(100)가 사용자의 입력에 대응하는 신호를 문자 변환 장치(300) 및 디스플레이(500)에 전송하지만, 이에 한정하는 것은 아니다. 예를 들어, 인터페이스(100)는 전자 장치(10)에 포함되거나 전자 장치(10)에 연결된 다양한 장치에 사용자의 입력에 대응하는 신호를 전송할 수 있다.
인터페이스(100)는 소프트웨어 및 하드웨어 중에서 어느 하나로 구현된 인터페이스일 수 있다. 예를 들어, 인터페이스(100)는 하드웨어로 구현된 키보드등 다양한 하드웨어 장치일 수 있다. 인터페이스(100)는 소프트웨어로 구현된 가상 키보드등 다양한 소프트웨어 장치일 수 있다.
이에, 사용자는 인터페이스(100)에 포함된 문자 키(character key)를 사용하여(또는 눌러서) 문자(또는 문자열)를 입력하거나 언어 토글 키를 사용하여(또는 눌러서) 입력할 문자(또는 입력할 문자열)의 언어를 변환할 수 있다. 이때, 문자열은 일련의 문자의 집합으로 단어(또는 단어의 집합)일 수 있다.
문자 변환 장치(300)는 사용자가 문자의 언어를 변환하는 언어 토글 키 사용시, 사용자가 입력하는 문자의 오타 여부를 판단하고, 오타로 판단된 문자를 정타로 자동 변환할 수 있다.
이에, 문자 변환 장치(300)는 사용자가 기존의 언어 토글 키를 그대로 사용하여도 문자 오타 검사 및 오타로 판단된 문자 변환이 수행됨으로써, 오타 검사 및 오타 복구에 대한 추가적인 학습이 요구되지 않고, 오타 검사 및 오타 복구에 대한 빠른 기능 숙지가 가능할 수 있다.
또한, 문자 변환 장치(300)는 이중 언어 입력 환경에서 사용되는 다양한 프로그램들 및 기존의 윈도우 및 맥OS에서도 오타 검사 및 오타 복구 수행이 가능하고, 문자 입력시 발생하는 오타 문제를 획기적으로 방지할 수 있다.
디스플레이(500)는 인터페이스(100) 및 문자 변환 장치(300)로부터 전송되는 신호를 시각화할 수 있다. 예를 들어, 디스플레이(500)는 전자 장치(10)의 모니터, 디스플레이등 다양한 시각화 장치일 수 있다
도 2는 도 1에 도시된 문자 변환 장치의 개략적인 블록도를 나타낸다.
문자 변환 장치(300)는 통신 모듈(310), 컨트롤러(330) 및 메모리(350)를 포함할 수 있다.
통신 모듈(310)는 인터페이스(100)로부터 전송되는 사용자의 입력에 대응하는 신호를 수신하여 컨트롤러(350)에 전송하고, 컨트롤러(350)로부터 전송되는 신호를 디스플레이(500)에 송신할 수 있다.
메모리(330)는 컨트롤러(350)에 의해 실행 가능한 인스트럭션들(또는 프로그램)을 저장할 수 있다. 예를 들어, 인스트럭션들은 컨트롤러(350)의 동작을 실행하기 위한 인스트럭션들을 포함할 수 있다.
컨트롤러(350)는 문자 변환 장치(300)의 전반적인 동작을 제어할 수 있다. 예를 들어, 컨트롤러(350)는 문자 변환 장치(300)의 각 구성(310 및 330)을 제어할 수 있다.
컨트롤러(350)는 통신 모듈(310)을 통해 제1 언어의 제1 문자열을 수신할 수 있다.
컨트롤러(350)는 언어 토글 키의 누름에 응답하여 제1 언어로 입력되는 제1 문자열이 오타인지 여부를 판단할 수 있다.
컨트롤러(350)는 제1 문자열이 오타로 판단된 경우에 제1 문자열을 제2 언어의 제2 문자열로 변환할 수 있다.
또한, 컨트롤러(350)는 언어 토글 키의 누름에 응답하여 입력될 문자열의 언어를 제2 언어로 설정할 수 있다.
즉, 언어 토글 키의 누름은 입력된 문자열의 언어를 변환하고, 입력될 문자열의 언어를 변환하기 위한 사용자의 동작을 의미할 수 있다.
컨트롤러(350)는 메모리(330)에 저장된 데이터를 처리할 수 있다. 컨트롤러(350)는 메모리(330)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 컨트롤러(350)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.
컨트롤러(350)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.
예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.
도 3은 일 실시예에 따른 문자 변환 방법을 설명하기 위한 일 예를 나타낸다.
사용자가 문자를 입력하기 전에 언어 토글 키를 누른 경우(input 1), 컨트롤러(350)는 언어 토글 키의 제1 누름에 응답하여 문자열 큐(또는 문자 큐)를 초기화할 수 있다. 문자열 큐는 사용자가 입력하는 문자열(또는 문자)를 저장하는 큐일 수 있다.
컨트롤러(350)는 언어 토글 키의 제1 누름이 수신된 직후 오타 복구 모드를 활성화할 수 있다. 오타 복구 모드는 문자의 오타 여부를 판단하여 오타를 복구하기 위한 모드일 수 있다.
사용자가 문자 키를 눌러 제1 언어로 입력되는 제1 문자열을 입력하는 경우(input 2), 컨트롤러(350)는 활성화 작동 범위에 기초하여 제1 문자열이 오타인지 여부를 판단하여 오타를 복구하기 위한 오타 복구 모드를 활성화 또는 비활성화할 수 있다. 이때, 제1 문자열은 언어 토글 키가 눌려지기 전까지 입력되었던 문자열 중에서 사용자가 사전 정의한 범위의 문자열일 수 있다. 예를 들어, 제1 문자열은 가장 최근에 수신된 단어로 갱신될 수 있다. 가장 최근에 수신된 단어는 연속적으로 입력된 하나의 단어일 수 있다. 사용자가 사전 정의한 범위는 사용자가 기 설정한 문자 수(또는 문자열 수, 단어 수)일 수 있다. 활성화 작동 범위는 오타 복구 모드를 활성화하기 위한 기간 범위로써, 사용자가 기 설정한 문자 수(또는 문자열 수, 단어 수)일 수 있다.
제1 문자열의 문자 수가 활성화 작동 범위 내인 경우, 컨트롤러(350)는 활성화된 오타 복구 모드의 활성화 상태를 유지할 수 있다.
제1 문자열의 문자 수가 활성화 작동 범위를 넘어서는 경우, 컨트롤러(350)는 활성화된 오타 복구 모드의 활성화 상태를 종료하고, 오타 복구 모드를 비활성화할 수 있다.
오타 복구 모드가 비활성화된 후 제1 문자열이 갱신되는 경우, 컨트롤러(350)는 오타 복구 모드를 활성화한 후, 갱신된 제1 문자열의 문자 수 및 활성화 작동 범위에 기초하여 활성화 유지 또는 비활성화를 수행할 수 있다.
컨트롤러(350)는 오타 복구 모드가 활성화된 기간 동안에 입력되는 제1 문자열을 로깅(logging)하여 문자열 큐에 저장할 수 있다. 예를 들어, 컨트롤러(350)는 제1 문자열을 구성하는 복수의 문자들 각각을 문자열 큐에 저장할 수 있다.
컨트롤러(350)는 문자열 큐에 저장된 제1 문자열이 오타인지 여부를 판단할 수 있다.
먼저, 컨트롤러(350)는 복수의 언어 오토마타들 중에서 적어도 하나에 기초하여 제1 문자열의 언어가 제1 언어일 확률 및 제2 언어일 확률을 계산할 수 있다.
예를 들어, 컨트롤러(350)는 제1 문자열을 구성하는 복수의 문자들의 수를 계산할 수 있다.
컨트롤러(350)는 복수의 문자들 중에서 복수의 언어 오토마타들 중에서 적어도 하나를 통과하는 문자의 수를 계산할 수 있다.
컨트롤러(350)는 적어도 하나 및 언어 사전에 기반한 언어 확률, 복수의 문자들의 수, 및 적어도 하나를 통과하는 문자의 수에 기초하여 제1 문자열의 언어가 제1 언어일 확률 및 제2 언어일 확률을 계산할 수 있다.
이후에, 컨트롤러(350)는 계산 결과에 기초하여 제1 문자열의 언어가 제1 언어인지 여부를 판단하고, 판단 결과에 기초하여 제1 문자열이 오타인지 여부를 결정할 수 있다.
예를 들어, 컨트롤러(350)는 제1 언어일 확률이 제2 언어일 확률보다 높은 경우, 제1 문자열의 언어가 제1 언어라고 판단하고, 제1 문자열을 정타로 결정할 수 있다.
컨트롤러(350)는 제1 언어일 확률과 제2 언어일 확률이 동일한 경우, 제1 문자열의 언어가 제1 언어라고 판단하고, 제1 문자열을 정타로 결정할 수 있다.
컨트롤러(350)는 제1 언어일 확률이 제2 언어일 확률보다 낮은 경우, 제1 문자열의 언어가 제1 언어가 아니라고 판단하고, 제1 문자열을 오타로 결정할 수 있다.
사용자가 문자를 입력한 후에 언어 토글 키를 다시 한번 더 누른 경우(input 3), 컨트롤러(350)는 언어 토글 키의 제2 누름에 응답하여 오타로 결정된 제1 문자열을 정타로 변환할 수 있다.
예를 들어, 컨트롤러(350)는 오타 복구 모드의 활성화 기간 동안에 오타로 결정된 제1 문자열을 제2 문자의 제2 문자열로 변환할 수 있다. 변환된 제2 문자열을 구성하는 복수의 문자들은 제1 문자열을 구성하는 복수의 문자들의 언어를 제1 언어에서 제2 언어로 변환한 문자일 수 있다.
컨트롤러(350)는 오타를 복구한 뒤, 제1 문자열이 저장된 문자열 큐를 초기화하여 입력될 문자열에 대한 오타 복구를 준비할 수 있다.
즉, 컨트롤러(350)는 문자열 단위(또는 단어 단위)가 아닌 문자 단위로 문자열의 오타 여부를 검사하여, 오타로 판단된 문자열을 정타로 변환(또는 복구)할 수 있다.
이하에서는 설명의 편의를 위해 전자 장치(10)가 한글 및 영어 입력 모드를 제공하고, 제1 언어를 영어로, 제2 언어를 한글로 가정하도록 한다.
도 4는 일 실시예에 따른 한영 변환 방법을 설명하기 위한 일 예를 나타낸다.
컨트롤러(350)는 입력될 문자가 오타인지 판단하여 복구하기 위해 한글 및 영어 변환 토글 키의 제1 누름에 응답하여 문자열 큐를 초기화하고, 오타 복구 모드를 활성화할 수 있다. 이때, 컨트롤러(350)는 제1 누름이 수신된 이후에 입력될 문자의 언어를 영어로 설정할 수 있다.
컨트롤러(350)는 문자 키의 누름에 응답하여 영어로 입력되는 제1 문자열인 thsu를 입력 순으로 로깅하여 문자열 큐에 저장할 수 있다. 예를 들어, 컨트롤러(350)는 입력순으로 t, h, s, u을 각각 문자열 큐에 저장할 수 있다.
컨트롤러(350)는 한글 오토마타와 한글 사전 및 영어 사전에 기반한 언어 확률, thsu를 구성하는 문자들의 수, 및 문자들 중에서 적어도 하나를 통과하는 문자의 수에 기초하여 문자열 큐에 저장된 thsu가 영어일 확률 및 한글일 확률을 계산할 수 있다. 확률 계산 과정은 도 4에서 상세히 설명하도록 하겠다.
컨트롤러(350)는 계산 결과에 기초하여 thsu가 영어인지 한글인지 여부를 판단할 수 있다.
컨트롤러(350)는 판단 결과에 기초하여 thsu가 영어가 아닌 경우, thsu를 오타로 결정하고, thsu가 영어인 경우, thsu를 정타로 결정할 수 있다. thsu의 경우에는 한글에 더 적합하므로, 컨트롤러(350)는 thsu를 오타로 결정할 수 있다.
컨트롤러(350)는 한글 및 영어 변환 토글 키의 제2 누름에 응답하여 오타로 결정된 thsu를 정타로 변환할 수 있다. 예를 들어, 컨트롤러(350)는 thsu를 소녀로 변환할 수 있다. 이때, 컨트롤러(350)는 제2 누름이 수신된 이후에 입력된 문자의 언어를 한글로 설정할 수 있다.
컨트롤러(350)는 제2 누름에 응답하여 오타를 정타로 변환한 후에 오타 복구 모드를 비활성화할 수 있다. 컨트롤러(350)는 새로 입력될 문자가 오타인지 여부를 판단하여 오타를 복구하기 위해 문자열 큐를 초기화한 뒤 오타 복구 모드를 다시 활성화하여 오타 검사 및 오타 복구 과정을 수행할 수 있다.
도 5는 일 실시예에 따른 확률 계산 과정을 설명하기 위한 일 예를 나타낸다.
먼저, 컨트롤러(350)는 입력되는 문자열이 한글일 확률 및 영어일 확률을 계산하기 위해, 한글 사전 및 영어 사전에 포함된 각 단어에 대한 언어 확률(예를 들어, 한글일 확률 및 영어일 확률)을 생성할 수 있다.
예를 들어, 컨트롤러(350)는 각 한글 및 영어 단어를 구성하는 한글 및 영어 문자들 수와 각 한글 및 영어 단어에서 한글 오토마타를 통과하는 한글 및 영어 문자의 수를 계산할 수 있다.
컨트롤러(350)는 각 한글 및 영어 단어를 구성하는 한글 및 영어 문자들의 수 및 각 한글 및 영어 단어에서 한글 오토마타를 통과하는 한글 및 영어 문자의 수에 기초하여 각 한글 및 영어 단어가 한글일 확률 및 영어일 확률을 계산할 수 있다.
컨트롤러(350)는 계산된 확률에 기초하여 각 한글 및 영어 단어를 구성하는 복수의 문자들의 수 및 한글 오토마타를 통과하는 문자의 수에 따른 언어 확률을 도 5와 같이 생성할 수 있다.
단어를 구성하는 문자들의 수(N)가 4이고, 한글 오토마타를 통과하는 문자의 수(m)가 0, 2, 3, 4인 경우, 컨트롤러(350)는 도 4와 같이 해당 단어가 한글일 확률 및 영어일 확률을 계산할 수 있다.
N이 4이고, m이 0인 경우, 4개의 문자로 구성된 단어는 한글일 확률이 0 %, 영어일 확률이 60.7 %일 수 있다.
N이 4이고, m이 2인 경우, 4개의 문자로 구성된 단어는 한글일 확률이 0 %, 영어일 확률이 16.1 %일 수 있다.
N이 4이고, m이 3인 경우, 4개의 문자로 구성된 단어는 한글일 확률이 43.7 %, 영어일 확률이 11.5 %일 수 있다.
이후에, 컨트롤러(350)는 thsu가 한글일 확률 및 영어일 확률을 계산하기 위해서, 한글 오토마타와 한글 사전 및 영어 사전에 기반한 언어 확률, thsu를 구성하는 문자들의 수, 문자들의 수 중에서 한글 오토마타를 통과하는 문자의 수에 기초하여 thsu가 한글일 확률 및 영어일 확률을 계산할 수 있다.
예를 들어, 컨트롤러(350)는 thsu를 구성하는 문자들의 수(N)를 4로 계산하고, 한글 오토마타를 통과하는 문자의 수(m)를 4로 계산할 수 있다.
컨트롤러(350)는 언어 확률에서 N이 4이고, m이 4인 확률을 추출할 수 있다.
컨트롤러(350)는 thsu의 N 및 m, 및 추출된 확률에 따라 thsu가 한글일 확률 및 영어일 확률을 계산할 수 있다.
도 5와 같이 N이 4이고, m이 4인 thsu의 한글일 확률은 56.3 %이고, 영어일 확률은 11.7 %이다.
도 6은 도 1에 도시된 문자 변환 장치의 동작을 설명하기 위한 순서도를 나타낸다.
컨트롤러(350)는 언어 토글 키의 누름에 응답하여 오타 복구 모드가 활성화된 기간 동안에 제1 언어로 입력되는 제1 문자열의 언어가 제1 언어일 확률 및 제2 언어일 확률을 계산함으로써, 제1 문자열이 오타인지 여부를 판단할 수 있다(510).
컨트롤러(350)는 오타를 정타로 복구하기 위해 오타로 판단된 제1 문자열을 제2 언어의 제2 문자열로 변환하고(530), 입력될 문자열의 언어를 제2 언어로 설정할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (19)

  1. 제1 언어의 제1 문자열을 수신하는 단계;
    언어 토글 키의 누름에 응답하여 상기 제1 문자열을 구성하는 문자의 수 및 상기 구성하는 문자 중에서 언어 오토마타를 통과하는 문자의 수에 대응되는 제1 언어일 확률과 제2 언어일 확률을 통해 상기 제1 문자열이 오타인지 여부를 판단하는 단계; 및
    상기 제1 문자열이 오타로 판단된 경우에 상기 제1 문자열을 제2 언어의 제2 문자열로 변환하는 단계
    를 포함하고,
    상기 제1 언어일 확률 및 제2 언어일 확률은,
    언어 사전에 포함된 단어에 대한 통계 분석에 기초하여 계산된 확률인
    문자 변환 방법.
  2. 제1항에 있어서,
    상기 제1 문자열은 상기 언어 토글 키가 눌려지기 전까지 입력되었던 문자열 중에서 사용자가 사전 정의한 범위의 문자열인 문자 변환 방법.
  3. 제1항에 있어서,
    상기 변환하는 단계는,
    오타를 복구하기 위한 오타 복구 모드가 활성화된 기간 동안에 입력되는 상기 제1 문자열을 문자열 큐에 저장하는 단계;
    상기 문자열 큐에 저장된 상기 제1 문자열이 오타인지 여부를 판단하는 단계; 및
    상기 문자열 큐를 초기화하는 단계
    를 포함하는 문자 변환 방법.
  4. 제1항에 있어서,
    상기 변환하는 단계는,
    활성화 작동 범위에 기초하여 상기 제1 문자열이 오타인지 여부를 판단하여 오타를 복구하기 위한 오타 복구 모드를 활성화 또는 비활성화하는 단계
    를 포함하는 문자 변환 방법.
  5. 제3항에 있어서,
    상기 저장하는 단계는,
    상기 제1 문자열을 구성하는 복수의 문자들을 상기 문자열 큐에 저장하는 단계
    를 포함하는 문자 변환 방법.
  6. 제3항에 있어서,
    상기 판단하는 단계는,
    복수의 언어 오토마타들 중에서 적어도 하나에 기초하여 상기 제1 문자열의 언어가 상기 제1 언어일 확률 및 상기 제2 언어일 확률을 계산하는 단계; 및
    상기 계산 결과에 기초하여 상기 제1 문자열의 언어가 상기 제1 언어인지 여부를 판단하고, 상기 제1 문자열이 오타인지 여부를 결정하는 단계
    를 포함하는 문자 변환 방법.
  7. 제6항에 있어서,
    상기 계산하는 단계는,
    상기 제1 문자열을 구성하는 복수의 문자들의 수를 계산하는 단계;
    상기 복수의 문자들 중에서 상기 적어도 하나를 통과하는 문자의 수를 계산하는 단계; 및
    상기 적어도 하나 및 언어 사전에 기반한 언어 확률, 상기 복수의 문자들의 수, 및 상기 적어도 하나를 통과하는 문자의 수에 기초하여 상기 제1 언어일 확률 및 상기 제2 언어일 확률을 계산하는 단계
    를 포함하는 문자 변환 방법.
  8. 제6항에 있어서,
    상기 제1 문자열이 오타인지 여부를 결정하는 단계는,
    상기 제1 언어일 확률이 상기 제2 언어일 확률보다 높은 경우, 상기 제1 문자열을 정타로 결정하는 단계; 및
    상기 제1 언어일 확률이 상기 제2 언어일 확률보다 낮은 경우, 제1 문자열을 오타로 결정하는 단계
    를 포함하는 문자 변환 방법.
  9. 제1항에 있어서,
    상기 언어 토글 키의 누름에 응답하여 입력될 문자열의 언어를 상기 제2 언어로 설정하는 단계
    를 더 포함하는 문자 변환 방법.
  10. 하드웨어와 결합되어 제1항 내지 제9항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램.
  11. 통신 모듈; 및
    상기 통신 모듈을 통해 제1 언어의 제1 문자열을 수신하고, 언어 토글 키의 누름에 응답하여 상기 제1 문자열을 구성하는 문자의 수 및 상기 구성하는 문자 중에서 언어 오토마타를 통과하는 문자의 수에 대응되는 제1 언어일 확률 및 제2 언어일 확률을 통해 상기 제1 문자열이 오타인지 여부를 판단하고, 상기 제1 문자열이 오타로 판단된 경우에 상기 제1 문자열을 제2 언어의 제2 문자열로 변환하는 컨트롤러
    를 포함하고,
    상기 제1 언어일 확률 및 상기 제2 언어일 확률은,
    언어 사전에 포함된 단어에 대한 통계 분석에 기초하여 계산된 확률인
    문자 변환 장치.
  12. 제11항에 있어서,
    상기 제1 문자열은 상기 언어 토글 키가 눌려지기 전까지 입력되었던 문자열 중에서 사용자가 사전 정의한 범위의 문자열인 문자 변환 장치.
  13. 제11항에 있어서,
    상기 컨트롤러는,
    오타를 복구하기 위한 오타 복구 모드가 활성화된 기간 동안에 입력되는 상기 제1 문자열을 문자열 큐에 저장하고, 상기 문자열 큐에 저장된 상기 제1 문자열이 오타인지 여부를 판단하고, 상기 문자열 큐를 초기화하는 문자 변환 장치.
  14. 제11항에 있어서,
    상기 컨트롤러는,
    활성화 작동 범위에 기초하여 상기 제1 문자열이 오타인지 여부를 판단하여 오타를 복구하기 위한 오타 복구 모드를 활성화 또는 비활성화하는 문자 변환 장치.
  15. 제13항에 있어서,
    상기 컨트롤러는,
    상기 제1 문자열을 구성하는 복수의 문자들을 상기 문자열 큐에 저장하는 문자 변환 장치.
  16. 제13항에 있어서,
    상기 컨트롤러는,
    복수의 언어 오토마타들 중에서 적어도 하나에 기초하여 상기 제1 문자열의 언어가 상기 제1 언어일 확률 및 상기 제2 언어일 확률을 계산하고, 상기 계산 결과에 기초하여 상기 제1 문자열의 언어가 상기 제1 언어인지 여부를 판단하고, 상기 제1 문자열이 오타인지 여부를 결정하는 문자 변환 장치.
  17. 제16항에 있어서,
    상기 컨트롤러는,
    상기 제1 문자열을 구성하는 복수의 문자들의 수를 계산하고, 상기 복수의 문자들 중에서 상기 적어도 하나를 통과하는 문자의 수를 계산하고, 상기 적어도 하나 및 언어 사전에 기반한 언어 확률, 상기 복수의 문자들의 수, 및 상기 적어도 하나를 통과하는 문자의 수에 기초하여 상기 제1 언어일 확률 및 상기 제2 언어일 확률을 계산하는 문자 변환 장치.
  18. 제16항에 있어서,
    상기 컨트롤러는,
    상기 제1 언어일 확률이 상기 제2 언어일 확률보다 높은 경우, 상기 제1 문자열을 정타로 결정하고, 상기 제1 언어일 확률이 상기 제2 언어일 확률보다 낮은 경우, 제1 문자열을 오타로 결정하는 문자 변환 장치.
  19. 제11항에 있어서,
    상기 컨트롤러는,
    상기 언어 토글 키의 누름에 응답하여 입력될 문자열의 언어를 상기 제2 언어로 설정하는 문자 변환 장치.
KR1020190060681A 2019-05-23 2019-05-23 문자 변환 방법 및 이를 수행하는 장치들 KR102197227B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190060681A KR102197227B1 (ko) 2019-05-23 2019-05-23 문자 변환 방법 및 이를 수행하는 장치들

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190060681A KR102197227B1 (ko) 2019-05-23 2019-05-23 문자 변환 방법 및 이를 수행하는 장치들

Publications (2)

Publication Number Publication Date
KR20200134754A KR20200134754A (ko) 2020-12-02
KR102197227B1 true KR102197227B1 (ko) 2020-12-31

Family

ID=73791882

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190060681A KR102197227B1 (ko) 2019-05-23 2019-05-23 문자 변환 방법 및 이를 수행하는 장치들

Country Status (1)

Country Link
KR (1) KR102197227B1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100919579B1 (ko) * 2008-03-20 2009-10-01 엔에이치엔(주) 입력 모드에 따른 문자 변환 시스템 및 방법
KR101137415B1 (ko) * 2009-09-07 2012-06-14 동국대학교 산학협력단 문자 입력 장치 및 방법 그리고 그를 위한 프로그램을 기록한 기록 매체
JP5090547B2 (ja) * 2011-03-04 2012-12-05 楽天株式会社 翻字処理装置、翻字処理プログラム、翻字処理プログラムを記録したコンピュータ読み取り可能な記録媒体、及び翻字処理方法
KR101797013B1 (ko) * 2012-11-01 2017-11-13 아주대학교산학협력단 언어 모드 자동 변환 시스템 및 방법

Also Published As

Publication number Publication date
KR20200134754A (ko) 2020-12-02

Similar Documents

Publication Publication Date Title
US10095610B2 (en) Testing applications with a defined input format
JP5634860B2 (ja) 第2言語モードを有する入力メソッドエディタ
CN111462740B (zh) 非语音字母语言的话音辅助应用原型测试的话音命令匹配
JP6936888B2 (ja) トレーニングコーパスの生成方法、装置、機器及び記憶媒体
US10789415B2 (en) Information processing method and related device
US8812302B2 (en) Techniques for inserting diacritical marks to text input via a user device
US7562007B2 (en) Method and apparatus for recognizing language input mode and method and apparatus for automatically switching language input modes using the same
CN102156551B (zh) 一种字词输入的纠错方法及系统
US9552125B2 (en) Input method editor
US20130321267A1 (en) Dynamically changing a character associated with a key of a keyboard
TWI510965B (zh) 輸入方法編輯器整合
KR102249054B1 (ko) 온스크린 키보드에 대한 빠른 작업
JP2021108115A (ja) 機械読解モデルのトレーニング方法、装置、電子機器及び記憶媒体
CN111079945B (zh) 端到端模型的训练方法及装置
US20170046330A1 (en) Context specific language model for input method editor
US20150169550A1 (en) Translation Suggestion
US20160239470A1 (en) Context sensitive input tools
CN111831814A (zh) 摘要生成模型的预训练方法、装置、电子设备和存储介质
WO2013066610A1 (en) Rendering texts on electronic devices
KR102618483B1 (ko) 텍스트 필터링 장치 및 방법
KR102197227B1 (ko) 문자 변환 방법 및 이를 수행하는 장치들
US11893977B2 (en) Method for recognizing Chinese-English mixed speech, electronic device, and storage medium
CN111667828B (zh) 语音识别方法和装置、电子设备和存储介质
US20160078013A1 (en) Fault-tolerant input method editor
KR20200051170A (ko) 입력 문자에 대한 오타 보정 처리가 가능한 터치스크린이 구비된 전자 단말 장치 및 그 동작 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right