WO2023146077A1 - 가상 키보드 상의 터치 입력으로부터 사용자 의도를 인식하기 위한 전자 장치, 방법, 및 비일시적 컴퓨터 판독가능 저장 매체 - Google Patents
가상 키보드 상의 터치 입력으로부터 사용자 의도를 인식하기 위한 전자 장치, 방법, 및 비일시적 컴퓨터 판독가능 저장 매체 Download PDFInfo
- Publication number
- WO2023146077A1 WO2023146077A1 PCT/KR2022/017581 KR2022017581W WO2023146077A1 WO 2023146077 A1 WO2023146077 A1 WO 2023146077A1 KR 2022017581 W KR2022017581 W KR 2022017581W WO 2023146077 A1 WO2023146077 A1 WO 2023146077A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- character
- key
- touch input
- electronic device
- processor
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000004044 response Effects 0.000 claims abstract description 33
- 238000004891 communication Methods 0.000 description 48
- 230000006870 function Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 9
- 238000013528 artificial neural network Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 241001422033 Thestylus Species 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003155 kinesthetic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000000638 stimulation Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements 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/0233—Character input methods
- G06F3/0236—Character input methods using selection techniques to select from displayed items
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements 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/0233—Character input methods
- G06F3/0237—Character input methods using prediction or retrieval techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction 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/0488—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction 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/0488—Interaction 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/04886—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction 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/0489—Interaction 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 dedicated keyboard keys or combinations thereof
- G06F3/04895—Guidance during keyboard input operation, e.g. prompting
Definitions
- the descriptions below relate to an electronic device, method, and non-transitory computer-readable storage medium for recognizing user intent from touch input on a virtual keyboard.
- a virtual keyboard displayed through a display of an electronic device may be a software component that applies input of characters without requiring physical keys. Interaction with the virtual keyboard may most likely occur through a touch sensor of the electronic device operatively coupled to the display.
- an electronic device may include a display, a memory configured to store instructions, and a processor.
- the processor may be configured to receive a touch input having a point of contact on a first key among a plurality of keys in the virtual keyboard displayed through the display.
- the processor in response to the touch input, displays a first character represented by the first key, a second character represented by a second key adjacent to the first key among the plurality of keys, and the virtual keyboard.
- one (a) character of the first character and the second character may be identified.
- the processor may be configured to display the identified character through the display within the text input portion.
- a method for operating an electronic device including a display includes receiving a touch input having a point of contact on a first key among a plurality of keys in a virtual keyboard displayed through the display.
- the method may include, in response to the touch input, a first character represented by the first key, a second character represented by a second key adjacent to the first key among the plurality of keys, and the virtual keyboard. and identifying one (a) of the first character and the second character based on at least one third character that was displayed before the touch input was received within the displayed text input portion. there is.
- the method may include an operation of displaying the identified character through the display within the text input portion.
- a non-transitory computer-readable storage medium may store one or more programs.
- the one or more programs when executed by a processor of an electronic device including a display, receive a touch input having a point of contact on a first key among a plurality of keys in a virtual keyboard displayed through the display, It may include instructions that trigger the electronic device.
- the one or more programs when executed by the processor, in response to the touch input, a first character represented by the first key, a second key among the plurality of keys adjacent to the first key, (a) of one of the first character and the second character, based on a second character and at least one third character displayed before the touch input is received within the text input portion displayed together with the virtual keyboard; It may include instructions that cause the electronic device to identify a character.
- the one or more programs may include instructions that, when executed by the processor, cause the electronic device to display the identified character within the text input portion through the display.
- FIG. 1 is a block diagram of an electronic device in a network environment according to various embodiments.
- FIG. 2 is a flow diagram illustrating a method of identifying a character intended by a user in response to a touch input, according to an example.
- FIG. 3 illustrates an exemplary virtual keyboard displayed through a display of an electronic device according to an example.
- FIG. 4 is a flowchart illustrating a method of identifying one of a first character and a second character, according to an example.
- 5A is a flowchart illustrating a method of identifying one of a first character and a second character based on a location of a contact point of a touch input according to an example.
- 5B illustrates an example of a recognition area and a protection area identified according to an example.
- FIG. 6 is a flowchart illustrating a method of enlarging a first key and a second key in a virtual keyboard according to an example.
- FIG. 7 illustrates an example of a first key having an enlarged size and a second key having an enlarged size displayed according to an example.
- FIG. 8 is a flowchart illustrating a method of adjusting information about a use history of a virtual keyboard according to an example.
- FIG 9 illustrates an example of an input for deleting a character displayed in a text input portion according to an example.
- FIG. 10 is a flow diagram illustrating a method of refraining from or bypassing identifying a second character represented by a second key according to an example.
- 11 is a flow diagram illustrating a method of identifying a character based on adjusting a plurality of predetermined words, according to one example.
- FIG. 12 illustrates example software modules used to identify a character intended by a user in response to a touch input, according to an example.
- FIG. 1 is a block diagram of an electronic device 101 within a network environment 100, according to various embodiments.
- an electronic device 101 communicates with an electronic device 102 through a first network 198 (eg, a short-range wireless communication network) or through a second network 199. It may communicate with at least one of the electronic device 104 or the server 108 through (eg, a long-distance wireless communication network). According to one embodiment, the electronic device 101 may communicate with the electronic device 104 through the server 108 .
- the electronic device 101 includes a processor 120, a memory 130, an input module 150, an audio output module 155, a display module 160, an audio module 170, a sensor module ( 176), interface 177, connection terminal 178, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identification module 196 , or the antenna module 197 may be included.
- at least one of these components eg, the connection terminal 178) may be omitted or one or more other components may be added.
- some of these components eg, sensor module 176, camera module 180, or antenna module 197) are integrated into a single component (eg, display module 160). It can be.
- the processor 120 for example, executes software (eg, the program 140) to cause at least one other component (eg, hardware or software component) of the electronic device 101 connected to the processor 120. It can control and perform various data processing or calculations. According to one embodiment, as at least part of data processing or operation, the processor 120 transfers instructions or data received from other components (e.g., sensor module 176 or communication module 190) to volatile memory 132. , processing commands or data stored in the volatile memory 132 , and storing resultant data in the non-volatile memory 134 .
- software eg, the program 140
- the processor 120 transfers instructions or data received from other components (e.g., sensor module 176 or communication module 190) to volatile memory 132. , processing commands or data stored in the volatile memory 132 , and storing resultant data in the non-volatile memory 134 .
- the processor 120 may include a main processor 121 (eg, a central processing unit or an application processor) or a secondary processor 123 (eg, a graphic processing unit, a neural network processing unit ( NPU: neural processing unit (NPU), image signal processor, sensor hub processor, or communication processor).
- a main processor 121 eg, a central processing unit or an application processor
- a secondary processor 123 eg, a graphic processing unit, a neural network processing unit ( NPU: neural processing unit (NPU), image signal processor, sensor hub processor, or communication processor.
- NPU neural network processing unit
- the secondary processor 123 may be implemented separately from or as part of the main processor 121 .
- the secondary processor 123 may, for example, take the place of the main processor 121 while the main processor 121 is in an inactive (eg, sleep) state, or the main processor 121 is active (eg, running an application). ) state, together with the main processor 121, at least one of the components of the electronic device 101 (eg, the display module 160, the sensor module 176, or the communication module 190) It is possible to control at least some of functions or states related to.
- the auxiliary processor 123 eg, image signal processor or communication processor
- the auxiliary processor 123 may include a hardware structure specialized for processing an artificial intelligence model.
- AI models can be created through machine learning. Such learning may be performed, for example, in the electronic device 101 itself where the artificial intelligence model is performed, or may be performed through a separate server (eg, the server 108).
- the learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning or reinforcement learning, but in the above example Not limited.
- the artificial intelligence model may include a plurality of artificial neural network layers.
- Artificial neural networks include deep neural networks (DNNs), convolutional neural networks (CNNs), recurrent neural networks (RNNs), restricted boltzmann machines (RBMs), deep belief networks (DBNs), bidirectional recurrent deep neural networks (BRDNNs), It may be one of deep Q-networks or a combination of two or more of the foregoing, but is not limited to the foregoing examples.
- the artificial intelligence model may include, in addition or alternatively, software structures in addition to hardware structures.
- the memory 130 may store various data used by at least one component (eg, the processor 120 or the sensor module 176) of the electronic device 101 .
- the data may include, for example, input data or output data for software (eg, program 140) and commands related thereto.
- the memory 130 may include volatile memory 132 or non-volatile memory 134 .
- the program 140 may be stored as software in the memory 130 and may include, for example, an operating system 142 , middleware 144 , or an application 146 .
- the input module 150 may receive a command or data to be used by a component (eg, the processor 120) of the electronic device 101 from the outside of the electronic device 101 (eg, a user).
- the input module 150 may include, for example, a microphone, a mouse, a keyboard, a key (eg, a button), or a digital pen (eg, a stylus pen).
- the sound output module 155 may output sound signals to the outside of the electronic device 101 .
- the sound output module 155 may include, for example, a speaker or a receiver.
- the speaker can be used for general purposes such as multimedia playback or recording playback.
- a receiver may be used to receive an incoming call. According to one embodiment, the receiver may be implemented separately from the speaker or as part of it.
- the display module 160 may visually provide information to the outside of the electronic device 101 (eg, a user).
- the display module 160 may include, for example, a display, a hologram device, or a projector and a control circuit for controlling the device.
- the display module 160 may include a touch sensor set to detect a touch or a pressure sensor set to measure the intensity of force generated by the touch.
- the audio module 170 may convert sound into an electrical signal or vice versa. According to one embodiment, the audio module 170 acquires sound through the input module 150, the sound output module 155, or an external electronic device connected directly or wirelessly to the electronic device 101 (eg: Sound may be output through the electronic device 102 (eg, a speaker or a headphone).
- the audio module 170 acquires sound through the input module 150, the sound output module 155, or an external electronic device connected directly or wirelessly to the electronic device 101 (eg: Sound may be output through the electronic device 102 (eg, a speaker or a headphone).
- the sensor module 176 detects an operating state (eg, power or temperature) of the electronic device 101 or an external environmental state (eg, a user state), and generates an electrical signal or data value corresponding to the detected state. can do.
- the sensor module 176 may include, for example, a gesture sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a bio sensor, It may include a temperature sensor, humidity sensor, or light sensor.
- the interface 177 may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device 101 to an external electronic device (eg, the electronic device 102).
- the interface 177 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
- HDMI high definition multimedia interface
- USB universal serial bus
- SD card interface Secure Digital Card interface
- audio interface audio interface
- connection terminal 178 may include a connector through which the electronic device 101 may be physically connected to an external electronic device (eg, the electronic device 102).
- the connection terminal 178 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).
- the haptic module 179 may convert electrical signals into mechanical stimuli (eg, vibration or motion) or electrical stimuli that a user may perceive through tactile or kinesthetic senses.
- the haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
- the camera module 180 may capture still images and moving images. According to one embodiment, the camera module 180 may include one or more lenses, image sensors, image signal processors, or flashes.
- the power management module 188 may manage power supplied to the electronic device 101 .
- the power management module 188 may be implemented as at least part of a power management integrated circuit (PMIC), for example.
- PMIC power management integrated circuit
- the battery 189 may supply power to at least one component of the electronic device 101 .
- the battery 189 may include, for example, a non-rechargeable primary cell, a rechargeable secondary cell, or a fuel cell.
- the communication module 190 is a direct (eg, wired) communication channel or a wireless communication channel between the electronic device 101 and an external electronic device (eg, the electronic device 102, the electronic device 104, or the server 108). Establishment and communication through the established communication channel may be supported.
- the communication module 190 may include one or more communication processors that operate independently of the processor 120 (eg, an application processor) and support direct (eg, wired) communication or wireless communication.
- the communication module 190 is a wireless communication module 192 (eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 194 (eg, : a local area network (LAN) communication module or a power line communication module).
- a corresponding communication module is a first network 198 (eg, a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network 199 (eg, a legacy communication module).
- the wireless communication module 192 uses subscriber information (eg, International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 196 within a communication network such as the first network 198 or the second network 199.
- IMSI International Mobile Subscriber Identifier
- the wireless communication module 192 may support a 5G network after a 4G network and a next-generation communication technology, for example, NR access technology (new radio access technology).
- NR access technologies include high-speed transmission of high-capacity data (enhanced mobile broadband (eMBB)), minimization of terminal power and access of multiple terminals (massive machine type communications (mMTC)), or high reliability and low latency (ultra-reliable and low latency (URLLC)).
- eMBB enhanced mobile broadband
- mMTC massive machine type communications
- URLLC ultra-reliable and low latency
- -latency communications can be supported.
- the wireless communication module 192 may support a high frequency band (eg, mmWave band) to achieve a high data rate, for example.
- the wireless communication module 192 uses various technologies for securing performance in a high frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), and full-dimensional multiplexing. Technologies such as input/output (full dimensional MIMO (FD-MIMO)), array antenna, analog beam-forming, or large scale antenna may be supported.
- the wireless communication module 192 may support various requirements defined for the electronic device 101, an external electronic device (eg, the electronic device 104), or a network system (eg, the second network 199).
- the wireless communication module 192 is a peak data rate for eMBB realization (eg, 20 Gbps or more), a loss coverage for mMTC realization (eg, 164 dB or less), or a U-plane latency for URLLC realization (eg, Example: downlink (DL) and uplink (UL) each of 0.5 ms or less, or round trip 1 ms or less) may be supported.
- eMBB peak data rate for eMBB realization
- a loss coverage for mMTC realization eg, 164 dB or less
- U-plane latency for URLLC realization eg, Example: downlink (DL) and uplink (UL) each of 0.5 ms or less, or round trip 1 ms or less
- the antenna module 197 may transmit or receive signals or power to the outside (eg, an external electronic device).
- the antenna module 197 may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (eg, PCB).
- the antenna module 197 may include a plurality of antennas (eg, an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network such as the first network 198 or the second network 199 is selected from the plurality of antennas by the communication module 190, for example. can be chosen A signal or power may be transmitted or received between the communication module 190 and an external electronic device through the selected at least one antenna.
- other components eg, a radio frequency integrated circuit (RFIC) may be additionally formed as a part of the antenna module 197 in addition to the radiator.
- RFIC radio frequency integrated circuit
- the antenna module 197 may form a mmWave antenna module.
- the mmWave antenna module includes a printed circuit board, an RFIC disposed on or adjacent to a first surface (eg, a lower surface) of the printed circuit board and capable of supporting a designated high frequency band (eg, mmWave band); and a plurality of antennas (eg, array antennas) disposed on or adjacent to a second surface (eg, a top surface or a side surface) of the printed circuit board and capable of transmitting or receiving signals of the designated high frequency band. can do.
- peripheral devices eg, a bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)
- signal e.g. commands or data
- commands or data may be transmitted or received between the electronic device 101 and the external electronic device 104 through the server 108 connected to the second network 199 .
- Each of the external electronic devices 102 or 104 may be the same as or different from the electronic device 101 .
- all or part of operations executed in the electronic device 101 may be executed in one or more external electronic devices among the external electronic devices 102 , 104 , or 108 .
- the electronic device 101 when the electronic device 101 needs to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device 101 instead of executing the function or service by itself.
- one or more external electronic devices may be requested to perform the function or at least part of the service.
- One or more external electronic devices receiving the request may execute at least a part of the requested function or service or an additional function or service related to the request, and deliver the execution result to the electronic device 101 .
- the electronic device 101 may provide the result as at least part of a response to the request as it is or additionally processed.
- cloud computing distributed computing, mobile edge computing (MEC), or client-server computing technology may be used.
- the electronic device 101 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing.
- the external electronic device 104 may include an internet of things (IoT) device.
- Server 108 may be an intelligent server using machine learning and/or neural networks. According to one embodiment, the external electronic device 104 or server 108 may be included in the second network 199 .
- the electronic device 101 may be applied to intelligent services (eg, smart home, smart city, smart car, or health care) based on 5G communication technology and IoT-related technology.
- a plurality of keys of a virtual keyboard may be arranged adjacent to each other due to a limitation of a display area of a display of an electronic device. Due to this arrangement, a typographical error may occur in which a non-intended character is displayed through the display in response to a touch input on the virtual keyboard.
- Certain examples of the present disclosure provide a method for inputting a character using a virtual keyboard that includes a plurality of keys.
- the virtual keyboard may be displayed on a touch screen.
- this method may be executed by the electronic device 101 shown in FIG. 1 or the processor 120 shown in FIG. 1 .
- the method includes an operation of receiving a touch input on the virtual keyboard (eg, through the touch screen), an operation of identifying a set of one or more candidate characters based on a touch portion of the touch input, and an operation of selecting a set of one or more candidate characters as a character to be input.
- An operation of selecting one of the candidate characters may be included.
- the set of candidate characters may include one or more characters associated with a key located at the touch location of the touch input.
- the set of candidate characters may include the character “h”.
- the set of candidate characters when the user touches a single key corresponding to multiple characters “g”, “h”, and “I” (see 304 in FIG. 3 ), the set of candidate characters “ g", "h", and "i”.
- the set of candidate characters may include one or more characters associated with one or more keys adjacent to a key located at the touch location of the touch input.
- the user touches the key corresponding to the character “h” and the key touches the characters “u”, “y”, “g”, “v”, “b”, “n”, and " If surrounded by keys corresponding to j" (see 311 to 317 in FIG. 3), the set of candidate characters is the characters “u”, “y”, “g”, "v”, "b”, “n” ", and "j".
- the set of candidate characters includes one or more characters associated with one or more keys located within a predetermined distance from the touch location of the touch input (e.g., touch location 305 shown in FIG. 3). can do.
- selecting one of the candidate characters may include determining a likelihood value for each candidate character.
- each likelihood value represents an estimated probability that a corresponding candidate character is intended to be selected by the touch input. For example, a relatively high likelihood value indicates a relatively high probability that the user intends to input the corresponding character. On the other hand, a relatively low likelihood value indicates a relatively low probability that the user intended to input the corresponding character.
- the method may include determining the type of object (eg, finger or stylus) used to apply the touch input.
- the likelihood values may be determined based on the determined type of object.
- a user generally applies touch inputs more accurately when using a stylus compared to when using a finger. Therefore, when using a stylus, the probability that a key actually touched is a key intended to be touched is higher than when using a finger. Accordingly, when a user touches a key corresponding to a certain character, a higher likelihood value can be assigned when a stylus is used than when a finger is used.
- the likelihood values may be determined based on the location of the touch location.
- the user may generally apply touch inputs more accurately when applying inputs to the central area of the keyboard than when applying them to the side areas. Accordingly, when the touch input is applied to the central region of the keyboard, the probability that the actually touched key is the key intended to be touched may be higher than when the touch input is applied to the edge region. Accordingly, when the user touches a key corresponding to a certain character, if the key is in the center area, a higher likelihood value than if the key is in the edge area can be assigned to the character. As another non-limiting example, since the user can touch certain keys more precisely than certain other keys, the likelihood values of the characters corresponding to the keys can thus be determined accordingly.
- the method may include determining the location of the user's hand (eg, holding the device with both hands and applying a touch input).
- the likelihood values may be determined based on the position of the touch position relative to the position of the user's hand.
- a user may generally apply touch input more precisely when the touch location is located relatively far from the user's hand holding the device than when the touch location is relatively close to the user's hand holding the device. Accordingly, when the touch input is applied at a location relatively far from the user's hand, the actual touched key is more likely to be a key intended to be touched than when the touch input is applied at a location relatively close to the user's hand. Accordingly, when the user touches a key corresponding to a certain character, a higher likelihood value may be assigned to the character when it is relatively far from the user's hand than when it is relatively close to the user's hand.
- likelihood values can be determined based on the size of the keys of the virtual keyboard.
- a user can generally apply touch input more precisely when the keys are relatively large than when the keys are relatively small. Accordingly, when a touch input on a relatively large key is applied, a probability that an actually touched key is an intended key to be touched may be higher than when a touch input on a relatively small key is applied. Accordingly, when the user touches a key corresponding to a certain key, a higher likelihood value can be assigned to the character when the key is relatively large than when the key is relatively small.
- the likelihood values may be determined based on a display mode (eg, portrait mode or landscape mode) of the virtual keypad.
- a key size of the virtual keyboard may be larger when the display mode is a landscape mode than when the display mode is a portrait mode. Accordingly, as described above, a likelihood value may be assigned to a character corresponding to a touched key based on a key size according to a display mode.
- the likelihood values may be determined based on the time interval between key selections.
- the time interval may be an interval between current key selection and previous key selection, or may be an average time interval between previous N key selections.
- the user may generally apply touch input more precisely when the typing speed (eg, represented by the time interval described above) is relatively slow than when the typing speed is relatively fast. Accordingly, when the touch input is applied during relatively slow typing, the probability that the touched key is a key intended to be touched may be higher than when the touch input is applied during relatively fast typing. Accordingly, when the user touches a key corresponding to a certain character, a higher likelihood value may be assigned to the character when the typing speed is relatively low than when the typing speed is relatively high.
- likelihood values corresponding to other keys may be relatively low.
- likelihood value of a character corresponding to an actually touched key is relatively low, the likelihood value of a character corresponding to another key (eg, adjacent keys) may be relatively high.
- the likelihood values may be determined based on one or more previously entered characters. For example, text analysis may be performed on previously entered characters to determine the likelihood of each of the candidate characters of the previously entered characters. This may include one or more of the actions below.
- a candidate character may be assigned a relatively high likelihood value if it is combined with one or more previously entered characters (e.g., to the next character), or if it forms a potentially valid word or partial word as the first character. Conversely, if a candidate character does not form a potentially valid word, a relatively low likelihood value may be assigned.
- a relatively high likelihood value is assigned. It can be. Conversely, when the candidate character forms a relatively rare word, a relatively low likelihood value may be assigned.
- a relatively high likelihood value may be assigned if the candidate character potentially forms a word or some word that is frequently used by the user (eg, determined by past history). Conversely, if a candidate character potentially forms a word or some word that is used relatively rarely by a user, a lower likelihood value may be assigned.
- the likelihood values may be determined based on past history. In some instances, the likelihood values may be dynamically adjusted based on usage history.
- selecting one of the candidate characters as a character to be input includes determining a first set of one or more candidate characters, and a likelihood value for each candidate character within the first set. determining whether a condition based on the likelihood values for the candidate characters in the first set is satisfied, and if the condition is satisfied, the likelihood for the candidate characters in the first set and selecting one character from the first set of candidate characters as a character to be input based on the values.
- the method may include, if the condition is not satisfied, determining a second set of one or more candidate characters, determining a likelihood value for each candidate character in the second set, and the second set. and selecting one character of the second set of candidate values as a character to be input based on the likelihood values for the candidate characters in the set.
- the condition may include that the likelihood value of at least one of the candidate characters indicates an estimated probability that the corresponding candidate character is intended to be selected by a touch input equal to or greater than a certain threshold value.
- the first and second sets of candidate characters may be any suitable sets of candidate characters, such as the sets of candidate characters described above.
- the first set of candidate characters may include one or more characters associated with a key located at the touch location of the touch input.
- the second set of candidate characters may include one or more characters associated with one or more keys adjacent to a key located at the touch location of the touch input.
- FIG. 2 is a flow diagram illustrating a method of identifying a character intended by a user in response to a touch input, according to an example. This method may be executed by the electronic device 101 shown in FIG. 1 or the processor 120 shown in FIG. 1 .
- FIG. 3 illustrates an exemplary virtual keyboard displayed through a display of an electronic device according to an example.
- the processor 120 performs a touch with a point of contact on a first key among a plurality of keys in a virtual keyboard displayed through a display (eg, the display module 160). input can be received.
- the virtual keyboard may be a software component that applies input of characters without requiring physical keys.
- the virtual keyboard may include a plurality of keys including keys respectively representing the characters.
- each of the characters may be an entity defined for communication.
- the characters may include letters.
- the characters may include symbols, marks, or signs.
- the characters may include numbers.
- the characters may include icons, such as emoticons or emoji graphical objects. However, it is not limited thereto.
- the plurality of keys may include an executable object for displaying one of the characters through the display.
- the character may be displayed through the display in response to an input on the executable object.
- it is not limited thereto.
- the plurality of keys may include an executable object for executing a predetermined function.
- the predetermined function may include a function of changing a position of a pointer (or cursor) in a text input portion displayed together with the virtual keyboard and/or deleting a character displayed in the text input portion. function can be included. However, it is not limited thereto.
- the virtual keyboard displayed through the display may include the plurality of keys in various arrangements according to settings of the electronic device 101 or user settings.
- the plurality of keys are included in the virtual keyboard in a first arrangement 301 or in a second arrangement 302 according to settings of the electronic device 101 or user settings. It can be included in the virtual keyboard, included in the virtual keyboard in a third arrangement (303), or included in the virtual keyboard in a fourth arrangement (304). However, it is not limited thereto.
- the virtual keyboard may be displayed together with the suggested word display area 380 .
- the suggested word display area 380 may include at least some of a plurality of predetermined words to be described later through the description of FIG. 4 .
- the suggested word display area 380 may include “cute”, “charming”, “cool”, and “crazy”, which are words including the character “c” adjacent to the pointer 309. .
- the touch input may be caused by an input means.
- the touch input may be caused by a user's finger.
- the touch input may be caused by a stylus pen that works with the electronic device 101 .
- it is not limited thereto.
- the touch input may have a contact point that is a point at which the input unit contacts the display.
- the contact point may be a representative point among a plurality of points in an area where the input unit contacts the display.
- the touch sensor operatively coupled with the display is a capacitive touch sensor, the point of contact is within the display where the highest or most change in capacitance due to the touch input was identified. may be a position. However, it is not limited thereto.
- the contact point of the touch input may be located on a first key of the plurality of keys.
- the processor 120 may receive the touch input having a contact point 305 on a first key 306 of the plurality of keys in the virtual keyboard.
- the touch input may be received while a text input portion 307 is displayed together with the virtual keyboard.
- the processor 120 may display at least one third character 308 based on at least one other touch input received through the virtual keyboard and a pointer displayed next to the at least one third character 308 . While the text input part 307 including 309 is displayed together with the virtual keyboard, the touch input can be received.
- the virtual keyboard and the text input part 307 are configured in various ways according to the setting of the software application providing the text input part 307, the setting of the electronic device 101, or the user setting. ) can be arranged.
- the virtual keyboard may be partially superimposed on the user interface 310 including the text input portion 307 .
- it is not limited thereto.
- the processor 120 performs, in response to the touch input, a first character represented by the first key and a second key among the plurality of keys adjacent to the first key.
- the second character represented by and the at least one first character displayed before the touch input was received within a text input portion (eg, the text input portion 307 shown in FIG. 3) displayed together with the virtual keyboard.
- a text input portion eg, the text input portion 307 shown in FIG. 3
- the processor 120 Based on the three characters (eg, at least one third character 308 shown in FIG. 3 ), one (a) character of the first character and the second character may be identified.
- the processor 120 may, in response to the touch input, the first character represented by the first key 306 at which the contact point 305 is located (eg, “h”). ) can be identified.
- the first character eg, “h”
- the first character may be identified to consider a first probability that the contact point 305 is the user's intention that caused the touch input.
- the processor 120 may identify the second character (eg, “u”) represented by a second key 311 adjacent to the first key 306 in response to the touch input.
- the processor 120 in response to the touch input, the second key 311, the third key 312, the fourth key 313, the fifth key ( 314), identify the sixth key 315, the seventh key 316, and the eighth key 317, and the characters represented by the second key 311 to the eighth key 317, respectively (eg : "u", “y”, “g”, "v”, "b”, "n", and "j").
- the second character eg "u” or the characters (eg "u”, “y”, “g”, “v”, “b”, “n”, and “j” ) may be identified in order to consider a second probability that the location of the contact point is not the user's intention that caused the touch input.
- the processor 120 includes a second key 311, a third key 312, a fourth key 313, a fifth key 314, and a sixth key ( 315), the characters represented by the seventh key 316, and the eighth key 317, respectively (eg, "u”, “y”, “g”, “v”, “b”, “n” , and "j"), and among the characters, the second character (eg, "u") may be identified.
- the processor 120 may select at least one of the characters (eg, "u”, “y”, “g”, “v”, “b”, “n”, and “j”).
- the second character eg, “u” corresponding to the context derived from the three characters 308 may be identified.
- Processor 120 among the characters (eg "u”, “y”, “g”, “v”, “b”, “n”, and “j"), the second character (eg " After identifying u”), based on the first character (eg "h”), the second character (eg "u”), and at least one third character 308, the first character ( Example: “h”) and one of the second characters (eg “u”) may be identified. However, it is not limited thereto.
- the processor 120 includes a second key 311, a third key 312, a fourth key 313, a fifth key 314, and a sixth key ( 315), the seventh key 316, and the eighth key 317 (e.g., "u”, “y”, “g”, “v”, “b”, “n “, and “j"), and among the characters (eg, "u”, “y”, “g”, “v”, “b”, “n”, and “j"), the second Without identifying the character (eg “u”), the first character (eg “h”), the characters (eg “u”, “y”, “g”, “v”, “b”) “, "n", and “j"), and the at least one third character 308, the first character (eg “h”) and the characters (eg "u”, "y”) “, "g", “v”, “b”, “n”, and “j”).
- the processor 120 may identify at least one third character 308 included in the text input portion 307 before the touch input is received in response to the touch input.
- at least one third character 308 may be identified to identify the first probability and the second probability.
- the processor 120 identifies one of the first character and the second character based on the first character, the second character, and the at least one third character. can do.
- the processor 120 identifies the type of input means that caused the touch input, and further based on whether the identified type is a user's finger or a stylus pen, Among the first character and the second character, the character may be identified. For example, a first area where the finger contacts the virtual keyboard may be larger than a second area where the stylus pen contacts the virtual keyboard. Due to the difference between the first area and the second area, the probability that the touch input from the stylus pen has the contact point on the first key differently from the user's intention is that the touch input from the finger Unlike the intention, since the probability of having the contact point on the first key may be lower than that, the processor 120 may identify the character among the first character and the second character based on the type of the input means. there is.
- the processor 120 selects one of the first character and the second character further based on whether the mode of the electronic device 101 is a portrait mode or a landscape mode.
- the character can be identified. For example, while the portrait mode is provided, a first size of each of the plurality of keys in the virtual keyboard may be smaller than a second size of each of the plurality of keys in the virtual keyboard in which the landscape mode is provided.
- the processor 120 may select one of the first character and the second character based on the mode of the electronic device 101 . character can be identified.
- the processor 120 selects the character of the first character and the second character further based on a relative positional relationship between the position of the first key and the position of the user's hand that caused the touch input. can be identified. For example, on the condition that the first key is located relatively close to the hand of the user gripping the electronic device 101, the touch input is different from the user's intention, and the first key Since the probability of having the touch point is lower than the probability that the touch input has the touch point on the first key differently from the user's intention on the condition that the first key is located relatively far away from the hand, the processor (120), further based on the relative positional relationship, it is possible to identify the character of the first character and the second character.
- the processor 120 may perform another touch input immediately before the touch input on one of the plurality of keys (eg, “c” in at least one third character 308 shown in FIG. 3 ). ), the character among the first character and the second character may be identified based on a time between the timing at which the touch input was received and the timing at which the touch input was received. For example, the probability that the touch input has the contact point on the first key differently from the user's intention under the condition of typing the virtual keyboard at a first speed is that the virtual keyboard is typed at a second speed slower than the first speed. Since the touch input may be higher than the probability of having the contact point on the first key differently from the user's intention under the typing condition, the processor 120 further determines the first character and the first character based on the time. Among the two characters, the above character can be identified.
- the processor 120 may identify the character among the first character and the second character further based on the location of the contact point. For example, on the condition that the contact point is located within the center area of the first key, the probability that the touch input has the contact point on the first key differently from the user's intention is that the contact point is located outside the center area. Conditionally, since the touch input may be lower than the probability of having the contact point on the first key differently from the user's intention, the processor 120 further determines the first character and the first character based on the position of the contact point. Among the two characters, the above character can be identified.
- the processor 120 may display the identified character through the display within the text input portion. For example, on the condition that the identified character is the first character, the processor 120 recognizes the touch input as an input for the first key, and according to the recognition, the first character is the text input part. can be displayed within For another example, on the condition that the identified character is the second character, the processor 120 recognizes the touch input as an input for the second key instead of the input for the first key, and responds to the recognition. Accordingly, the second character may be displayed within the text input part.
- the processor 120 based on the identification of operation 204, in the space 318 represented by the cursor 309, the processor 120, in the space 318 represented by the first key 306, A first character (eg, “h”) may be displayed or the second character (eg, “u”) indicated by the second key 311 may be displayed.
- a first character eg, “h”
- the second character eg, “u”
- the electronic device 101 provides the first character represented by the first key on which the contact point of the touch input is located as well as the character represented by the second key adjacent to the first key.
- the touch input may be recognized using the second character and the at least one third character input to the text input portion prior to the touch input.
- the electronic device 101 can reduce the occurrence of typographical errors through this recognition. In other words, the electronic device 101 can enhance user convenience related to the use of the virtual keyboard.
- FIG. 4 is a flowchart illustrating a method of identifying one of a first character and a second character, according to an example. This method may be executed by the electronic device 101 shown in FIG. 1 or the processor 120 shown in FIG. 1 .
- Operations 402 to 406 of FIG. 4 may be detailed operations within operation 204 of FIG. 2 .
- operations 402 - 406 may be executed while executing operation 204 .
- the processor 120 includes at least a portion of the at least one third character that has been displayed in the text input portion before the touch input is received.
- At least one first word including the first character may be identified as a character next to the at least one third character among predetermined words (or a plurality of recommended words) of .
- the processor 120 may identify a context of the at least one third character based on executing natural language processing on the at least one third character.
- the processor 120 may identify the context by using a neural processing unit (NPU) and/or a graphics processing unit (GPU).
- the processor 120 may identify the plurality of predetermined words including at least a part of the at least one third character, based on the identified context.
- the processor 120 may identify the at least one first word including the first character as a character following the at least one third character among the plurality of predetermined words. For example, referring to FIG. 3 , the processor 120 converts “cute”, “charming”, and “cool” into the plurality of predetermined words based on the context of at least one third character 308 . , and "crazy". The processor 120 identifies "charming” including the first character (eg, "h") among "cute”, “charming”, “cool”, and “crazy” as the at least one first word. can do. However, it is not limited thereto.
- the processor 120 selects at least one second word including the second character as a character following the at least one third character among the plurality of predetermined words. can identify. For example, referring to FIG. 3 , the processor 120 converts “cute”, “charming”, and “cool” into the plurality of predetermined words based on the context of at least one third character 308 . , and "crazy". The processor 120 identifies "cute” including the second character (eg, "u") among "cute”, “charming”, “cool”, and “crazy” as the at least one second word. can do. However, it is not limited thereto.
- the processor 120 determines, based on the context of at least one third character 308
- the plurality of predetermined words including the identified “cute”, “charming”, “cool”, and “crazy”, “cu ⁇ ”, “cy ⁇ ”, “cg ⁇ ”, “cv ⁇ ”, “ Based on a search using "cb ⁇ ”, “cn ⁇ ”, and “cj ⁇ ", "cute” may be identified as the at least one second word.
- the second key 311 includes the second key 311, the third key 312, the fourth key 313, the fifth key 314, and the sixth key surrounding the first key 306.
- At least one of 315 , the seventh key 316 , and the eighth key 317 may be a key corresponding to the context of the third character 308 . However, it is not limited thereto.
- the processor 120 determines a first relationship between the at least one first word and the context derived from the at least one third character and the at least one third character. Based on the second relationship between the context and the at least one second word derived from, the character among the first character and the second character may be identified.
- the first relationship may indicate a probability that the touch input has the contact point on the first key according to the user's intention
- the second relationship may indicate that the touch input is different from the intention. Since the probability of having the contact point on the first key can be indicated, the processor 120 determines the at least one first character among the first character and the second character based on the first relationship and the second relationship. 3 You can identify the character to be displayed next to the character.
- the electronic device 101 determines whether the first character represented by the first key in which the contact point of the touch input is located fits the context derived from the at least one third character.
- the touch input may be recognized based on whether the second character indicated by the second key adjacent to the first key is suitable for the context. Through this recognition, the electronic device 101 can reduce the occurrence of typographical errors even when the touch input is received at a location not intended by the user. In other words, the electronic device 101 can enhance user convenience related to the use of the virtual keyboard.
- 5A is a flowchart illustrating a method of identifying one of a first character and a second character based on a location of a contact point of a touch input according to an example. This method may be executed by the electronic device 101 shown in FIG. 1 or the processor 120 shown in FIG. 1 .
- Operations 502 and 504 of FIG. 5A may be detailed operations within operation 204 of FIG. 2 .
- operation 204 may include operation 502 and operation 504 .
- operation 204 may include operation 402 through operation 406 , operation 502 , and operation 504 .
- it is not limited thereto.
- 5B illustrates an example of a recognition area and a protection area identified according to an example.
- the processor 120 identifies information about the usage history of the virtual keyboard stored in the electronic device 101 based on the location of the contact point, so that the touch input is determined by the touch input. A first probability that the touch input is an input for the first key and a second probability that the touch input is an input for the second key may be identified.
- the processor 120 may identify the location of the contact point in response to the touch input.
- the location may be indicated through coordinates.
- the processor 120 may identify the information to identify how another touch input having the contact point at the location, which was received prior to the touch input, was processed.
- the information may include first data for a probability that an input at a position indicated by each of the coordinates is an input to a key of the virtual keyboard including each of the coordinates, and the input at the position Second data about the probability that the key is an input to other keys surrounding the key may be included.
- the processor 120 obtains the first data and the second data for the location from the information, and identifies the first probability and the second probability based on the first data and the second data. can do. However, it is not limited thereto.
- the processor 120 may identify one of the first character and the second character further based on the first probability and the second probability.
- the processor 120 although the contact point is located on the first key, instead of recognizing the touch input as a touch input for the first key, the processor 120 is a touch input for the second key. can be recognized as However, it is not limited thereto.
- the processor 120 may recognize the touch input as a touch input for the first key. However, it is not limited thereto.
- the first probability and the second probability may be changed according to where the first key is located on the virtual keyboard.
- the plurality of keys in the virtual keyboard may include third keys within a predetermined area (eg, a center area) and fourth keys outside the predetermined area.
- the probability that a touch input to each of the third keys in the predetermined area is an input according to the user's intention is a probability that a touch input to each of the fourth keys in a peripheral area surrounding the predetermined area is the user's intention. Since it may be lower than the probability of being an input according to , the predetermined area may be defined within the electronic device 101 .
- the predetermined area may be defined as a center area 330 .
- the predetermined area may be changed according to a use history of the virtual keyboard. However, it is not limited thereto.
- the first probability and the second probability depend on whether the first key is one of the third keys or one of the fourth keys, can be changed.
- the first probability under the condition that the first key is one of the third keys may be lower than the first probability under the condition that the first key is one of the fourth keys.
- the second probability under the condition that the first key is one of the third keys may be higher than the second probability under the condition that the first key is one of the fourth keys.
- operation 204 of FIG. 2 includes operations 402 through 406 of FIG. 4 and operations 502 and 504 of FIG.
- a first weight may be applied to result data
- a second weight may be applied to second result data according to the identifications of operations 502 and 504 .
- the first weight and the second weight may be changed according to a usage history of the virtual keyboard.
- the first weight may be higher than the second weight.
- the first weight may be equal to the second weight.
- the first weight may be lower than the second weight.
- the processor 120 may identify the character among the first character and the second character based on the first result data to which the first weight is applied and the second result data to which the second weight is applied. .
- the processor 120 identifies a recognition area of the virtual keyboard based on the first result data to which the first weight is applied and the second result data to which the second weight is applied, and the identified Based on the recognition area, the character among the first character and the second character may be identified. For example, referring to FIG. 5B , the processor 120 has an array 301 based on the first result data to which the first weight is applied and the second result data to which the second weight is applied.
- a recognition area 550 of the virtual keyboard may be identified.
- the recognition area 550 represents a method for the processor 120 to recognize a touch input according to the first result data to which the first weight is applied and the second result data to which the second weight is applied.
- the recognition area 550 may not be visual information displayed through the display.
- the recognition area 550 may be identified in various shapes according to the first result data to which the first weight is applied and the second result data to which the second weight is applied.
- the recognition area 550 is based on a guard area , can be defined. For example, a touch input having a contact point on a central portion of an area occupied by one (a) key of the plurality of keys is the first result data to which the first weight is applied and the second weight to which the second weight is applied.
- the processor 120 determines the first result data to which the first weight is applied and the second weight.
- a recognition area 550 may be identified based on the protection area as well as the second result data to which is applied.
- the protection area like the protection area 560, may be defined as a circular (and/or elliptical) shape including a central portion of each of the plurality of keys.
- FIG. 5B shows a protection area 560 having a circular and/or elliptical shape, the shape of the protection area 560 may be defined as a rectangle or other shapes, unlike the illustration of FIG. 5B.
- FIG. 5A illustrates operations for identifying the character according to the identified probability (eg, the first probability and the second probability) based on the position of the contact point
- the processor 120 may include a first distance between the location of the contact point and the center point of the first key and a first distance between the location of the contact point and the center point of the second key. Based on the two distances, the character among the first character and the second character may be identified.
- the electronic device 101 may analyze the touch input based on the position of the contact point of the touch input before displaying a character in the text input portion in response to the touch input. .
- the electronic device 101 may provide a response to the touch input that meets the user's intention by recognizing the touch input based on the analysis. For example, the electronic device 101 may enhance user convenience related to the use of the virtual keyboard.
- FIG. 6 is a flowchart illustrating a method of enlarging a first key and a second key in a virtual keyboard according to an example. This method may be executed by the electronic device 101 shown in FIG. 1 or the processor 120 shown in FIG. 1 .
- FIG. 7 illustrates an example of a first key having an enlarged size and a second key having an enlarged size displayed according to an example.
- Operation 602 of FIG. 6 may be executed after operation 204 of FIG. 2 is executed, or may be included in operation 204 , and operation 604 of FIG. 6 may correspond to operation 206 of FIG. 2 . However, it is not limited thereto.
- the processor 120 selects one character from among the first character and the second character based on the first character, the second character, and the at least one third character. It can be identified whether it can identify. For example, the processor 120 may determine that the first data indicating that the touch input is an input for displaying the first character in the text input portion indicates that the touch input causes the second character to be displayed in the text input portion. It can be identified that one of the first character and the second character cannot be identified on the condition that it is the same as the second data representing the input for display or that the first data corresponds to the second data. there is.
- the processor 120 under the same condition as the first data representing the first relationship illustrated through the description of operation 406 and the second data representing the second relationship, the processor 120, the first character and the It can be identified that one of the second characters cannot be identified.
- the processor 120 under the same condition as the first data representing the first probability illustrated through the description of operation 504 and the second data representing the second probability, the processor 120, the first character and It is possible to identify that one of the second characters cannot be identified.
- the first data identified based on the first result data to which the first weight is applied and the second result data to which the second weight is applied exemplified in the description of FIG.
- the processor 120 selects one of the first character and the second character. It can identify that one character cannot be identified. However, it is not limited thereto.
- the processor 120 can execute operation 606 on the condition that it identifies that one of the first character and the second character cannot be identified, and otherwise execute operation 604 .
- the processor 120 may display the character identified from among the first character and the second character through the display within the text input portion.
- the character may be displayed next to the at least one third character.
- operation 604 may correspond to operation 206 of FIG. 2 .
- the processor 120 determines an enlarged size based on identifying that one of the first character and the second character cannot be identified to be displayed within the text input portion.
- the first key having and the second key having an enlarged size may be displayed on the display.
- the first key and the second key of the plurality of keys in the virtual keyboard are selected.
- the sizes of the remaining keys that have been excluded may be changed.
- the arrangement of the remaining keys may be changed.
- the display of the remaining keys may be stopped.
- the display of the remaining keys may resume after operation 608 is executed.
- the first key having the enlarged size and the second key having the enlarged size may partially overlap on the virtual keyboard.
- the first key having the enlarged size and the second key having the enlarged size may overlap at least partially on an area including the first key and the second key in the virtual keyboard.
- the processor 120 selects one of the first character (eg “h”) and the second character (eg “u”) to be displayed in the text input part.
- the first key 710 having the enlarged size and the second key having the enlarged size as superimposed on on the virtual keyboard having the arrangement 301. 720 may be displayed through the display.
- the first key 710 having the enlarged size and the second key 720 having the enlarged size may be visually highlighted with respect to the plurality of keys in the virtual keyboard.
- the color of each of the first key 710 having the enlarged size and the second key 720 having the enlarged size may be different from the color of each of the plurality of keys.
- the virtual keyboard may be displayed with a blur effect while the first key 710 having the enlarged size and the second key 720 having the enlarged size are displayed. .
- the processor 120 performs another touch input on one of the first key having the enlarged size and the second key having the enlarged size.
- can receive In one example, while the first key having the enlarged size and the second key having the enlarged size are displayed, the first key having the enlarged size and the second key having the enlarged size are displayed. Recognition of a touch input caused through the area remaining except for the area occupied by the key may be limited. However, it is not limited thereto. In one example, while the first key having the enlarged size and the second key having the enlarged size are displayed, the first key having the enlarged size and the second key having the enlarged size are displayed.
- An operating frequency of a touch sensor of the electronic device 101 used to identify a touch input on an area occupied by a key is determined by the first key having the enlarged size and the second key having the enlarged size. It may be higher than the operating frequency of the touch sensor in the non-display state. However, it is not limited thereto.
- the processor 120 may display a character indicated by a key on which the other touch input is received within the text input portion. For example, the processor 120 may display the character identified based on the position of the contact point of the other touch input within the text input portion without executing operation 204 .
- FIG. 6 shows the first character having the enlarged size and the first character having the enlarged size under the condition that one character to be displayed in the text input part cannot be identified from among the first character and the second character.
- operations for displaying 2 characters are shown, the above operations may be replaced with other operations according to embodiments.
- the processor 120 executes operations 606 and 610 on a condition that one of the first character and the second character to be displayed in the text input portion cannot be identified.
- the first character or the second character may be displayed within the text input part.
- the processor 120 may display the first character represented by the first key in the text input portion based on identification that the contact point of the touch input is located on the first key.
- the processor 120 may, based on identification that the context derived from the at least one third character corresponds more to the second character than the first character, to the second key represented by the second key.
- the second character may be displayed within the text input portion. However, it is not limited thereto.
- the electronic device 101 sets the enlarged size instead of displaying one character in the text input part under the condition that the user's intention cannot be estimated.
- the first key and the second key having the enlarged size may be displayed.
- the electronic device 101 may provide an enhanced user experience while the virtual keyboard is being used through such a display.
- FIG. 8 is a flowchart illustrating a method of adjusting information about a use history of a virtual keyboard according to an example. This method may be executed by the electronic device 101 shown in FIG. 1 or the processor 120 shown in FIG. 1 .
- FIG 9 illustrates an example of an input for deleting a character displayed in a text input portion according to an example.
- the processor 120 may display the identified character among the first character and the second character through the display within the text input portion.
- operation 802 may correspond to operation 206 of FIG. 2 , operation 604 of FIG. 6 , and operation 610 of FIG. 6 .
- the processor 120 determines whether, in response to the display of the character, an input for deleting the character displayed in the text input portion before another character is displayed in the text input portion is received. can be identified. For example, referring to FIG. 9 , the processor 120 may select the identified character (eg, “u”) among the first character (eg, “h”) and the second character (eg, “u”). ) is displayed in the text input portion 307, before another character is displayed in the text input portion 307, next to the pointer 309 among the plurality of keys in the virtual keyboard having an array 301. It can be identified whether an input 902 to a key 901 for deleting a character 900 is received.
- the processor 120 may select the identified character (eg, “u”) among the first character (eg, “h”) and the second character (eg, “u”). ) is displayed in the text input portion 307, before another character is displayed in the text input portion 307, next to the pointer 309 among the plurality of keys in the virtual keyboard having an array 301
- the processor 120 executes operation 806 on the condition that the input is received before the other character is displayed within the text input portion, and the other character is displayed within the text input portion.
- operation 808 may be executed.
- the processor 120 in response to identifying that the input has been received, based on data indicating that the location of the contact point does not correspond to the identified character, information about the use history of the virtual keyboard. can be adjusted, changed, or refined. For example, since the reception of the input may mean that the identification of the character is different from the user's intention, the processor 120 determines that the contact point of the touch input inputs the character into the text input portion. obtaining the data indicating that the damage was not caused, and based on the data, adjusting the information. For example, a probability that a touch input having the contact point received after executing operation 806 is recognized as a touch input for a key of the virtual keyboard representing the character may be lowered according to the result of the adjustment. However, it is not limited thereto.
- the processor 120 determines the usage history of the virtual keyboard based on data indicating that the position of the contact point corresponds to the identified character based on identifying that the input is not received.
- the above information may be adjusted, changed or improved. For example, since the fact that the input is not received may mean that the identification of the character corresponds to the user's intention, the processor 120 determines that the contact point of the touch input places the character in the text input portion. Obtain the data indicating what was caused to input and, based on the data, adjust the information. For example, a probability that a touch input having the contact point received after executing operation 808 is recognized as a touch input for a key of the virtual keyboard representing the character may increase according to the result of the adjustment. However, it is not limited thereto.
- the electronic device 101 may adjust the information about the usage history of the virtual keyboard.
- the electronic device 101 may reduce occurrence of typographical errors through such adjustment.
- the electronic device 101 can enhance user convenience related to the use of the virtual keyboard.
- FIG. 10 is a flow diagram illustrating a method of refraining from or bypassing identifying a second character represented by a second key according to an example. This method may be executed by the electronic device 101 shown in FIG. 1 or the processor 120 shown in FIG. 1 .
- the processor 120 may identify a context derived from the at least one third character displayed in the text input portion. For example, operation 1002 may be executed before a touch input for inputting a character to be displayed next to the at least one third character (eg, the touch input of operation 1004) is received.
- the processor 120 may receive the touch input for inputting a character to be displayed next to the at least one third character within the text input portion.
- the touch input may be a touch input having a contact point on the first key among the plurality of keys of the virtual keyboard.
- operation 1004 may be the same as or similar to operation 202 of FIG. 2 .
- the processor 120 may identify whether the first character represented by the first key at which the contact point is located corresponds to the context in response to the touch input. For example, that the first character corresponds to the context may mean that recognizing the touch input as a touch input for the first key has a relatively high probability of corresponding to the user's intention, so the processor ( 120) may identify a relationship between the first character and the context. For example, the processor 120 may execute operation 1008 on the condition that the first character corresponds to the context, and execute operation 1010 otherwise.
- the processor 120 may display the first character indicated by the first key within the text input portion based on identifying that the first character corresponds to the context. For example, the processor 120 refrains from or bypasses identifying the second key adjacent to the first key and/or identifying the second character represented by the second key; (bypass), based on identifying the first character as a character to be displayed next to the at least one third character, the first character may be displayed within the text input portion. In other words, the processor 120, in response to identifying that the first character corresponds to the context, without the second key and/or identification of the second character, inserts the first character into the text input portion. can be displayed in
- the processor 120 may identify the second character represented by the second key adjacent to the first key based on identifying that the first character differs from the context.
- the fact that the first character is different from the context may mean that the recognition of the touch input as a touch input for the first key is relatively different from the user's intention, so the processor ( 120) may identify the second key adjacent to the first key, and identify the second character represented by the second key, in order to search for another character distinct from the first character.
- the processor 120 may identify one of the first character and the second character in response to the identification of the second character. For example, the processor 120 may identify one of the first character and the second character based on a relationship between the first character and the context and a relationship between the second character and the context. can do.
- the processor 120 may display the identified character within the text input portion. For example, the identified character may be displayed next to the at least one third character.
- the electronic device 101 performs a comparison between the context and the first character represented by the first key at which the contact point of the touch input is located, the second key (and/or the If executed before identification of the second character), a character matching the user's intention may be displayed within the text input portion with a relatively fast response speed.
- FIG. 11 is a flow diagram illustrating a method of identifying a character based on adjusting a plurality of predetermined words, according to one example. This method may be executed by the electronic device 101 shown in FIG. 1 or the processor 120 shown in FIG. 1 .
- the processor 120 may identify a plurality of predetermined words including at least a portion of the at least one third character displayed in the text input portion. For example, the processor 120 may identify the plurality of predetermined words in order to estimate a character to be input next to the at least one third character.
- the processor 120 after identifying the plurality of predetermined words or while identifying the plurality of predetermined words, receives a touch input having a contact point on a first key of a plurality of keys of the virtual keyboard.
- operation 1104 may be the same as or similar to operation 202 of FIG. 2 .
- the processor 120 may adjust the plurality of predetermined words based on the position of the contact point of the touch input in response to the touch input. For example, processor 120 may delete some of the plurality of predetermined words identified in operation 1102 based on the location and/or add new words to the plurality of predetermined words identified in operation 1102. By adding a word based on the position, the plurality of predetermined words may be adjusted.
- the processor 120 may identify a recognition area of each of the plurality of keys of the virtual keyboard based on the plurality of predetermined words adjusted in operation 1106.
- the recognition area may be different from a size of each of the plurality of keys of the virtual keyboard displayed through the display.
- the display size of a key representing a character included in the plurality of predetermined words among the plurality of keys may be another (another) representing a character not included in the plurality of predetermined words among the plurality of keys.
- the size of the recognition area of the key may be larger than the size of the recognition area of the other key. However, it is not limited thereto.
- the processor 120 may identify a key corresponding to the touch input based on the identified recognition area. For example, the processor 120 may identify a key having a recognition area including the contact point of the touch input as a key corresponding to the touch input. However, it is not limited thereto.
- the processor 120 may display a character represented by the identified key within the text input portion.
- the electronic device 101 converts the touch input in which the user's intention can be reflected to at least one character displayed before the touch input. (eg, the at least one third character) may be applied to the derived context. Through this operation, the electronic device 101 may provide a service related to the virtual keyboard based on the touch input.
- FIG. 12 illustrates example software modules used to identify a character intended by a user in response to a touch input, according to an example.
- One or more operations of each of the software modules shown in FIG. 12 may be executed within a framework and/or software application by the processor 120 shown in FIG. 1 .
- an input dispatcher 1250 transmits information about a touch event including reception of the touch input in operation 202, operation 1004, or operation 1104 to a touch handling manager ( touch handling manager) (1251).
- the input manager 1250 may be a software module that delivers information about the touch event to a software application (eg, the virtual keyboard) within a framework.
- the touch handling manager 1251 may obtain information about the touch event from the input manager 1250 .
- the touch handling manager 1251 sends information about the location of the touch input obtained based on the information about the touch event to a key searcher 1252 (eg, it can be referred to as “FindMostLikelyKey”).
- a key searcher 1252 eg, it can be referred to as “FindMostLikelyKey”.
- the touch handling manager 1251 may be a software module that executes predetermined operations based on the information about the touch event.
- the key searcher 1252 may obtain the information about the location of the touch input from the touch handling manager 1251 .
- key searcher 1252 transmits information about the touch event to predictive checker 1253 (to identify the plurality of predetermined words based on the information about the location of the touch input).
- Example: may be referred to as "Check Prediction").
- the key finder 1252 may be a software module that identifies which of the plurality of keys in the virtual keyboard to associate the coordinates of a touch input with.
- the prediction checker 1253 may obtain the information about the touch event from the key searcher 1252 .
- prediction checker 1253 to prediction generator 1254 (eg, which may be referred to as "Make Prediction").
- Information on the touch event may be provided.
- the predictive checker 1253 uses a word input prior to the touch input to determine which key of a plurality of keys in the virtual keyboard the location of the touch input is used to connect to. It can be a software module.
- the prediction generator 1254 may obtain the information about the touch event from the prediction checker 1253 .
- prediction generator 1254 derives a context based on the information about the touch event, and checks prediction for information about the plurality of predetermined words identified based on the derived context. It can be provided to the person 1253.
- the prediction generator 1254 may be a software module that recommends the plurality of predetermined words based on a location of the touch input and a context derived from at least one character input prior to the touch input.
- the prediction checker 1253 may obtain the information about the plurality of predetermined words from the prediction generator 1254.
- predictive checker 1253 may provide information about a key in the virtual keyboard corresponding to the touch input to key searcher 1252 based on the information about the plurality of predetermined words. there is.
- the key searcher 1252 may obtain the information about the key from the prediction checker 1253.
- the key searcher 1252 may provide information about the key to the touch handling manager 1251. For example, in order to display a character represented by the key through the touch handling manager 1251, the key searcher 1252 may provide the information about the key to the touch handling manager 1251. For example, the touch handling manager 1251 may acquire the information about the key from the key searcher 1252 .
- the touch handling manager 1251 identifies the character corresponding to the key based on the information about the key, and sends information for displaying the character to a text indicator 1255 (eg: may be referred to as "TextView").
- a text indicator 1255 eg: may be referred to as "TextView”
- the text indicator 1255 may display the character within the text input portion based on acquiring the information for displaying the character from the touch handling manager 1251 .
- An electronic device, method, and non-transitory computer readable storage medium include a first character represented by a first key in a virtual keyboard on which a touch input is received and a second key adjacent to the first key, By recognizing the touch input based on the second character, occurrence of a typographical error due to the touch input can be reduced.
- an electronic device may include a display, a memory configured to store instructions, and a processor.
- the processor may be configured to receive a touch input having a point of contact on a first key among a plurality of keys in the virtual keyboard displayed through the display.
- the processor in response to the touch input, displays a first character represented by the first key, a second character represented by a second key adjacent to the first key among the plurality of keys, and the virtual keyboard.
- Based on at least one third character displayed before receiving the touch input within the displayed text input portion, one (a) character of the first character and the second character may be identified.
- the processor may be configured to display the identified character through the display within the text input portion.
- the processor when the instructions are executed, the first character as a character next to the at least one third character among a plurality of predetermined words including at least a portion of the at least one third character. It may be configured to identify at least one first word including.
- the processor when the instructions are executed, is configured to identify, among the plurality of predetermined words, at least one second word including the second character as a character following the at least one third character. can be configured.
- the processor may, when the instructions are executed, a first relationship between a context derived from the at least one third character and the at least one first word and the context and the at least one first word. Based on a second relationship between two words, the character of the first character and the second character may be identified.
- the processor may be configured to, upon execution of the instructions, identify the character of the first character and the second character further based on the location of the contact point.
- the processor when the instructions are executed, identifies information about a use history of the virtual keyboard, stored in the electronic device, based on the location, so that the touch input is an input for the first key. and to identify a first probability and a second probability that the touch input is an input for the second key.
- the processor may be configured to identify the character among the first character and the second character further based on the first probability and the second probability when the instructions are executed.
- the plurality of keys may include third keys within the predetermined area and fourth keys outside the predetermined area.
- the first probability and the second probability may be changed according to whether the first key is one of the third keys or one of the fourth keys.
- the processor may be configured to identify a key corresponding to the context among keys surrounding the first key as the second key in response to the touch input when the instructions are executed.
- the processor when the instructions are executed, identifies one character of the first character and the second character based on the first character, the second character, and the at least one third character. On a condition that cannot be performed, the first key having an enlarged size and the second key having an enlarged size may be displayed through the display. In one example, the processor, when the instructions are executed, to receive another touch input to one of the first key having the enlarged size and the second key having the enlarged size. can be configured. In one example, the processor may be further configured to, when the instructions are executed, display a character represented by the key on which the other touch input is received through the display within the text input portion.
- the processor may, when the instructions are executed, an input for deleting the character displayed in the text input portion from the text input portion before another character is displayed in the text input portion through the virtual keyboard.
- the virtual keyboard may be further configured to adjust information about a use history of the virtual keyboard stored in the electronic device, based on whether the information is received through the electronic device.
- the processor when the instructions are executed, may be configured to identify the type of input means that caused the touch input. In one example, the processor is configured to, when the instructions are executed, identify the character of the first character and the second character further based on whether the identified type is a user's finger or a stylus pen. It can be.
- the processor when the instructions are executed, further based on whether the mode of the electronic device is a portrait mode or a landscape mode, the first character and the second character It may be configured to identify the character among the characters.
- the processor when the instructions are executed, further based on a relative positional relationship between the position of the first key and the position of the user's hand that caused the touch input, the first character and the second character may be configured to identify the character of
- the processor when the instructions are executed, between a timing at which another touch input was received for one of the plurality of keys immediately prior to the touch input and a timing at which the touch input was received. Further based on time, it may be configured to identify the character of the first character and the second character.
- the processor when the instructions are executed, based on identifying that the first character represented by the first key corresponds to a context derived from the at least one third character, the second character It may be further configured to refrain from or bypass identifying the second character represented by the key and identify the first character as the character.
- Electronic devices may be devices of various types.
- the electronic device may include, for example, a portable communication device (eg, a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance.
- a portable communication device eg, a smart phone
- a computer device e.g., a smart phone
- a portable multimedia device e.g., a portable medical device
- a camera e.g., a portable medical device
- a camera e.g., a portable medical device
- a camera e.g., a portable medical device
- a camera e.g., a camera
- a wearable device e.g., a smart bracelet
- first, second, or first or secondary may simply be used to distinguish that component from other corresponding components, and may refer to that component in other respects (eg, importance or order) is not limited.
- a (eg, first) component is said to be “coupled” or “connected” to another (eg, second) component, with or without the terms “functionally” or “communicatively.”
- the certain component may be connected to the other component directly (eg by wire), wirelessly, or through a third component.
- module used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and is interchangeable with terms such as, for example, logic, logical blocks, parts, or circuits.
- a module may be an integrally constructed component or a minimal unit of components or a portion thereof that performs one or more functions.
- the module may be implemented in the form of an application-specific integrated circuit (ASIC).
- ASIC application-specific integrated circuit
- a storage medium eg, internal memory 136 or external memory 138
- a machine eg, electronic device 101
- a processor eg, the processor 120
- a device eg, the electronic device 101
- 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.
- the storage medium is a tangible device and does not contain a signal (e.g. electromagnetic wave), and this term refers to the case where data is stored semi-permanently in the storage medium. It does not discriminate when it is temporarily stored.
- a signal e.g. electromagnetic wave
- the method according to various embodiments disclosed in this document may be included and provided in a computer program product.
- Computer program products may be traded between sellers and buyers as commodities.
- Computer program products are distributed in the form of machine-readable storage media (e.g. CD-ROM (compact disc read only memory)) or through application stores (e.g. Play Store). ) or directly between two user devices (eg smart phones), online distribution (eg download or upload).
- online distribution at least part of the computer program product may be temporarily stored or temporarily created in a device-readable storage medium such as a manufacturer's server, an application store server, or a relay server's memory.
- each component (eg, module or program) of the above-described components may include a single object or a plurality of entities, and some of the plurality of entities may be separately disposed in other components. there is.
- one or more components or operations among the aforementioned corresponding components may be omitted, or one or more other components or operations may be added.
- a plurality of components eg modules or programs
- the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by a corresponding component of the plurality of components prior to the integration. .
- the actions performed by a module, program, or other component are executed sequentially, in parallel, iteratively, or heuristically, or one or more of the actions are executed in a different order, or omitted. or one or more other actions may be added.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
일 예에 따른, 디스플레이를 포함하는 전자 장치를 동작하기 위한 방법은, 상기 디스플레이를 통해 표시된 가상 키보드 내의 복수의 키들 중 제1 키 상에서 접촉점(a point of contact)을 가지는 터치 입력을 수신하는 동작을 포함할 수 있다. 상기 방법은, 상기 터치 입력에 응답하여, 상기 제1 키에 의해 나타내어지는 제1 캐릭터, 상기 복수의 키들 중 상기 제1 키에 인접한 제2 키에 의해 나타내어지는 제2 캐릭터, 및 상기 가상 키보드와 함께 표시된 텍스트 입력 부분 내에서 상기 터치 입력이 수신되기 전 표시되었던 적어도 하나의 제3 캐릭터에 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 하나의(a) 캐릭터를 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 식별된 캐릭터를 상기 텍스트 입력 부분 내에서 상기 디스플레이를 통해 표시하는 동작을 포함할 수 있다.
Description
아래의 설명들은, 가상 키보드(virtual keyboard) 상의 터치 입력으로부터 사용자 의도(user intent)를 인식하기 위한 전자 장치(electronic device), 방법, 및 비일시적 컴퓨터 판독가능 저장 매체에 관한 것이다.
전자 장치의 디스플레이를 통해 표시되는 가상 키보드(virtual keyboard)는, 물리적 키들의 요구 없이 캐릭터(character)들의 입력을 인가하는 소프트웨어 구성요소일 수 있다. 상기 가상 키보드와의 인터액션(interaction)은, 상기 디스플레이와 작동적으로 결합된 상기 전자 장치의 터치 센서를 통해 통상(mostly) 발생할(happen) 수 있다.
일 예에 따른, 전자 장치(electronic device)는, 디스플레이, 인스트럭션(instruction)들을 저장하도록 구성된 메모리, 및 프로세서를 포함할 수 있다. 상기 프로세서는, 상기 인스트럭션들이 실행될 시, 상기 디스플레이를 통해 표시된 가상 키보드 내의 복수의 키들 중 제1 키 상에서 접촉점(a point of contact)을 가지는 터치 입력을 수신하도록 구성될 수 있다. 상기 프로세서는, 상기 터치 입력에 응답하여, 상기 제1 키에 의해 나타내어지는 제1 캐릭터, 상기 복수의 키들 중 상기 제1 키에 인접한 제2 키에 의해 나타내어지는 제2 캐릭터, 및 상기 가상 키보드와 함께 표시된 텍스트 입력 부분 내에서 상기 터치 입력이 수신되기 전 표시되었던 적어도 하나의 제3 캐릭터에 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 하나의(a) 캐릭터를 식별하도록 구성될 수 있다. 상기 프로세서는, 상기 식별된 캐릭터를 상기 텍스트 입력 부분 내에서 상기 디스플레이를 통해 표시하도록, 구성될 수 있다.
일 예에 따른, 디스플레이를 포함하는 전자 장치를 동작하기 위한 방법은, 상기 디스플레이를 통해 표시된 가상 키보드 내의 복수의 키들 중 제1 키 상에서 접촉점(a point of contact)을 가지는 터치 입력을 수신하는 동작을 포함할 수 있다. 상기 방법은, 상기 터치 입력에 응답하여, 상기 제1 키에 의해 나타내어지는 제1 캐릭터, 상기 복수의 키들 중 상기 제1 키에 인접한 제2 키에 의해 나타내어지는 제2 캐릭터, 및 상기 가상 키보드와 함께 표시된 텍스트 입력 부분 내에서 상기 터치 입력이 수신되기 전 표시되었던 적어도 하나의 제3 캐릭터에 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 하나의(a) 캐릭터를 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 식별된 캐릭터를 상기 텍스트 입력 부분 내에서 상기 디스플레이를 통해 표시하는 동작을 포함할 수 있다.
일 예에 따른, 비일시적 컴퓨터 판독가능 저장 매체는, 하나 이상의 프로그램들을 저장할 수 있다. 상기 하나 이상의 프로그램들은, 디스플레이를 포함하는 전자 장치의 프로세서에 의해 실행될 시, 상기 디스플레이를 통해 표시된 가상 키보드 내의 복수의 키들 중 제1 키 상에서 접촉점(a point of contact)을 가지는 터치 입력을 수신하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 프로세서에 의해 실행될 시, 상기 터치 입력에 응답하여, 상기 제1 키에 의해 나타내어지는 제1 캐릭터, 상기 복수의 키들 중 상기 제1 키에 인접한 제2 키에 의해 나타내어지는 제2 캐릭터, 및 상기 가상 키보드와 함께 표시된 텍스트 입력 부분 내에서 상기 터치 입력이 수신되기 전 표시되었던 적어도 하나의 제3 캐릭터에 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 하나의(a) 캐릭터를 식별하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 프로세서에 의해 실행될 시, 상기 식별된 캐릭터를 상기 텍스트 입력 부분 내에서 상기 디스플레이를 통해 표시하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다.
도 1은 다양한 실시예들에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
도 2는 일 예에 따라, 터치 입력에 응답하여 사용자에 의해 의도된 캐릭터를 식별하는 방법을 도시하는 흐름도이다.
도 3은 일 예에 따라 전자 장치의 디스플레이를 통해 표시되는 예시적인(exemplary) 가상 키보드를 도시한다.
도 4는 일 예에 따라, 제1 캐릭터 및 제2 캐릭터 중 하나의 캐릭터를 식별하는 방법을 도시하는 흐름도이다.
도 5a는 일 예에 따라 터치 입력의 접촉점의 위치에 기반하여 제1 캐릭터 및 제2 캐릭터 중 하나의 캐릭터를 식별하는 방법을 도시하는 흐름도이다.
도 5b는 일 예에 따라 식별되는 인식 영역 및 보호 영역의 예를 도시한다.
도 6은 일 예에 따라 가상 키보드 내의 제1 키 및 제2 키를 확대하는 방법을 도시하는 흐름도이다.
도 7은 일 예에 따라 표시된 확대된 사이즈를 가지는 제1 키 및 확대된 사이즈를 가지는 제2 키의 예를 도시한다.
도 8은 일 예에 따라 가상 키보드에 대한 사용 이력에 대한 정보를 조정하는(adjust) 방법을 도시하는 흐름도이다.
도 9는 일 예에 따라 텍스트 입력 부분 내에서 표시된 캐릭터를 삭제하기 위한 입력의 예를 도시한다.
도 10은 일 예에 따라 제2 키에 의해 나타내어지는 제2 캐릭터를 식별하는 것을 삼가하거나 우회하는 방법을 도시하는 흐름도이다.
도 11은 일 예에 따라, 복수의 미리 결정된 단어들을 조정하는 것에 기반하여 캐릭터를 식별하는 방법을 도시하는 흐름도이다.
도 12는 일 예에 따라, 터치 입력에 응답하여 사용자에 의해 의도된 캐릭터를 식별하기 위해 이용되는 예시적인 소프트웨어 모듈들을 도시한다.
도 1은, 다양한 실시예들에 따른, 네트워크 환경(100) 내의 전자 장치(101)의 블록도이다.
도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108) 중 적어도 하나와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 모듈(150), 음향 출력 모듈(155), 디스플레이 모듈(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 연결 단자(178), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(178))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(176), 카메라 모듈(180), 또는 안테나 모듈(197))은 하나의 구성요소(예: 디스플레이 모듈(160))로 통합될 수 있다.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 저장하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(101)가 메인 프로세서(121) 및 보조 프로세서(123)를 포함하는 경우, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(160), 센서 모듈(176), 또는 통신 모듈(190))과 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능 모델이 수행되는 전자 장치(101) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(108))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서 모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 모듈(150)은, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(150)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 모듈(155)은 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 모듈(155)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
디스플레이 모듈(160)은 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 디스플레이 모듈(160)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 모듈(150)을 통해 소리를 획득하거나, 음향 출력 모듈(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제1 네트워크(198)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제2 네트워크(199)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(104)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 또는 인증할 수 있다.
무선 통신 모듈(192)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(192)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(192)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO(full dimensional MIMO)), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(192)은 전자 장치(101), 외부 전자 장치(예: 전자 장치(104)) 또는 네트워크 시스템(예: 제2 네트워크(199))에 규정되는 다양한 요구사항을 지원할 수 있다. 일실시예에 따르면, 무선 통신 모듈(192)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈(197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일실시예에 따르면, 안테나 모듈(197)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다.
다양한 실시예에 따르면, 안테나 모듈(197)은 mmWave 안테나 모듈을 형성할 수 있다. 일실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(102, 또는 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(102, 104, 또는 108) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(101)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(104)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(108)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일실시예에 따르면, 외부의 전자 장치(104) 또는 서버(108)는 제2 네트워크(199) 내에 포함될 수 있다. 전자 장치(101)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.
복수의 캐릭터(character)들을 각각 나타내는(indicate) 가상 키보드(virtual keyboard)의 복수의 키들은, 전자 장치의 디스플레이의 표시 영역의 한계로 인하여, 서로 인접하게 배열될(arranged) 수 있다. 이러한 배열로 인하여, 의도되지 않은(non-intended) 캐릭터가 상기 가상 키보드 상의 터치 입력에 응답하여 상기 디스플레이를 통해 표시되는 타이포그래피컬 에러(typographical error)가 발생할 수 있다.
본 개시의 어떤 예들은, 복수의 키들을 포함하는 가상 키보드를 이용하여 캐릭터를 입력하기 위한 방법을 제공한다. 예를 들면, 상기 가상 키보드는, 터치 스크린 상에 표시될 수 있다. 예를 들면, 이러한 방법은, 도 1 내에서 도시된 전자 장치(101) 또는 도 1 내에서 도시된 프로세서(120)에 의해 실행될 수 있다.
상기 방법은, 상기 가상 키보드 상의(예: 상기 터치 스크린을 통해) 터치 입력을 수신하는 동작, 상기 터치 입력의 터치 부분에 기반하여 하나 이상의 후보 캐릭터들의 세트를 식별하는 동작, 및 입력될 캐릭터로 상기 후보 캐릭터들 중 하나의 캐릭터를 선택하는 동작을 포함할 수 있다.
어떤 예들에서, 상기 후보 캐릭터들의 세트는, 상기 터치 입력의 상기 터치 위치에서 위치된 키와 관련된 하나 이상의 캐릭터들을 포함할 수 있다. 제한되지 않는 예시로, 사용자가 캐릭터 "h"(도 3의 306 참고)에 대응하는 키를 터치하는 경우, 상기 후보 캐릭터들의 세트는 캐릭터 "h"를 포함할 수 있다. 또한, 제한되지 않는 예시로, 사용자가 다수의 캐릭터들 "g", "h", 및 "I"(도 3의 304 참고)에 대응하는 단일 키를 터치하는 경우, 상기 후보 캐릭터들의 세트는 "g", "h", 및 "i"를 포함할 수 있다.
어떤 예들에서, 상기 후보 캐릭터들의 세트는, 상기 터치 입력의 상기 터치 위치에서 위치된 키에 인접한 하나 이상의 키들과 관련된 하나 이상의 캐릭터들을 포함할 수 있다. 제한되지 않는 예시로, 사용자가 캐릭터 "h"에 대응하는 키를 터치하고 상기 키가 캐릭터들 "u", "y", "g", "v", "b", "n", 및 "j"(도 3의 311 내지 317 참고)에 대응하는 키들에 둘러싸인 경우, 상기 후보 캐릭터들의 세트는, 캐릭터들 "u", "y", "g", "v", "b", "n", 및 "j"을 포함할 수 있다.
어떤 예들에서, 상기 후보 캐릭터들의 세트는, 상기 터치 입력의 상기 터치 위치(예: 도 3 내에서 도시된 터치 위치(305))로부터 미리 결정된 거리 이내에 위치된 하나 이상의 키들과 관련된 하나 이상의 캐릭터들을 포함할 수 있다.
어떤 예들에서, 상기 후보 캐릭터들 중 하나의 캐릭터를 선택하는 동작은, 각 후보 캐릭터를 위한 우도 값을 결정하는 동작을 포함할 수 있다. 여기서, 각 우도 값은, 해당 후보 캐릭터가 상기 터치 입력에 의해 선택되도록 의도되었을 추정 확률을 나타낸다. 예를 들면, 상대적으로 높은 우도 값은 사용자가 해당 캐릭터를 입력하는 것을 의도하였을 확률이 상대적으로 높음을 나타낸다. 반면, 상대적으로 낮은 우도 값은 사용자가 해당 캐릭터를 입력하는 것을 의도하였을 확률이 상대적으로 낮음을 나타낸다.
어떤 예들에서, 상기 방법은, 상기 터치 입력을 적용하기 위해 이용된 객체의 유형(예: 손가락 또는 스타일러스)을 결정하는 동작을 포함할 수 있다. 여기서, 상기 우도 값들은 객체의 상기 결정된 유형에 기반하여 결정될 수 있다. 제한되지 않는 예로, 사용자는 손가락을 이용할 시와 비교하여 스타일러스를 이용할 시 보다 정확하게 일반적으로 터치 입력들을 적용한다. 따라서, 스타일러스를 이용할 시 실제 터치된 키가 터치되도록 의도된 키일 확률이 손가락을 이용할 시보다 높다. 이에 따라, 사용자가 어떤 캐릭터에 대응하는 키를 터치할 시, 스타일러스가 이용된 경우 손가락이 이용된 경우보다 높은 우도 값이 할당될 수 있다.
어떤 예들에서, 상기 우도 값들은 상기 터치 위치의 상기 위치에 기반하여 결정될 수 있다. 제한되지 않는 예로, 사용자는 키보드의 중심 영역에 입력들을 적용할 시 사이드 영역에 적용할 시보다 정확하게 터치 입력들을 일반적으로 적용할 수 있다. 따라서, 상기 키보드의 중심 영역에 터치 입력을 적용할 시 실제 터치된 키가 터치될 것으로 의도된 상기 키일 확률이 엣지 영역에 터치 입력을 적용할 시보다 더 높을 수 있다. 이에 따라, 사용자가 어떤 캐릭터에 대응하는 키를 터치할 시, 상기 키가 중심 영역에 있는 경우 상기 키가 엣지 영역에 있는 것보다 높은 우도 값이 캐릭터에 할당될 수 있다. 다른 제한되지 않는 예로, 사용자는 어떤 키들에 대하여 어떤 다른 키들에 대하여 보다 더 정확하게 터치할 수 있기 때문에, 따라서 이에 따라 상기 키들에 대응하는 캐릭터들의 우도 값들이 결정될 수 있다.
어떤 예들에서, 상기 방법은, 사용자의 손(예: 장치를 양 손으로 잡고 터치 입력을 적용)의 위치를 결정하는 동작을 포함할 수 있다. 상기 우도 값들은, 사용자의 손의 위치에 대한 터치 위치의 위치에 기반하여 결정될 수 있다. 제한되지 않는 예로, 사용자는 터치 위치가 장치를 소지한 사용자의 손에 상대적으로 가까울 시보다 장치를 소지한 사용자의 손으로부터 상대적으로 멀리 위치될 시 보다 정확하게 터치 입력을 일반적으로 적용할 수 있다. 따라서, 사용자의 손으로부터 상대적으로 먼 위치에서 터치 입력을 적용할 시 사용자의 손에 상대적으로 가까운 위치에서 터치 입력을 적용할 시보다 실제 터치된 키가 터치될 것으로 의도된 키일 확률이 높다. 이에 따라, 사용자는 어떤 캐릭터에 대응하는 키를 터치할 시, 사용자의 손으로부터 상대적으로 멀 시가 사용자의 손에 상대적으로 가까울 시보다 높은 우도 값이 상기 캐릭터에 할당될 수 있다.
어떤 예들에서, 우도 값들은 가상 키보드의 키들의 사이즈에 기반하여 결정될 수 있다. 제한되지 않는 예에서, 사용자는 상기 키들이 상대적으로 작을 시보다 상기 키들이 상대적으로 클 시 보다 정확하게 터치 입력을 일반적으로 적용할 수 있다. 따라서, 상대적을 큰 키 상의 터치 입력을 적용할 시가 상대적으로 작은 키에 대한 터치 입력을 적용할 시보다 실제 터치된 키가 터치될 것으로 의도된 키일 확률이 높을 수 있다. 이에 따라, 사용자는 어떤 키에 대응하는 키를 터치할 시 상기 키가 상대적으로 작을 시보다 상기 키가 상대적으로 클 시 보다 높은 우도 값이 캐릭터에 할당될 수 있다.
어떤 예들에서, 상기 우도 값들은, 상기 가상 키패드의 디스플레이 모드(예: 포트레이트 모드 또는 랜드스케이프 모드)에 기반하여 결정될 수 있다. 제한되지 않는 예시에서, 상기 가상 키보드의 키 사이즈는 상기 디스플레이 모드가 포트레이트 모드일 때보다 랜드스케이프 모드일 시 더 클 수 있다. 이에 따라, 터치된 키에 대응하는 캐릭터에, 상술한 바와 같이, 디스플레이 모드에 따른 키 사이즈에 기반하여 우도 값이 할당될 수 있다.
어떤 예들에서, 상기 우도 값들은, 키 선택 사이의 시간 구간에 기반하여 결정될 수 있다. 예를 들면, 상기 시간 구간은 현재 키 선택 및 이전 키 선택 사이의 구간일 수 있거나, 이전 N개 키 선택들 사이의 평균 시간 구간일 수 있다. 제한되지 않는 예에서, 사용자는 타이핑 속도(예: 상술한 시간 구간에 의해 표현되는)가 상대적으로 빠를 시보다 상대적으로 느릴 시, 보다 정확하게 터치 입력을 일반적으로 적용할 수 있다. 따라서, 상대적으로 느린 스피드의 타이핑 동안 터치 입력을 적용할 시가 상대적으로 빠른 스피드의 타이핑 동안 터치 입력을 적용할 시보다 터치된 키가 터치되도록 의도된 키일 확률이 높을 수 있다. 이에 따라, 사용자가 어떤 캐릭터에 대응하는 키를 터치할 시, 상기 타이핑 스피드가 상대적으로 낮을 시가 상기 타이핑 스피드가 상대적으로 높을 시보다 높은 우도 값이 캐릭터에 할당될 수 있다.
어떤 예들에서, 위 케이스들 각각에서, 실제 터치된 키에 대응하는 캐릭터의 상기 우도 값이 상대적으로 높을 시, 다른 키들(예: 인접 키들)에 대응하는 우도 값들은 상대적으로 낮을 수 있다. 반대로, 실제로 터치된 키에 대응하는 캐릭터의 우도 값이 상대적으로 낮으면 다른 키(예: 인접 키들)에 대응하는 캐릭터의 우도 값은 상대적으로 높을 수 있다.
어떤 예들에서, 상기 우도 값들은 하나 이상의 이전 입력된 캐릭터들에 기반하여 결정될 수 있다. 예를 들면, 텍스트 분석이 이전 입력된 캐릭터들의 후보 캐릭터들 각각의 우도를 결정하기 위해 이전 입력된 캐릭터들에 대하여 수행될 수 있다. 이것은 아래의 하나 이상의 동작들을 포함할 수 있다.
예를 들면, 후보 문자가 하나 이상의 이전에 입력된 캐릭터와 결합된 경우(예: 다음 캐릭터로), 또는 첫번째 캐릭터로서 잠재적으로 유효한 단어 또는 부분 단어를 형성하는 경우 비교적 높은 우도 값이 할당될 수 있다. 반대로, 후보 캐릭터가 잠재적으로 유효한 단어를 형성하지 않는 경우, 상대적으로 낮은 우도 값이 할당될 수 있다.
예를 들면, 후보 캐릭터가 하나 이상의 이전에 입력된 캐릭터와 결합되어(예: 다음 캐릭터로) 비교적 일반적 단어 또는 부분 단어를 잠재적으로 형성하거나 새로운 단어의 첫 캐릭터인 경우, 상대적으로 높은 우도 값이 할당될 수 있다. 반대로, 상기 후보 캐릭터가 상대적으로 희소한 단어를 형성하는 경우 상대적으로 낮은 우도 값이 할당될 수 있다.
예를 들면, 후보 캐릭터가 사용자에 의해 자주 사용된(예: 과거 히스토리에 의해 결정된) 단어 또는 일부 단어를 잠재적으로 형성하는 경우 상대적으로 높은 우도 값이 할당될 수 있다. 반대로, 후보 캐릭터가 잠재적으로 사용자에 의해 상대적으로 드물게 사용된 단어 또는 일부 단어를 잠재적으로 형성하는 경우, 보다 낮은 우도 값이 할당될 수 있다.
어떤 예에서, 상술한 경우들 각각에서, 상기 우도 값들은 과거 이력에 기반하여 결정될 수 있다. 어떤 예들에서, 상기 우도 값들은 사용 이력에 기반하여 다이나믹하게 조정될 수 있다.
당업자는 우도 값들을 상기 후보 캐릭터들에 할당하기 위한 위 설명된 다양한 요소들이 개별적으로 이용되거나 임의 적절한 조합으로 이용될 수 있음을 이해할 것이다. 어떤 다른 요소들이 개별적으로 또는 상기 하나 이상의 요소들과 조합하여 이용될 수 있다.
어떤 실시예들에서, 상기 후보 캐릭터들 중 하나의 캐릭터를 입력될 캐릭터로 선택하는 동작은, 하나 이상의 후보 캐릭터들의 제1 세트를 결정하는 동작, 상기 제1 세트 내에서 각 후보 캐릭터를 위한 우도 값을 결정하는 동작, 상기 제1 세트 내의 상기 후보 캐릭터들을 위한 상기 우도 값들에 기반된 컨디션이 만족되는지 여부를 결정하는 동작, 및 상기 컨디션이 만족되는 경우 상기 제1 세트 내의 상기 후보 캐릭터들을 위한 상기 우도 값들에 기반하여 입력될 캐릭터로 후보 캐릭터들의 상기 제1 세트 중 하나의 캐릭터를 선택하는 동작을 포함할 수 있다. 어떤 예들에서, 상기 방법은, 상기 컨디션이 만족되지 않는 경우, 하나 이상의 후보 캐릭터들의 제2 세트를 결정하는 동작, 상기 제2 세트 내의 각 후보 캐릭터를 위한 우도 값을 결정하는 동작, 및 상기 제2 세트 내의 상기 후보 캐릭터들을 위한 상기 우도 값들에 기반하여 입력될 캐릭터로 상기 후보 값들의 제2 세트 중 하나의 캐릭터를 선택하는 동작을 포함할 수 있다.
어떤 실시예들에서, 상기 컨디션은, 후보 캐릭터들의 적어도 하나의 우도 값이 해당 후보 캐릭터가 터치 입력에 의해 선택되도록 의도되었을, 어떤 임계 값 이상의 추정된 확률을 나타냄을 포함할 수 있다.
후보 캐릭터들의 상기 제1 및 제2 세트들은 임의의 적합한 후보 캐릭터들의 세트들로, 위에서 설명된 후보 캐릭터들의 세트들일 수 있다. 예를 들면, 후보 캐릭터들의 제1 세트는 터치 입력의 터치 위치에서 위치된 키와 관련된 하나 이상의 캐릭터들을 포함할 수 있다. 예를 들면, 후보 캐릭터들의 제2 세트는 터치 입력의 터치 위치에서 위치된 키에 인접한 하나 이상의 키들과 관련된 하나 이상의 캐릭터들을 포함할 수 있다.
도 2는 일 예에 따라, 터치 입력에 응답하여 사용자에 의해 의도된 캐릭터를 식별하는 방법을 도시하는 흐름도이다. 이러한 방법은, 도 1 내에서 도시된 전자 장치(101) 또는 도 1 내에서 도시된 프로세서(120)에 의해 실행될 수 있다.
도 3은 일 예에 따라 전자 장치의 디스플레이를 통해 표시되는 예시적인(exemplary) 가상 키보드를 도시한다.
도 2를 참조하면, 동작 202에서, 프로세서(120)는, 디스플레이(예: 디스플레이 모듈(160))를 통해 표시된 가상 키보드 내의 복수의 키들 중 제1 키 상에서 접촉점(a point of contact)을 가지는 터치 입력을 수신할 수 있다.
예를 들면, 상기 가상 키보드는, 물리적 키(physical key)들의 요구 없이 캐릭터(character)들의 입력을 인가하는 소프트웨어 구성요소일 수 있다. 예를 들면, 상기 가상 키보드는, 상기 캐릭터들을 각각 나타내는 키들을 포함하는 복수의 키들을 포함할 수 있다.
예를 들면, 상기 캐릭터들 각각은, 의사 전달을 위해 정의된 개체(entity)일 수 있다. 예를 들면, 상기 캐릭터들은, 글자(letter)를 포함할 수 있다. 예를 들면, 상기 캐릭터들은, 심볼(symbol), 마크(mark), 또는 사인(sign)을 포함할 수 있다. 예를 들면, 상기 캐릭터들은, 숫자를 포함할 수 있다. 예를 들면, 상기 캐릭터들은, 이모티콘(emoticon) 또는 이모지 그래픽적 객체(emoji graphical object)와 같은, 아이콘을 포함할 수 있다. 하지만, 이에 제한되지 않는다.
예를 들면, 상기 복수의 키들은, 상기 캐릭터들 중 하나의 캐릭터를 상기 디스플레이를 통해 표시하기 위한, 실행가능한 객체(executable object)를 포함할 수 있다. 예를 들면, 상기 캐릭터는, 상기 실행가능한 객체에 대한 입력에 응답하여, 상기 디스플레이를 통해 표시될 수 있다. 하지만, 이에 제한되지 않는다.
예를 들면, 상기 복수의 키들은, 미리 결정된 기능을 실행하기 위한 실행가능한 객체를 포함할 수 있다. 예를 들면, 상기 미리 결정된 기능은, 상기 가상 키보드와 함께 표시된 텍스트 입력 부분 내의 포인터(pointer)(또는 커서(cursor))의 위치를 변경하는 기능 및/또는 상기 텍스트 입력 부분 내에 표시된 캐릭터를 삭제하는 기능을 포함할 수 있다. 하지만, 이에 제한되지 않는다.
예를 들면, 상기 디스플레이를 통해 표시되는 상기 가상 키보드는, 전자 장치(101)의 설정 또는 사용자 설정에 따라, 다양한 배열들로 상기 복수의 키들을 포함할 수 있다. 예를 들어, 도 3을 참조하면, 상기 복수의 키들은, 전자 장치(101)의 설정 또는 사용자 설정에 따라, 제1 배열(301)로 상기 가상 키보드 내에 포함되거나, 제2 배열(302)로 상기 가상 키보드 내에 포함되거나, 제3 배열(303)로 상기 가상 키보드 내에 포함되거나, 제4 배열(304)로 상기 가상 키보드 내에 포함될 수 있다. 하지만, 이에 제한되지 않는다.
일 예에서, 상기 가상 키보드는, 추천 단어 표시 영역(380)과 함께, 표시될 수 있다. 예를 들면, 추천 단어 표시 영역(380)은, 도 4의 설명을 통해 후술될 복수의 미리 결정된 단어들 중 적어도 일부를 포함할 수 있다. 예를 들면, 추천 단어 표시 영역(380)은, 포인터(309)에 인접한 캐릭터 "c"를 포함하는 단어들인, "cute", "charming", "cool", 및 "crazy"를 포함할 수 있다. 하지만, 이에 제한되지 않는다.
다시 도 2를 참조하면, 상기 터치 입력은, 입력 수단(input means)으로부터 야기될 수 있다. 예를 들면, 상기 터치 입력은, 사용자의 손가락(finger)로부터 야기될 수 있다. 다른 예를 들면, 상기 터치 입력은, 전자 장치(101)와 연동되는 스타일러스 펜으로부터 야기될 수 있다. 하지만, 이에 제한되지 않는다.
상기 터치 입력은, 상기 입력 수단이 상기 디스플레이 상에 접촉된 점인 접촉점을 가질 수 있다. 예를 들면, 상기 접촉점은, 상기 입력 수단이 상기 디스플레이 상에 접촉된 영역 내의 복수의 점들 중 대표점(representative point)일 수 있다. 예를 들어, 상기 디스플레이와 작동적으로 결합된 터치 센서가 정전용량 터치 센서(capacitive touch sensor)인 경우, 상기 접촉점은, 상기 터치 입력으로 인하여 가장 높은 또는 가장 많은 커패시턴스의 변화가 식별된 상기 디스플레이 내의 위치(position)일 수 있다. 하지만, 이에 제한되지 않는다.
일 예에서, 상기 터치 입력의 상기 접촉점은, 상기 복수의 키들 중 제1 키 상에서 위치될 수 있다. 예를 들어, 도 3을 참조하면, 프로세서(120)는, 상기 가상 키보드 내의 상기 복수의 키들 중 제1 키(306) 상에서 접촉점(305)을 가지는 상기 터치 입력을 수신할 수 있다. 예를 들면, 상기 터치 입력은, 텍스트 입력 부분(text input portion)(307)이 상기 가상 키보드와 함께 표시되는 동안, 수신될 수 있다. 예를 들면, 프로세서(120)는, 상기 가상 키보드를 통해 수신된 적어도 하나의 다른 터치 입력에 기반하여 표시된 적어도 하나의 제3 캐릭터(308) 및 적어도 하나의 제3 캐릭터(308) 옆에서 표시된 포인터(309)를 포함하는 텍스트 입력 부분(307)이 상기 가상 키보드와 함께 표시되는 동안, 상기 터치 입력을 수신할 수 있다.
예를 들면, 상기 가상 키보드 및 텍스트 입력 부분(307)은, 텍스트 입력 부분(307)을 제공하는 소프트웨어 어플리케이션의 설정, 전자 장치(101)의 설정, 또는 사용자 설정에 따라, 다양한 방법들(various ways)로 배열될(arranged) 수 있다. 예를 들면, 상기 가상 키보드는, 도 3의 도시와 같이, 텍스트 입력 부분(307)을 포함하는 사용자 인터페이스(310) 상에 부분적으로(partially) 중첩될(superimposed on) 수 있다. 하지만, 이에 제한되지 않는다.
다시 도 2를 참조하면, 동작 204에서, 프로세서(120)는, 상기 터치 입력에 응답하여, 상기 제1 키에 의해 나타내어지는 제1 캐릭터, 상기 복수의 키들 중 상기 제1 키에 인접한 제2 키에 의해 나타내어지는 제2 캐릭터, 및 상기 가상 키보드와 함께 표시된 텍스트 입력 부분(예: 도 3 내에서 도시된 텍스트 입력 부분(307)) 내에서 상기 터치 입력이 수신되기 전 표시되었던 상기 적어도 하나의 제3 캐릭터(예: 도 3 내에서 도시된 적어도 하나의 제3 캐릭터(308))에 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 하나의(a) 캐릭터를 식별할 수 있다.
예를 들어, 도 3을 참조하면, 프로세서(120)는, 상기 터치 입력에 응답하여, 접촉점(305)이 위치된 제1 키(306)에 의해 나타내어지는 상기 제1 캐릭터(예: "h")를 식별할 수 있다. 예를 들면, 상기 제1 캐릭터(예: "h")는, 접촉점(305)이 상기 터치 입력을 야기한 사용자의 의도일 제1 확률을 고려하기 위해, 식별될 수 있다.
예를 들면, 프로세서(120)는, 상기 터치 입력에 응답하여, 제1 키(306)에 인접한 제2 키(311)에 의해 나타내어지는 상기 제2 캐릭터(예: "u")를 식별할 수 있다. 예를 들면, 프로세서(120)는, 상기 터치 입력에 응답하여, 제1 키(306)를 감싸는 제2 키(311), 제3 키(312), 제4 키(313), 제5 키(314), 제6 키(315), 제7 키(316), 및 제8 키(317)를 식별하고, 제2 키(311) 내지 제8 키(317)에 의해 각각 나타내어지는 캐릭터들(예: "u", "y", "g", "v", "b", "n", 및 "j")을 식별할 수 있다. 예를 들면, 상기 제2 캐릭터(예: "u") 또는 상기 캐릭터들(예: "u", "y", "g", "v", "b", "n", 및 "j")은, 상기 접촉점의 위치가 상기 터치 입력을 야기한 사용자의 의도가 아닐 제2 확률을 고려하기 위해, 식별될 수 있다.
일 예에서, 프로세서(120)는, 제1 키(306)를 감싸는 제2 키(311), 제3 키(312), 제4 키(313), 제5 키(314), 제6 키(315), 제7 키(316), 및 제8 키(317)에 의해 각각 나타내어지는 캐릭터들(예: "u", "y", "g", "v", "b", "n", 및 "j")을 식별하고, 상기 캐릭터들 중에서 상기 제2 캐릭터(예: "u")를 식별할 수 있다. 예를 들면, 프로세서(120)는, 상기 캐릭터들(예: "u", "y", "g", "v", "b", "n", 및 "j") 중에서 적어도 하나의 제3 캐릭터(308)로부터 도출된 맥락(context)에 대응하는 상기 제2 캐릭터(예: "u")를 식별할 수 있다. 프로세서(120)는, 상기 캐릭터들(예: "u", "y", "g", "v", "b", "n", 및 "j") 중에서 상기 제2 캐릭터(예: "u")를 식별한 후, 상기 제1 캐릭터(예: "h"), 상기 제2 캐릭터(예: "u"), 및 적어도 하나의 제3 캐릭터(308)에 기반하여, 제1 캐릭터(예: "h") 및 상기 제2 캐릭터(예: "u") 중 하나의 캐릭터를 식별할 수 있다. 하지만, 이에 제한되지 않는다. 일 예에서, 프로세서(120)는, 제1 키(306)를 감싸는 제2 키(311), 제3 키(312), 제4 키(313), 제5 키(314), 제6 키(315), 제7 키(316), 및 제8 키(317)에 의해 각각 나타내어지는 상기 캐릭터들(예: "u", "y", "g", "v", "b", "n", 및 "j")을 식별하고, 상기 캐릭터들(예: "u", "y", "g", "v", "b", "n", 및 "j") 중 상기 제2 캐릭터(예: "u")를 식별하는 것 없이, 상기 제1 캐릭터(예: "h"), 상기 캐릭터들(예: "u", "y", "g", "v", "b", "n", 및 "j"), 및 적어도 하나의 제3 캐릭터(308)에 기반하여, 상기 제1 캐릭터(예: "h") 및 상기 캐릭터들(예: "u", "y", "g", "v", "b", "n", 및 "j") 중에서 하나의 캐릭터를 식별할 수 있다. 하지만, 이에 제한되지 않는다.
상기 맥락에 기반하여 상기 캐릭터를 식별하는 방법은, 도 4의 설명을 통해 보다 구체적으로 기술될 것이다.
한편, 예를 들면, 프로세서(120)는, 상기 터치 입력에 응답하여, 상기 터치 입력이 수신되기 전 텍스트 입력 부분(307) 내에 포함된 적어도 하나의 제3 캐릭터(308)를 식별할 수 있다. 예를 들면, 적어도 하나의 제3 캐릭터(308)는, 상기 제1 확률 및 상기 제2 확률을 식별하기 위해, 식별될 수 있다.
다시 도 2를 참조하면, 프로세서(120)는, 상기 제1 캐릭터, 상기 제2 캐릭터, 및 상기 적어도 하나의 제3 캐릭터에 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 하나의 캐릭터를 식별할 수 있다.
일 예에서, 프로세서(120)는, 상기 터치 입력을 야기한 입력 수단의 유형을 식별하고, 상기 식별된 유형이 사용자의 손가락인지 또는 스타일러스 펜(stylus pen)인지 여부에 더(further) 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별할 수 있다. 예를 들면, 상기 손가락이 상기 가상 키보드 상에 접촉되는 제1 면적은, 상기 스타일러스 펜이 상기 가상 키보드 상에 접촉되는 제2 면적보다, 넓을 수 있다. 상기 제1 면적과 상기 제2 면적 사이의 차이로 인하여, 상기 스타일러스 펜으로부터의 상기 터치 입력이 사용자의 의도와 다르게 상기 제1 키 상에서 상기 접촉점을 가질 확률은 상기 손가락으로부터의 상기 터치 입력이 사용자의 의도와 다르게 상기 제1 키 상에서 상기 접촉점을 가질 확률보다 낮을 수 있기 때문에, 프로세서(120)는, 입력 수단의 유형에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별할 수 있다.
일 예에서, 프로세서(120)는, 전자 장치(101)의 모드가 포트레이트 모드(portrait mode)인지 또는 랜드스케이프 모드(landscape mode)인지 여부에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별할 수 있다. 예를 들면, 상기 포트레이트 모드가 제공되는 동안 상기 가상 키보드 내의 상기 복수의 키들 각각의 제1 사이즈는 상기 랜드스케이프 모드가 제공되는 상기 가상 키보드 내의 상기 복수의 키들 각각의 제2 사이즈보다 작을 수 있다. 상기 제1 사이즈와 상기 제2 사이즈 사이의 차이로 인하여, 상기 포트레이트 모드 내에서 상기 터치 입력이 사용자의 의도와 다르게 상기 제1 키 상에서 상기 접촉점을 가질 확률은 상기 랜드스케이프 모드 내에서 상기 터치 입력이 사용자의 의도와 다르게 상기 제1 키 상에서 상기 접촉점을 가질 확률보다 높을 수 있기 때문에, 프로세서(120)는, 전자 장치(101)의 모드에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별할 수 있다.
일 예에서, 프로세서(120)는, 상기 제1 키의 위치와 상기 터치 입력을 야기한 사용자의 손의 위치 사이의 상대적 위치 관계에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별할 수 있다. 예를 들면, 상기 제1 키가 전자 장치(101)를 그립한 상기 사용자의 손에 상대적으로 가깝게(relatively close to) 위치된 조건 상에서 상기 터치 입력이 상기 사용자의 의도와 다르게 상기 제1 키 상에서 상기 접촉점을 가질 확률은 상기 제1 키가 상기 손으로부터 상대적으로 멀리(relatively far away from) 위치된 조건 상에서 상기 터치 입력이 상기 사용자의 의도와 다르게 상기 제1 상에서 상기 접촉점을 가질 확률보다 낮기 때문에, 프로세서(120)는, 상기 상대적 위치 관계에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별할 수 있다.
일 예에서, 프로세서(120)는, 상기 터치 입력 바로 이전에 다른 터치 입력이 상기 복수의 키들 중 하나의 키(예: 도 3 내에서 도시된 적어도 하나의 제3 캐릭터(308) 내의 "c")에 대하여 수신되었던 타이밍과 상기 터치 입력이 수신되었던 타이밍 사이의 시간에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별할 수 있다. 예를 들면, 상기 가상 키보드를 제1 속도로 타이핑하는 조건 상에서 상기 터치 입력이 사용자의 의도와 다르게 상기 제1 키 상에서 상기 접촉점을 가질 확률은 상기 가상 키보드를 상기 제1 속도보다 느린 제2 속도로 타이핑하는 조건 상에서 상기 터치 입력이 상기 사용자의 의도와 다르게 상기 제1 키 상에서 상기 접촉점을 가질 확률보다 높을 수 있기 때문에, 프로세서(120)는, 상기 시간에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별할 수 있다.
일 예에서, 프로세서(120)는, 상기 접촉점의 위치에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별할 수 있다. 예를 들면, 상기 접촉점이 상기 제1 키의 센터 영역 내에서 위치되는 조건 상에서 상기 터치 입력이 사용자의 의도와 다르게 상기 제1 키 상에서 상기 접촉점을 가질 확률은, 상기 접촉점이 상기 센터 영역 밖에서 위치되는 조건 상에서 상기 터치 입력이 사용자의 의도와 다르게 상기 제1 키 상에서 상기 접촉점을 가질 확률보다 낮을 수 있기 때문에, 프로세서(120)는, 상기 접촉점의 상기 위치에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별할 수 있다.
동작 206에서, 프로세서(120)는, 상기 식별된 캐릭터를, 상기 텍스트 입력 부분 내에서 상기 디스플레이를 통해 표시할 수 있다. 예를 들면, 상기 식별된 캐릭터가 상기 제1 캐릭터인 조건 상에서, 프로세서(120)는 상기 터치 입력을 상기 제1 키에 대한 입력으로 인식하고, 상기 인식에 따라 상기 제1 캐릭터를 상기 텍스트 입력 부분 내에서 표시할 수 있다. 다른 예를 들면, 상기 식별된 캐릭터가 상기 제2 캐릭터인 조건 상에서, 프로세서(120)는, 상기 터치 입력을 상기 제1 키에 대한 입력 대신 상기 제2 키에 대한 입력으로 인식하고, 상기 인식에 따라 상기 제2 캐릭터를 상기 텍스트 입력 부분 내에서 표시할 수 있다.
예를 들어, 도 3을 참조하면, 프로세서(120)는, 동작 204의 상기 식별에 기반하여, 커서(309)에 의해 나타내어지는 공간(318)에서, 제1 키(306)에 의해 나타내어지는 상기 제1 캐릭터(예: "h")를 표시하거나 제2 키(311)에 의해 나타내어지는 상기 제2 캐릭터(예: "u")를 표시할 수 있다.
상술한 바와 같이, 전자 장치(101)는, 상기 터치 입력의 상기 접촉점이 위치된 상기 제1 키에 의해 나타내어지는 상기 제1 캐릭터 뿐 아니라 상기 제1 키에 인접한 상기 제2 키에 의해 나타내어지는 상기 제2 캐릭터 및 상기 터치 입력 이전에 상기 텍스트 입력 부분에 입력된 상기 적어도 하나의 제3 캐릭터를 이용하여, 상기 터치 입력을 인식할 수 있다. 전자 장치(101)는, 이러한 인식을 통해, 타이포그래피컬 에러(typographical error)의 발생을 감소시킬 수 있다. 다시 말해, 전자 장치(101)는, 상기 가상 키보드의 이용과 관련된 사용자 편의성을 강화할 수 있다.
도 4는 일 예에 따라, 제1 캐릭터 및 제2 캐릭터 중 하나의 캐릭터를 식별하는 방법을 도시하는 흐름도이다. 이러한 방법은, 도 1 내에서 도시된 전자 장치(101) 또는 도 1 내에서 도시된 프로세서(120)에 의해 실행될 수 있다.
도 4의 동작 402 내지 동작 406은, 도 2의 동작 204 내의 세부 동작들일 수 있다. 일 예에서, 동작 402 내지 동작 406은, 동작 204를 실행하는 동안, 실행될 수 있다. 하지만, 이에 제한되지 않는다.
도 4를 참조하면, 동작 402에서, 프로세서(120)는, 상기 터치 입력이 수신되기 전 상기 텍스트 입력 부분 내에서 표시되었던(has been displayed) 상기 적어도 하나의 제3 캐릭터의 적어도 일부를 포함하는 복수의 미리 결정된 단어들(또는 복수의 추천 단어들) 중에서, 상기 적어도 하나의 제3 캐릭터 다음의 캐릭터로 상기 제1 캐릭터를 포함하는 적어도 하나의 제1 단어를 식별할 수 있다. 예를 들면, 프로세서(120)는, 상기 적어도 하나의 제3 캐릭터에 대한 자연어 처리(natural language processing)를 실행하는 것에 기반하여, 상기 적어도 하나의 제3 캐릭터의 맥락(context)을 식별할 수 있다. 예를 들면, 프로세서(120)는, NPU(neural processing unit) 및/또는 GPU(graphics processing unit)를 이용하여, 상기 맥락을 식별할 수 있다. 프로세서(120)는, 상기 식별된 맥락에 기반하여, 상기 적어도 하나의 제3 캐릭터의 적어도 일부를 포함하는 상기 복수의 미리 결정된 단어들을 식별할 수 있다. 프로세서(120)는, 상기 복수의 미리 결정된 단어들 중에서, 상기 적어도 하나의 제3 캐릭터 다음의 캐릭터로 상기 제1 캐릭터를 포함하는 상기 적어도 하나의 제1 단어를 식별할 수 있다. 예를 들어, 도 3을 참조하면, 프로세서(120)는, 적어도 하나의 제3 캐릭터(308)의 맥락에 기반하여, 상기 복수의 미리 결정된 단어들로 "cute", "charming", "cool", 및 "crazy"를 식별할 수 있다. 프로세서(120)는, "cute", "charming", "cool", 및 "crazy" 중 상기 제1 캐릭터(예: "h")를 포함하는 "charming"을 상기 적어도 하나의 제1 단어로 식별할 수 있다. 하지만, 이에 제한되지 않는다.
다시 도 4를 참조하면, 동작 404에서, 프로세서(120)는, 상기 복수의 미리 결정된 단어들 중에서, 상기 적어도 하나의 제3 캐릭터 다음의 캐릭터로 상기 제2 캐릭터를 포함하는 적어도 하나의 제2 단어를 식별할 수 있다. 예를 들어, 도 3을 참조하면, 프로세서(120)는, 적어도 하나의 제3 캐릭터(308)의 맥락에 기반하여, 상기 복수의 미리 결정된 단어들로 "cute", "charming", "cool", 및 "crazy"를 식별할 수 있다. 프로세서(120)는, "cute", "charming", "cool", 및 "crazy" 중 상기 제2 캐릭터(예: "u")를 포함하는 "cute"를 상기 적어도 하나의 제2 단어로 식별할 수 있다. 하지만, 이에 제한되지 않는다.
상기 예시와 달리, 적어도 하나의 제3 캐릭터(308) 다음에 표시될 상기 캐릭터를 식별하기 위해, 제1 키(306)를 감싸는 제2 키(311), 제3 키(312), 제4 키(313), 제5 키(314), 제6 키(315), 제7 키(316), 및 제8 키(317)에 의해 각각 나타내어지는 캐릭터들(예: "u", "y", "g", "v", "b", "n", 및 "j")을 동작 204에서 식별하는 경우, 프로세서(120)는, 적어도 하나의 제3 캐릭터(308)의 상기 맥락에 기반하여 식별된 "cute", "charming", "cool", 및 "crazy"를 포함하는 상기 복수의 미리 결정된 단어들을, "cu~", "cy~", "cg~", "cv~", "cb~", "cn~", 및 "cj~"를 이용하여 검색하는 것에 기반하여, "cute"를 상기 적어도 하나의 제2 단어로 식별할 수 있다. 다시 말해, 제2 키(311)는, 제1 키(306)를 감싸는 제2 키(311), 제3 키(312), 제4 키(313), 제5 키(314), 제6 키(315), 제7 키(316), 및 제8 키(317) 중에서 적어도 하나의 제3 캐릭터(308)의 상기 맥락에 대응하는 키일 수 있다. 하지만, 이에 제한되지 않는다.
다시 도 4를 참조하면, 동작 406에서, 프로세서(120)는, 상기 적어도 하나의 제3 캐릭터로부터 도출된 상기 맥락과 상기 적어도 하나의 제1 단어 사이의 제1 관계 및 상기 적어도 하나의 제3 캐릭터로부터 도출된 상기 맥락과 상기 적어도 하나의 제2 단어 사이의 제2 관계에 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별할 수 있다. 예를 들면, 상기 제1 관계는 상기 터치 입력이 사용자의 의도에 따라 상기 제1 키 상에서 상기 접촉점을 가질 확률을 나타낼 수 있고, 상기 제2 관계는 상기 터치 입력이 상기 터치 입력이 상기 의도와 다르게 상기 제1 키 상에서 상기 접촉점을 가질 확률을 나타낼 수 있기 때문에, 프로세서(120)는, 상기 제1 관계 및 상기 제2 관계에 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중에서 상기 적어도 하나의 제3 캐릭터 옆에서 표시될 상기 캐릭터를 식별할 수 있다.
상술한 바와 같이, 전자 장치(101)는, 상기 터치 입력의 상기 접촉점이 위치된 상기 제1 키에 의해 나타내어지는 상기 제1 캐릭터가 상기 적어도 하나의 제3 캐릭터로부터 도출된 상기 맥락에 적합한지 여부 및 상기 제1 키에 인접한 상기 제2 키에 의해 나타내어지는 상기 제2 캐릭터가 상기 맥락에 적합한지 여부에 기반하여, 상기 터치 입력을 인식할 수 있다. 전자 장치(101)는, 이러한 인식을 통해, 사용자에 의해 의도되지 않은 위치에서 상기 터치 입력이 수신되더라도, 타이포그래피컬 에러의 발생을 감소시킬 수 있다. 다시 말해, 전자 장치(101)는, 상기 가상 키보드의 이용과 관련된 사용자 편의성을 강화할 수 있다.
도 5a는 일 예에 따라 터치 입력의 접촉점의 위치에 기반하여 제1 캐릭터 및 제2 캐릭터 중 하나의 캐릭터를 식별하는 방법을 도시하는 흐름도이다. 이러한 방법은, 도 1 내에서 도시된 전자 장치(101) 또는 도 1 내에서 도시된 프로세서(120)에 의해 실행될 수 있다.
도 5a의 동작 502 및 동작 504는, 도 2의 동작 204 내의 세부 동작들일 수 있다. 예를 들면, 동작 204는, 동작 502 및 동작 504를 포함할 수 있다. 예를 들면, 동작 204는, 동작 402 내지 동작 406, 동작 502, 및 동작 504를 포함할 수 있다. 하지만, 이에 제한되지 않는다.
도 5b는 일 예에 따라 식별되는 인식 영역 및 보호 영역의 예를 도시한다.
도 5a를 참조하면, 동작 502에서, 프로세서(120)는, 상기 접촉점의 위치에 기반하여, 전자 장치(101) 내에 저장된, 상기 가상 키보드의 사용 이력에 대한 정보를 식별함으로써, 상기 터치 입력이 상기 제1 키에 대한 입력일 제1 확률 및 상기 터치 입력이 상기 제2 키에 대한 입력일 제2 확률을 식별할 수 있다.
일 예에서, 프로세서(120)는, 상기 터치 입력에 응답하여, 상기 접촉점의 상기 위치를 식별할 수 있다. 예를 들면, 상기 위치는, 좌표를 통해 나타내어질 수 있다. 하지만, 이에 제한되지 않는다. 예를 들면, 프로세서(120)는, 상기 터치 입력 이전에 수신되었던, 상기 위치의 상기 접촉점을 가지는 다른 터치 입력이 어떻게 처리되었는지를 식별하기 위해, 상기 정보를 식별할 수 있다. 예를 들면, 상기 정보는, 상기 좌표들 각각에 의해 나타내어지는 위치 상에서의 입력이 상기 좌표들 각각을 포함하는 상기 가상 키보드의 키에 대한 입력일 확률에 대한 제1 데이터 및 상기 위치 상에서의 상기 입력이 상기 키를 감싸는 다른 키들에 대한 입력일 확률에 대한 제2 데이터를 포함할 수 있다. 프로세서(120)는, 상기 정보로부터 상기 위치에 대한 상기 제1 데이터 및 상기 제2 데이터를 획득하고, 상기 제1 데이터 및 상기 제2 데이터에 기반하여, 상기 제1 확률 및 상기 제2 확률을 식별할 수 있다. 하지만, 이에 제한되지 않는다.
동작 504에서, 프로세서(120)는, 상기 제1 확률 및 상기 제2 확률에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 하나의 캐릭터를 식별할 수 있다.
예를 들어, 상기 정보가, 상기 터치 입력 이전에 수신되었던, 상기 위치의 상기 접촉점을 가지는 제1 터치 입력에 따라 상기 제1 키에 의해 나타내어지는 상기 제1 캐릭터를 표시한 후 상기 제1 캐릭터를 삭제하기 위한 제2 터치 입력이 상기 가상 키보드를 통해 빈번하게 수신됨을 나타내는 데이터 및 상기 제2 터치 입력이 수신된 후 상기 제1 키에 인접한 상기 제2 키에 대한 제3 터치 입력이 빈번하게 수신됨을 나타내는 데이터를 포함하는 경우, 프로세서(120)는, 상기 접촉점이 상기 제1 키 상에서 위치됨에도 불구하고, 상기 터치 입력을 상기 제1 키에 대한 터치 입력으로 인식하는 대신 상기 제2 키에 대한 터치 입력으로 인식할 수 있다. 하지만, 이에 제한되지 않는다.
다른 예를 들어, 상기 정보가, 상기 터치 입력 이전에 수신되었던, 상기 제1 터치 입력에 따라 상기 제1 키에 의해 나타내어지는 상기 제1 캐릭터를 표시한 후 상기 제1 캐릭터와 구별되는 다른(another) 캐릭터를 표시하기 위한 제4 터치 입력이 빈번하게 수신됨을 나타내는 데이터를 포함하는 경우, 프로세서(120)는, 상기 터치 입력을 상기 제1 키에 대한 터치 입력으로 인식할 수 있다. 하지만, 이에 제한되지 않는다.
일 예에서, 상기 제1 확률 및 상기 제2 확률은, 상기 제1 키가 상기 가상 키보드 상에서 어디에 위치하는지에 따라 변경될 수 있다. 예를 들면, 상기 가상 키보드 내의 상기 복수의 키들은, 미리 결정된 영역(예: 센터 영역) 내의 제3 키들 및 상기 미리 결정된 영역 밖의 제4 키들을 포함할 수 있다. 예를 들면, 상기 미리 결정된 영역 내의 상기 제3 키들 각각에 대한 터치 입력이 사용자의 의도에 따른 입력일 확률은, 상기 미리 결정된 영역을 감싸는 주변 영역 내의 상기 제4 키들 각각에 대한 터치 입력이 사용자의 의도에 따른 입력일 확률보다 낮을 수 있기 때문에, 상기 미리 결정된 영역이 전자 장치(101) 내에서 정의될 수 있다. 예를 들어, 도 3을 참조하면, 상기 미리 결정된 영역은, 센터 영역(330)으로 정의될 수 있다. 하지만, 이에 제한되지 않는다. 일 예에서, 상기 미리 결정된 영역은, 상기 가상 키보드의 사용 이력에 따라 변경될 수 있다. 하지만, 이에 제한되지 않는다.
다시 도 5a를 참조하면, 일 예에서, 상기 제1 확률 및 상기 제2 확률은, 상기 제1 키가 상기 제3 키들 중 하나의 키인지 또는 상기 제4 키들 중 하나의 키인지 여부에 따라, 변경될 수 있다. 예를 들면, 상기 제1 키가 상기 제3 키들 중 하나의 키인 조건 상에서의 상기 제1 확률은 상기 제1 키가 상기 제4 키들 중 하나의 키인 조건 상에서의 상기 제1 확률보다 낮을 수 있다. 다른 예를 들면, 상기 제1 키가 상기 제3 키들 중 하나의 키인 조건 상에서의 상기 제2 확률은 상기 제1 키가 상기 제4 키들 중 하나의 키인 조건 상에서의 제 상기 제2 확률보다 높을 수 있다. 하지만, 이에 제한되지 않는다.
일 예에서, 도 2의 동작 204가 도 4의 동작 402 내지 동작 406 및 도 5a의 동작 502 및 동작 504를 포함하는 경우, 프로세서(120)는, 동작 402 내지 동작 406의 식별들에 따른 제1 결과 데이터에 제1 가중치(weight)를 적용하고, 동작 502 및 동작 504의 식별들에 따른 제2 결과 데이터에 제2 가중치를 적용할 수 있다. 예를 들면, 상기 제1 가중치 및 상기 제2 가중치는 상기 가상 키보드의 사용 이력에 따라 변경될 수 있다. 예를 들면, 상기 제1 가중치는 상기 제2 가중치보다 높을 수 있다. 다른 예를 들면, 상기 제1 가중치는 상기 제2 가중치와 동일할 수 있다. 또 다른 예를 들면, 상기 제1 가중치는 상기 제2 가중치보다 낮을 수 있다. 하지만, 이에 제한되지 않는다. 프로세서(120)는, 상기 제1 가중치가 적용된 상기 제1 결과 데이터 및 상기 제2 가중치가 적용된 상기 제2 결과 데이터에 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별할 수 있다.
일 예에서, 프로세서(120)는, 상기 제1 가중치가 적용된 상기 제1 결과 데이터 및 상기 제2 가중치가 적용된 상기 제2 결과 데이터에 기반하여, 상기 가상 키보드의 인식 영역을 식별하고, 상기 식별된 인식 영역에 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별할 수 있다. 예를 들어, 도 5b를 참조하면, 프로세서(120)는, 상기 제1 가중치가 적용된 상기 제1 결과 데이터 및 상기 제2 가중치가 적용된 상기 제2 결과 데이터에 기반하여, 배열(301)을 가지는 상기 가상 키보드의 인식 영역(550)을 식별할 수 있다. 예를 들면, 인식 영역(550)은, 프로세서(120)가 상기 제1 가중치가 적용된 상기 제1 결과 데이터 및 상기 제2 가중치가 적용된 상기 제2 결과 데이터에 따라 터치 입력을 인식하는 방법을 표현한 것으로, 인식 영역(550)은, 상기 디스플레이를 통해 표시되는 시각적 정보가 아닐 수 있다. 예를 들면, 인식 영역(550)은, 상기 제1 가중치가 적용된 상기 제1 결과 데이터 및 상기 제2 가중치가 적용된 상기 제2 결과 데이터에 따라, 다양한 형상들로 식별될 수 있다. 일 예에서, 상기 가상 키보드 내의 상기 복수의 키들 중 하나의 키에 대한 터치 입력의 접촉점의 위치는, 사용자의 의도를 나타내기 때문에, 인식 영역(550)은, 보호 영역(guard area)에 기반하여, 정의될 수 있다. 예를 들면, 상기 복수의 키들 중 하나의(a) 키가 점유하는 영역의 중심 부분 상에서 접촉점을 가지는 터치 입력은, 상기 제1 가중치가 적용된 상기 제1 결과 데이터 및 상기 제2 가중치가 적용된 상기 제2 결과 데이터와 관계없이, 상기 키에 의해 나타내어지는 캐릭터를 입력하는 것이 사용자 의도임을 나타내는 터치 입력일 수 있기 때문에, 프로세서(120)는, 상기 제1 가중치가 적용된 상기 제1 결과 데이터 및 상기 제2 가중치가 적용된 상기 제2 결과 데이터 뿐 아니라, 상기 보호 영역에 기반하여 인식 영역(550)을 식별할 수 있다. 예를 들면, 상기 보호 영역은, 보호 영역(560)과 같이, 상기 복수의 키들 각각의 중심 부분을 포함하는 원형(및/또는 타원형)으로 정의될 수 있다. 도 5b는 원형 및/또는 타원형을 가지는 보호 영역(560)을 도시하고 있으나, 보호 영역(560)의 형상은, 도 5b의 도시와 달리, 사각형으로 정의되거나, 다른 형상으로 정의될 수 있다.
다시 도 5a를 참조하면, 도 5a는 상기 접촉점의 상기 위치에 기반하여 식별된 확률(예: 상기 제1 확률 및 상기 제2 확률)에 따라 상기 캐릭터를 식별하는 동작들을 도시하고 있으나, 실시예들에 따라 상기 동작들은 다른 동작들로 대체될 수 있다. 예를 들면, 대안적으로(alternatively), 프로세서(120)는, 상기 접촉점의 상기 위치와 상기 제1 키의 중심점 사이의 제1 거리 및 상기 접촉점의 상기 위치와 상기 제2 키의 중심점 사이의 제2 거리에 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별할 수 있다.
상술한 바와 같이, 전자 장치(101)는, 상기 터치 입력에 응답하여 상기 텍스트 입력 부분 내에서 캐릭터를 표시하기 전, 상기 터치 입력의 상기 접촉점의 위치에 기반하여, 상기 터치 입력을 분석할 수 있다. 전자 장치(101)는, 상기 분석에 기반하여 상기 터치 입력을 인식함으로써, 사용자의 의도에 부합하는 상기 터치 입력에 대한 응답을 제공할 수 있다. 예를 들면, 전자 장치(101)는, 상기 가상 키보드의 이용과 관련된 사용자 편의성을 강화할 수 있다.
도 6은 일 예에 따라 가상 키보드 내의 제1 키 및 제2 키를 확대하는 방법을 도시하는 흐름도이다. 이러한 방법은, 도 1 내에서 도시된 전자 장치(101) 또는 도 1 내에서 도시된 프로세서(120)에 의해 실행될 수 있다.
도 7은 일 예에 따라 표시된 확대된 사이즈를 가지는 제1 키 및 확대된 사이즈를 가지는 제2 키의 예를 도시한다.
도 6의 동작 602은 도 2의 동작 204가 실행된 후 실행되거나, 동작 204 내에 포함될 수 있고, 도 6의 동작 604는 도 2의 동작 206에 대응할 수 있다. 하지만, 이에 제한되지 않는다.
도 6을 참조하면, 동작 602에서, 프로세서(120)는, 상기 제1 캐릭터, 상기 제2 캐릭터, 및 상기 적어도 하나의 제3 캐릭터에 기반하여 상기 제1 캐릭터 및 상기 제2 캐릭터 중 하나의 캐릭터를 식별할 수 있는지 여부를 식별할 수 있다. 예를 들면, 프로세서(120)는, 상기 터치 입력이 상기 제1 캐릭터를 상기 텍스트 입력 부분 내에서 표시하기 위한 입력임을 나타내는 제1 데이터가 상기 터치 입력이 상기 제2 캐릭터를 상기 텍스트 입력 부분 내에서 표시하기 위한 입력임을 나타내는 제2 데이터와 동일하거나, 상기 제1 데이터가 상기 제2 데이터에 대응하는 조건 상에서, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 하나의 캐릭터를 식별할 수 없음을 식별할 수 있다. 예를 들면, 동작 406의 설명을 통해 예시된 상기 제1 관계를 나타내는 상기 제1 데이터가 상기 제2 관계를 나타내는 상기 제2 데이터와 동일한 조건 상에서, 프로세서(120)는, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 하나의 캐릭터를 식별할 수 없음을 식별할 수 있다. 다른 예를 들면, 동작 504의 설명을 통해 예시된 상기 제1 확률을 나타내는 상기 제1 데이터가 상기 제2 확률을 나타내는 상기 제2 데이터와 동일한 조건 상에서, 프로세서(120)는, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 하나의 캐릭터를 식별할 수 없음을 식별할 수 있다. 또 다른 예를 들면, 도 5a의 설명 내에서 예시된 상기 제1 가중치가 적용된 상기 제1 결과 데이터 및 상기 제2 가중치가 적용된 상기 제2 결과 데이터에 기반하여 식별된 상기 제1 데이터가 상기 제1 가중치가 적용된 상기 제1 결과 데이터 및 상기 제2 가중치가 적용된 상기 제2 결과 데이터에 기반하여 식별된 상기 제2 데이터와 동일한 조건 상에서, 프로세서(120)는, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 하나의 캐릭터를 식별할 수 없음을 식별할 수 있다. 하지만, 이에 제한되지 않는다.
예를 들면, 프로세서(120)는, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 하나의 캐릭터를 식별할 수 없음을 식별하는 조건 상에서, 동작 606를 실행하고, 그렇지 않으면 동작 604를 실행할 수 있다.
동작 604에서, 프로세서(120)는, 상기 제1 캐릭터 및 상기 제2 캐릭터 중에서 식별된 상기 캐릭터를 상기 텍스트 입력 부분 내에서 상기 디스플레이를 통해 표시할 수 있다. 예를 들면, 상기 캐릭터는, 상기 적어도 하나의 제3 캐릭터 옆에서 표시될 수 있다. 예를 들면, 동작 604는 도 2의 동작 206에 대응할 수 있다.
동작 606에서, 프로세서(120)는, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 텍스트 입력 부분 내에서 표시될 하나의 캐릭터를 식별할 수 없음을 식별하는 것에 기반하여, 확대된 사이즈(enlarged size)를 가지는 상기 제1 키 및 확대된 사이즈를 가지는 상기 제2 키를 상기 디스플레이를 통해 표시할 수 있다. 일 예에서, 상기 확대된 사이즈를 가지는 상기 제1 키 및 상기 확대된 사이즈를 가지는 상기 제2 키의 상기 표시에 따라, 상기 가상 키보드 내의 상기 복수의 키들 중 상기 제1 키 및 상기 제2 키를 제외한 남은 키들의 사이즈는, 변경될 수 있다. 일 예에서, 상기 확대된 사이즈를 가지는 상기 제1 키 및 상기 확대된 사이즈를 가지는 상기 제2 키의 상기 표시에 따라, 상기 남은 키들의 배열은 변경될 수 있다. 일 예에서, 상기 확대된 사이즈를 가지는 상기 제1 키 및 상기 확대된 사이즈를 가지는 상기 제2 키의 상기 표시에 따라, 상기 남은 키들의 표시는, 중단될 수 있다. 예를 들면, 상기 남은 키들의 표시는, 동작 608이 실행된 후 재개될 수 있다. 하지만, 이에 제한되지 않는다. 일 예에서, 상기 확대된 사이즈를 가지는 상기 제1 키 및 상기 확대된 사이즈를 가지는 상기 제2 키는, 상기 가상 키보드 상에 부분적으로 중첩될 수 있다. 예를 들면, 상기 확대된 사이즈를 가지는 상기 제1 키 및 상기 확대된 사이즈를 가지는 상기 제2 키는, 상기 가상 키보드 내의 상기 제1 키 및 상기 제2 키를 포함하는 영역 상에서 적어도 부분적으로 중첩될 수 있다. 예를 들어, 도 7을 참조하면, 프로세서(120)는, 상기 제1 캐릭터(예: "h") 및 상기 제2 캐릭터(예: "u") 중 상기 텍스트 입력 부분 내에서 표시될 하나의 캐릭터를 식별할 수 업는 조건 상에서, 배열(301)을 가지는 상기 가상 키보드 상에 중첩으로(as superimposed on), 상기 확대된 사이즈를 가지는 제1 키(710) 및 상기 확대된 사이즈를 가지는 제2 키(720)를 상기 디스플레이를 통해 표시할 수 있다. 일 예에서, 상기 확대된 사이즈를 가지는 제1 키(710) 및 상기 확대된 사이즈를 가지는 제2 키(720)는, 상기 가상 키보드 내의 상기 복수의 키들에 대하여 시각적으로(visually) 강조될 수 있다. 예를 들면, 상기 확대된 사이즈를 가지는 제1 키(710) 및 상기 확대된 사이즈를 가지는 제2 키(720) 각각의 색상은, 상기 복수의 키들 각각의 색상과 다를 수 있다. 예를 들면, 상기 가상 키보드는, 상기 확대된 사이즈를 가지는 제1 키(710) 및 상기 확대된 사이즈를 가지는 제2 키(720)가 표시되는 동안, 블러 효과(blur effect)로 표시될 수 있다. 하지만, 이에 제한되지 않는다.
다시 도 6을 참조하면, 동작 608에서, 프로세서(120)는, 상기 확대된 사이즈를 가지는 상기 제1 키 및 상기 확대된 사이즈를 가지는 상기 제2 키 중 하나의 키에 대한 다른(another) 터치 입력을 수신할 수 있다. 일 예에서, 상기 확대된 사이즈를 가지는 상기 제1 키 및 상기 확대된 사이즈를 가지는 상기 제2 키가 표시되는 동안, 상기 확대된 사이즈를 가지는 상기 제1 키 및 상기 확대된 사이즈를 가지는 상기 제2 키에 의해 점유되는 영역을 제외한 남은 영역을 통해 야기되는 터치 입력의 인식은 제한될 수 있다. 하지만, 이에 제한되지 않는다. 일 예에서, 상기 확대된 사이즈를 가지는 상기 제1 키 및 상기 확대된 사이즈를 가지는 상기 제2 키가 표시되는 동안, 상기 확대된 사이즈를 가지는 상기 제1 키 및 상기 확대된 사이즈를 가지는 상기 제2 키에 의해 점유되는 영역 상의 터치 입력을 식별하기 위해 이용되는 전자 장치(101)의 터치 센서의 동작 주파수는, 상기 확대된 사이즈를 가지는 상기 제1 키 및 상기 확대된 사이즈를 가지는 상기 제2 키가 표시되지 않는 상태 내에서의 상기 터치 센서의 동작 주파수보다 높을 수 있다. 하지만, 이에 제한되지 않는다.
동작 610에서, 프로세서(120)는, 상기 다른 터치 입력이 수신된 키에 의해 나타내어지는 캐릭터를 상기 텍스트 입력 부분 내에서 표시할 수 있다. 예를 들면, 프로세서(120)는, 동작 204의 실행 없이, 상기 다른 터치 입력의 접촉점의 위치에 기반하여 식별된 상기 캐릭터를 상기 텍스트 입력 부분 내에서 표시할 수 있다.
도 6은 상기 제1 캐릭터 및 상기 제2 캐릭터 중에서 상기 텍스트 입력 부분 내에서 표시될 하나의 캐릭터를 식별할 수 없는 조건 상에서 상기 확대된 사이즈를 가지는 상기 제1 캐릭터 및 상기 확대된 사이즈를 가지는 상기 제2 캐릭터를 표시하는 동작들을 도시하고 있으나, 실시예들에 따라 상기 동작들은 다른 동작들로 대체될 수 있다. 예를 들면, 대안적으로, 프로세서(120)는, 상기 제1 캐릭터 및 상기 제2 캐릭터 중에서 상기 텍스트 입력 부분 내에서 표시될 하나의 캐릭터를 식별할 수 없는 조건 상에서, 동작 606 및 동작 610의 실행 없이, 상기 제1 캐릭터 또는 상기 제2 캐릭터를 상기 텍스트 입력 부분 내에서 표시할 수 있다. 예를 들면, 프로세서(120)는, 상기 터치 입력의 상기 접촉점이 상기 제1 키 상에서 위치된다는 식별에 기반하여, 상기 제1 키에 의해 나타내어지는 상기 제1 캐릭터를 상기 텍스트 입력 부분 내에서 표시할 수 있다. 다른 예를 들면, 프로세서(120)는, 상기 적어도 하나의 제3 캐릭터로부터 도출된 상기 맥락이 상기 제1 캐릭터보다 상기 제2 캐릭터에 더 대응한다는 식별에 기반하여, 상기 제2 키에 의해 나타내어지는 상기 제2 캐릭터를 상기 텍스트 입력 부분 내에서 표시할 수 있다. 하지만, 이에 제한되지 않는다.
상술한 바와 같이, 전자 장치(101)는, 상기 터치 입력의 인식 결과, 사용자의 의도를 추정할 수 없는 조건 상에서, 상기 텍스트 입력 부분 내에서 하나의 캐릭터를 표시하는 것 대신, 상기 확대된 사이즈를 가지는 상기 제1 키 및 상기 확대된 사이즈를 가지는 상기 제2 키를 표시할 수 있다. 전자 장치(101)는, 이러한 표시를 통해, 상기 가상 키보드가 이용되는 동안, 강화된 사용자 경험을 제공할 수 있다.
도 8은 일 예에 따라 가상 키보드에 대한 사용 이력에 대한 정보를 조정하는(adjust) 방법을 도시하는 흐름도이다. 이러한 방법은, 도 1 내에서 도시된 전자 장치(101) 또는 도 1 내에서 도시된 프로세서(120)에 의해 실행될 수 있다.
도 9는 일 예에 따라 텍스트 입력 부분 내에서 표시된 캐릭터를 삭제하기 위한 입력의 예를 도시한다.
도 8을 참조하면, 동작 802에서, 프로세서(120)는, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 식별된 상기 캐릭터를 상기 텍스트 입력 부분 내에서 상기 디스플레이를 통해 표시할 수 있다. 예를 들면, 동작 802는, 도 2의 동작 206, 도 6의 동작 604, 및 도 6의 동작 610에 대응할 수 있다.
동작 804에서, 프로세서(120)는, 상기 캐릭터의 상기 표시에 응답하여, 다른 캐릭터가 상기 텍스트 입력 부분 내에서 표시되기 전 상기 텍스트 입력 부분 내에서 표시된 상기 캐릭터를 삭제하기 위한 입력이 수신되는지 여부를 식별할 수 있다. 예를 들어, 도 9를 참조하면, 프로세서(120)는, 상기 제1 캐릭터(예: "h") 및 상기 제2 캐릭터(예: "u") 중 식별된 상기 캐릭터(예: "u")가 텍스트 입력 부분(307) 내에서 표시된 상태 내에서 다른 캐릭터가 텍스트 입력 부분(307) 내에서 표시되기 전, 배열(301)을 가지는 상기 가상 키보드 내의 상기 복수의 키들 중 포인터(309) 옆의 캐릭터(900)를 삭제하기 위한 키(901)에 대한 입력(902)이 수신되는지 여부를 식별할 수 있다.
다시 도 8을 참조하면, 프로세서(120)는, 상기 다른 캐릭터가 상기 텍스트 입력 부분 내에서 표시되기 전 상기 입력이 수신되는 조건 상에서, 동작 806을 실행하고, 상기 다른 캐릭터가 상기 텍스트 입력 부분 내에서 표시되기 전 상기 입력이 수신되지 않는 조건 상에서, 동작 808을 실행할 수 있다.
동작 806에서, 프로세서(120)는, 상기 입력이 수신됨을 식별하는 것에 응답하여, 상기 접촉점의 위치가 상기 식별된 캐릭터에 대응하지 않음을 나타내는 데이터에 기반하여, 상기 가상 키보드의 사용 이력에 대한 정보를 조정하거나(adjust) 변경하거나(change) 개선할(refine) 수 있다. 예를 들면, 상기 입력이 수신됨은, 상기 캐릭터의 식별이 사용자의 의도와 다름을 의미할 수 있기 때문에, 프로세서(120)는, 상기 터치 입력의 상기 접촉점이 상기 캐릭터를 상기 텍스트 입력 부분에 입력하기 위해 야기된 것이 아님을 나타내는 상기 데이터를 획득하고, 상기 데이터에 기반하여, 상기 정보를 조정할 수 있다. 예를 들면, 동작 806을 실행한 후 수신되는, 상기 접촉점을 가지는, 터치 입력이 상기 캐릭터를 나타내는 상기 가상 키보드의 키에 대한 터치 입력으로 인식될 확률은 상기 조정의 결과에 따라 낮아질 수 있다. 하지만, 이에 제한되지 않는다.
동작 808에서, 프로세서(120)는, 상기 입력이 수신되지 않음을 식별하는 것에 기반하여, 상기 접촉점의 위치가 상기 식별된 캐릭터에 대응함을 나타내는 데이터에 기반하여, 상기 가상 키보드의 상기 사용 이력에 대한 상기 정보를 조정하거나 변경하거나 개선할 수 있다. 예를 들면, 상기 입력이 수신되지 않음은, 상기 캐릭터의 식별이 사용자의 의도에 대응함을 의미할 수 있기 때문에, 프로세서(120)는, 상기 터치 입력의 상기 접촉점이 상기 캐릭터를 상기 텍스트 입력 부분에 입력하기 위해 야기된 것임을 나타내는 상기 데이터를 획득하고, 상기 데이터에 기반하여, 상기 정보를 조정할 수 있다. 예를 들면, 동작 808을 실행한 후 수신되는, 상기 접촉점을 가지는, 터치 입력이 상기 캐릭터를 나타내는 상기 가상 키보드의 키에 대한 터치 입력으로 인식될 확률은 상기 조정의 결과에 따라 높아질 수 있다. 하지만, 이에 제한되지 않는다.
상술한 바와 같이, 전자 장치(101)는, 상기 가상 키보드의 상기 사용 이력에 대한 상기 정보를 조정할 수 있다. 전자 장치(101)는, 이러한 조정을 통해, 타이포그래피컬 에러의 발생을 감소시킬 수 있다. 다시 말해, 전자 장치(101)는, 상기 가상 키보드의 이용과 관련된 사용자 편의성을 강화할 수 있다.
도 10은 일 예에 따라 제2 키에 의해 나타내어지는 제2 캐릭터를 식별하는 것을 삼가하거나 우회하는 방법을 도시하는 흐름도이다. 이러한 방법은, 도 1 내에서 도시된 전자 장치(101) 또는 도 1 내에서 도시된 프로세서(120)에 의해 실행될 수 있다.
도 10을 참조하면, 동작 1002에서, 프로세서(120)는, 상기 텍스트 입력 부분 내에서 표시된 상기 적어도 하나의 제3 캐릭터로부터 도출된 맥락(context)을 식별할 수 있다. 예를 들면, 동작 1002는 상기 적어도 하나의 제3 캐릭터 옆에 표시될 캐릭터를 입력하기 위한 터치 입력(예: 동작 1004의 터치 입력)이 수신되기 전, 실행될 수 있다.
동작 1004에서, 프로세서(120)는, 상기 적어도 하나의 제3 캐릭터 옆에 표시될 캐릭터를 상기 텍스트 입력 부분 내에서 입력하기 위한 상기 터치 입력을 수신할 수 있다. 예를 들면, 상기 터치 입력은, 상기 가상 키보드의 상기 복수의 키들 중 상기 제1 키 상에서 접촉점을 가지는 터치 입력일 수 있다. 예를 들면, 동작 1004는, 도 2의 동작 202과 동일하거나 유사할 수 있다.
동작 1006에서, 프로세서(120)는, 상기 터치 입력에 응답하여, 상기 접촉점이 위치된 상기 제1 키에 의해 나타내어지는 상기 제1 캐릭터가 상기 맥락에 대응하는지 여부를 식별할 수 있다. 예를 들면, 상기 제1 캐릭터가 상기 맥락에 대응함은, 상기 터치 입력을 상기 제1 키에 대한 터치 입력으로 인식하는 것이 사용자의 의도에 대응할 확률이 상대적으로 높음을 의미할 수 있기 때문에, 프로세서(120)는, 상기 제1 캐릭터와 상기 맥락 사이의 관계를 식별할 수 있다. 예를 들면, 프로세서(120)는, 상기 제1 캐릭터가 상기 맥락에 대응하는 조건 상에서 동작 1008을 실행하고, 그렇지 않으면 동작 1010을 실행할 수 있다.
동작 1008에서, 프로세서(120)는, 상기 제1 캐릭터가 상기 맥락에 대응함을 식별하는 것에 기반하여, 상기 제1 키에 의해 나타내어지는 상기 제1 캐릭터를 상기 텍스트 입력 부분 내에서 표시할 수 있다. 예를 들면, 프로세서(120)는, 상기 제1 키에 인접한 상기 제2 키를 식별하는 것 및/또는 상기 제2 키에 의해 나타내어지는 상기 제2 캐릭터를 식별하는 것을 삼가하거나(refrain) 우회하고(bypass), 상기 제1 캐릭터를 상기 적어도 하나의 제3 캐릭터 옆에 표시될 캐릭터로 식별하는 것에 기반하여, 상기 제1 캐릭터를 상기 텍스트 입력 부분 내에서 표시할 수 있다. 다시 말해, 프로세서(120)는, 상기 제2 키 및/또는 상기 제2 캐릭터의 식별 없이, 상기 제1 캐릭터가 상기 맥락에 대응함을 식별하는 것에 응답하여, 상기 제1 캐릭터를 상기 텍스트 입력 부분 내에서 표시할 수 있다.
동작 1010에서, 프로세서(120)는, 상기 제1 캐릭터가 상기 맥락과 다름을 식별하는 것에 기반하여, 상기 제1 키에 인접한 상기 제2 키에 의해 나타내어지는 상기 제2 캐릭터를 식별할 수 있다. 예를 들면, 상기 제1 캐릭터가 상기 맥락과 다름은, 상기 터치 입력을 상기 제1 키에 대한 터치 입력으로 인식하는 것이 사용자의 의도와 다를 확률이 상대적으로 높음을 의미할 수 있기 때문에, 프로세서(120)는, 상기 제1 캐릭터와 구별되는 다른 캐릭터를 검색하기 위해, 상기 제1 키에 인접한 상기 제2 키를 식별하고, 상기 제2 키에 의해 나타내어지는 상기 제2 캐릭터를 식별할 수 있다.
동작 1012에서, 프로세서(120)는, 상기 제2 캐릭터의 상기 식별에 응답하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중에서 하나의 캐릭터를 식별할 수 있다. 예를 들면, 프로세서(120)는, 상기 제1 캐릭터와 상기 맥락 사이의 관계 및 상기 제2 캐릭터와 상기 맥락 사이의 관계에 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 하나의 캐릭터를 식별할 수 있다.
동작 1014에서, 프로세서(120)는, 상기 식별된 캐릭터를 상기 텍스트 입력 부분 내에서 표시할 수 있다. 예를 들면, 상기 식별된 캐릭터는, 상기 적어도 하나의 제3 캐릭터 옆에서 표시될 수 있다.
상술한 바와 같이, 전자 장치(101)는, 상기 터치 입력의 상기 접촉점이 위치된 상기 제1 키에 의해 나타내어지는 상기 제1 캐릭터와 상기 맥락 사이의 비교를, 상기 제2 키(및/또는 상기 제2 캐릭터)의 식별 전 실행함으로써, 상대적으로 빠른 응답 속도로, 사용자 의도에 부합하는 캐릭터를 상기 텍스트 입력 부분 내에서 표시할 수 있다.
도 11은 일 예에 따라, 복수의 미리 결정된 단어들을 조정하는 것에 기반하여 캐릭터를 식별하는 방법을 도시하는 흐름도이다. 이러한 방법은, 도 1 내에서 도시된 전자 장치(101) 또는 도 1 내에서 도시된 프로세서(120)에 의해 실행될 수 있다.
도 11을 참조하면, 동작 1102에서, 프로세서(120)는, 상기 텍스트 입력 부분 내에서 표시된 상기 적어도 하나의 제3 캐릭터의 적어도 일부를 포함하는 복수의 미리 결정된 단어들을 식별할 수 있다. 예를 들면, 프로세서(120)는, 상기 적어도 하나의 제3 캐릭터 다음에 입력될 캐릭터를 추정하기 위해, 상기 복수의 미리 결정된 단어들을 식별할 수 있다.
동작 1104에서, 프로세서(120)는, 상기 복수의 미리 결정된 단어들을 식별한 후 또는 상기 복수의 미리 결정된 단어들을 식별하는 동안, 상기 가상 키보드의 복수의 키들 중 제1 키 상에서 접촉점을 가지는 터치 입력을 수신할 수 있다. 예를 들면, 동작 1104는, 도 2의 동작 202와 동일하거나 유사할 수 있다.
동작 1106에서, 프로세서(120)는, 상기 터치 입력에 응답하여, 상기 터치 입력의 상기 접촉점의 위치에 기반하여, 상기 복수의 미리 결정된 단어들을 조정할 수 있다. 예를 들면, 프로세서(120)는, 동작 1102에서 식별된 상기 복수의 미리 결정된 단어들 중 일부를 상기 위치에 기반하여 삭제하는 것 및/또는 동작 1102에서 식별된 상기 복수의 미리 결정된 단어들에 새로운 단어를 상기 위치에 기반하여 부가하는 것으로, 상기 복수의 미리 결정된 단어들을 조정할 수 있다.
동작 1108에서, 프로세서(120)는, 동작 1106을 통해 조정된 상기 복수의 미리 결정된 단어들에 기반하여 상기 가상 키보드의 상기 복수의 키들 각각의 인식 영역을 식별할 수 있다. 예를 들면, 상기 인식 영역은, 상기 디스플레이를 통해 표시된 상기 가상 키보드의 상기 복수의 키들 각각의 사이즈와 다를 수 있다. 예를 들면, 상기 복수의 키들 중 상기 복수의 미리 결정된 단어들 내에 포함된 캐릭터를 나타내는 키의 표시 사이즈는 상기 복수의 키들 중 상기 복수의 미리 결정된 단어들 내에 포함되지 않은 캐릭터를 나타내는 다른(another) 키의 표시 사이즈와 동일한 반면, 상기 키의 상기 인식 영역의 사이즈는, 상기 다른 키의 상기 인식 영역의 사이즈보다 클 수 있다. 하지만, 이에 제한되지 않는다.
동작 1110에서, 프로세서(120)는, 상기 식별된 인식 영역에 기반하여, 상기 터치 입력에 대응하는 키를 식별할 수 있다. 예를 들면, 프로세서(120)는, 상기 터치 입력의 상기 접촉점을 포함하는 인식 영역을 가지는 키를 상기 터치 입력에 대응하는 키로 식별할 수 있다. 하지만, 이에 제한되지 않는다.
동작 1112에서, 프로세서(120)는, 상기 식별된 키에 의해 나타내어지는 캐릭터를 상기 텍스트 입력 부분 내에서 표시할 수 있다.
상술한 바와 같이, 전자 장치(101)는, 상기 터치 입력을 수신한 후 상기 복수의 미리 결정된 단어들을 조정함으로써, 사용자의 의도가 반영될 수 있는 상기 터치 입력을 상기 터치 입력 전 표시된 적어도 하나의 캐릭터(예: 상기 적어도 하나의 제3 캐릭터)로부터 도출된 맥락에 적용할 수 있다. 전자 장치(101)는, 이러한 동작을 통해, 상기 터치 입력에 기반된, 가상 키보드와 관련된, 서비스를 제공할 수 있다.
도 12는 일 예에 따라, 터치 입력에 응답하여 사용자에 의해 의도된 캐릭터를 식별하기 위해 이용되는 예시적인 소프트웨어 모듈들을 도시한다. 도 12 내에서 도시된 소프트웨어 모듈들 각각의 하나 이상의 동작들은, 도 1 내에서 도시된 프로세서(120)에 의해, 프레임워크 및/또는 소프트웨어 어플리케이션 내에서 실행될 수 있다.
도 12를 참조하면, 동작 1201에서, 입력 관리자(input dispatcher)(1250)는, 동작 202, 동작 1004, 또는 동작 1104에서의 상기 터치 입력의 수신을 포함하는 터치 이벤트에 대한 정보를 터치 핸들링 매니저(touch handling manager)(1251)에게 제공할 수 있다. 예를 들면, 입력 관리자(1250)는, 프레임워크 내에서 소프트웨어 어플리케이션(예: 상기 가상 키보드)에게 상기 터치 이벤트에 대한 정보를 전달하는 소프트웨어 모듈일 수 있다. 예를 들면, 터치 핸들링 매니저(1251)는, 입력 관리자(1250)로부터 상기 터치 이벤트에 대한 정보를 획득할 수 있다.
동작 1202에서, 터치 핸들링 매니저(1251)는, 상기 터치 이벤트에 대한 상기 정보에 기반하여 획득된 상기 터치 입력의 위치에 대한 정보를 키 탐색자(1252)(예: "FindMostLikelyKey"로 참조될 수 있음)에게 제공할 수 있다. 예를 들면, 터치 핸들링 매니저(1251)는, 상기 터치 이벤트에 대한 상기 정보에 기반하여 미리 결정된 동작들을 실행하는 소프트웨어 모듈일 수 있다. 예를 들면, 키 탐색자(1252)는, 터치 핸들링 매니저(1251)로부터 상기 터치 입력의 상기 위치에 대한 상기 정보를 획득할 수 있다.
동작 1203에서, 키 탐색자(1252)는, 상기 터치 입력의 상기 위치에 대한 상기 정보에 기반하여, 상기 복수의 미리 결정된 단어들을 식별하기 위해, 상기 터치 이벤트에 대한 정보를 예측 체크자(1253)(예: "Check Prediction"으로 참조될 수 있음)에게 제공할 수 있다. 예를 들면, 키 탐색자(1252)는, 터치 입력의 좌표를 상기 가상 키보드 내의 상기 복수의 키들 중 어떤 키에 연결시킬 것인지를 식별하는 소프트웨어 모듈일 수 있다. 예측 체크자(1253)는, 키 탐색자(1252)로부터 상기 터치 이벤트에 대한 상기 정보를 획득할 수 잇다.
동작 1204에서, 예측 체크자(1253)는, 예측 생성자(1254)(예: "Make Prediction"으로 참조될 수 있음)에게. 상기 터치 이벤트에 대한 정보를 제공할 수 있다. 예를 들면, 예측 체크자(1253)는, 상기 터치 입력 이전에 입력된 단어를 이용하여, 상기 터치 입력의 위치가 상기 가상 키보드 내의 복수의 키들 중 어떤 키에 연결하기 위해 이용되었는지를 확인하기 위한 소프트웨어 모듈일 수 있다. 예를 들면, 예측 생성자(1254)는, 예측 체크자(1253)로부터 상기 터치 이벤트에 대한 상기 정보를 획득할 수 있다.
동작 1205에서, 예측 생성자(1254)는, 상기 터치 이벤트에 대한 상기 정보에 기반하여, 맥락을 도출하고, 상기 도출된 맥락에 기반하여 식별된 상기 복수의 미리 결정된 단어들에 대한 정보를, 예측 체크자(1253)에게 제공할 수 있다. 예를 들면, 예측 생성자(1254)는, 상기 터치 입력의 위치 및 상기 터치 입력 이전에 입력된 적어도 하나의 캐릭터로부터 도출된 맥락에 기반하여, 상기 복수의 미리 결정된 단어들을 추천하는 소프트웨어 모듈일 수 있다. 예를 들면, 예측 체크자(1253)는, 상기 복수의 미리 결정된 단어들에 대한 상기 정보를 예측 생성자(1254)로부터 획득할 수 있다.
동작 1206에서, 예측 체크자(1253)는, 상기 복수의 미리 결정된 단어들에 대한 상기 정보에 기반하여 상기 터치 입력에 대응하는 상기 가상 키보드 내의 키에 대한 정보를 키 탐색자(1252)에게 제공할 수 있다. 예를 들면, 키 탐색자(1252)는, 예측 체크자(1253)로부터 상기 키에 대한 상기 정보를 획득할 수 있다.
동작 1207에서, 키 탐색자(1252)는, 상기 키에 대한 정보를 터치 핸들링 매니저(1251)에게 제공할 수 있다. 예를 들면, 터치 핸들링 매니저(1251)를 통해 상기 키에 의해 나타내어지는 캐릭터를 표시하기 위해, 키 탐색자(1252)는, 상기 키에 대한 상기 정보를 터치 핸들링 매니저(1251)에게 제공할 수 있다. 예를 들면, 터치 핸들링 매니저(1251)는, 키 탐색자(1252)로부터 상기 키에 대한 상기 정보를 획득할 수 있다.
동작 1208에서, 터치 핸들링 매니저(1251)는, 상기 키에 대한 상기 정보에 기반하여, 상기 키에 대응하는 상기 캐릭터를 식별하고, 상기 캐릭터를 표시하기 위한 정보를 텍스트 표시자(1255)(예: "TextView"로 참조될 수 있음)에게 제공할 수 있다. 예를 들면, 텍스트 표시자(1255)는, 터치 핸들링 매니저(1251)로부터 상기 캐릭터를 표시하기 위한 상기 정보를 획득하는 것에 기반하여, 상기 캐릭터를 텍스트 입력 부분 내에서 표시할 수 있다.
일 예에 따른 전자 장치, 방법, 및 비일시적 컴퓨터 판독가능 저장 매체는, 터치 입력이 수신된 가상 키보드 내의 제1 키에 의해 나타내어지는 제1 캐릭터 및 상기 제1 키에 인접한 제2 키에 의해 나타내어지는 제2 캐릭터에 기반하여 상기 터치 입력을 인식함으로써, 상기 터치 입력에 의한 타이포그래피컬 에러(typographical error)의 발생을 감소시킬 수 있다.
상술한 바와 같은, 일 예에 따른, 전자 장치(electronic device)는, 디스플레이, 인스트럭션(instruction)들을 저장하도록 구성된 메모리, 및 프로세서를 포함할 수 있다. 상기 프로세서는, 상기 인스트럭션들이 실행될 시, 상기 디스플레이를 통해 표시된 가상 키보드 내의 복수의 키들 중 제1 키 상에서 접촉점(a point of contact)을 가지는 터치 입력을 수신하도록 구성될 수 있다. 상기 프로세서는, 상기 터치 입력에 응답하여, 상기 제1 키에 의해 나타내어지는 제1 캐릭터, 상기 복수의 키들 중 상기 제1 키에 인접한 제2 키에 의해 나타내어지는 제2 캐릭터, 및 상기 가상 키보드와 함께 표시된 텍스트 입력 부분 내에서 상기 터치 입력이 수신되기 전 표시되었던 적어도 하나의 제3 캐릭터에 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 하나의(a) 캐릭터를 식별하도록 구성될 수 있다. 상기 프로세서는, 상기 식별된 캐릭터를 상기 텍스트 입력 부분 내에서 상기 디스플레이를 통해 표시하도록, 구성될 수 있다.
일 예에서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시, 상기 적어도 하나의 제3 캐릭터의 적어도 일부를 포함하는 복수의 미리 결정된 단어들 중에서, 상기 적어도 하나의 제3 캐릭터 다음의 캐릭터로 상기 제1 캐릭터를 포함하는 적어도 하나의 제1 단어를 식별하도록 구성될 수 있다. 일 예에서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시, 상기 복수의 미리 결정된 단어들 중에서, 상기 적어도 하나의 제3 캐릭터 다음의 캐릭터로 상기 제2 캐릭터를 포함하는 적어도 하나의 제2 단어를 식별하도록 구성될 수 있다. 일 예에서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시, 상기 적어도 하나의 제3 캐릭터로부터 도출된 맥락(context)과 상기 적어도 하나의 제1 단어 사이의 제1 관계 및 상기 맥락과 상기 적어도 하나의 제2 단어 사이의 제2 관계에 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별하도록, 구성될 수 있다.
일 예에서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시, 상기 접촉점의 위치에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별하도록, 구성될 수 있다.
일 예에서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시, 상기 위치에 기반하여, 상기 전자 장치 내에 저장된, 상기 가상 키보드의 사용 이력에 대한 정보를 식별함으로써, 상기 터치 입력이 상기 제1 키에 대한 입력일 제1 확률 및 상기 터치 입력이 상기 제2 키에 대한 입력일 제2 확률을 식별하도록 구성될 수 있다. 일 예에서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시, 상기 제1 확률 및 상기 제2 확률에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별하도록, 구성될 수 있다.
일 예에서, 상기 복수의 키들은, 미리 결정된 영역 내의 제3 키들 및 상기 미리 결정된 영역 밖의 제4 키들을 포함할 수 있다. 일 예에서, 상기 제1 확률 및 상기 제2 확률은, 상기 제1 키가 상기 제3 키들 중 하나의 키인지 또는 상기 제4 키들 중 하나의 키인지 여부에 따라, 변경될 수 있다.
일 예에서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시, 상기 터치 입력에 응답하여, 상기 제1 키를 감싸는 키들 중 상기 맥락에 대응하는 키를 상기 제2 키로 식별하도록, 구성될 수 있다.
일 예에서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시, 상기 제1 캐릭터, 상기 제2 캐릭터, 및 상기 적어도 하나의 제3 캐릭터에 기반하여 상기 제1 캐릭터 및 상기 제2 캐릭터 중 하나의 캐릭터를 식별할 수 없는 조건 상에서, 확대된 사이즈를 가지는 상기 제1 키 및 확대된 사이즈를 가지는 상기 제2 키를 상기 디스플레이를 통해 표시하도록 구성될 수 있다. 일 예에서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시, 상기 확대된 사이즈를 가지는 상기 제1 키 및 상기 확대된 사이즈를 가지는 상기 제2 키 중 하나의 키에 대한 다른(another) 터치 입력을 수신하도록 구성될 수 있다. 일 예에서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시, 상기 다른 터치 입력이 수신된 상기 키에 의해 나타내어지는 캐릭터를 상기 텍스트 입력 부분 내에서 상기 디스플레이를 통해 표시하도록, 더 구성될 수 있다.
일 예에서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시, 다른 캐릭터가 상기 텍스트 입력 부분 내에서 표시되기 전 상기 텍스트 입력 부분 내에서 표시된 상기 캐릭터를 상기 텍스트 입력 부분으로부터 삭제하기 위한 입력이 상기 가상 키보드를 통해 수신되는지 여부에 기반하여, 상기 전자 장치 내에 저장된, 상기 가상 키보드의 사용 이력에 대한 정보를 조정하도록, 더 구성될 수 있다.
일 예에서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시, 상기 터치 입력을 야기한 입력 수단의 유형을 식별하도록 구성될 수 있다. 일 예에서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시, 상기 식별된 유형이 사용자의 손가락인지 또는 스타일러스 펜인지 여부에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별하도록, 구성될 수 있다.
일 예에서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시, 상기 전자 장치의 모드가 포트레이트 모드(portrait mode)인지 또는 랜드스케이프 모드(landscape mode)인지 여부에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별하도록, 구성될 수 있다.
일 예에서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시, 상기 제1 키의 위치와 상기 터치 입력을 야기한 사용자의 손의 위치 사이의 상대적 위치 관계에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별하도록, 구성될 수 있다.
일 예에서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시, 상기 터치 입력 바로 이전에 다른(another) 터치 입력이 상기 복수의 키들 중 하나의 키에 대하여 수신되었던 타이밍과 상기 터치 입력이 수신되었던 타이밍 사이의 시간에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별하도록, 구성될 수 있다.
일 예에서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시, 상기 제1 키에 의해 나타내어지는 상기 제1 캐릭터가 상기 적어도 하나의 제3 캐릭터로부터 도출된 맥락에 대응함을 식별하는 것에 기반하여, 상기 제2 키에 의해 나타내어지는 상기 제2 캐릭터를 식별하는 것을 삼가하거나(refrain from) 우회하고(bypass), 상기 제1 캐릭터를 상기 캐릭터로 식별하도록, 더 구성될 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제1", "제2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제1) 구성요소가 다른(예: 제2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서의 다양한 실시예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: CD-ROM(compact disc read only memory))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
Claims (15)
- 전자 장치(electronic device)에 있어서,디스플레이;인스트럭션(instruction)들을 저장하도록 구성된 메모리; 및프로세서를 포함하고, 상기 프로세서는, 상기 인스트럭션들이 실행될 시,상기 디스플레이를 통해 표시된 가상 키보드 내의 복수의 키들 중 제1 키 상에서 접촉점(a point of contact)을 가지는 터치 입력을 수신하고,상기 터치 입력에 응답하여, 상기 제1 키에 의해 나타내어지는 제1 캐릭터, 상기 복수의 키들 중 상기 제1 키에 인접한 제2 키에 의해 나타내어지는 제2 캐릭터, 및 상기 가상 키보드와 함께 표시된 텍스트 입력 부분 내에서 상기 터치 입력이 수신되기 전 표시되었던 적어도 하나의 제3 캐릭터에 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 하나의(a) 캐릭터를 식별하고,상기 식별된 캐릭터를 상기 텍스트 입력 부분 내에서 상기 디스플레이를 통해 표시하도록, 구성되는,전자 장치.
- 청구항 1에 있어서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시,상기 적어도 하나의 제3 캐릭터의 적어도 일부를 포함하는 복수의 미리 결정된 단어들 중에서, 상기 적어도 하나의 제3 캐릭터 다음의 캐릭터로 상기 제1 캐릭터를 포함하는 적어도 하나의 제1 단어를 식별하고,상기 복수의 미리 결정된 단어들 중에서, 상기 적어도 하나의 제3 캐릭터 다음의 캐릭터로 상기 제2 캐릭터를 포함하는 적어도 하나의 제2 단어를 식별하고,상기 적어도 하나의 제3 캐릭터로부터 도출된 맥락(context)과 상기 적어도 하나의 제1 단어 사이의 제1 관계 및 상기 맥락과 상기 적어도 하나의 제2 단어 사이의 제2 관계에 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별하도록, 구성되는,전자 장치.
- 청구항 2에 있어서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시,상기 접촉점의 위치에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별하도록, 구성되는,전자 장치.
- 청구항 3에 있어서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시,상기 위치에 기반하여, 상기 전자 장치 내에 저장된, 상기 가상 키보드의 사용 이력에 대한 정보를 식별함으로써, 상기 터치 입력이 상기 제1 키에 대한 입력일 제1 확률 및 상기 터치 입력이 상기 제2 키에 대한 입력일 제2 확률을 식별하고,상기 제1 확률 및 상기 제2 확률에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별하도록, 구성되는,전자 장치.
- 청구항 4에 있어서, 상기 복수의 키들은,미리 결정된 영역 내의 제3 키들 및 상기 미리 결정된 영역 밖의 제4 키들을 포함하고,상기 제1 확률 및 상기 제2 확률은,상기 제1 키가 상기 제3 키들 중 하나의 키인지 또는 상기 제4 키들 중 하나의 키인지 여부에 따라, 변경되는,전자 장치.
- 청구항 2에 있어서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시,상기 터치 입력에 응답하여, 상기 제1 키를 감싸는 키들 중 상기 맥락에 대응하는 키를 상기 제2 키로 식별하도록, 구성되는,전자 장치.
- 청구항 1에 있어서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시,상기 제1 캐릭터, 상기 제2 캐릭터, 및 상기 적어도 하나의 제3 캐릭터에 기반하여 상기 제1 캐릭터 및 상기 제2 캐릭터 중 하나의 캐릭터를 식별할 수 없는 조건 상에서, 확대된 사이즈를 가지는 상기 제1 키 및 확대된 사이즈를 가지는 상기 제2 키를 상기 디스플레이를 통해 표시하고,상기 확대된 사이즈를 가지는 상기 제1 키 및 상기 확대된 사이즈를 가지는 상기 제2 키 중 하나의 키에 대한 다른(another) 터치 입력을 수신하고,상기 다른 터치 입력이 수신된 상기 키에 의해 나타내어지는 캐릭터를 상기 텍스트 입력 부분 내에서 상기 디스플레이를 통해 표시하도록, 더 구성되는,전자 장치.
- 청구항 1에 있어서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시,다른 캐릭터가 상기 텍스트 입력 부분 내에서 표시되기 전 상기 텍스트 입력 부분 내에서 표시된 상기 캐릭터를 상기 텍스트 입력 부분으로부터 삭제하기 위한 입력이 상기 가상 키보드를 통해 수신되는지 여부에 기반하여, 상기 전자 장치 내에 저장된, 상기 가상 키보드의 사용 이력에 대한 정보를 조정하도록, 더 구성되는,전자 장치.
- 청구항 1에 있어서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시,상기 터치 입력을 야기한 입력 수단의 유형을 식별하고,상기 식별된 유형이 사용자의 손가락인지 또는 스타일러스 펜인지 여부에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별하도록, 구성되는,전자 장치.
- 청구항 1에 있어서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시,상기 전자 장치의 모드가 포트레이트 모드(portrait mode)인지 또는 랜드스케이프 모드(landscape mode)인지 여부에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별하도록, 구성되는,전자 장치.
- 청구항 1에 있어서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시,상기 제1 키의 위치와 상기 터치 입력을 야기한 사용자의 손의 위치 사이의 상대적 위치 관계에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별하도록, 구성되는,전자 장치.
- 청구항 1에 있어서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시,상기 터치 입력 바로 이전에 다른(another) 터치 입력이 상기 복수의 키들 중 하나의 키에 대하여 수신되었던 타이밍과 상기 터치 입력이 수신되었던 타이밍 사이의 시간에 더 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 상기 캐릭터를 식별하도록, 구성되는,전자 장치.
- 청구항 1에 있어서, 상기 프로세서는, 상기 인스트럭션들이 실행될 시,상기 제1 키에 의해 나타내어지는 상기 제1 캐릭터가 상기 적어도 하나의 제3 캐릭터로부터 도출된 맥락에 대응함을 식별하는 것에 기반하여, 상기 제2 키에 의해 나타내어지는 상기 제2 캐릭터를 식별하는 것을 삼가하거나(refrain from) 우회하고(bypass), 상기 제1 캐릭터를 상기 캐릭터로 식별하도록, 더 구성되는,전자 장치.
- 디스플레이를 포함하는 전자 장치를 동작하기 위한 방법에 있어서,상기 디스플레이를 통해 표시된 가상 키보드 내의 복수의 키들 중 제1 키 상에서 접촉점(a point of contact)을 가지는 터치 입력을 수신하고,상기 터치 입력에 응답하여, 상기 제1 키에 의해 나타내어지는 제1 캐릭터, 상기 복수의 키들 중 상기 제1 키에 인접한 제2 키에 의해 나타내어지는 제2 캐릭터, 및 상기 가상 키보드와 함께 표시된 텍스트 입력 부분 내에서 상기 터치 입력이 수신되기 전 표시되었던 적어도 하나의 제3 캐릭터에 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 하나의(a) 캐릭터를 식별하는 동작과,상기 식별된 캐릭터를 상기 텍스트 입력 부분 내에서 상기 디스플레이를 통해 표시하는 동작을 포함하는,방법.
- 하나 이상의 프로그램들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체에 있어서, 상기 하나 이상의 프로그램들은, 디스플레이를 포함하는 전자 장치의 프로세서에 의해 실행될 시,상기 디스플레이를 통해 표시된 가상 키보드 내의 복수의 키들 중 제1 키 상에서 접촉점(a point of contact)을 가지는 터치 입력을 수신하고,상기 터치 입력에 응답하여, 상기 제1 키에 의해 나타내어지는 제1 캐릭터, 상기 복수의 키들 중 상기 제1 키에 인접한 제2 키에 의해 나타내어지는 제2 캐릭터, 및 상기 가상 키보드와 함께 표시된 텍스트 입력 부분 내에서 상기 터치 입력이 수신되기 전 표시되었던 적어도 하나의 제3 캐릭터에 기반하여, 상기 제1 캐릭터 및 상기 제2 캐릭터 중 하나의(a) 캐릭터를 식별하고,상기 식별된 캐릭터를 상기 텍스트 입력 부분 내에서 상기 디스플레이를 통해 표시하도록,상기 전자 장치를 야기하는 인스트럭션들을 포함하는,비일시적 컴퓨터 판독가능 저장 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP22801950.1A EP4242805A4 (en) | 2022-01-27 | 2022-11-09 | ELECTRONIC DEVICE AND METHOD FOR RECOGNIZING USER INTENT FROM TOUCH INPUT ON A VIRTUAL KEYBOARD, AND NON-TRANSIENT COMPUTER-READABLE STORAGE MEDIUM |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20220012496 | 2022-01-27 | ||
KR10-2022-0012496 | 2022-01-27 | ||
KR10-2022-0015981 | 2022-02-08 | ||
KR1020220015981A KR20230115826A (ko) | 2022-01-27 | 2022-02-08 | 가상 키보드 상의 터치 입력으로부터 사용자 의도를 인식하기 위한 전자 장치, 방법, 및 비일시적 컴퓨터 판독가능 저장 매체 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023146077A1 true WO2023146077A1 (ko) | 2023-08-03 |
Family
ID=85800399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2022/017581 WO2023146077A1 (ko) | 2022-01-27 | 2022-11-09 | 가상 키보드 상의 터치 입력으로부터 사용자 의도를 인식하기 위한 전자 장치, 방법, 및 비일시적 컴퓨터 판독가능 저장 매체 |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP4242805A4 (ko) |
WO (1) | WO2023146077A1 (ko) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014099943A (ja) * | 2014-03-06 | 2014-05-29 | Casio Comput Co Ltd | 文字入力装置 |
KR101680343B1 (ko) * | 2009-10-06 | 2016-12-12 | 엘지전자 주식회사 | 이동 단말기 및 그 정보처리방법 |
KR20190055489A (ko) * | 2017-11-15 | 2019-05-23 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
KR102122438B1 (ko) * | 2016-01-27 | 2020-06-12 | 주식회사 노타 | 디스플레이 디바이스 및 그의 터치 입력 프로세싱 방법 |
KR20210045354A (ko) * | 2018-03-28 | 2021-04-26 | 사로니코스 트레이딩 앤드 서비스즈, 유니페쏘알 엘디에이 | 터치스크린 상의 터치의 신뢰성을 향상시키기 위한 모바일 디바이스 및 방법 |
KR102322606B1 (ko) * | 2017-03-28 | 2021-11-04 | 박용구 | 오타 수정 방법 및 이를 이용하는 휴대 단말기 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8516367B2 (en) * | 2009-09-29 | 2013-08-20 | Verizon Patent And Licensing Inc. | Proximity weighted predictive key entry |
KR20110109551A (ko) * | 2010-03-31 | 2011-10-06 | 삼성전자주식회사 | 터치스크린 장치 및 터치스크린 장치의 입력 처리 방법 |
US8484573B1 (en) * | 2012-05-23 | 2013-07-09 | Google Inc. | Predictive virtual keyboard |
-
2022
- 2022-11-09 WO PCT/KR2022/017581 patent/WO2023146077A1/ko unknown
- 2022-11-09 EP EP22801950.1A patent/EP4242805A4/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101680343B1 (ko) * | 2009-10-06 | 2016-12-12 | 엘지전자 주식회사 | 이동 단말기 및 그 정보처리방법 |
JP2014099943A (ja) * | 2014-03-06 | 2014-05-29 | Casio Comput Co Ltd | 文字入力装置 |
KR102122438B1 (ko) * | 2016-01-27 | 2020-06-12 | 주식회사 노타 | 디스플레이 디바이스 및 그의 터치 입력 프로세싱 방법 |
KR102322606B1 (ko) * | 2017-03-28 | 2021-11-04 | 박용구 | 오타 수정 방법 및 이를 이용하는 휴대 단말기 |
KR20190055489A (ko) * | 2017-11-15 | 2019-05-23 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
KR20210045354A (ko) * | 2018-03-28 | 2021-04-26 | 사로니코스 트레이딩 앤드 서비스즈, 유니페쏘알 엘디에이 | 터치스크린 상의 터치의 신뢰성을 향상시키기 위한 모바일 디바이스 및 방법 |
Non-Patent Citations (1)
Title |
---|
See also references of EP4242805A4 * |
Also Published As
Publication number | Publication date |
---|---|
EP4242805A1 (en) | 2023-09-13 |
EP4242805A4 (en) | 2024-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022080616A1 (en) | An electronic device and method for inducing input | |
WO2022097862A1 (en) | Method of controlling display and electronic device supporting the same | |
WO2022055255A1 (ko) | 사용자 인터페이스를 제공하는 전자 장치 및 그 방법 | |
WO2022131521A1 (ko) | 터치스크린을 포함하는 입력 장치와 이의 동작 방법 | |
WO2022131549A1 (ko) | 전자 장치 및 전자 장치의 동작 방법 | |
WO2022197076A1 (ko) | 전자 장치 및 오타 보정 방법 | |
WO2023096162A1 (ko) | 전자 장치 및 전자 장치에서 필기 정보 마스킹 및 언마스킹 방법 | |
WO2023018158A1 (ko) | 멀티 윈도우를 지원하는 전자 장치 및 이의 제어 방법 | |
WO2023008854A1 (ko) | 디스플레이 내장형 광학 센서를 포함하는 전자 장치 | |
WO2022010279A1 (en) | Electronic device for converting handwriting to text and method therefor | |
WO2022065924A1 (ko) | 전자 장치의 이모지 추천 방법 및 그 전자 장치 | |
WO2023146077A1 (ko) | 가상 키보드 상의 터치 입력으로부터 사용자 의도를 인식하기 위한 전자 장치, 방법, 및 비일시적 컴퓨터 판독가능 저장 매체 | |
WO2023033311A1 (ko) | 그래픽 어포던스와 매칭된 기능을 수행하는 전자 장치 및 그 전자 장치의 동작 방법 | |
WO2023033301A1 (ko) | 가상 키보드를 통하여 사용자 입력을 획득하는 전자 장치와 이의 동작 방법 | |
WO2023195617A1 (ko) | 손글씨 동기화 방법 및 전자 장치 | |
WO2024135877A1 (ko) | 복수의 시각적 객체들 중 시각적 객체를 식별하기 위한 전자 장치 및 방법 | |
WO2024014686A1 (ko) | 외부 객체의 접촉을 처리하는 터치 회로를 포함하는 디스플레이를 포함하는 전자 장치 | |
WO2023132473A1 (ko) | 컨텐츠에 기초한 애플리케이션 실행 방법 및 장치 | |
WO2024063380A1 (ko) | 플렉서블 디스플레이에 표시되는 화면을 제어하기 위한 전자 장치 및 방법 | |
WO2023204418A1 (ko) | 롤러블 디스플레이의 표시 영역 변경에 기반하여 터치 입력 또는 호버링 입력을 표시하기 위한 전자 장치 및 방법 | |
WO2024014655A1 (ko) | 획들에 의해 나타나는 문장을 식별하기 위한 전자 장치 및 방법 | |
WO2022103084A1 (ko) | 플렉서블 디스플레이를 포함하는 전자 장치 및 이를 이용하는 방법 | |
WO2022177138A1 (ko) | 보안 이미지를 표시하는 전자 장치 및 이의 동작 방법 | |
WO2024085550A1 (ko) | 가상 장치의 디스플레이의 제어를 위한 전자 장치, 방법, 및 비일시적 컴퓨터 판독가능 저장 매체 | |
WO2022231112A1 (ko) | 필기 입력을 처리하는 전자 장치 및 이의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2022801950 Country of ref document: EP Effective date: 20221122 |