Patent Description:
In line with development of mobile communication technologies and hardware and/or software technologies, portable electronic devices (hereinafter, referred to as electronic devices) have become able to implement various functions in additional conventional communication functions. Electronic devices may provide functions for user convenience by using various user interfaces (UI) displayed on displays thereof.

For example, an electronic device may provide a keyboard UI and may input a text including numbers, characters, or symbols, based on user inputs regarding the UI. The keyboard UI provided by the electronic device is not fixed in one type, and the keyboard UI may freely vary depending on the provided application and use environment.

<CIT> discloses a method for disambiguating intended user input at an on-screen keyboard using dual strike zones.

When a user uses the keyboard UI of an electronic device, a typo may occur due to a slip, and the electronic device may have a filter for correcting the same. Conventional electronic devices operate a filter having fixed time and magnitude and thus filter both correct and erroneous keystrokes, thereby exhibiting insignificant typo correction effects.

For example, an erroneous keystroke followed by a slip to a correct keystroke may be filtered if a fixed filter criterion is satisfied, or a correct keystroke followed by a slip to an erroneous keystroke may not be filtered if the fixed filter criterion is not satisfied. As a result, accuracy of the keyboard may be degraded.

It is an aspect of various embodiments of the disclosure to provide a typo correction method wherein, when an electronic device corrects keyboard typos due to slips as described above, multiple filters having different filter values are provided such that flexible filtering is performed, and a relatively high level of accuracy is guaranteed.

An electronic device according to various embodiments may include a display, a sensor module configured to include a touch sensor for receiving a user's touch input and generating touch data, a memory, and a processor configured to be operatively connected to the display, the sensor module, and the memory, wherein the processor is configured to generate a first filter having a first time filter value and a first magnitude filter value, generate a second filter having a second time filter value greater than the first time filter value and a second magnitude filter value greater than the first magnitude filter value, acquire the touch data including a first point where the touch starts and a second point where the touch ends, apply the first filter when a moving from the first point to the second point is closer to a center line that vertically bisects a keyboard, apply the second filter when the moving is farther away from the center line, determine that a key of the keyboard corresponding to the first point has been touched when a duration of the touch input is less than the time filter value of the filter and a distance between the first point and the second point is less than the magnitude filter value, and determine that a key of the keyboard corresponding to the second point has been touched when the duration of the touch input is equal to or greater than the time filter value of the filter and the distance between the first point and the second point is equal to or greater than the magnitude filter value.

A typo correction method of an electronic device according to various embodiments may include generating a first filter having a first time filter value and a first magnitude filter value, generating a second filter having a second time filter value greater than the first time filter value and a second magnitude filter value greater than the first magnitude filter value, acquiring touch data including a first point where the touch starts and a second point where the touch ends, applying the first filter when a moving from the first point to the second point is closer to a center line that vertically bisects a keyboard, applying the second filter when the moving is farther away from the center line, determining that a key of the keyboard corresponding to the first point has been touched when a duration of the touch input is less than the time filter value of the filter and a distance between the first point and the second point is less than the magnitude filter value, and determining that a key of the keyboard corresponding to the second point has been touched when the duration of the touch input is equal to or greater than the time filter value of the filter and the distance between the first point and the second point is equal to or greater than the magnitude filter value.

According to various embodiments, an electronic device may generate multiple filters having different filter values and may change the filter to apply, according to the situation. Therefore, the electronic device may make correction by using a filter having a small filter value in the case of a correct keystroke followed by a slip to a correct keystroke, and may conduct filtering by using a filter having a large filter value in the case of a correct keystroke followed by a slip to an erroneous keystroke.

Other advantageous effects obtainable of predictable from various embodiments of the disclosure will be disclosed explicitly or implicitly in detailed description of embodiments of the disclosure. for example, various advantageous effects predicted from various embodiments of the disclosure will be disclosed in the following detailed description.

Referring to <FIG>, the electronic device <NUM> in the network environment <NUM> may communicate with an electronic device <NUM> via a first network <NUM> (e.g., a short-range wireless communication network), or at least one of an electronic device <NUM> or a server <NUM> via a second network <NUM> (e.g., a long-range wireless communication network). According to an embodiment, the electronic device <NUM> may include a processor <NUM>, memory <NUM>, an input module <NUM>, a sound output module <NUM>, a display module <NUM>, an audio module <NUM>, a sensor module <NUM>, an interface <NUM>, a connecting terminal <NUM>, a haptic module <NUM>, a camera module <NUM>, a power management module <NUM>, a battery <NUM>, a communication module <NUM>, a subscriber identification module (SIM) <NUM>, or an antenna module <NUM>. In some embodiments, at least one of the components (e.g., the connecting terminal <NUM>) may be omitted from the electronic device <NUM>, or one or more other components may be added in the electronic device <NUM>. In some embodiments, some of the components (e.g., the sensor module <NUM>, the camera module <NUM>, or the antenna module <NUM>) may be implemented as a single component (e.g., the display module <NUM>).

<FIG> is a diagram illustrating the occurrence of a typo due to a slip according to various embodiments.

According to various embodiments, an electronic device <NUM> (e.g., the electronic device <NUM> of <FIG>) may execute various applications. The electronic device <NUM> may configure various UIs according to an application configuration. For example, the electronic device <NUM> may arrange a UI object capable of performing the function of an application in the upper end of a display, and may arrange a button including a keyboard in the lower end of the display.

According to various embodiments, the electronic device <NUM> may display characters or numbers on a display (e.g., the display module <NUM> of <FIG>) based on a user input to a keyboard. The electronic device <NUM> may display various types of keyboards, and may display at least one of, for example, a qwerty keyboard, a qwerty Sym mode, a Korean keyboard, <NUM>×<NUM> keyboard, <NUM>×<NUM> Sym mode, and <NUM> mode. The electronic device <NUM> may identify a user's touch point on the display, and may display, when the touched point is inside a keycap, characters or numbers corresponding to the keycap on the display.

According to various embodiments, the electronic device <NUM> may identify the position of a point (hereinafter, a first point <NUM>) where a user's touch input starts and a point (hereinafter, a second point <NUM>) where the touch input ends. For example, the user's touch may start at the first point <NUM> and slip to the second point <NUM>. When the first point <NUM> and the second point <NUM> are the same, a slip may not occur. The electronic device <NUM> may determine that the user has touched a first keycap <NUM> including the first point <NUM> on the keyboard and may display characters or numbers corresponding to the first keycap <NUM> on the display. Alternatively, the electronic device <NUM> may determine that the user has touched a second keycap <NUM> including the second point <NUM> and may display characters or numbers corresponding to the second keycap <NUM> on the display. Accordingly, when a slip occurs, the electronic device <NUM> may recognize that a keycap different from the user's original intention is touched. Table <NUM> below summarizes the number of times that a slip occurred when typing was performed more than a certain number of times, the number of times that a typo(the term "typo" as used herein may be used interchangeably with the term "typographical error") occurred due to the slip, and the number of times that a typo was corrected due to a slip.

Referring to Table <NUM>, in a total of <NUM>,<NUM> touches, <NUM> slips occurred, of which <NUM> typos occurred due to the slips, and the number of times that the typo was corrected due to the slip was <NUM> times. According to various embodiments, the electronic device <NUM> may filter a slip that generates a typo and may not filter a slip that corrects a typo. Therefore, in Table <NUM> above, for No. <NUM>, it is determined that the keyboard corresponding to a first touched point is selected by filtering the slip, and for No. <NUM>, it is determined that the keyboard corresponding to the last touched point is selected because the slip is not filtered. Table <NUM> below shows a pattern in which a slip occurs for each touch coordinate when a given phrase (e.g., "<IMG> <IMG> <IMG>!) is repeatedly input.

The numbers and directions input in Table <NUM> are the most slip angle, the second most slip angle, and the total number of slips with respect to the slips occurring on the keyboard. For example, a total of <NUM> slips occurred on the keyboard in row <NUM> and column <NUM> (e.g., the "<IMG>" key of the keyboard), the slip in the <NUM> o'clock direction occurred the most at <NUM>% of the <NUM> slips, and the slip in the <NUM> o'clock direction occurred the second most at <NUM>% thereof. Therefore, it can be seen that, on the keyboard of <NUM> row and <NUM> column located at the top of the most left side of the keyboard, a lot of slips occurred generally to the right and down. The electronic device <NUM> may collect data on the slips occurring on the keyboard and may store the collected data in a memory (e.g., the memory <NUM> of <FIG>). According to various embodiments, the user tends to touch the keyboard on the left with the left hand and the keyboard on the right with the right hand with respect to the center line of the keyboard. According to an embodiment, with respect to a touch occurring in the central portion of the keyboard, a slip to the left may be more likely to occur when a touch occurs with the left hand, and a slip to the right may be more likely to occur when a touch occurs with the right hand.

For example, when the keyboard is in the form of a Hangul keyboard, the "<IMG>" key of the keyboard and the "<IMG>" key of the keyboard may be located adjacent to each other. The user may touch the first point <NUM> in the "<IMG>" key of the keyboard with the intention of pressing the "<IMG>" key of the keyboard, but a slip may occur and the touch may be terminated at the second point <NUM> in the "<IMG>" key of the keyboard. In this case, the electronic device <NUM> may recognize that the user has touched the second point <NUM> instead of the first point <NUM>.

According to various embodiments, the electronic device <NUM> may filter the slip in order to prevent and/or reduce typos due to the slip. For example, even if the touch ends at the second point <NUM>, it may be determined that the first point <NUM> has been touched. For example, in the above example, the electronic device <NUM> may filter the slip even if the touch on the "<IMG>" key of the keyboard ends, and may recognize that the "<IMG>" key of the keyboard has been touched.

<FIG> illustrates a module configuration of an electronic device according to various embodiments.

According to various embodiments, the electronic device (e.g., the electronic device <NUM> of <FIG> or the electronic device <NUM> of <FIG>) may be constituted of various software modules. Referring to <FIG>, the electronic device may include at least one of a keyboard manager <NUM>, an application <NUM>, a window manager <NUM>, a sensor manager <NUM>, an event hub <NUM>, a surface flinger <NUM>, a sensor driver <NUM>, and a display driver IC controller <NUM>.

According to various embodiments, the keyboard manager <NUM> may determine whether a slip occurs inside and outside a keycap or at the center of the keyboard. According to an embodiment, the keyboard manager <NUM> may determine to apply one of a first filter and a second filter to prevent typos.

According to various embodiments, the application <NUM> may draw at least one layer based on the resolution of the display. For example, the application <NUM> may use a corresponding view to draw at least one layer based on the resolution of the display.

According to various embodiments, when a change in the state of the electronic device is identified, the window manager <NUM> may transmit display information of the display corresponding to the changed state of the electronic device to the application <NUM>. For example, when the change in the state of the electronic device is identified, the display information corresponding to the changed state of the electronic device may be transmitted to the application <NUM> affected by the change in the state.

According to various embodiments, the sensor manager <NUM> may control a sensor based on the configuration of the application <NUM>. For example, when a user's touch input to the keyboard occurs, the sensor manager <NUM> may control a touch sensor to instruct to generate touch data.

According to various embodiments, the event hub <NUM> may be an interface module that standardizes an event occurring in a sensor module (e.g., the sensor module <NUM> of <FIG>). According to an embodiment, the event hub <NUM> may be included in a hardware abstraction layer (HAL) between a plurality of hardware modules included in a hardware layer and software of the electronic device.

According to various embodiments, the surface flinger <NUM> may be located in the HAL, and may synthesize a plurality of layers. For example, the surface flinger <NUM> may provide data representing the plurality of synthesized layers to the display controller <NUM>.

According to various embodiments, the sensor driver <NUM> may operate in the kernel layer and may be an interface module that controls the sensor controller. The sensor driver <NUM> may connect an operating system and a sensor, and may include information on a driving method, characteristic, and/or function of the sensor. The sensor driver <NUM> may include an interface module for controlling the sensor controller connected to the sensor.

According to various embodiments, the display controller <NUM> may receive data indicating the plurality of synthesized layers from the surface flinger <NUM> and may correspond to a display driving circuit. For example, components of a processor (e.g., the processor <NUM> of <FIG>) may be implemented in a hardware or software manner.

<FIG> is a block diagram illustrating an electronic device according to various embodiments.

Referring to <FIG>, an electronic device <NUM> may include a display <NUM>, a sensor module <NUM>, a processor <NUM>, and/or a memory <NUM>. In various embodiments, some of the illustrated components may be omitted or substituted. The electronic device <NUM> may further include at least some of the components and/or functions of the electronic device <NUM> of <FIG>. At least some of the illustrated (or not illustrated) respective components of the electronic device <NUM> may be operatively, functionally, and/or electrically connected to each other.

According to various embodiments, the display <NUM> may display various images under the control of the processor <NUM>. The display <NUM> may be implemented as one of a liquid crystal display (LCD), a light-emitting diode (LED) display, a micro LED display, a quantum dot (QD) display, or an organic light-emitting diode (OLED) display, but is not limited thereto. The display <NUM> may be formed of a touch screen that senses a touch and/or proximity touch (or hovering) input using a user's body part (e.g., a finger) or an input device (e.g., a stylus pen). The display <NUM> may include at least some of the components and/or functions of the display module <NUM> of <FIG>.

According to various embodiments, at least a portion of the display <NUM> may be flexible, and may be implemented as a foldable display, a rollable display, a slidable display, or a stretchable display.

According to various embodiments, the touch sensor <NUM> may include at least some of the components and/or functions of the sensor module <NUM> of <FIG>, and may receive a user input for the display <NUM>. The touch sensor <NUM> may be implemented as one of a conductivity sensor, a capacitive touch sensor, a resistive touch sensor, a surface touch sensor, and a projected captivated (PCAP) touch sensor, or a surface acoustic wave touch sensor, but is not limited thereto. The display <NUM> of the electronic device <NUM> may include one or more touch sensors <NUM>.

According to various embodiments, the memory <NUM> may include a volatile memory (e.g., the volatile memory <NUM> of <FIG>) and a nonvolatile memory (e.g., the nonvolatile memory <NUM> of <FIG>) to temporarily or permanently store various types of data. The memory <NUM> may include at least some of the components and/or functions of the memory <NUM> of <FIG>, and may store the program <NUM> of <FIG>.

According to various embodiments, the memory <NUM> may store various instructions that may be executed by the processor <NUM>. Such instructions may include control commands such as arithmetic and logical operations, data movement, or input/output, which may be recognized by the processor <NUM>.

According to various embodiments, the processor <NUM> may be a component that is operatively, functionally, and/or electrically with the respective components (e.g., the display <NUM>, the sensor module <NUM>, and the memory <NUM>) of the electronic device <NUM> to perform operations or data processing related to control and/or communication of the respective components. The processor <NUM> may include at least some of the components and/or functions of the processor <NUM> of <FIG>.

According to various embodiments, there will be no limitations to the arithmetic and data processing functions that the processor <NUM> can implement on the electronic device <NUM>. However, hereinafter, when the electronic device <NUM> corrects a keyboard typo due to a slip, various embodiments for providing a typo correction method with high accuracy in which flexible filtering may be performed by providing a plurality of filters having different filter values will be described. Operations of the processor <NUM> to be described later may be performed by loading instructions stored in the memory <NUM>.

According to various embodiments, the processor <NUM> may execute an application for inputting characters and numbers to the display <NUM>. For example, the processor <NUM> may execute a single application for typing, may execute a first application that performs various functions, and may execute a second application for typing in a foreground text input field of the first application. For example, the processor <NUM> may display a keyboard on the display <NUM>, may display characters or numbers on the display <NUM> based on a user input, and may execute the keyboard in a character input field while other applications are executed.

According to various embodiments, the processor <NUM> may generate a filter for filtering typos. According to an embodiment, the processor <NUM> may generate a first filter having a first time filter value (e.g., <NUM>) and a first magnitude filter value (e.g., <NUM> dp(device independent pixel)), and a second filter having a second time filter value (e.g., <NUM>) greater than the first time filter value and a second magnitude filter value (e.g., <NUM> dp) greater than the first magnitude filter value. For example, the processor <NUM> may generate a first filter having relatively small time filter value and magnitude filter value and a second filter having relatively large time filter value and magnitude filter value. Since the processor <NUM> determines a point touched by the user between a first point (e.g., the first point <NUM> of <FIG>) and a second point (e.g., the second point <NUM> of <FIG>) based on the filter value, a criteria for filtering the slip may be different depending on the situation. In a case in which the first filter is applied, the processor <NUM> may determine that the first point has been touched when a distance between the first point and the second point is less than the first magnitude filter value and a touch duration is less than the first time filter value, and may determine that the second point has been touched when either one of the above-mentioned two conditions is not satisfied. Similarly, in a case in which the second filter is applied, the processor <NUM> may determine that the first point has been touched when the distance between the first point and the second point is less than the second magnitude filter value and the touch duration is less than the second time filter value, and may determine that the second point has been touched when either one of the above-mentioned two conditions is not satisfied. Hereinafter, an example in which the processor <NUM> generates the first filter and the second filter to correct typos will be described, but the number of filters that the processor <NUM> can generate is not limited thereto. By filtering slips with three or more filters that further subdivide the filter values, typos can be corrected more precisely.

According to various embodiments, the processor <NUM> may acquire touch data from the touch sensor <NUM>. When a user input event for the display <NUM> occurs, the touch data may include various pieces of information about the event. For example, the touch data may include information such as a first point where the user's touch starts, a second point where the touch ends, a touch duration, or a size of a touch area. When a slip occurs, the processor <NUM> may determine whether to filter the slip based on the touch data.

According to various embodiments, the processor <NUM> may acquire user characteristic information from the sensor module <NUM>. The user characteristic information may include information on various factors affecting the performance of typing input. For example, the user characteristic information may include information about factors such as the user's behavioral pattern, gait, strokes, typos, touch area, key size spacing, finger size and shape, phone tilt, gripping hand, and/or typing speed. The processor <NUM> may determine whether to filter a slip with further reference to the user characteristic information.

For example, when a user performs typing while standing on a bus, there may be a higher possibility of slipping and making a typo compared to a case of performing typing in a stable posture. The processor <NUM> may acquire information on the user's use environment by using the user characteristic information and may determine to use the second filter having a larger filter value because there is a high probability that a typo will occur. Conversely, when the user performs typing in a static space, it may be determined to use the first filter having a small filter value.

According to various embodiments, the processor <NUM> may determine which filter is applied based on the touch data. The processor <NUM> may determine which one of the first filter and the second filter is applied to correct a typo by analyzing the touch data and the user characteristic information. Hereinafter, a method for the processor <NUM> to determine a filter for typo correction will be described.

According to various embodiments, the processor <NUM> may determine a filter to be applied to correct a typo with respect to the center line of the keyboard. The center line of the keyboard may vertically bisect the keyboard and may be a virtual line that is not displayed on the display <NUM>. The processor <NUM> may apply the first filter when the movement of the user's touch from the first point to the second point is closer to the center line with respect to the center line of the keyboard, and may apply the second filter when the movement thereof is farther away from the center line.

For example, when the first point is located inside the keycap of the "<IMG>" key of the keyboard and the second point is located inside the keycap of the "<IMG>" key of the keyboard, the processor <NUM> may determine that the user's touch has moved in a direction approaching the center line. The processor <NUM> may apply the first filter to prevent typos. Since the first filter has the relatively small time filter value and magnitude filter value, a smaller number of slips may be filtered than when the second filter is applied. For example, when the touch duration is within the first time filter value and the distance between the first point and the second point is within the first magnitude filter value, the processor <NUM> may determine that the user's touch is a movement between the keycaps instead of a slip. In this case, the processor <NUM> may determine that the user has touched the "<IMG>" key of the keyboard including the second point where the touch ends, rather than the "<IMG>" key of the keyboard including the first point where the touch starts. Similarly, when the touch duration is equal to or greater than the first time filter value or the distance between the first point and the second point is equal to or greater than the first magnitude filter value, the processor <NUM> may determine that the user's touch is a slip, and thus may determine that the "<IMG>" key including the first point where the touch starts has been touched.

On the contrary, when the first point is located inside the "<IMG>" keycap of the keyboard and the second point is located inside the "<IMG>" keycap of the keyboard, the processor <NUM> may determine that the user's touch moves in a direction farther away from the center line. Contrary to the above example, the processor <NUM> may perform typo filtering by applying the second filter.

According to an embodiment, the processor <NUM> may determine the moving direction of the user's touch with respect to the location of the first point. For example, when the first point is located inside the "<IMG>" key of the keyboard and the second point is located inside the "<IMG>" key of the keyboard, the user's touch may move in a direction closer to the center line when moving from the first point to the center line, but may move in the direction away from the center line when moving to the "<IMG>" key of the keyboard by crossing the center line. In this case, the processor <NUM> may apply the first filter because the user's touch moves in the direction closer to the center line when viewed from the first point with respect to the location of the first point.

According to various embodiments, the processor <NUM> may configure a correction area on the keyboard and may apply a filter to correct typos when a slip occurs inside the correction area. For example, the processor <NUM> may determine that the user has touched the second point without additional filtering with respect to the slip occurring outside the correction area. According to an embodiment, the correction area may be located at the center of the keyboard, may have a circular shape with a predetermined radius (e.g., <NUM> dp) with respect to the central point of the keyboard, or may have a rectangular shape with a predetermined size. The processor <NUM> may examine whether to apply what kind of filter only when the first point is located inside the correction area, and may not filter, when the first point is located outside the correction area, a slip even if the second point is located inside the correction area. The correction area may be determined from the time of manufacturing the electronic device <NUM> or may be determined by the processor <NUM>.

According to various embodiments, the processor may reconfigure the touch center point inside the keycap based on the touch data. For example, the processor may configure the center of the first keycap as the touch center point. The processor may acquire touch data for the first keycap, and may calculate the touch center point by weighting the touch data according to the frequency of occurrence of the touch. That is, the processor may reconfigure the touch center point close to a point where many touches are made inside the first keycap. According to an embodiment, the processor may calculate the touch center point using a key recognition area learning algorithm.

According to various embodiments, the processor may define the correction area based on the touch center point. Since a lot of slips will occur in a place where a user's touch is frequently generated, the processor may configure a predetermined area as the correction area based on the touch center point.

According to various embodiments, the processor <NUM> may determine whether a slip occurs from the inside to the outside of the keycap or from the outside to the inside thereof based on the acquired touch data, and may determine a filter to be applied to correct typos. According to an embodiment, when the first point is located in a blank space outside the keycap and the second point is located inside the keycap, the processor <NUM> may apply the first filter to correct the typos. Conversely, when the first point is located inside the keycap and the second point is located in a blank space outside the keycap, the second filter may be applied.

For example, when the user's touch starts between the "<IMG>" key of the keyboard and the "<IMG>" key of the keyboard and ends at the "<IMG>" key of the keyboard, the processor <NUM> may determine a filter for correction. Since the user's touch moves from the outside to the inside of the keycap, the processor <NUM> may apply the first filter to correct a typo. That is, when the user's touch moves from the outside to the inside of the keycap, the processor <NUM> may determine that the "<IMG>" key of the keyboard including the second point has been touched, based on a determining that the typo has been corrected to a correct typing. Conversely, when the user's touch starts at the "<IMG>" key of the keyboard and ends between the "<IMG>" key of the keyboard and the "<IMG>" key of the keyboard, the processor <NUM> may apply the second filter. Moving from the inside of the keycap to the outside thereof may be determined that a typo has occurred, so that it can be determined that the "<IMG>" key of the keyboard including the first point has been touched.

According to an embodiment, the processor <NUM> may configure priorities among criteria when determining a filter for correcting typos. For example, a case in which the first point is located in a blank between the "<IMG>" key and "<IMG>" key of the keyboard and the second point is located inside the "<IMG>" key of the keyboard may be considered. Since the user's touch moves in a direction away from the center line when viewed with respect to the center line, the processor <NUM> may apply the second filter. However, since the user's touch moves from the outside to the inside of the keycap when viewed with respect to the keycap, the processor <NUM> may apply the first filter. When a collision occurs in this way, the processor <NUM> may determine which filter to be applied according to a criterion having a higher priority. That is, the processor <NUM> may configure the priority with respect to the center line to be higher, and thus may determine to apply the second filter in the above example.

According to various embodiments, the processor <NUM> may correct typos occurring in various function keys in addition to the number and character keycaps. That is, the processor <NUM> may also correct typos occurring in function keys such as the space key, the backspace key, the shift key, the enter key, the Korean/English key, the punctuation key and/or the special code key. For example, the user's touch may slip and press the "T' key of the keyboard while trying to press the space key. When the movement from the first point to the second point is in a downward direction, the processor <NUM> may apply the first filter, and when the movement from the first point to the second point is in an upward direction, the processor <NUM> may apply the second filter. That is, when the first point is located inside the space keycap and the second point is located inside the "T" key of the keyboard, since the moving direction is upward, the processor <NUM> may apply the second filter.

According to various embodiments, the processor <NUM> may determine a filter to be applied to correct typos based on the touch sensitivity of the touch sensor <NUM>. The touch sensitivity may be a minimum pressure of a touch required to activate the function of a UI displayed on the display <NUM>. The processor <NUM> may measure touch sensitivity based on the acquired touch data, and may determine a filter to be applied to correct typos based on the measured touch sensitivity. For example, when the touch sensitivity is configured to be high, the pressure for activating the function of the UI may be relatively small. When the touch sensitivity is high, the processor <NUM> may determine to apply the first filter having a small magnitude filter value because there is a high possibility that a typo may occur. Conversely, when the touch sensitivity is configured to be low, it may be determined to apply the second filter having a large magnitude filter value.

According to various embodiments, the processor <NUM> may correct typos using the filter determined to be applied. That is, the processor <NUM> may correct typos by identifying the time filter value and the magnitude filter value of the filter and identifying whether the user's touch matches each filter value based on the touch data. For example, in a case in which the processor <NUM> determines to apply the first filter, a distance between the first point and the second point on the touch data is less than a first magnitude filter value and the touch duration is less than a first time filter value, the processor <NUM> may filter the corresponding slip and may determine that the user has touched the first point. Conversely, when the distance between the first point and the second point is equal to or greater than the first magnitude filter value or the touch duration is equal to or greater than the first time filter value, the processor <NUM> does not filter the corresponding slip and may determine that the user has touched the second point. The processor <NUM> may correct a touch input and may display the corrected touch input on the display <NUM> without a separate user input.

According to various embodiments, the processor <NUM> may accumulate user's personal touch data and user characteristic information and may store the accumulated information in the memory <NUM>. The touch data generated by the touch sensor <NUM> and the user characteristic information generated by the sensor module <NUM> may include information on the tendency of the user of the electronic device <NUM> to touch the keyboard. The processor <NUM> may analyze the touch data and the user characteristic information and may store the analyzed information in the memory <NUM> to be used to correct typos later.

According to various embodiments, the processor <NUM> may generate a personalization algorithm by using the stored touch data, user characteristic information, and/or a deep learning algorithm. The processor <NUM> may learn factors affecting character input performance by using an artificial intelligence model, and such an artificial intelligence model may be generated through machine learning. According to an embodiment, such learning may be performed in the electronic device <NUM> itself on which the artificial intelligence model is performed, or may be performed through a separate server. The learning algorithm, for example, may include at least one of supervised learning, unsupervised learning, semi-supervised learning, and reinforcement learning, and is not limited to the above-described example.

According to various embodiments, the artificial intelligence model may include a plurality of artificial neural network layers. The artificial neural network may include a deep neural network, a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), and a deep Q network, or a combination of two or more of the above-mentioned networks, but is not limited to the above-described examples. The artificial intelligence model may additionally or alternatively include a software structure in addition to the hardware structure.

According to various embodiments, the processor <NUM> may determine whether to correct a typo using a personalization algorithm. The processor <NUM> may change the time filter value and the magnitude filter value of the filter by using a user-specific characteristic, or may determine a touched key of the keyboard differently. For example, when the user uses the keyboard with his/her right hand a lot, a lot of slips may occur on keys of the keyboard positioned to the left of the center line. Alternatively, the user may frequently touch keys positioned biased to the right from the center of the keyboard or a slip may frequently occur to the right. The processor <NUM> may decrease the magnitude filter value when a slip occurs to the right and may increase the magnitude filter value when a slip occurs to the left occurs, by using a personalization algorithm reflecting the user's unique characteristics. At this time, even if the slip occurs to the right, it may be determined to be a typo and it is easy to be recognized that the first point has been touched. When the slip occurs to the left, it may be determined to be an intentional slip and it may be recognized that the second point has been touched.

<FIG>, <FIG>, and <FIG> illustrate an embodiment of correcting a typo when a slip occurs near a center line of a keyboard according to various embodiments.

According to various embodiments, a processor (e.g., the processor <NUM> of <FIG>) may determine a filter to be applied to correct typos with respect to a center line <NUM> of the keyboard. According to an embodiment, the processor <NUM> may configure a correction area <NUM> to which a typo correction filter is to be applied in the center of the keyboard. The shape of the correction area <NUM> may be a circular shape having a predetermined radius with the center of the keyboard as a center, or a rectangular shape having a predetermined size. The processor <NUM> may determine a filter to be applied to a slip occurring in the correction area <NUM>. Hereinafter, the processor <NUM> that determines a filter for typo correction will be described.

According to various embodiments, the processor <NUM> may identify coordinates of a first point (e.g., the first point <NUM> in <FIG>) and a second point (e.g., a second point <NUM> in <FIG>) based on touch data. According to various embodiments, the processor <NUM> may determine whether a moving direction from the first point to the second point is closer to or farther away from the center line <NUM>. The processor <NUM> may determine a filter to be applied to correct typos according to the moving direction of the user's touch.

Referring to <FIG>, when the moving direction from the first point to the second point is a direction (reverse direction) closer to the center line <NUM>, the processor <NUM> may determine to apply the first filter. When the user's touch moves in a direction closer to the center line <NUM>, the processor <NUM> may determine that there is a higher probability that typos will be corrected due to the corresponding slip than a probability that typos will occur due to the slip. With respect to the center line <NUM> of the keyboard, the keyboard on the left tends to be touched with the left hand, and the keyboard on the right tends to be touched with the right hand. A slip to the left may be more likely to occur when a touch occurs with the left hand, and a slip to the right may be highly likely to occur when a touch occurs with the right hand. Therefore, when a slip occurs in the reverse direction, there may be a high possibility that the user moved the touch intentionally, and the processor <NUM> may reduce filtering for the reverse slip to determine that the user has touched the second point. The processor <NUM> may determine whether to filter the slip by using a first time filter value and a first magnitude filter value of the first filter.

For example, when the first point is inside the "<IMG>" key of the keyboard and the second point is inside the "<IMG>" key of the keyboard, the processor <NUM> may determine to apply the first filter. When the moving from the first point to the second point is less than a first magnitude filter value and the touch duration is less than a first time filter value, the processor <NUM> may filter a corresponding slip and may determine that the user has touched the "<IMG>" key of the keyboard. Conversely, when the moving from the first point to the second point is equal to or greater than the first magnitude filter value or the touch duration is equal to or greater than the first time filter value, the processor <NUM> may determine that the user has touched the "<IMG>" key of the keyboard. Since the first filter has a relatively small time filter value and magnitude filter value, the processor <NUM> may reduce filtering for a reverse slip to determine that the user has touched the second point. Table <NUM> below shows the results of correcting slips by applying the first filter. Referring to Table <NUM>, it can be seen that compared with Table <NUM>, the number of times a typo occurs due to a slip is reduced compared to the case where no filter is applied.

Referring to <FIG>, when the moving direction from the first point to the second point is a direction (forward direction) farther away from the center line <NUM>, the processor <NUM> may determine to apply the second filter. Previously, when the user's touch slips in the reverse direction, the first filter with a relatively small filter value may be applied because a low probability that a typo occurs, but when the user's touch slips in the forward direction, the second filter with a relatively large filter value may be applied due to a high probability that a typo occurs. For example, when the first point is inside the "<IMG>" key of the keyboard and the second point is inside the "<IMG>" key of the keyboard, the processor <NUM> may apply the second filter based on the touch data. When a distance between the first point and the second point is less than a second magnitude filter value and the touch duration is less than a second time filter value, the processor <NUM> may filter the corresponding slip and may determine that the user has touched the "<IMG>" key of the keyboard. When the distance between the first point and the second point is equal to or greater than the second magnitude filter value or the touch duration is equal to or greater than the second time filter value, the processor <NUM> does not filter the slip and may determine that the user has touched the "<IMG>" key of the keyboard. Since the second filter has a relatively large filter value, the probability that a slip is filtered may be higher than when the first filter is applied. Table <NUM> below shows the results of correcting slips by applying the second filter. Referring to Table <NUM>, it can be seen that the number of times a typo occur due to slips is reduced compared with Table <NUM>.

Referring to <FIG>, the processor <NUM> may determine whether to apply the first filter or the second filter based on the touch data. After determining the filter to be applied, the processor <NUM> may determine whether to filter the slip based on the time filter value and the magnitude filter value of each filter, and may finally determine the key of the keyboard touched by the user to display the determined key on a display (e.g., the display <NUM> of <FIG>). When a touch event (move event) occurs, the processor <NUM> may first identify whether the touch event occurs inside the correction area <NUM> (isSlipArea). Thereafter, it is possible to determine a filter to be applied to correct typos, and determine whether to filter a slip (isFilteringEvent). The processor <NUM> may determine whether to filter the slip, may determine the key of the keyboard touched by the user, and may display the determined key on the display <NUM>. <FIG> and <FIG> are diagrams illustrating an embodiment of correcting a typo when a slip occurs inside and outside a keycap according to various embodiments.

Referring to <FIG>, a processor (e.g., the processor <NUM> of <FIG>) may correct a typo caused by a slip occurring inside a keycap <NUM> and outside a keycap <NUM>. According to various embodiments, when a first point (e.g., the first point <NUM> in <FIG>) is located outside <NUM> of the keycap and a second point (e.g., the second point <NUM> in <FIG>) is located inside <NUM> of the keycap, the processor <NUM> may apply the first filter. For example, when the first point is located in a blank space between the "<IMG>" key of the keyboard and the "<IMG>" key of the keyboard and the second point is located on the "<IMG>" key of the keyboard, the processor <NUM> may actively reflect the corresponding slip by applying the first filter. When the user touches the blank space of the outside <NUM> of the keycap, it is difficult to see that the user has touched the black space with an intention, so that the processor <NUM> may determine that the corresponding typo is corrected as a correct typing by reflecting the slip.

Similarly, when the first point is located inside <NUM> the keycap and the second point is located outside <NUM> the keycap, the processor <NUM> may apply the second filter. For example, when the first point is located on the "<IMG>" key of the keyboard and the second point is located in the blank space between the "<IMG>" key of the keyboard and the "<IMG>" key of the keyboard, the processor <NUM> may apply the second filter to filter the corresponding slip. When the slip occurs into the blank space, it is difficult to see that the user's touch has intentionally slipped because no key is input. Therefore, the processor <NUM> may not reflect the slip and may determine that the first point has been touched.

According to various embodiments, after determining the filter to be applied, the processor <NUM> may determine whether to filter the slip based on touch data. When the first filter is applied, the probability of determining that the second point is touched is high because the filter value is relatively small, and when the second filter is applied, the probability of determining that the first point is touched is high because the filter value is relatively large.

Referring to <FIG>, after determining the filter for filtering the slip occurring inside <NUM> the keycap and outside <NUM> the keycap, the processor <NUM> may correct a typo according to the filter. When a touch event is received, the processor <NUM> may determine whether the first point and the second point are located inside or outside the keycap, and may determine the filter to be applied based on the determined information (isOutsideOfKey). Next, the processor <NUM> may determine whether to filter the slip (isFilteringEvent). The processor <NUM> may correct a typo and may display the finally determined key on a display (e.g., the display <NUM> of <FIG>).

<FIG> illustrates an embodiment of correcting a typo when the typo occurs in an area other than a character keyboard according to various embodiments.

Referring to <FIG>, even when a slip occurs in function keys other than the character and number keyboards, typos may be corrected. Although the function keys do not generate as many touches as the character and number keyboards, a typo caused by a slip can be corrected using the same method.

For example, a processor (e.g., the processor <NUM> of <FIG>) may correct a typo regarding a slip occurring in the space key. The processor <NUM> may apply the first filter when the user's touch slips from the outside to the inside of the space keycap, and may apply the second filter when the user's touch slips from the inside to the outside of the keycap.

According to various embodiments, the processor <NUM> may configure a correction area <NUM> around a function key for which a typo is to be filtered. For example, when it is desired to filter a slip occurring in the space key, the processor <NUM> may configure the correction area <NUM> around the space key, thereby correcting a typo occurring when a touch starts within the correction area <NUM>.

According to various embodiments, when a slip occurs from the space key to the "T" key of the keyboard or the "<IMG>" key of the keyboard, the processor <NUM> may filter the slip. For example, the processor <NUM> may determine to apply the first filter when the slip occurs in the <NUM> o'clock direction, and to apply the second filter when the slip occurs in the <NUM> o'clock direction. When the slip occurs in the <NUM> o'clock direction, since the user's touch slips from the "T" key of the keyboard to the space keyboard, the processor <NUM> may determine that the user intended to press the space key and may apply the first filter having a relatively small filter value. When a slip occurs in the <NUM> o'clock direction, since the user's touch slips from the space key to the "T" key of the keyboard, the processor <NUM> may determine that the user intended to press the space key and may apply the second filter with a relatively large filter value to filter the slip.

An electronic device (e.g., the electronic device <NUM> of <FIG>) according to various embodiments may include a display (e.g., the display <NUM> of <FIG>), a sensor module (e.g., the sensor module <NUM> of <FIG>) configured to include a touch sensor (e.g., the touch sensor <NUM> of <FIG>) for receiving a user's touch input and generating touch data, a memory (e.g., the memory <NUM> of <FIG>), and a processor configured to be operatively connected to the display, the sensor module, and the memory, wherein the processor may generate a first filter having a first time filter value and a first magnitude filter value, may generate a second filter having a second time filter value greater than the first time filter value and a second magnitude filter value greater than the first magnitude filter value, may acquire the touch data including a first point where the touch starts and a second point where the touch ends, may apply the first filter when a moving from the first point to the second point is closer to a center line (e.g., the center line <NUM> of <FIG>) that vertically bisects a keyboard, may apply the second filter when the moving is farther away from the center line, may determine that a key of the keyboard corresponding to the first point has been touched when a duration of the touch input is less than the time filter value of the filter and a distance between the first point and the second point is less than the magnitude filter value, and may determine that a key of the keyboard corresponding to the second point has been touched when the duration of the touch input is equal to or greater than the time filter value of the filter and the distance between the first point and the second point is equal to or greater than the magnitude filter value.

According to various embodiments, the processor may configure a correction area on the keyboard, may determine whether the first point belongs to the correction area, may apply the filter when the first point belongs to the correction area, and may not apply the filter when the first point does not belong to the correction area.

According to various embodiments, the processor may apply the first filter when the first point is outside (e.g., outside <NUM> the keycap of <FIG>) a keycap and the second point is inside (e.g., inside <NUM> the keycap of <FIG>) the keycap, and may apply the second filter when the first point is outside the keycap and the second point is inside the keycap.

According to various embodiments, the touch data may include information on a touch point, a touch duration, and a size of a touch area.

According to various embodiments, the sensor module may generate user characteristic information including a gait and a finger size, and the processor may acquire the user characteristic information from the sensor module and may further determine the filter to be applied to correct a typo based on the user characteristic information.

According to various embodiments, the processor may determine touch sensitivity of the display, and may further determine the filter to be applied to correct a typo based on the touch sensitivity.

According to various embodiments, the processor may learn by inputting the acquired touch data into a deep learning algorithm.

According to various embodiments, the deep learning algorithm may include a plurality of artificial neural network layers.

According to various embodiments, the processor may generate a personalization algorithm for each user using the deep learning algorithm, and may further determine the filter to be applied to correct a typo based on the personalization algorithm.

According to various embodiments, the first filter may have a magnitude filter value of <NUM> dp.

According to various embodiments, the second filter may have a magnitude filter value of <NUM> dp.

<FIG> is a flowchart illustrating a method of correcting a typo by an electronic device according to various embodiments.

According to various embodiments, operations performed in an electronic device (e.g., the electronic device <NUM> of <FIG> or the electronic device <NUM> of <FIG>) may be performed by a processor (e.g., the processor <NUM> of <FIG> or the processor <NUM> of <FIG>) including at least one processing circuitry of the electronic device. According to an embodiment, the operations performed in the electronic device may be stored in a memory (e.g., the memory <NUM> of <FIG> or the memory <NUM> of <FIG>), and may be performed by instructions to cause the processor to operate.

According to various embodiments, in operation <NUM>, the electronic device <NUM> may generate a first filter and a second filter. The electronic device <NUM> may generate a first filter having a first time filter value (e.g., <NUM>) and a first magnitude filter value (e.g., <NUM> dp), and a second filter having a second time filter value (e.g., <NUM>) greater than the first time filter value and a second magnitude filter value (e.g., <NUM> dp) greater than the first magnitude filter value. That is, the electronic device <NUM> may generate the first filter having relatively small time filter value and magnitude filter value and the second filter having relatively large filter values. The electronic device <NUM> may determine a point touched by the user among a first point (e.g., the first point <NUM> of <FIG>) and a second point (e.g., the second point <NUM> of <FIG>) based on the filter values, so that the criteria for filtering the corresponding slip may vary depending on the situation. In a case in which the first filter is applied, the electronic device <NUM> may determine that the user has touched the first point when a distance between the first point and the second point is less than the first magnitude filter value and the touch duration is less than the first time filter value, and may determine that the user has touched the second point when either one of the above-mentioned two conditions is not satisfied. Similarly, in a case in which the second filter is applied, the electronic device <NUM> may determine that the user has touched the first point when the distance between the first point and the second point is less than the second magnitude filter value and the touch duration is less than the second time filter value, and may determine that the user has touched the second point when either one of the above-mentioned two conditions is not satisfied. Hereinafter, it will be described that the electronic device <NUM> generates the first filter and the second filter to correct a typo. However, the number of filters that the electronic device <NUM> can generate is not limited thereto, and three or more filters may be used to filter the slip, thereby correcting the typo more precisely.

According to various embodiments, in operation <NUM>, the electronic device <NUM> may acquire touch data from a touch sensor (e.g., the touch sensor <NUM> of <FIG>). When a user input event for a display (e.g., the display <NUM> of <FIG>) occurs, the touch data may include various types of information about the event. For example, the touch data may include information such as a first point where the user's touch starts, a second point where the touch ends, a touch duration, or a size of a touch area. When a slip occurs, the electronic device <NUM> may determine whether to filter the slip based on touch data.

According to various embodiments, the electronic device <NUM> may acquire user characteristic information from a sensor module (e.g., the sensor module <NUM> of <FIG>). The user characteristic information may include information on various factors affecting performance of text input. For example, the user characteristic information may include information about factors such as the user's behavioral pattern, gait, strokes, typos, touch area, key size spacing, finger size and shape, phone tilt, gripping hand, and/or typing speed. The electronic device <NUM> may determine whether to filter the slip with further reference to the user characteristic information.

According to various embodiments, in operation <NUM>, the electronic device <NUM> may determine a filter to be applied to correct typos. The electronic device <NUM> may consider various factors to determine the filter. The electronic device <NUM> may determine which one of the first filter and the second filter is applied to correct a typo by analyzing the touch data and user characteristic information.

According to various embodiments, in operation <NUM>, the electronic device <NUM> may compare a user touch with the time filter value and the magnitude filter value of the filter based on the touch data. When it is determined to apply the first filter, the electronic device <NUM> may use the first time filter value and the first magnitude filter value, and when it is determined to apply the second filter, the electronic device <NUM> may use the second time filter value and the second magnitude filter value. The electronic device <NUM> may apply the filter only when the time (touch duration) taken by the user from starting the touch at the first point to ending the touch at the second point is less than or equal to the time filter value. That is, when the user touches the keyboard for a long time, it may be determined that the user's touch has not accidentally slipped but that the user's touch is moving between the keyboard keys. The electronic device <NUM> may apply the filter only when the distance between the first point and the second point is equal to or less than the magnitude filter value. For example, when a moving distance of the user's touch is long before the touch ends, the electronic device <NUM> may determine this as an intended movement between the keys of the keyboard.

According to various embodiments, the electronic device <NUM> may configure priorities among criteria when determining a filter for correcting typos. For example, a case in which the first point is located in a blank between the "<IMG>" and "<IMG>" keys of the keyboard and the second point is located inside the "<IMG>" key of the keyboard may be considered. When viewed with respect to a center line (e.g., the center line <NUM> of <FIG>), the electronic device <NUM> may apply the second filter because the user's touch moves in a direction farther away from the center line. However, when viewed with respect to the keycap, since the user's touch moves from the outside to the inside of the keycap, the electronic device <NUM> may apply the first filter. When a collision occurs in this way, the electronic device <NUM> may determine which filter to be applied according to a criterion having a higher priority. That is, the electronic device <NUM> may configure the priority with respect to the center line to be higher, and thus may determine to apply the second filter in the above example. For example, the priority may be determined by the configuration of the electronic device <NUM> and may be changed by a user input.

According to various embodiments, the electronic device <NUM> may correct typos occurring in various function keys in addition to the number and character keycaps. That is, the electronic device <NUM> may correct typos occurring in function keys such as the space key, backspace key, shift key, enter key, Korean/English key, punctuation key, and/or special code key. For example, the user's touch may slip and press the "T' key of the keyboard while trying to press the space key. When the movement from the first point to the second point is in a downward direction, the electronic device <NUM> may apply the first filter, and when the movement from the first point to the second point is in an upward direction, the electronic device <NUM> may apply the second filter. That is, when the first point is located inside the space keycap and the second point is located inside the "T" key of the keyboard, since the moving direction is upward, the electronic device <NUM> may apply the second filter.

According to various embodiments, the electronic device <NUM> may determine a filter to be applied to correct typos based on the touch sensitivity of the touch sensor. The touch sensitivity may be a minimum pressure of a touch required to activate the function of a UI displayed on the display. The electronic device <NUM> may measure touch sensitivity based on the acquired touch data, and may determine a filter to be applied to correct typos based on the measured touch sensitivity. For example, when the touch sensitivity is configured to be high, the pressure for activating the function of the UI may be relatively small. When the touch sensitivity is high, the electronic device <NUM> may determine to apply the first filter having a small magnitude filter value because there is a high possibility that a typo may occur. Conversely, when the touch sensitivity is configured to be low, the electronic device <NUM> may determine to apply the second filter having a large magnitude filter value.

According to various embodiments, the electronic device <NUM> may accumulate user's personal touch data and user characteristic information and may store the accumulated information in a memory (e.g., the memory <NUM> of <FIG>). The touch data generated by the touch sensor and the user characteristic information generated by the sensor module may include information on the tendency of the user of the electronic device <NUM> to touch the keyboard. The electronic device <NUM> may analyze the touch data and the user characteristic information and may store the analyzed information in the memory to be used to correct typos later.

According to various embodiments, the electronic device <NUM> may generate a personalization algorithm by using the stored touch data for each user, user characteristic information, and/or a deep learning algorithm. The electronic device <NUM> may learn factors affecting character input performance by using an artificial intelligence model, and such an artificial intelligence model may be generated through machine learning. According to an embodiment, such learning may be performed in the electronic device itself on which the artificial intelligence model is performed, or may be performed through a separate server. The learning algorithm, for example, may include at least one of supervised learning, unsupervised learning, semi-supervised learning, and reinforcement learning, and is not limited to the above-described example.

According to various embodiments, the artificial intelligence model may include a plurality of artificial neural network layers. The artificial intelligence model may additionally or alternatively include a software structure in addition to the hardware structure.

According to various embodiments, the electronic device <NUM> may determine whether to correct a typo using the personalization algorithm. The electronic device <NUM> may change the time filter value and the magnitude filter value of the filter by using a user-specific characteristic, or may determine a touched key of the keyboard differently. For example, when the user uses the keyboard with his/her right hand a lot, a lot of slips may occur on keys of the keyboard positioned to the left of the center line. Alternatively, the user may frequently touch keys positioned biased to the right from the center of the keyboard or a slip may frequently occur to the right. The electronic device <NUM> may decrease the magnitude filter value when a slip occurs to the right and may increase the magnitude filter value when a slip occurs to the left occurs, by using the personalization algorithm reflecting the user's unique characteristics. At this time, even if the slip occurs to the right, it may be determined to be a typo and it is easy to be recognized that the first point has been touched. When the slip occurs to the left, it may be determined to be an intentional slip and it may be recognized that the second point has been touched.

According to various embodiments, in operation <NUM>, when a distance between the first point and the second point is less than the magnitude filter value and a touch duration is less than the time filter value, the electronic device <NUM> may determine that a key of the keyboard corresponding to the first point has been touched.

According to various embodiments, in operation <NUM>, when the distance between the first point and the second point is equal to or greater than the magnitude filter value or the touch duration is equal to or greater than the time filter value, the electronic device <NUM> may determine that a key of the keyboard corresponding to the second point has been touched.

<FIG> is a flowchart illustrating a method of correcting a typo when a slip occurs near a center line of a keyboard according to various embodiments.

According to various embodiments, operations performed in an electronic device (e.g., the electronic device <NUM> of <FIG> or the electronic device <NUM> of <FIG>) may be performed by a processor (e.g., the processor <NUM> of <FIG> or the processor <NUM> of <FIG>) including at least one processing circuitry of the electronic device. According to an embodiment, the operations performed in the electronic device may be stored in a memory (e.g., the memory <NUM> of <FIG> or the memory <NUM> of <FIG>), and may be executed by instructions to cause the processor to operate. According to various embodiments, in operation <NUM>, the electronic device <NUM> may acquire touch data from a touch sensor (e.g., the touch sensor <NUM> of <FIG>). The touch data may include information about a first point (e.g., the first point <NUM> of <FIG>) where the user's touch starts, a second point (e.g., the second point <NUM> of <FIG>) where the touch ends, and/or a touch duration. The electronic device <NUM> may acquire user characteristic information from a sensor module (e.g., the sensor module <NUM> of <FIG>). For example, the user characteristic information may include individual input data such as gait, finger length, and/or input speed.

According to various embodiments, in operation <NUM>, the electronic device <NUM> may determine the moving direction of the user's touch. The electronic device <NUM> may determine the moving direction of the touch based on the acquired touch data. For example, when the first point is located inside the "<IMG>" key of the keyboard and the second point is located inside the "<IMG>" key of the keyboard, the electronic device <NUM> may determine that the user's touch has moved in the <NUM> o'clock direction.

According to various embodiments, in operation <NUM>, the electronic device <NUM> may apply the first filter when the user's touch moves in a direction closer to the center line of the keyboard (e.g., the center line <NUM> of <FIG>). The center line of the keyboard may vertically bisect the keyboard and may be a virtual line that is not displayed on a display (e.g., the display <NUM> of <FIG>). The electronic device <NUM> may apply the first filter when the moving from the first point to the second point approaches the center line with respect to the center line of the keyboard, and may apply the second filter when the moving from the center line is farther away from the center line.

For example, when the first point is located inside the keycap of the "<IMG>" key of the keyboard and the second point is located inside the keycap of the "<IMG>" key of the keyboard, the electronic device <NUM> may determine that the user's touch has moved a direction closer to the center line. The electronic device <NUM> may apply the first filter to prevent typos. In this case, the electronic device <NUM> may determine that the user has touched the "<IMG>" key of the keyboard including the second point where the touch ends, rather than the "<IMG>" key of the keyboard including the first point where the touch starts. Similarly, when the touch duration is equal to or greater than the first time filter value or the distance between the first point and the second point is equal to or greater than the first magnitude filter value, the electronic device <NUM> may determine that the user's touch is a slip and the user has touched the "<IMG>" key of the keyboard including the first point where the touch starts.

According to various embodiments, in operation <NUM>, when the user's touch moves in a direction farther away from the center line of the keyboard, the electronic device <NUM> may apply the second filter. For example, when the first point is located inside the "<IMG>" keycap of the keyboard and the second point is located inside the "<IMG>" keycap of the keyboard, the electronic device <NUM> may determine that the user's touch has moved in the direction farther away from the center line. Contrary to the above example, the electronic device <NUM> may perform typo filtering by applying the second filter.

According to various embodiments, the electronic device <NUM> may determine the moving direction of the user's touch with respect to the location of the first point. For example, when the first point is located inside the "<IMG>" key of the keyboard and the second point is located inside the "<IMG>" key of the keyboard, the user's touch may move in a direction closer to the center line when moving from the first point to the center line, but may move in the direction away from the center line when moving to the "<IMG>" key of the keyboard by crossing the center line. In this case, the electronic device <NUM> may apply the first filter because the user's touch moves in the direction closer to the center line when viewed from the first point with respect to the location of the first point.

According to various embodiments, the electronic device <NUM> may configure a correction area (e.g., the correction area <NUM> of <FIG>) on the keyboard and may apply a filter to correct typos when a slip occurs inside the correction area. That is, the electronic device <NUM> may determine that the user has touched the second point without additional filtering with respect to the slip occurring outside the correction area. According to an embodiment, the correction area may be located at the center of the keyboard, may have a circular shape with a predetermined radius (e.g., <NUM> dp) with respect to the central point of the keyboard, or may have a rectangular shape with a predetermined size. The electronic device <NUM> may examine whether to apply what kind of filter only when the first point is located inside the correction area, and may not filter, when the first point is located outside the correction area, a slip even if the second point is located inside the correction area.

According to various embodiments, in operation <NUM>, the electronic device <NUM> may correct a typo using the determined filter. The electronic device <NUM> may identify the time filter value and magnitude filter value of the determined filter, and may compare the identified values with the touch data. When the distance between the first point and the second point is less than the magnitude filter value and the touch duration is less than the time filter value, the electronic device <NUM> may filter the corresponding slip to determine that the user has touched the first point. Conversely, when the distance between the first point and the second point is equal to or greater than the magnitude filter value and the touch duration is equal to or greater than the time filter value, the electronic device <NUM> may reflect the corresponding slip to determine that the user has touched the second point.

<FIG> is a flowchart illustrating a method of correcting a typo when a slip occurs inside and outside a keycap according to various embodiments.

According to various embodiments, in operation <NUM>, the electronic device <NUM> may acquire touch data and/or user characteristic information from a touch sensor (e.g., the touch sensor <NUM> of <FIG>). The description of the touch data and/or the user characteristic information is the same as above, and thus will be omitted.

According to various embodiments, in operation <NUM>, the electronic device <NUM> may determine the moving direction of the user's touch. In order to determine a filter to be applied for typo correction, the electronic device <NUM> may determine whether the user's touch slips from the inside to the outside of the keycap or from the outside to the inside of the keycap based on the acquired touch data.

According to various embodiments, in operation <NUM>, when the user's touch moves from the outside to the inside of the keycap, the electronic device <NUM> may apply the first filter. For example, when a first point (e.g., the first point <NUM> in <FIG>) is a blank space between the "<IMG>" key of the keyboard and the "<IMG>" key of the keyboard and a second point (e.g., the second point <NUM> in <FIG>) is located inside the "<IMG>" key of the keyboard, the electronic device <NUM> may filter the typo by applying the first filter.

According to various embodiments, in operation <NUM>, when the user's touch moves from the inside to the outside of the keycap, the electronic device <NUM> may apply the second filter. For example, when the first point is the "<IMG>" key and the second point is a blank space between the "<IMG>" key and the "<IMG>" key, the electronic device <NUM> may filter the typo by applying the second filter.

According to various embodiments, in operation <NUM>, the electronic device <NUM> may correct a typo using the determined filter. The electronic device <NUM> may determine whether to filter the slip by identifying the time filter value and the magnitude filter value of the determined filter and comparing them with the touch data.

According to various embodiments, the applying of the first filter or the second filter may further include configuring one correction area on the keyboard, determining whether the first point belongs to the correction area, applying a filter when the first point belongs to the correction area, and not applying a filter when the first point does not belong to the correction area.

According to various embodiments, the applying of the first filter or the second filter may further include applying the first filter when the first point is outside the keycap and the second point is inside the keycap, and applying the second filter when the first point is inside the keycap and the second point is outside the keycap.

According to various embodiments, the touch data may include information about a touch point, a touch duration, and a size of a touch area.

According to various embodiments, the applying of the first filter or the second filter may further include generating user characteristic information including a gait and a finger size, and further determining a filter to be applied for typo correction based on the user characteristic information.

According to various embodiments, the applying of the first filter or the second filter may further include determining touch sensitivity of the display, and further determining a filter to be applied to typo correction based on the touch sensitivity.

According to various embodiments, the applying of the first filter or the second filter may further include learning by inputting the acquired touch data into a deep learning algorithm.

Claim 1:
An electronic device comprising:
a display;
a sensor module including a touch sensor configured to receive a touch input and generate touch data;
memory; and
at least one processor operatively connected to the display, the sensor module, and the memory,
characterized in that
the memory stores instructions that, when executed by the at least one processor individually or collectively, cause the electronic device to:
generate a first filter having a first time filter value and a first magnitude filter value,
generate a second filter having a second time filter value greater than the first time filter value and a second magnitude filter value greater than the first magnitude filter value,
acquire the touch data including a first point where a touch starts and a second point where the touch ends,
apply the first filter based on a moving from the first point to the second point being closer to a center line that vertically bisects a keyboard,
apply the second filter based on the moving being farther away from the center line,
determine that a key of the keyboard corresponding to the first point has been touched based on a duration of the touch input being less than the time filter value of the filter and a distance between the first point and the second point being less than the magnitude filter value, and
determine that a key of the keyboard corresponding to the second point has been touched based on the duration of the touch input being equal to or greater than the time filter value of the filter and the distance between the first point and the second point being equal to or greater than the magnitude filter value.