Patentable/Patents/US-10878189
US-10878189

Method for correcting a mistyped word resulting from at least one of an inaccurate keyboard input and a wrong keyboard layout and system implementing thereof

PublishedDecember 29, 2020
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

A method and system for correcting a mistyped word resulting from at least one of an inaccurate keyboard input and wrong keyboard layout is disclosed. The method comprises selecting a first n-characters of a first word, selecting candidate characters that are likely subsequent characters to the first n-characters by calculating a candidate score value for each candidate character; generating a respective positive reformulated word for each selected candidate characters which corresponds to the first word having replaced the n+1 character with the respective candidate character; and training a machine learning algorithm (MLA) to determine a set of features representing a property between each reformulated words and the first word; and training the MLA to determine the reformulated word having an absence of a mistype.

Patent Claims
18 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A computer implemented method for correcting a mistyped word resulting from at least one of an inaccurate keyboard input and a wrong keyboard layout, the method executable by a server, the method comprising, at a training phase: acquiring a first word from a corpus of text; selecting a first n-characters of the first word, wherein n corresponds to a numerical value; selecting a first set of candidate characters for the first n-characters, each candidate character of the first set of candidate characters being a possible subsequent character to the first n-characters; assigning a candidate score value for each candidate character of the first set of candidate characters, the candidate score value being representative of a likelihood of a given candidate character of the first set of candidate characters to be a subsequent character to the first n-characters, the candidate score value being determined by: determining a co-occurrence score value indicative of a co-occurrence of the first n-characters and the given candidate character in the corpus of text; determining a penalty score value of the given candidate character, the penalty score value being indicative of an unlikeliness of the given candidate character being a subsequent character to the first n-characters of the first word, the determining the penalty score value comprises: selecting a default keyboard layout; determining a presence of a first keyboard key associated with the given candidate character in the default keyboard layout; upon determining the presence of the second keyboard key in the default keyboard layout: determining a location of the first keyboard key within the default keyboard layout; determining a location of a second key associated with the n+1 character of the first word in the default keyboard layout; determining a distance between the first keyboard key and the second keyboard key; assigning the penalty score value based on the determined distance; and adjusting the previously determined co-occurrence score value with the penalty score value; selecting a first predetermined number of top candidate characters based on their respective candidate score value, the first predetermined number of top candidate characters forming a first subset of the first set of candidate characters; selecting a second subset of the first set of candidate characters, the second subset comprising candidate characters not included in the first subset of candidate characters; generating, for each of the candidate characters within the first subset of the first set, a respective positive reformulated word, the positive reformulated word corresponding to the first word having replaced at least the n+1 character with the respective candidate character from the first subset, each of the positive reformulated words and the first word forming a positive training pair with a first label value; generating, for each of the candidate characters within the second subset of the first set, a respective negative reformulated word, the negative reformulated word corresponding to the first word having replaced at least the n+1 character with the respective candidate character from the second subset, each of the negative reformulated words and the first word forming a negative training pair with a second label value, the positive training pairs and the negative training pairs forming training pairs, and each of the negative and positive reformulated words being a training word; training a machine learning algorithm (MLA), the training comprising: determining, for each training pairs, a set of features representative of a property of the training pairs; and based on the set of features associated with each training pairs, ranking the training pairs, a top ranked training pair being indicative of an absence of a mistype within the associated training word.

2

2. The method of claim 1 , further comprising: at an in-use phase: acquiring a text phrase for processing from a client device, the text phrase comprising at least a second word; selecting the first n-characters of the second word; selecting a second set of candidate characters, each candidate character of the second set of candidate characters being a possible subsequent character to the first n-characters of the second word; determining the candidate score value for each candidate characters of the second set; selecting a second predetermined number of top candidate characters based on their respective candidate score value; generating, for each of the second predetermined number of top candidate characters, a respective candidate word, the candidate word corresponding to the second word having replaced at least the n+1 character with the respective second predetermined number of top candidate characters, each of the candidate words and the second word forming a candidate word pair; ranking each of the candidate word pair using the MLA to determine the top ranked candidate word pair; generating a modified text phrase, the modified text phrase corresponding to the text phrase having replaced the second word with the candidate word associated with the top ranked candidate word pair.

3

3. The method of claim 2 , wherein determining the co-occurrence score comprises: determining a set of words having the same first n-characters from the corpus of text; and determining a frequency of each candidate character of the first set of candidate characters co-occurring within the set of words after the first-n characters.

4

4. The method of claim 1 , wherein upon determining that the first keyboard key is not present within the default keyboard layout, assigning a constant value to the given candidate character as the penalty score value.

5

5. The method of claim 1 , wherein the server is coupled to: a plurality of client devices via a communication network; a search log database, the search log database comprising previously submitted search queries from the plurality of client devices; and wherein: the corpus of text is the previously submitted search queries.

6

6. The method of claim 5 , wherein the server is further coupled to: a crawler database, the crawler database comprising one or more indications of uniform resource locators (URLs) associated with web resources; the search log database further comprises: a plurality of search engine result pages (SERPs) generated in response to the previously submitted search queries; one or more user interactions received by one or more client devices with the plurality of SERPs, the one or more user interactions comprising at least a presence of a user selecting a suggested search query from a given SERP generated in response to a given search query; the set of features of a training pair comprises at least one of: a uniform resource locator (URL) feature, the URL feature being associated with a presence of the given training word and the first word in the URLs stored within the crawler database; a word presence feature, the word presence feature being associated with a presence of the given training word and the first word in at least one web resource accessed using the URLs stored within the crawler database; and a user-click feature, the user-click feature being associated with a frequency of the user selecting the suggested search query corresponding to the given training word in response to the user having entered the first word as the search query.

7

7. The method of claim 5 , wherein the selecting the first word from the previously submitted search queries comprises: selecting the first word from a pool of a pre-determined correctly typed previously submitted search queries, the pre-determination having been executed by an assessor.

8

8. A computer implemented method for correcting a mistyped word resulting from at least one of an inaccurate keyboard input and a wrong keyboard layout, the method executable by a server, the method comprising: acquiring a text phrase for processing from a client device, the text phrase comprising at least a first word; selecting a first n-characters of the first word, wherein n corresponds to a numerical value; selecting a first set of candidate characters, each candidate character of the first set of candidate characters being a possible subsequent character to the first n-characters of the first word; assigning a candidate score value for each candidate character of the first set of candidate characters, the candidate score value being representative of a likelihood of a given candidate character of the first set of candidate characters to be a subsequent character to the first n-characters, the candidate score value being determined by: determining a co-occurrence score value indicative of a co-occurrence of the first n-characters and the given candidate character in the corpus of text; determining a penalty score value of the given candidate character, the penalty score value being indicative of an unlikeliness of the given candidate character being a subsequent character to the first n-characters of the first word, the determining the penalty score value comprises: selecting a default keyboard layout; determining a presence of a first keyboard key associated with the given candidate character in the default keyboard layout; upon determining the presence of the second keyboard key in the default keyboard layout: determining a location of the first keyboard key within the default keyboard layout; determining a location of a second key associated with the n+1 character of the first word in the default keyboard layout; determining a distance between the first keyboard key and the second keyboard key; assigning the penalty score value based on the determined distance; and adjusting the previously determined co-occurrence score value with the penalty score value; selecting a predetermined number of top candidate characters based on their respective candidate score value, the predetermined number of top candidate characters forming a first subset of the first set of candidate characters; generating, for each predetermined number of top candidate characters, a respective candidate word, the candidate word corresponding to the first word having replaced at least the n+1 character with a respective predetermined number of top candidate characters, each of the candidate words and the first word forming a candidate word pair; determining, for each candidate word pairs, a set of features representative of a property of the candidate word pair; ranking each of the candidate word pair, based on the associated set of features, using a MLA to determine the top ranked candidate word pair; and generating a modified text phrase, the modified text phrase corresponding to the text phrase having replaced the first word with the candidate word associated with the top ranked candidate word pair.

9

9. The method of claim 8 , wherein determining the co-occurrence score comprises: determining a set of words having the same first n-characters from the corpus of text; and determining a frequency of each candidate character of the first set of candidate characters co-occurring within the set of words after the first-n characters.

10

10. The method of claim 9 , wherein the server is coupled to: a plurality of client devices via a communication network; a search log database, the search log database comprising previously submitted search queries from the plurality of client devices; and wherein: the corpus of text is the previously submitted search queries.

11

11. The method of claim 10 , wherein the server is further coupled to: a crawler database, the crawler database comprising one or more indications of uniform resource locators (URLs) associated with web resources; the search log database further comprises: a plurality of search engine result pages (SERPs) generated in response to the previously submitted search queries; one or more user interactions received by one or more client devices with the plurality of SERPs, the one or more user interactions comprising at least a presence of a user selecting a suggested search query from a given SERP generated in response to a given search query; the set of features of a candidate word pair comprises at least one of: a uniform resource locator (URL) feature, the URL feature being associated with a presence of a given candidate word and the first word in the URLs stored within the crawler database; a word presence feature, the word presence feature being associated with a presence of the given candidate word and the first word in at least one web resource accessed using the URLs stored within the crawler database; and a user-click feature, the user-click feature being associated with a frequency of the user selecting the suggested search query corresponding to the candidate training word in response to the user having entered the first word as the search query.

12

12. The method of claim 8 , wherein upon determining that the second keyboard key is not present on the default keyboard layout, assigning a constant value to the given candidate character as the penalty score value.

13

13. The method of claim 8 , wherein the first word is a mistyped word; and the candidate word associated with the top ranked candidate word pair is a correctly spelled second word.

14

14. The method of claim 8 , wherein: the first word is a correctly spelled word; and the candidate word associated with the top ranked candidate word pair is the second word.

15

15. The method of claim 8 , wherein the server comprises a search engine service; the text phrase is a search query; and processing the modified text phrase comprises one of: sending the modified text phrase to the client device as a suggested search query; and executing a web search using the modified text phrase.

16

16. A server for correcting a mistyped word resulting from at least one of an inaccurate keyboard input and a wrong keyboard layout, the server comprising a processor configured to, during a training phase: acquire a first word from a corpus of text; select a first n-characters of the first word, wherein n corresponds to a numerical value; select a first set of candidate characters for the first n-characters, each candidate character of the first set of candidate characters being a possible subsequent character to the first n-characters; assign a candidate score value for each candidate character of the first set of candidate characters, the candidate score value being representative of a likelihood of a given candidate character of the first set of candidate characters to be a subsequent character to the first n-characters, the candidate score value being determined by: determine a co-occurrence score value indicative of a co-occurrence of the first n-characters and the given candidate character in the corpus of text; determine a penalty score value of the given candidate character, the penalty score value being indicative of an unlikeliness of the given candidate character being a subsequent character to the first n-characters of the first word, the determining the penalty score value comprises: select a default keyboard layout; determine a presence of a first keyboard key associated with the given candidate character in the default keyboard layout; upon determining the presence of the second keyboard key in the default keyboard layout: determine a location of the first keyboard key within the default keyboard layout; determine a location of a second key associated with the n+1 character of the first word in the default keyboard layout; determine a distance between the first keyboard key and the second keyboard key; assign the penalty score value based on the determined distance; and adjust the previously determined co-occurrence score value with the penalty score value; select a first predetermined number of top candidate characters based on their respective candidate score value, the first predetermined number of top candidate characters forming a first subset of the first set of candidate characters; select a second subset of the first set of candidate characters, the second subset comprising candidate characters not included in the first subset of candidate characters; generate, for each of the candidate characters within the first subset of the first set, a respective positive reformulated word, the positive reformulated word corresponding to the first word having replaced at least the n+1 character with the respective candidate character from the first subset, each of the positive reformulated words and the first word forming a positive training pair with a first label value; generate, for each of the candidate characters within the second subset of the first set, a respective negative reformulated word, the negative reformulated word corresponding to the first word having replaced at least the n+1 character with the respective candidate character from the second subset, each of the negative reformulated words and the first word forming a negative training pair with a second label value, the positive training pairs and the negative training pairs forming training pairs, and each of the negative and positive reformulated words being a training word; train a machine learning algorithm (MLA), the training comprising: determine, for each training pairs, a set of features representative of a property of the training pairs; and based on the set of features associated with each training pairs, rank the training pairs, a top ranked training pair being indicative of an absence of a mistype within the associated training word.

17

17. The server of claim 16 , further comprising: a network interface for communicatively coupling to a communication network; the processor further configured to, at an in-use phase: acquire a text phrase for processing from a client device, the text phrase comprising at least a second word; select the first n-characters of the second word; select a second set of candidate characters, each candidate character of the second set of candidate characters being a possible subsequent character to the first n-characters of the second word; determine the candidate score value for each candidate characters of the second set; select a second predetermined number of top candidate characters based on their respective candidate score value; generate, for each of the second predetermined number of top candidate characters, a respective candidate word, the candidate word corresponding to the second word having replaced at least the n+1 character with the respective second predetermined number of top candidate characters, each of the candidate words and the second word forming a candidate word pair; rank each of the candidate word pair using the MLA to determine the top ranked candidate word pair; generate a modified text phrase, the modified text phrase corresponding to the text phrase having replaced the second word with the candidate word associated with the top ranked candidate word pair.

18

18. The server of claim 16 , wherein the server is coupled to: a plurality of client devices via the communication network; a search log database, the search log database comprising previously submitted search queries from the plurality of client devices; and wherein: the corpus of text is the previously submitted search queries.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

June 29, 2018

Publication Date

December 29, 2020

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Method for correcting a mistyped word resulting from at least one of an inaccurate keyboard input and a wrong keyboard layout and system implementing thereof” (US-10878189). https://patentable.app/patents/US-10878189

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.