Virtual Keyboard Input Correction via Server-Side Ranking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Virtual keyboards on electronic devices often experience unintended inputs due to their small size, leading to typing errors and unclear user intent, as users may accidentally touch between keys or apply insufficient pressure, resulting in incorrect character entries.
Innovation Solution
A system that utilizes data from both the user device and a server to suggest corrections by analyzing input location, duration, and pressure on virtual keyboards, performing spellchecks, and ranking candidates based on popularity and probability to provide accurate spelling suggestions, which can then be used for actions like searches or text-to-speech conversions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Volume of moving object
If the virtual keyboard size is reduced to fit mobile devices, then the device portability is improved, but the input accuracy deteriorates due to accidental touches and unclear key presses
Solution Approach 1:
The system performs preliminary spell checking and candidate generation based on touch location and duration data before the user completes their input. By proactively analyzing the input pattern and providing candidate corrections in advance, the system compensates for the imprecision caused by small keyboard size, allowing users to confirm or reject suggestions rather than manually correcting errors.
Solution Approach 2:
The system implements feedback by providing multiple candidate corrections ranked by probability to the user. The spell checker analyzes touch patterns and returns suggested corrections that are displayed to the user for selection. This feedback loop allows the system to recover from inaccurate inputs caused by the small keyboard size, transforming potential errors into correctable suggestions.
2Measurement precision
If more data processing is performed on the user device to improve input accuracy, then the input accuracy is improved, but the device computational load increases
Solution Approach 1:
The system uses an intermediary server to perform the computationally intensive spell checking and candidate ranking operations. The mobile device collects touch data (location, duration, pressure) and sends it to the server, which performs the heavy computational work of generating and ranking candidate corrections. This intermediary approach allows accurate spell checking without overloading the mobile device's processor or consuming excessive battery power.
3Reliability
If touch duration thresholds are increased to filter accidental touches, then false inputs are reduced, but legitimate quick typing is restricted
Solution Approach 1:
The system changes the parameter used for input validation from a single threshold (touch duration) to multiple parameters including touch location, touch duration, and touch pressure. By analyzing the combination of these parameters, the system can distinguish between accidental touches and intentional quick inputs. Accidental touches typically have inconsistent parameter patterns, while intentional typing maintains reasonable parameter relationships even at high speeds.
Solution Approach 2:
The system performs partial spell checking by generating candidate corrections for only the most ambiguous or error-prone portions of the input, rather than processing every character uniformly. This selective approach allows the system to maintain high input reliability for problematic inputs while preserving typing speed for clear, unambiguous inputs that don't require extensive processing.
Data Source
AI summary
Systems may include receiving, from the user device, data representing input to a virtual keyboard on the user device, where the virtual keyboard includes keys, and the data represents least one of: locations at which the keys were selected and durations for which the keys were selected. The systems may include using the data to identify character strings; and performing a spellcheck on the character strings to identify candidates for the character strings. The systems may also include determining popularities of the candidates; selecting one or more of the candidates based on popularity and ranking of the one or more candidates; and outputting the selected one or more candidates.


