KR20220122334A - Apparatus for analysing and providing soft keyboard and method thereof - Google Patents

Apparatus for analysing and providing soft keyboard and method thereof Download PDF

Info

Publication number
KR20220122334A
KR20220122334A KR1020210026835A KR20210026835A KR20220122334A KR 20220122334 A KR20220122334 A KR 20220122334A KR 1020210026835 A KR1020210026835 A KR 1020210026835A KR 20210026835 A KR20210026835 A KR 20210026835A KR 20220122334 A KR20220122334 A KR 20220122334A
Authority
KR
South Korea
Prior art keywords
keyboard
display
character
touch input
analysis system
Prior art date
Application number
KR1020210026835A
Other languages
Korean (ko)
Other versions
KR102447469B1 (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 KR1020210026835A priority Critical patent/KR102447469B1/en
Publication of KR20220122334A publication Critical patent/KR20220122334A/en
Application granted granted Critical
Publication of KR102447469B1 publication Critical patent/KR102447469B1/en

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/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/0237Character input methods using prediction or retrieval techniques
    • 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/0238Programmable keyboards
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/7243User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages
    • H04M1/72436User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages for text messaging, e.g. SMS or e-mail
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04804Transparency, e.g. transparent or translucent windows

Abstract

A keyboard analysis system disclosed in the present document includes: a mobile device; and a decoding module. The present invention displays a designated character through a display, obtains a touch input corresponding to the designated character through the display, and sends acquired positional coordinates of the touch input and information about the designated character to the decoding module. The decoding module may be configured to analyze the received information using deep learning and generate an invisible soft keyboard on the display based on an analysis result. Therefore, the keyboard analysis system can provide an optimized keyboard by reflecting a user's body structure or a typing habit.

Description

소프트 키보드를 분석 및 제공하기 위한 장치 및 그에 과한 방법{APPARATUS FOR ANALYSING AND PROVIDING SOFT KEYBOARD AND METHOD THEREOF} Apparatus for analyzing and providing a soft keyboard and a method therefor

본 문서에서 제공되는 다양한 실시예들은 소프트 키보드를 분석 및 제공하기 위한 기술에 관한 것이다.Various embodiments provided in this document relate to techniques for analyzing and providing a soft keyboard.

키보드 입력을 통한 인간과 컴퓨터 간의 상호 작용은 가장 직관적이면서 편리하기 때문에 컴퓨터의 발명과 함께 현재까지도 가장 보편적으로 이용되고 있다. ICT(information and communication technology) 기술의 발전과 함께 모바일 장치의 보편화가 이루어졌고, 부피가 크고 무거우며 휴대성이 적은 물리적 키보드는 소프트 키보드(또는 가상 키보드)로 대체되었다. 소프트 키보드는 키보드의 배열이 물리적 키보드와 동일하면서, 장치의 터치 디스플레이를 통해 제공되기 때문에 별도의 연결이나 장착이 요구되지 않아 휴대성에서 장점을 가지고 있다.Since the interaction between a human and a computer through keyboard input is the most intuitive and convenient, it is still most commonly used with the invention of the computer. With the development of information and communication technology (ICT) technology, mobile devices have become common, and a bulky, heavy, and less portable physical keyboard has been replaced with a soft keyboard (or virtual keyboard). The soft keyboard has the same keyboard layout as the physical keyboard, and since it is provided through the touch display of the device, it does not require a separate connection or installation, so it has an advantage in portability.

소프트 키보드는 모바일 장치의 휴대성을 보장할 수 있지만, 터치 디스플레이의 제한된 크기로 인하여 소프트 키보드의 크기 또한 제한될 수밖에 없다. 사용자는 엄지 또는 검지 손가락만을 이용하여 약 30개의 키(key)를 눌러야 하며, 키와 키 사이에 경계 공간이 없고 물리적 피드백이 없기 때문에 소프트 키보드의 사용은 물리적 키보드의 사용 대비 오타 발생률이 증가한다. The soft keyboard can ensure portability of the mobile device, but the size of the soft keyboard is inevitably limited due to the limited size of the touch display. The user has to press about 30 keys using only the thumb or index finger, and since there is no boundary space between the keys and there is no physical feedback, the use of the soft keyboard increases the incidence of typos compared to the use of the physical keyboard.

또한, 사용자의 타이핑 입력을 획득하기 위하여 표시되는 소프트 키보드는 터치 디스플레이의 일정 공간을 차지하므로, 다른 GUI(graphic user interface)의 표시를 방해하는 결과를 초래할 수 있다. In addition, since the soft keyboard displayed to obtain a user's typing input occupies a certain space of the touch display, it may result in interference with display of other graphic user interfaces (GUIs).

본 문서에 개시되는 다양한 실시예들은 상술한 문제점을 해결하기 위한 키보드 분석 시스템 및 그에 관한 방법을 제공하고자 한다.Various embodiments disclosed in this document are intended to provide a keyboard analysis system for solving the above-described problems and methods related thereto.

본 문서에 개시되는 일 실시예에 따른 키보드 분석 시스템은, 모바일 장치, 및 디코딩 모듈을 포함하고, 상기 모바일 장치는, 디스플레이를 통해 지정된 문자(character)를 표시하고, 상기 디스플레이를 통해 상기 지정된 문자에 대응하는 터치 입력을 획득하고, 상기 획득된 터치 입력의 위치 좌표 및 상기 지정된 문자에 관한 정보를 상기 디코딩 모듈로 전송하고, 상기 디코딩 모듈은, 딥 러닝(deep learning)을 이용하여 상기 수신된 정보를 분석하고, 상기 분석 결과에 기반하여 상기 디스플레이 상에 투명(invisible) 소프트 키보드를 생성하도록 설정될 수 있다. A keyboard analysis system according to an embodiment disclosed in this document includes a mobile device, and a decoding module, wherein the mobile device displays a designated character through a display, and on the designated character through the display Obtaining a corresponding touch input, and transmitting the position coordinates of the obtained touch input and information about the designated character to the decoding module, the decoding module, using deep learning, the received information Analyze and generate an invisible soft keyboard on the display based on the analysis result.

본 문서에 개시되는 일 실시예에 따른 키보드 분석 시스템의 동작 방법은, 디스플레이를 통해 지정된 문자를 표시하는 동작, 상기 디스플레이를 통해 상기 지정된 문자에 대응하는 터치 입력을 획득하는 동작, 딥 러닝을 이용하여, 상기 획득된 터치 입력의 위치 좌표 및 상기 지정된 문자에 관한 정보를 분석하는 동작, 및 상기 분석 결과에 기반하여 상기 디스플레이 상에 투명(invisible) 소프트 키보드를 생성하는 동작을 포함할 수 있다. The operating method of the keyboard analysis system according to an embodiment disclosed in this document is an operation of displaying a specified character through a display, an operation of obtaining a touch input corresponding to the specified character through the display, and deep learning using , analyzing the obtained location coordinates of the touch input and information on the designated character, and generating an invisible soft keyboard on the display based on the analysis result.

본 문서에 개시되는 일 실시예에 따른 비일시적 컴퓨터 판독 가능 저장 매체는, 하나 이상의 프로세서들에 의해 실행될 시, 디스플레이를 통해 지정된 문자를 표시하고, 상기 디스플레이를 통해 상기 지정된 문자에 대응하는 터치 입력을 획득하고, 딥 러닝을 이용하여, 상기 획득된 터치 입력의 위치 좌표 및 상기 지정된 문자에 관한 정보를 분석하고, 및 상기 분석 결과에 기반하여 상기 디스플레이 상에 투명(invisible) 소프트 키보드를 생성하도록 키보드 분석 시스템을 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램들을 저장할 수 있다. A non-transitory computer-readable storage medium according to an embodiment disclosed in this document, when executed by one or more processors, displays a designated character through a display, and receives a touch input corresponding to the designated character through the display keyboard analysis to obtain, using deep learning, to analyze the position coordinates of the acquired touch input and information about the designated character, and to generate an invisible soft keyboard on the display based on the analysis result It may store one or more programs containing instructions that cause the system to be stored.

본 문서에 개시되는 실시예들에 따르면, 키보드 분석 시스템은 사용자의 신체 구조나 타이핑 습관을 반영하여 최적화된 키보드를 제공할 수 있다. According to the embodiments disclosed in this document, the keyboard analysis system may provide a keyboard optimized by reflecting the user's body structure or typing habit.

또한, 본 문서에 개시되는 실시예들에 따르면, 키보드 분석 시스템은 사용자가 보다 빠른 타이핑을 할 수 있도록 하면서 문자(character) 단위로 오타를 수정할 수 있다. In addition, according to the embodiments disclosed in this document, the keyboard analysis system may correct typos in units of characters while allowing the user to type faster.

또한, 본 문서에 개시되는 실시예들에 따르면, 키보드 분석 시스템은 모바일 장치를 추가적으로 구매하지 않아도 기존의 모바일 장치에서 사용자의 자율성을 보장하는 키보드를 제공할 수 있다. In addition, according to the embodiments disclosed in this document, the keyboard analysis system may provide a keyboard that guarantees the user's autonomy in the existing mobile device without additionally purchasing the mobile device.

또한, 본 문서에 개시되는 실시예들에 따르면, 키보드 분석 시스템은 디스플레이 상에 표시되지 않는 투명한 키보드를 제공함으로써 디스플레이 화면의 활용도를 최대화하면서 동시에 오타를 줄일 수 있다. In addition, according to the embodiments disclosed in this document, the keyboard analysis system can reduce typos while maximizing the utilization of the display screen by providing a transparent keyboard that is not displayed on the display.

이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.In addition, various effects directly or indirectly identified through this document may be provided.

도 1은 다양한 실시예들에 따라 사용자의 입력 데이터를 획득하기 위한 디스플레이 화면을 도시한다.
도 2는 다양한 실시예들에 따라 획득된 사용자의 입력 데이터에 대한 분포를 나타낸다.
도 3은 다양한 실시예들에 따른 키보드 분석 시스템의 아키텍처(architecture)를 도시한다.
도 4는 다양한 실시예들에 따른 장기(long-term) 디코더(decoder)의 알고리즘 구조를 도시한다.
도 5는 다양한 실시예들에 따른 키보드 분석 시스템을 통해 제공되는 소프트 키보드를 도시한다.
도 6은 다양한 실시예들에 따른 키보드들 간 오타율을 비교하는 테이블을 도시한다.
도 7은 다양한 실시예들에 따라 키보드 분석 시스템을 통해 제공되는 소프트 키보드의 애블레이션 연구(ablation study) 결과를 도시한다.
도 8은 다양한 실시예들에 따른 키보드들 간 타이핑 속도를 비교하는 테이블을 도시한다.
도 9는 다양한 실시예들에 따라 키보드 분석 시스템을 통해 제공되는 소프트 키보드의 사용자 경험 결과를 나타내는 그래프를 도시한다.
도 10은 다양한 실시예들에 따라 키보드 분석 시스템을 통해 제공되는 소프트 키보드의 사용 예를 도시한다.
도면의 설명과 관련하여, 동일 또는 유사한 구성요소에 대해서는 동일 또는 유사한 참조 부호가 사용될 수 있다.
1 illustrates a display screen for obtaining input data of a user according to various embodiments of the present disclosure;
2 illustrates a distribution of user input data obtained according to various embodiments.
3 illustrates an architecture of a keyboard analysis system in accordance with various embodiments.
4 illustrates an algorithm structure of a long-term decoder according to various embodiments.
5 illustrates a soft keyboard provided through a keyboard analysis system according to various embodiments of the present disclosure;
6 illustrates a table comparing typographical errors between keyboards according to various embodiments of the present disclosure;
7 illustrates an ablation study result of a soft keyboard provided through a keyboard analysis system according to various embodiments of the present disclosure;
8 illustrates a table comparing typing speeds between keyboards according to various embodiments.
9 is a graph illustrating a user experience result of a soft keyboard provided through a keyboard analysis system according to various embodiments of the present disclosure;
10 illustrates an example of using a soft keyboard provided through a keyboard analysis system according to various embodiments of the present disclosure;
In connection with the description of the drawings, the same or similar reference numerals may be used for the same or similar components.

이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 실시 예의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다.Hereinafter, various embodiments of the present invention will be described with reference to the accompanying drawings. However, this is not intended to limit the present invention to specific embodiments, and it should be understood that various modifications, equivalents, and/or alternatives of the embodiments of the present invention are included.

본 문서에서 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나",“A 또는 B 중 적어도 하나”, "A, B 또는 C", "A, B 및 C 중 적어도 하나” 및 “A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, “기능적으로” 또는 “통신적으로”라는 용어와 함께 또는 이런 용어 없이, “커플드” 또는 “커넥티드”라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.In this document, the singular form of a noun corresponding to an item may include one or more items, unless the context clearly dictates otherwise. As used herein, “A or B”, “at least one of A and B”, “at least one of A or B”, “A, B or C”, “at least one of A, B and C” and “A, Each of the phrases "at least one of B, or C" may include any one of, or all possible combinations of, items listed together in the corresponding one of the phrases. Terms such as "first", "second", or "first" or "second" may simply be used to distinguish an element from other elements in question, and may refer elements to other aspects (e.g., importance or order) is not limited. that one (e.g. first) component is "coupled" or "connected" to another (e.g. second) component with or without the terms "functionally" or "communicatively" When referenced, it means that one component can be connected to the other component directly (eg by wire), wirelessly, or through a third component.

본 문서에서 설명되는 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시 예들에 따르면, 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.Each component (eg, a module or a program) of components described in this document may include a singular or a plurality of entities. According to various embodiments, one or more components or operations among the corresponding components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (eg, a module or a program) may be integrated into one component. In this case, the integrated component may perform one or more functions of each component of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. . According to various embodiments, operations performed by a module, program, or other component are executed sequentially, in parallel, repeatedly, or heuristically, or one or more of the operations are executed in a different order, omitted, or , or one or more other operations may be added.

본 문서에서 사용되는 용어 "모듈", 또는 “...부”는 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시 예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다. As used herein, the term “module” or “unit” may include a unit implemented in hardware, software, or firmware, and includes terms such as, for example, logic, logic block, component, or circuit; They can be used interchangeably. A module may be an integrally formed part or a minimum unit or a part of the part that performs one or more functions. For example, according to an embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).

본 문서의 다양한 실시 예들은 기기(machine) 의해 읽을 수 있는 저장 매체(storage medium)(예: 메모리)에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램 또는 애플리케이션)로서 구현될 수 있다. 예를 들면, 기기의 프로세서는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. Various embodiments of the present document may be implemented as software (eg, a program or an application) including one or more instructions stored in a storage medium (eg, memory) readable by a machine. For example, the processor of the device may call at least one of the one or more instructions stored from the storage medium and execute it. This makes it possible for the device to be operated to perform at least one function according to the called at least one command. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The device-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' only means that the storage medium is a tangible device and does not contain a signal (eg, electromagnetic wave), and this term is used in cases where data is semi-permanently stored in the storage medium and It does not distinguish between temporary storage cases.

도 1 내지 도 2는 다양한 실시예들에 따라 사용자의 입력 데이터를 획득하기 위한 동작을 설명한다. 도 1에 도시된 화면(100)은 사용자의 타이핑 입력의 분포를 확인하기 위하여 생성된 인터페이스에 불과하며, 다양한 실시예들에 따른 투명 소프트 키보드의 예를 나타내는 것은 아니다.1 to 2 describe an operation for acquiring input data of a user according to various embodiments of the present disclosure. The screen 100 illustrated in FIG. 1 is only an interface generated to check the distribution of a user's typing input, and does not represent an example of a transparent soft keyboard according to various embodiments.

키보드 분석 시스템에 의하여 제공되는 소프트 키보드는 디스플레이 상에서 보이지 않는 투명한 형태이므로, 지정된 문자를 입력하기 위하여 사용자가 터치하는 위치는 디스플레이의 크기, 사용자의 신체 구조, 또는 타이핑 습관 마다 상이할 수 있다. Since the soft keyboard provided by the keyboard analysis system is in a transparent form that is not visible on the display, a location touched by a user to input a designated character may be different for each size of the display, a user's body structure, or a typing habit.

예를 들어, 도 1을 참조하면, 화면(100)은 스마트폰, 태블릿 PC, 또는 웨어러블 장치와 같이 휴대성을 가지는 모바일 장치의 디스플레이 화면을 나타낼 수 있다. 화면(100)은 사용자가 타이핑해야 할 문장이 표시되는 출력 필드(110)와, 사용자가 출력 필드(110)에 표시된 문장을 타이핑(터치 입력)하기 위한 입력 필드(120)를 포함할 수 있다. 모바일 장치는 입력 필드(120) 상에 감지된 터치 입력의 위치 좌표(예: x y 좌표)과 입력 필드(120)의 크기(예: 높이, 너비)에 관한 정보를 저장할 수 있다. 복수의 사용자가 동일한 문장을 타이핑하더라도, 도 2에 도시된 바와 같이 입력 필드(120) 상에 감지된 터치 입력의 분포는 서로 다를 수 있다. 또한, 문자를 입력하기 위한 키(key)가 보이지 않기 때문에, 타이핑을 시작하는 최초 지점이 사용자 마다 상이하며, 동일한 사용자이더라도 일정한 간격 이후에 타이핑을 다시 시작하면 최초 지점이 변경될 수 있다. For example, referring to FIG. 1 , a screen 100 may represent a display screen of a mobile device having portability, such as a smart phone, a tablet PC, or a wearable device. The screen 100 may include an output field 110 in which a sentence to be typed by the user is displayed, and an input field 120 in which the user types (touch input) a sentence displayed in the output field 110 . The mobile device may store the location coordinates (eg, x y coordinates) of the sensed touch input on the input field 120 and information about the size (eg, height and width) of the input field 120 . Even when a plurality of users type the same sentence, distributions of touch inputs sensed on the input field 120 may be different from each other as shown in FIG. 2 . In addition, since a key for inputting a character is not visible, the initial point of starting typing is different for each user, and even if the same user starts typing again after a predetermined interval, the initial point may be changed.

다양한 실시예들에 따른 키보드 분석 시스템은 디스플레이 화면을 최대한 활용할 수 있는 투명 소프트 키보드를 제공하면서, 디스플레이 크기, 사용자의 신체 구조, 또는 타이핑 습관을 반영하여 오타를 줄이고 타이핑 속도를 높일 수 있다. The keyboard analysis system according to various embodiments may reduce typos and increase typing speed by reflecting a display size, a user's body structure, or a typing habit while providing a transparent soft keyboard that can make the most of a display screen.

도 3은 다양한 실시예들에 따른 키보드 분석 시스템의 아키텍처(architecture)를 도시한다. 도 3을 참조하면, 키보드 분석 시스템(300)은 모바일 장치(310), 메신저 모듈(320), 및 디코딩 모듈(330)을 포함할 수 있다. 3 illustrates an architecture of a keyboard analysis system in accordance with various embodiments. Referring to FIG. 3 , the keyboard analysis system 300 may include a mobile device 310 , a messenger module 320 , and a decoding module 330 .

모바일 장치(310)는 입력 인터페이스(312) 및 출력 인터페이스(314)를 포함할 수 있다. 입력 인터페이스(312)는 소프트 키보드 기능을 수행하기 위하여 디스플레이 상의 터치 입력을 감지하도록 설정된 구성(예: 터치 회로)을 의미할 수 있다. 출력 인터페이스(314)는 디스플레이와 같이 시각적인 UI(user interface)를 제공하는 구성을 의미할 수 있다. 모바일 장치(310)는 디코딩 모듈(330)에 의하여 생성된 소프트 키보드를 투명한 형태로 디스플레이 상에 생성할 수 있다. 모바일 장치(310)는 소프트 키보드를 통해 획득된 터치 입력을 메신저 모듈(320)을 통해 디코딩 모듈(330)로 전송하고, 디코딩 모듈(330)을 통해 인식된, 터치 입력에 대응하는 문자를 디스플레이 상에 출력할 수 있다. The mobile device 310 can include an input interface 312 and an output interface 314 . The input interface 312 may refer to a configuration (eg, a touch circuit) configured to sense a touch input on the display in order to perform a soft keyboard function. The output interface 314 may refer to a configuration that provides a visual user interface (UI) such as a display. The mobile device 310 may generate the soft keyboard generated by the decoding module 330 on the display in a transparent form. The mobile device 310 transmits the touch input obtained through the soft keyboard to the decoding module 330 through the messenger module 320, and displays a character corresponding to the touch input recognized through the decoding module 330 on the display. can be printed on

메신저 모듈(320)은 모바일 장치(310)와 디코딩 모듈(330)의 인터페이스 역할을 수행할 수 있다. 예를 들어, 메신저 모듈(320)은 모바일 장치(310)에 의하여 획득된 정보를 디코딩 모듈(330)에 적합하도록 처리할 수 있다. 반대로, 메신저 모듈(320)은 디코딩 모듈(330)에 의하여 생성된 정보를 모바일 장치(310)에 적합하도록 처리할 수 있다. 메신저 모듈(320)은 예를 들어, 모바일 장치(310) 및 디코딩 모듈(330)과 별개의 개체(entity)일 수도 있고, 모바일 장치(310)에 저장된 프로그램(예: 애플리케이션)일 수 있다. The messenger module 320 may serve as an interface between the mobile device 310 and the decoding module 330 . For example, the messenger module 320 may process information obtained by the mobile device 310 to be suitable for the decoding module 330 . Conversely, the messenger module 320 may process the information generated by the decoding module 330 to be suitable for the mobile device 310 . The messenger module 320 may be, for example, a separate entity from the mobile device 310 and the decoding module 330 , or may be a program (eg, an application) stored in the mobile device 310 .

메신저 모듈(320)은 기능에 따라서 전처리(pre-processing) 모듈(322), 전송 모듈(324), 및 입력 버퍼(326)를 포함할 수 있다. 전처리 모듈(322)은 모바일 장치(310)에 의하여 획득된 터치 정보를 지정된 문자에 페어링(pairing)할 수 있다. 본 문서에서, '터치 정보'는 모바일 장치(310)의 디스플레이(또는 도 1의 입력 필드(120)) 상에 감지된 터치 입력의 위치 좌표와, 디스플레이 또는 입력 필드(120)의 크기를 포함할 수 있다. 전처리 모듈(322)은 페어링 된 정보가 디코딩 모듈(330)에 적합하도록 토큰화(tokenization)를 수행할 수 있다. 토큰화는 일련의 문자 시퀀스를 지정된 단위(예: 단어 또는 문자)로 나누는 동작으로 이해될 수 있다. 추가적으로, 전처리 모듈(322)은 토큰화 이전 또는 이후에 정제(cleaning) 또는 정규화(normalization) 중 적어도 하나를 더 수행할 수 있다. 다른 예를 들어, 전처리 모듈(322)은 디코딩 모듈(330)로부터 수신된 정보를 모바일 장치(310)에 적합한 입력 형태로 변환할 수 있다. 전송 모듈(324)은 메신저 모듈(320)이 모바일 장치(310) 및 디코딩 모듈(330)과 데이터를 송수신하기 위하여 이용될 수 있다. 입력 버퍼(326)는 모바일 장치(310) 또는 디코딩 모듈(330)로부터 수신된 데이터를 저장할 수 있다. 예를 들어, 이하에서 후술하듯이 디코딩 모듈(330)의 장기 디코더(334)는 지정된 개수 이상의 터치 입력이 획득되어야 특정 터치 입력에 대한 의미를 추정할 수 있으므로, 입력 버퍼(326)는 터치 입력에 대한 일련의 데이터를 저장할 수 있다. The messenger module 320 may include a pre-processing module 322 , a transmission module 324 , and an input buffer 326 according to functions. The pre-processing module 322 may pair the touch information acquired by the mobile device 310 to a designated character. In this document, 'touch information' may include location coordinates of a touch input sensed on the display (or input field 120 of FIG. 1 ) of the mobile device 310 and the size of the display or input field 120 . can The pre-processing module 322 may perform tokenization so that the paired information is suitable for the decoding module 330 . Tokenization can be understood as the operation of dividing a sequence of characters into specified units (eg words or characters). Additionally, the preprocessing module 322 may further perform at least one of cleaning or normalization before or after tokenization. As another example, the preprocessing module 322 may convert the information received from the decoding module 330 into an input form suitable for the mobile device 310 . The transmission module 324 may be used by the messenger module 320 to transmit/receive data to and from the mobile device 310 and the decoding module 330 . The input buffer 326 may store data received from the mobile device 310 or the decoding module 330 . For example, as will be described below, the long-term decoder 334 of the decoding module 330 may estimate the meaning of a specific touch input only when a specified number of touch inputs or more are acquired, so that the input buffer 326 is A series of data can be stored.

디코딩 모듈(330)은 모바일 장치(310)에 의하여 획득된 터치 정보 및 그에 대응하는 문자를 딥 러닝(deep learning)을 이용하여 학습하고, 학습 이후 모바일 장치(310)에 의하여 획득된 터치 입력에 대응하는 문자(또는 문장)를 인식할 수 있다. 디코딩 모듈(330)은 모바일 장치(310) 및 메신저 모듈(320)과 데이터를 송수신 하는 서버일 수 있다. 다른 예를 들어, 디코딩 모듈(330)은 메신저 모듈(320)과 함께 모바일 장치(310) 내에 프로그래밍될 수 있다. The decoding module 330 learns the touch information acquired by the mobile device 310 and the characters corresponding thereto by using deep learning, and corresponds to the touch input acquired by the mobile device 310 after learning. character (or sentence) can be recognized. The decoding module 330 may be a server that transmits and receives data to and from the mobile device 310 and the messenger module 320 . For another example, the decoding module 330 may be programmed in the mobile device 310 together with the messenger module 320 .

디코딩 모듈(330)은 디코딩을 위한 문자의 개수에 따라서 단기(short-term) 디코더(332)와 장기(long-term) 디코더(334)를 포함할 수 있다. 단기 디코더(332)는 지정된 개수(예: 9개) 미만의 문자를 학습 및 분석하도록 설정될 수 있다. 단기 디코더(332)는 예를 들어, MLP(multi-layer perceptron)를 포함할 수 있다. 장기 디코더(334)는 현재 문자를 인식하기 위하여 앞뒤 문맥(context)을 파악해야 하므로, 지정된 개수 이상의 문자를 학습 및 분석할 필요가 있다. 따라서, 지정된 개수의 문자가 입력되기 전까지 디코딩 모듈(330)은 단기 디코더(332)를 이용하여 빠르고 간편하게 소프트 키보드에 대한 입력을 분석할 수 있다. 반면에, 장기 디코더(334)는 현재 터치 입력뿐만 아니라 그 이전까지의 전체 터치 입력을 모두 디코딩함으로써 해당 터치 입력의 문자를 추정하므로 보다 정밀하게 의미를 추정하며, 오타를 수정할 수 있다. The decoding module 330 may include a short-term decoder 332 and a long-term decoder 334 according to the number of characters for decoding. The short-term decoder 332 may be set to learn and analyze less than a specified number (eg, 9) of characters. The short term decoder 332 may include, for example, a multi-layer perceptron (MLP). Since the long-term decoder 334 needs to understand the front and back contexts in order to recognize the current character, it is necessary to learn and analyze more than a specified number of characters. Accordingly, the decoding module 330 can quickly and simply analyze the input to the soft keyboard by using the short-term decoder 332 until a specified number of characters are input. On the other hand, since the long-term decoder 334 estimates the character of the corresponding touch input by decoding all previous touch inputs as well as the current touch input, it is possible to more precisely estimate the meaning and correct typos.

장기 디코더(334)는 기하학적(geometric) 정보에 기반하여 터치 입력에 대응하는 문자를 분석하는 기학학적 디코더(410)와 의미론적(semantic) 정보에 기반하여 터치 입력에 대응하는 문자를 분석하는 의미론적 디코더(420)를 포함할 수 있다. 기하학적 디코더(410)는 디스플레이를 통해 획득된 터치 입력들의 위치 좌표를 이용하여 입력 벡터를 문자 시퀀스로 변환할 수 있다. 또한, 기하학적 디코더(410)는 입력된 위치 좌표들 간 상대적 거리를 이용하여 현재 입력 좌표에 대한 후보 문자를 결정할 수 있다. 의미론적 디코더(420)는 기하학적 디코더(410)에서 결정된 문자 시퀀스를 의미론적으로 분석하여 오류를 결정하고, 문맥을 반영하여 오타를 수정하는 CLM(character language model) 역할을 수행할 수 있다. 또한, 의미론적 디코더(420)는 현재 입력과 다른 입력들 간 의미적 관계를 이용하여 후보 문자 중에서 최종 문자를 결정할 수 있다. 기하학적 디코더(410) 및 의미론적 디코더(420)에 대한 알고리즘 구조는 도 4에서 후술된다. The long-term decoder 334 includes a geometric decoder 410 that analyzes a character corresponding to a touch input based on geometric information and a semantic decoder 410 that analyzes a character corresponding to a touch input based on semantic information. A decoder 420 may be included. The geometric decoder 410 may convert the input vector into a character sequence by using the position coordinates of the touch inputs obtained through the display. Also, the geometric decoder 410 may determine a candidate character for the current input coordinates using the relative distance between the input location coordinates. The semantic decoder 420 may serve as a character language model (CLM) for determining errors by semantically analyzing the character sequence determined by the geometric decoder 410 and correcting typos by reflecting context. Also, the semantic decoder 420 may determine a final character from among candidate characters by using a semantic relationship between the current input and other inputs. The algorithm structures for the geometric decoder 410 and the semantic decoder 420 are described below in FIG. 4 .

도 4는 다양한 실시예들에 따른 장기 디코더의 알고리즘 구조(400)를 도시한다. 도 4를 참조하면, 디코딩 모듈(300)의 장기 디코더(334)는 기하학적 디코더로써 양방향 GRU(bi-directional gated recurrent unit, BiGRU)를 포함하고, 의미론적 디코더로써 트랜스포머(transformer) 모델을 포함할 수 있다. 4 illustrates an algorithmic structure 400 of a long term decoder in accordance with various embodiments. Referring to FIG. 4 , the long-term decoder 334 of the decoding module 300 includes a bi-directional gated recurrent unit (BiGRU) as a geometric decoder and a transformer model as a semantic decoder. have.

키보드 분석 시스템(300)은 투명 소프트 키보드 상의 터치 입력들(t1, t2, t3,...,tn) 간 위치 관계를 파악할 필요가 있으므로, 단방향으로 진행하는 반복 은닉 상태(recurrent hidden state)와 반대 방향의 반복 은닉 상태를 함께 사용하는 양방향 GRU가 보다 높은 안정성을 제공할 수 있다. 양방향 GRU는 터치 입력의 입력 좌표 및 디스?a레이 크기에 따라서 특정 문자를 결정할 수 있다. Since the keyboard analysis system 300 needs to understand the positional relationship between the touch inputs ( t 1 , t 2 , t 3 ,..., t n ) on the transparent soft keyboard, it is necessary to determine the unidirectional recurrent hidden state (recurrent hidden state). state) and a bidirectional GRU using a repeating hidden state in the opposite direction can provide higher stability. The bidirectional GRU may determine a specific character according to the input coordinate of the touch input and the size of the display.

소프트맥스(softmax) 함수는 양방향 GRU에 의하여 결정된 문자에 대한 컨피던스(confidence)를 결정할 수 있다. 예를 들어, 사용자가 'RUN'이라는 단어를 입력할 때, 양방향 GRU에 의하여 'RUN'이라는 문자가 결정되면 각각의 터치 입력에 대한 컨피던스는 높을 수 있다. 반면에, 양방향 GRU에 의하여 'RJN'이라는 문자가 결정되면 소프트맥스 함수에 의하여 'J'에 대한 컨피던스가 낮게 결정될 수 있다. The softmax function may determine confidence for a character determined by the bidirectional GRU. For example, when the user inputs the word 'RUN', if the character 'RUN' is determined by the bidirectional GRU, the confidence for each touch input may be high. On the other hand, when the character 'RJN' is determined by the bidirectional GRU, the confidence for 'J' may be determined to be low by the softmax function.

컨피던스 마스킹(confidence masking) 모듈은 컨피던스가 지정된 임계값 미만인 위치를 블랭크(blank) 처리할 수 있다. 예를 들어, 앞선 예에서, 양방향 GRU에 의하여 단어 'RJN' 가 결정되고, 'J'의 위치에 대한 컨피던스가 낮게 결정되면, 컨피던스 마스킹은 'R_N'과 같이 'J'에 대응하는 위치를 블랭크 처리할 수 있다. The confidence masking module may blank a position where the confidence is less than a specified threshold value. For example, in the previous example, if the word 'RJN' is determined by the bidirectional GRU and the confidence for the position of 'J' is determined to be low, the confidence masking is to blank the position corresponding to 'J' such as 'R_N' can be processed

트랜스포머 모듈은 트랜스포머 모듈은 셀프 어텐션(self-attention) 매커니즘을 이용하여 시퀀스 데이터를 분석할 수 있다. 셀프 어텐션 매커니즘은 query(Q), key(K), value(V) 파라미터를 이용하며, 입력을 분석할 때 현재 입력뿐만 아니라 이전 입력들까지 전체적으로 고려하되 현재 시점에서 추정해야할 단어(또는 문자)와 연관이 있는 입력들을 보다 집중하여서 고려하는 매커니즘으로 이해될 수 있다. 트랜스포머 모듈은 셀프 어텐션을 멀티-헤드(multi-head)로 적용함으로써 문장 내에 존재하는 의미를 멀티 관점으로 파악하여 자연어 처리의 성능을 향상시킬 수 있다. 트랜스포머 모듈에 대한 설명은 2017년에 발표된 논문 “Attention is all you need”을 통해 참조될 수 있다. 예를 들어, 트랜스포머 모듈은 블랭크 처리되어 전달된 위치의 문자(예: 'U')를 단어 또는 문장의 전체 문맥을 통해 결정할 수 있다. The transformer module may analyze sequence data using a self-attention mechanism. The self-attention mechanism uses query(Q), key(K), and value(V) parameters, and when analyzing the input, consider the current input as well as the previous inputs as a whole, It can be understood as a mechanism that considers related inputs more intensively. The transformer module can improve the performance of natural language processing by grasping the meaning existing in a sentence from multiple perspectives by applying self-attention as a multi-head. The description of the transformer module can be referred to through the paper “Attention is all you need” published in 2017. For example, the transformer module may determine a character (eg, 'U') of a blanked and delivered position through the entire context of a word or sentence.

실시예들에 따르면, 키보드 분석 시스템(300)의 트랜스포머 모듈은 디코더를 사용하지 않고 인코더만을 사용할 수 있다. 기존의 트랜스포머 모듈은 입력과 출력의 길이가 다를 수 있음을 전제로 하지만, 터치 입력의 위치 좌표와 문자를 매칭시키는 키보드 분석 시스템(300)은 입력과 출력의 길이가 동일하므로 디코더를 이용할 필요가 없다. According to embodiments, the transformer module of the keyboard analysis system 300 may use only an encoder without using a decoder. The existing transformer module assumes that the input and output lengths may be different, but the keyboard analysis system 300 that matches the position coordinates of the touch input and the character does not need to use a decoder because the input and output lengths are the same. .

실시예들에 따르면, 키보드 분석 시스템(300)은 의미론적 디코더가 문자 시퀀스 내에서 멀티-헤드 셀프 어텐션을 보다 잘 생성할 수 있도록 다양한 NLP(natural language processing) 모델을 이용할 수 있다. 예를 들어, 키보드 분석 시스템(300)은 CLM을 위한 보조적인 손실(auxiliary losses) 중에 중간 레이어 손실(intermediate layer losses)을 사용하여 효율적인 역전파를 생성하고, 레이어 정규화(layer normalization)를 적용하는 위치를 셀프 어텐션 이전으로 변경하여 안정적인 기울기(gradient) 및 빠른 수렴을 유도할 수 있다. According to embodiments, the keyboard analysis system 300 may use various natural language processing (NLP) models to better enable the semantic decoder to generate multi-head self-attention within a character sequence. For example, the keyboard analysis system 300 generates efficient backpropagation using intermediate layer losses among the auxiliary losses for CLM, and applies layer normalization. can be changed to before self-attention to induce a stable gradient and fast convergence.

도 5는 다양한 실시예들에 따라 키보드 분석 시스템을 통해 제공되는 소프트 키보드를 도시한다. 도 5에 도시된 화면(510, 520, 530, 540)은 디코딩 모듈(330)의 분석 결과를 시각적으로 설명하기 위한 것이며, 모바일 장치(310)의 디스플레이를 통해 출력되는 것은 아니다.5 illustrates a soft keyboard provided through a keyboard analysis system in accordance with various embodiments. The screens 510 , 520 , 530 , and 540 illustrated in FIG. 5 are for visually explaining the analysis result of the decoding module 330 , and are not output through the display of the mobile device 310 .

도 5를 참조하면, 키보드 분석 시스템(300)은 입력된 문자 시퀀스를 분석함으로써 현재 터치 입력에 대응되는 문자를 추정할 수 있다. 예를 들어, 사용자가 모바일 장치(310)의 소프트 키보드를 통해 'have to stand'를 입력하고 까지 입력하면, 키보드 분석 시스템(300)은 문맥상 의미를 고려하여 해당 문장이 'have to stand up'임을 추정하고, 현재 터치 입력에 대응되는 문자가 'u'임을 결정할 수 있다. 키보드 분석 시스템(300)은 화면(510)과 같이 'u'를 나타내는 투명 키를 디스플레이의 일부 영역 상에 생성하되, 'u'가 입력될 수 있는 확률을 고려하여 해당 문자에 대응하는 투명 키의 면적을 결정할 수 있다. 키보드 분석 시스템(300)은 'u' 이외에 입력 가능한 다른 문자들에 대한 투명 키를 디스플레이의 나머지 영역 상에 생성할 수 있다. 투명 키들의 배열은 소프트 키보드의 기본 규격(예: 쿼티)에 따라서 결정될 수 있다. 동일한 원리로, 키보드 분석 시스템(300)은 'was at a recor'이 입력되면 화면(520)과 같이 'd'를 나타내는 투명 키를 디스플레이의 일부 영역 상에 생성할 수 있다. 동일한 원리로, 키보드 분석 시스템(300)은 'he is able t'이 입력되면 화면(530)과 같이 'o'를 나타내는 투명 키를 디스플레이의 일부 영역 상에 생성할 수 있다. 동일한 원리로, 키보드 분석 시스템(300)은 'he is able to'이 입력되면 화면(520)과 같이 '(space)'를 나타내는 투명 키를 디스플레이의 일부 영역 상에 생성할 수 있다.Referring to FIG. 5 , the keyboard analysis system 300 may estimate a character corresponding to a current touch input by analyzing the input character sequence. For example, when the user inputs 'have to stand' through the soft keyboard of the mobile device 310 and inputs up to , the keyboard analysis system 300 converts the sentence to 'have to stand up' in consideration of contextual meaning. , and it may be determined that the character corresponding to the current touch input is 'u'. The keyboard analysis system 300 generates a transparent key representing 'u' on a partial area of the display like the screen 510, but considers the probability that 'u' can be input. area can be determined. The keyboard analysis system 300 may generate transparent keys for other inputable characters other than 'u' on the remaining area of the display. The arrangement of the transparent keys may be determined according to a basic standard (eg, QWERTY) of the soft keyboard. In the same principle, when 'was at a recor' is input, the keyboard analysis system 300 may generate a transparent key indicating 'd' on a partial area of the display like the screen 520 . In the same principle, when 'he is able t' is input, the keyboard analysis system 300 may generate a transparent key indicating 'o' on a partial area of the display like the screen 530 . In the same principle, when 'he is able to' is input, the keyboard analysis system 300 may generate a transparent key indicating '(space)' on a partial area of the display like the screen 520 .

위와 같은 방식을 통해 키보드 분석 시스템(300)은 손가락 위치의 제약 없이 타이핑해도 오타를 수정할 수 있으며, 그에 따라 사용자들의 타이핑 속도를 높일 수 있다. Through the above method, the keyboard analysis system 300 can correct typos even when typing without restriction of finger positions, thereby increasing the typing speed of users.

도 6은 다양한 실시예들에 따른 키보드들 간 오타율을 비교하는 테이블을 도시한다. 6 illustrates a table comparing typographical errors between keyboards according to various embodiments of the present disclosure;

도 6을 참조하면, 그래프는 도 4의 키보드 분석 시스템(300)의 알고리즘에 기반하여 생성된 소프트 키보드(TMI(trident module invisible) keyboard)와 기존의 모델들(예: GRU, LSTM(long-short term memory), 트랜스포머(transformer), 및 I-keyboard)을 이용하여 생성된 키보드를 비교한 결과를 나타낼 수 있다. MacK, Common, 및 Test는 터치 입력 데이터를 수집하기 위한 데이터 셋(dataset)을 의미할 수 있다. 6, the graph is a soft keyboard (trident module invisible (TMI) keyboard) generated based on the algorithm of the keyboard analysis system 300 of FIG. 4 and existing models (eg, GRU, LSTM (long-short) term memory), a transformer, and an I-keyboard) can be used to compare results of keyboards generated. MacK, Common, and Test may refer to a data set for collecting touch input data.

I-keyboard는 GRU가 두 모듈로 구현된 모델을 의미할 수 있다. CER(character error rate)은 문자 단위로, WER(word error rate)은 단어 단위로 에러율을 나타낸다. CER 또는 WER이 높을수록 오타가 증가함을 의미할 수 있다. 그래프에 따르면, 층(예: network size)을 깊게 하면 GRU, LSTM, 및 I-keyboard의 성능은 떨어지는 반면에 트랜스포머와 TMI keyboard의 성능은 크게 떨어지지 않는다. 트랜스포머는 multi-head attention을 통해 입력 시퀀스들의 관계를 이용하여 자연어 처리를 수행하지만, 타이핑 입력들 간 기하학적 관계를 이용하지 못하므로 TMI keyboard 대비 성능이 떨어질 수 있다. I-keyboard may mean a model in which GRU is implemented with two modules. CER (character error rate) indicates the error rate in units of characters, and WER (word error rate) indicates the error rate in units of words. A higher CER or WER may mean that errors increase. According to the graph, if the layer (eg network size) is deepened, the performance of GRU, LSTM, and I-keyboard decreases, while the performance of transformer and TMI keyboard does not decrease significantly. Although the transformer performs natural language processing using the relationship between input sequences through multi-head attention, it cannot use the geometric relationship between typing inputs, so performance may be lower than that of the TMI keyboard.

도 7은 다양한 실시예들에 따라 키보드 분석 시스템을 통해 제공되는 소프트 키보드의 애블레이션 연구(ablation study) 결과를 도시한다. 7 illustrates an ablation study result of a soft keyboard provided through a keyboard analysis system according to various embodiments of the present disclosure;

도 7을 참고하면, 그래프는 키보드 분석 시스템(300)에 따른 소프트 키보드(TMI keyboard)와 해당 소프트 키보드에서 특정 알고리즘(예: semantic decoder, pertaining BiGRU, 및 pertaining MLM)을 제외한 모델들 각각의 ACC(accuracy)와 WER을 비교한 결과를 나타낼 수 있다. MLM(masked language model)은 마스킹 처리된 입력을 의미할 수 있다. Referring to FIG. 7 , the graph shows a soft keyboard (TMI keyboard) according to the keyboard analysis system 300 and ACC ( accuracy) and the result of comparing WER. A masked language model (MLM) may mean a masked input.

도 8은 다양한 실시예들에 따른 키보드들 간 타이핑 속도를 비교하는 테이블을 도시한다. 8 illustrates a table comparing typing speeds between keyboards according to various embodiments.

도 8을 참고하면, 그래프는 키보드 분석 시스템(300)에 따른 소프트 키보드(TMI keyboard)와 다른 키보드들(예: KeyScretch, Invisible keyboard, 및 I-keyboard) 간 WPM(words per minute) 결과를 비교한 것이다. 키보드 분석 시스템(300)에 따른 소프트 키보드는 정확도를 높이고 오타율을 줄이면서 도 8의 그래프에 도시된 바와 같이 높은 타이핑 속도를 제공할 수 있다. Referring to FIG. 8 , the graph compares WPM (words per minute) results between a soft keyboard (TMI keyboard) and other keyboards (eg, KeyScretch, Invisible keyboard, and I-keyboard) according to the keyboard analysis system 300 . will be. The soft keyboard according to the keyboard analysis system 300 may provide a high typing speed as shown in the graph of FIG. 8 while increasing accuracy and reducing an error rate.

도 9는 다양한 실시예들에 따라 키보드 분석 시스템을 통해 제공되는 소프트 키보드의 사용자 경험 결과를 나타내는 그래프를 도시한다. 9 is a graph illustrating a user experience result of a soft keyboard provided through a keyboard analysis system according to various embodiments of the present disclosure;

도 9를 참조하면, 그래프는 키보드 분석 시스템(300)을 통해 제공되는 소프트 키보드의 사용에 대한 사용자 만족도를 나타낸다. 그래프는 리커트 척도(Likert scale) 5점을 기준으로 정신적(mental), 물리적(physical)으로 힘들었는지, 시간이 얼마나 들었는지(temporal demand), 편했는지(comfortability), 전체적으로 만족하는지(overall satisfaction)에 대한 응답을 나타낸다. Referring to FIG. 9 , the graph represents user satisfaction with the use of the soft keyboard provided through the keyboard analysis system 300 . The graph is based on 5 points on the Likert scale, showing how hard it was mentally and physically, how much time it took (temporal demand), comfort (comfortability), and overall satisfaction (overall satisfaction). represents a response to

도 10은 다양한 실시예들에 따라 키보드 분석 시스템을 통해 제공되는 소프트 키보드의 사용 예를 도시한다. 10 illustrates an example of using a soft keyboard provided through a keyboard analysis system according to various embodiments of the present disclosure;

도 10을 참조하면, 모바일 장치(310)의 사용자는 애플리케이션 화면(예: 채팅 창)이 디스플레이의 전체 영역에 표시된 상태에서도 투명 소프트 키보드를 이용하여 문장(예: '그러자')을 입력할 수 있다. 이를 통해, 키보드 분석 시스템(300)은 소프트 키보드가 디스플레이 화면에서 차지하는 면적을 제거하고 화면 활용도를 극대화할 수 있다. Referring to FIG. 10 , the user of the mobile device 310 may input a sentence (eg, 'then') using the transparent soft keyboard even when the application screen (eg, a chat window) is displayed on the entire display area. . Through this, the keyboard analysis system 300 may remove the area occupied by the soft keyboard on the display screen and maximize screen utilization.

Claims (10)

키보드 분석 시스템에 있어서,
모바일 장치; 및
디코딩 모듈을 포함하고,
상기 모바일 장치는,
디스플레이를 통해 지정된 문자(character)를 표시하고, 상기 디스플레이를 통해 상기 지정된 문자에 대응하는 터치 입력을 획득하고, 상기 획득된 터치 입력의 위치 좌표 및 상기 지정된 문자에 관한 정보를 상기 디코딩 모듈로 전송하고,
상기 디코딩 모듈은,
딥 러닝(deep learning)을 이용하여 상기 수신된 정보를 분석하고, 상기 분석 결과에 기반하여 상기 디스플레이 상에 투명(invisible) 소프트 키보드를 생성하도록 설정된, 키보드 분석 시스템.
In the keyboard analysis system,
mobile device; and
a decoding module,
the mobile device,
Display a specified character through a display, obtain a touch input corresponding to the specified character through the display, and transmit the position coordinates of the obtained touch input and information about the specified character to the decoding module, and ,
The decoding module,
A keyboard analysis system configured to analyze the received information using deep learning and generate an invisible soft keyboard on the display based on the analysis result.
청구항 1에 있어서,
상기 소프트 키보드의 배열은, 상기 디스플레이 상에 표시된 문자 또는 이전 문자 시퀀스에 기반하여 변경되는, 키보드 분석 시스템.
The method according to claim 1,
The arrangement of the soft keyboard is changed based on a character displayed on the display or a previous character sequence.
청구항 1에 있어서, 상기 디코딩 모듈은,
지정된 개수 미만의 상기 터치 입력을 분석하도록 설정된 단기(short-term) 디코더; 및
상기 지정된 개수 이상의 상기 터치 입력을 분석하도록 설정된 장기(long-term) 디코더를 포함하고,
상기 장기 디코더는,
기하학적(geometric) 정보에 기반하여 상기 터치 입력에 대응하는 문자를 분석하는 기하학적 디코더; 및
문자 시퀀스(character sequence)의 의미론적(semantic) 정보에 기반하여 상기 터치 입력에 대응하는 문자를 분석하는 의미론적 디코더를 포함하는, 키보드 분석 시스템.
The method according to claim 1, The decoding module,
a short-term decoder configured to analyze less than a specified number of said touch inputs; and
a long-term decoder configured to analyze more than the specified number of touch inputs;
The long-term decoder is
a geometric decoder that analyzes a character corresponding to the touch input based on geometric information; and
and a semantic decoder for analyzing a character corresponding to the touch input based on semantic information of a character sequence.
청구항 3에 있어서,
상기 기하학적 디코더는, 양방향 GRU(bi-directional gated recurrent unit)를 포함하고,
상기 의미론적 디코더는, 트랜스포머 모델(transformer model)을 포함하는, 키보드 분석 시스템.
4. The method of claim 3,
The geometric decoder includes a bi-directional gated recurrent unit (GRU),
wherein the semantic decoder comprises a transformer model.
청구항 4에 있어서, 상기 장기 디코더는,
상기 양방향 GRU 및 소프트맥스(softmax) 함수를 이용하여 상기 터치 입력에 대한 컨피던스(confidence)를 산출하고,
상기 컨피던스가 지정된 임계값 미만이면, 상기 터치 입력에 대응하는 위치를 블랭크(blank)로 처리하도록 설정된, 키보드 분석 시스템.
The method according to claim 4, wherein the long-term decoder,
calculating confidence for the touch input using the bidirectional GRU and softmax function;
If the confidence is less than a specified threshold, the keyboard analysis system, configured to process a position corresponding to the touch input as a blank (blank).
청구항 4에 있어서, 상기 트랜스포머 모델은,
인코더를 포함하고, 디코더를 포함하지 않는, 키보드 분석 시스템.
The method according to claim 4, The transformer model,
A keyboard analysis system comprising an encoder and no decoder.
청구항 1에 있어서,
상기 터치 입력의 위치 좌표 및 상기 지정된 문자에 관한 정보를 토큰화(tokenization) 및/또는 정규화(normalization)하도록 설정된 메신저 모듈을 더 포함하는, 키보드 분석 시스템.
The method according to claim 1,
The keyboard analysis system further comprising a messenger module configured to tokenize and/or normalize the location coordinates of the touch input and information about the designated character.
청구항 7에 있어서, 상기 메신저 모듈은,
상기 모바일 장치에 저장되는 애플리케이션에 해당하는, 키보드 분석 시스템.
The method according to claim 7, wherein the messenger module,
Corresponding to the application stored on the mobile device, keyboard analysis system.
키보드 분석 시스템의 동작 방법에 있어서,
디스플레이를 통해 지정된 문자를 표시하는 동작;
상기 디스플레이를 통해 상기 지정된 문자에 대응하는 터치 입력을 획득하는 동작;
딥 러닝을 이용하여, 상기 획득된 터치 입력의 위치 좌표 및 상기 지정된 문자에 관한 정보를 분석하는 동작; 및
상기 분석 결과에 기반하여 상기 디스플레이 상에 투명(invisible) 소프트 키보드를 생성하는 동작을 포함하는, 방법.
In the operating method of the keyboard analysis system,
displaying the specified character through the display;
acquiring a touch input corresponding to the designated character through the display;
analyzing the position coordinates of the acquired touch input and information about the designated character using deep learning; and
and generating an invisible soft keyboard on the display based on the analysis result.
비일시적 컴퓨터 판독 가능 저장 매체에 있어서,
하나 이상의 프로세서들에 의해 실행될 시,
디스플레이를 통해 지정된 문자를 표시하고,
상기 디스플레이를 통해 상기 지정된 문자에 대응하는 터치 입력을 획득하고,
딥 러닝을 이용하여, 상기 획득된 터치 입력의 위치 좌표 및 상기 지정된 문자에 관한 정보를 분석하고, 및
상기 분석 결과에 기반하여 상기 디스플레이 상에 투명(invisible) 소프트 키보드를 생성하도록 키보드 분석 시스템을 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램들을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체.
A non-transitory computer-readable storage medium comprising:
When executed by one or more processors,
Display the specified character through the display,
acquiring a touch input corresponding to the designated character through the display;
using deep learning to analyze the location coordinates of the acquired touch input and information about the designated character, and
A non-transitory computer-readable storage medium storing one or more programs comprising instructions for causing a keyboard analysis system to generate an invisible soft keyboard on the display based on the analysis result.
KR1020210026835A 2021-02-26 2021-02-26 Apparatus for analysing and providing soft keyboard and method thereof KR102447469B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210026835A KR102447469B1 (en) 2021-02-26 2021-02-26 Apparatus for analysing and providing soft keyboard and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210026835A KR102447469B1 (en) 2021-02-26 2021-02-26 Apparatus for analysing and providing soft keyboard and method thereof

Publications (2)

Publication Number Publication Date
KR20220122334A true KR20220122334A (en) 2022-09-02
KR102447469B1 KR102447469B1 (en) 2022-09-23

Family

ID=83281225

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210026835A KR102447469B1 (en) 2021-02-26 2021-02-26 Apparatus for analysing and providing soft keyboard and method thereof

Country Status (1)

Country Link
KR (1) KR102447469B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120007042A (en) * 2009-04-10 2012-01-19 퀄컴 인코포레이티드 A virtual keypad generator with learning capabilities
KR20160057866A (en) * 2014-11-14 2016-05-24 엘지전자 주식회사 Mobile terminal and method for controlling the same
KR20190065746A (en) * 2017-12-04 2019-06-12 삼성전자주식회사 Electronic apparatus, method for controlling thereof and the computer readable recording medium
KR20200078454A (en) * 2020-06-24 2020-07-01 네이버 주식회사 Method and system for correcting keyboard typo based on deep learning model

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120007042A (en) * 2009-04-10 2012-01-19 퀄컴 인코포레이티드 A virtual keypad generator with learning capabilities
KR20160057866A (en) * 2014-11-14 2016-05-24 엘지전자 주식회사 Mobile terminal and method for controlling the same
KR20190065746A (en) * 2017-12-04 2019-06-12 삼성전자주식회사 Electronic apparatus, method for controlling thereof and the computer readable recording medium
KR20200078454A (en) * 2020-06-24 2020-07-01 네이버 주식회사 Method and system for correcting keyboard typo based on deep learning model

Also Published As

Publication number Publication date
KR102447469B1 (en) 2022-09-23

Similar Documents

Publication Publication Date Title
JP7317791B2 (en) Entity linking method, device, apparatus and storage medium
EP3549069B1 (en) Neural network data entry system
US10095684B2 (en) Trained data input system
CN105009064B (en) Use the touch keyboard of language and spatial model
Fowler et al. Effects of language modeling and its personalization on touchscreen typing performance
JP7108675B2 (en) Semantic matching method, device, electronic device, storage medium and computer program
US20160328377A1 (en) System and method for inputting text into electronic devices
CN108700996B (en) System and method for multiple input management
JP2022003539A (en) Method, apparatus, electronic device and storage medium for correcting text errors
CN110023930B (en) Language data prediction using neural networks and online learning
US10664658B2 (en) Abbreviated handwritten entry translation
CN108710406A (en) Posture adapts to selection
KR20180064371A (en) System and method for recognizing multiple object inputs
CN106325488B (en) A kind of input method, input unit, server and input system
US20210350122A1 (en) Stroke based control of handwriting input
US7376938B1 (en) Method and system for disambiguation and predictive resolution
EP3920076A1 (en) Method, apparatus, and storage medium for obtaining document layout
Kern et al. Text input for non-stationary XR workspaces: investigating tap and word-gesture keyboards in virtual and augmented reality
US11899904B2 (en) Text input system with correction facility
KR102447469B1 (en) Apparatus for analysing and providing soft keyboard and method thereof
Conway et al. A Monte Carlo simulation approach for quantitatively evaluating keyboard layouts for gesture input
Lee et al. Virtual keyboards with real-time and robust deep learning-based gesture recognition
JP7352640B2 (en) Search item rewriting method, device, equipment and storage medium
Udapola et al. Braille messenger: Adaptive learning based non-visual touch screen text input for the blind community using braille
CN116306612A (en) Word and sentence generation method and related equipment

Legal Events

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