Autocorrecting language input for virtual keyboards
First Claim
1. A method comprising:
- receiving a sequence of keyboard events representing keystrokes input to a virtual keyboard of a device;
traversing a hierarchical data structure according to the sequence of keyboard events to determine candidate words;
constructing a word lattice based on a language model, including deriving path weights from candidate word statistics and keyboard error model data, wherein deriving the path weights is based on a function having one or more first parameters including the candidate word statistics and one or more second parameters including the keyboard error model data;
searching the word lattice for N best paths, where N is a positive integer;
determining one or more candidate sentences comprising candidate words based on the N best paths; and
presenting the candidate sentences on a user interface component of the device, where the method is performed by one or more hardware processors of the device.
1 Assignment
0 Petitions
Accused Products
Abstract
Various techniques for autocorrecting virtual keyboard input for various languages (e.g., Japanese, Chinese) are disclosed. In one aspect, a system or process receives a sequence of keyboard events representing keystrokes on a virtual keyboard. A hierarchical data structure is traversed according to the sequence of keyboard events to determine candidate words for the sequence of keyboard events. A word lattice is constructed using a language model, including deriving weights or paths in the word lattice based on candidate word statistics and data from a keyboard error model. The word lattice is searched to determine one or more candidate sentences comprising candidate words based on the path weights. Paths through the word lattice can be pruned (e.g., discarded) to reduce the size and search time of the word lattice.
-
Citations
18 Claims
-
1. A method comprising:
-
receiving a sequence of keyboard events representing keystrokes input to a virtual keyboard of a device; traversing a hierarchical data structure according to the sequence of keyboard events to determine candidate words; constructing a word lattice based on a language model, including deriving path weights from candidate word statistics and keyboard error model data, wherein deriving the path weights is based on a function having one or more first parameters including the candidate word statistics and one or more second parameters including the keyboard error model data; searching the word lattice for N best paths, where N is a positive integer; determining one or more candidate sentences comprising candidate words based on the N best paths; and presenting the candidate sentences on a user interface component of the device, where the method is performed by one or more hardware processors of the device. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A non-transitory computer-readable medium storing instructions, which, when executed, are operable to cause one or more processors to perform operations comprising:
-
receiving a sequence of keyboard events representing keystrokes input to a virtual keyboard of a device; traversing a hierarchical data structure according to the sequence of keyboard events to determine candidate words; constructing a word lattice based on a language model, including deriving path weights from candidate word statistics and keyboard error model data, wherein deriving the path weights is based on a function having one or more first parameters including the candidate word statistics and one or more second parameters including the keyboard error model data; searching the word lattice for N best paths, where N is a positive integer; determining one or more candidate sentences comprising candidate words based on the N best paths. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A system comprising:
- one or more hardware processors;
a non-transitory computer-readable medium storing instructions, which, when executed, are operable to cause the one or more processors to perform operations comprising; receiving a sequence of keyboard events representing keystrokes input to a virtual keyboard of a device; traversing a hierarchical data structure according to the sequence of keyboard events to determine candidate words; constructing a word lattice based on a language model, including deriving path weights from candidate word statistics and keyboard error model data, wherein deriving the path weights is based on a function having one or more first parameters including the candidate word statistics and one or more second parameters including the keyboard error model data; searching the word lattice for N best paths, where N is a positive integer; determining one or more candidate sentences comprising candidate words based on the N best paths. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
- one or more hardware processors;
Specification