IP Library Granted Patent US 9,460,066
Granted Patent B2
US 9,460,066 · App. 13/830,749 · Granted Oct 4, 2016

Systems and methods for character correction in communication devices

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,460,066
App. No.
13/830,749
Granted
Oct 4, 2016
Kind
B2
Abstract

Systems and methods for character error correction are provided, useful for a user of mobile appliances to produce written text with reduced errors. The system includes an interface, a word prediction engine, a statistical engine, an editing distance calculator, and a selector. A string of characters, known as the inputted word, may be entered into the mobile device via the interface. The word prediction engine may then generate word candidates similar to the inputted word using fuzzy logic and user preferences generated from past user behavior. The statistical engine may then generate variable is error costs determined by the probability of erroneously inputting any given character. The editing distance calculator may then determine the editing distance between the inputted word and each of the word candidates by grid comparison using the variable error costs. The selector may choose one or more preferred candidates from the word candidates using the editing distances.

Claims (82)

1. A method, comprising the steps of:

receiving text data from an interface, wherein the interface comprises a plurality of keys, wherein each of the plurality of keys corresponds to one or more characters, wherein the text data comprises a sequential string of characters that are input through the plurality of keys, wherein the sequential string of characters corresponds to at least a portion of a word;

comparing the sequential string of characters with a word corpus;

generating at least two candidate words, wherein each of the at least two candidate words comprises a string of characters from the word corpus;

calculating a probability of erroneously inputting any given character of the sequential string of characters through the interface, wherein the erroneous inputting of a character of the sequential string of characters comprises any of

poor spelling,

mis-striking a key of the plurality of keys, wherein the wrong key is entered, or

mis-actuation of a key of the plurality of keys, wherein the key is not entered properly and either the character is not entered or is double entered; generating variable error costs, wherein the variable error costs are determined

by the calculated probability of erroneously inputting any given character of the sequential string of characters through the interface;

calculating the editing distance for each of the at least two candidate words by using the generated variable error costs, wherein the editing distance is the degree of attenuation between the candidate word and the sequential string of characters.. wherein the calculating the editing distance for each of the at least two candidate words comprises a grid comparison between each candidate word of the at least two candidate words and the sequential string of characters, and wherein the grid comparison calculates cell values along grid rows, and further wherein values of cells within a row M, where M comprises a location within a matrix, are purged from memory after all cells in the row M+1 have been calculated; and

selecting a preferred candidate word from the at least two candidate words by using the calculated editing distance, wherein the preferred candidate word has the smallest calculated editing distance of all the calculated editing distances of the at least two candidate words.

2. An apparatus, comprising:

a mechanism for receiving text data from an interface, wherein the interface comprises a plurality of keys, wherein each of the plurality of keys corresponds to one or more characters, wherein the text data comprises a sequential string of characters that are input through the plurality of keys, wherein the sequential string of characters corresponds to at least a portion of a word;

at least one processor programmed to

compare the sequential string of characters with a word corpus,

generate at least two candidate words, wherein each of the at least two candidate words comprises a string of characters from the word corpus,

calculate a probability of erroneously inputting any given character of the sequential string of characters through the interface, wherein the erroneous inputting of a character of the string of characters comprises any of

poor spelling,

mis-striking a key of the plurality of keys, wherein the wrong key is entered, or

mis-actuation of a key of the plurality of keys, wherein the key is not entered properly and either the character is not entered or is double entered,

generate variable error costs, wherein the variable error costs are determined by the calculated probability of erroneously inputting any given character of the sequential string of characters, and

calculate an editing distance for each of the at least two candidate words using the generated variable error costs, wherein the editing distance is the degree of attenuation between each of the at least two candidate words and the sequential string of characters, wherein the calculating the editing distance for each of the at least two candidate words comprises a grid comparison between each candidate word of the at least two candidate words and the sequential string of characters, and wherein the grid comparison calculates cell values along grid rows, and further wherein values of cells within a row M, where M comprises a location within a matrix, are purged from memory after all cells in the row M+1 have been calculated; and

a selector configured to select a preferred candidate from the at least two candidate words using the editing distance, wherein the preferred candidate word has the smallest editing distance of all the editing distances of the at least two candidate words.

3. A device, comprising:

an interface, wherein the interface comprises a plurality of keys, wherein each of the plurality of keys corresponds to one or more characters;

at least one processor programmed to

receive a sequential string of characters that are input through the plurality of keys, wherein the received sequential string of characters corresponds to at least a portion of a word,

compare the received sequential string of characters with a word corpus, generate the at least two candidate words, wherein each of the at least

two candidate words comprises a string of characters from the word corpus, calculate a

probability of erroneously inputting any given character of the received sequential string of characters through the interface, wherein the erroneous inputting of a character of the string of characters comprises any of

poor spelling,

mis-striking a key of the plurality of keys, wherein the wrong key is entered, or

mis-actuation of a key of the plurality of keys, wherein the key is not entered properly and either the character is not entered or is double entered,

generate variable error costs, wherein the variable error costs are determined by the calculated probability of erroneously inputting any given character of the received sequential string of characters, and

calculate an editing distance for each of the at least two candidate words using the generated variable error costs, wherein the editing distance is the degree of attenuation between each of the candidate words and the received sequential string of characters, wherein the calculating the editing distance for each of the at least two candidate words comprises a grid comparison between each candidate word of the at least two candidate words and the sequential string of characters, and wherein the grid comparison calculates cell values along grid rows, and further wherein values of cells within a row M, where M comprises a location within a matrix, are purged from memory after all cells in the row M+1 have been calculated; and

a selector configured to select a preferred candidate from the at least two candidate words using the editing distance, wherein the preferred candidate word has the smallest editing distance of all the editing distances of the at least two candidate words.

4. The method of claim 3 , wherein the step of selecting the at least two candidate words from the word corpus by fuzzy logic utilizes user preferences, and wherein user preferences are generated from past user behavior.

5. The method of claim 1 , wherein the variable error costs comprises any of replacement error costs, addition error costs or deletion error costs.

6. The method of claim 1 , wherein the preferred candidate word comprises more than one candidate of the at least two candidate words, and wherein each of the more than one candidate of the preferred candidate word has an editing distance below a threshold value.

7. The method of claim, wherein the step of calculating each editing distance queries previously stored editing distances for a partial match, and when if the partial match is found, inputting the stored editing distance into the grid comparison.

8. The method of claim 1 , wherein the method is performed continuously as the characters are input through the plurality of keys.

9. The method of claim 1 , wherein the method is initiated once a word delineator is encountered in the sequential string of characters.

10. An apparatus, comprising:

a mechanism for receiving text data from an interface, wherein the interface comprises a plurality of keys, wherein each of the plurality of keys corresponds to one or more characters, wherein the text data comprises a sequential string of characters that are input through the plurality of keys, wherein the sequential string of characters corresponds to at least a portion of a word;

at least one processor programmed to

compare the sequential string of characters with a word corpus,

generate at least two candidate words, wherein each of the at least two candidate words comprises a string of characters from the word corpus,

calculate a probability of erroneously inputting any given character of the sequential string of characters through the interface, wherein the erroneous inputting of a character of the string of characters comprises any of

poor spelling,

mis-striking a key of the plurality of keys, wherein the wrong key is entered, or

mis-actuation of a key of the plurality of keys, wherein the key is not entered properly and either the character is not entered or is double entered,

generate variable error costs, wherein the variable error costs are determined by the calculated probability of erroneously inputting any given character of the sequential string of characters, and

calculate an editing distance for each of the at least two candidate words using the generated variable error costs, wherein the editing distance is the degree of attenuation between each of the at least two candidate words and the sequential string of characters, wherein the calculating the editing distance for each of the at least two candidate words comprises a grid comparison between each candidate word of the at least two candidate words and the sequential string of characters, and wherein the grid comparison calculates cell values along grid rows, and further wherein values of cells within a row M, where M comprises a location within a matrix, are purged from memory after all cells in a row M+1 have been calculated; and

a selector configured to select a preferred candidate from the at least two candidate words using the editing distance, wherein the preferred candidate word has the smallest editing distance of all the editing distances of the at least two candidate words.

11. The apparatus of claim 10 , wherein the characters comprise any of alphabetic symbols, syllabic symbols, or ideographic symbols.

12. The apparatus of claim 10 wherein the generation of the at least two candidate words comprises a selection of the at least two candidate words from the word corpus by fuzzy logic, wherein if an error is detected in a candidate word, then the candidate word can be tested again after substituting in turn each character of the sequential string of characters with an adjacent letter from the interface.

13. The apparatus of claim 12 , wherein the selection of the at least two candidate words from the word corpus by fuzzy logic utilizes user preferences, and wherein user preferences are generated from past user behavior.

14. The apparatus of claim 10 , wherein the variable error costs comprises any of replacement error costs, addition error costs or deletion error costs.

15. The apparatus of claim 10 , wherein the preferred candidate word comprises more than one candidate of the at least two candidate words, and wherein each of the more than one candidate of the preferred candidate word has an editing distance below a threshold value.

16. The apparatus of claim 10 , wherein the calculation of each of the editing distances comprises a query of previously stored editing distances for a partial match, and if the partial match is found, the stored editing distance is input into the grid comparison.

17. The apparatus of claim 10 , wherein the at least one processor is programmed to operate continuously as the characters are input through the plurality of keys.

18. The apparatus of claim 10 , wherein the at least one processor is programmed to operate once a word delineator is encountered in the sequential string of characters.

19. A device, comprising:

an interface, wherein the interface comprises a plurality of keys, wherein each of the plurality of keys corresponds to one or more characters,

at least one processor programmed to

receive a sequential string of characters that are input through the plurality of keys, wherein the received sequential string of characters corresponds to at least a portion of a word,

compare the received sequential string of characters with a word corpus,

generate the at least two candidate words, wherein each of the at least two candidate words comprises a string of characters from the word corpus,

calculate a probability of erroneously inputting any given character of the received sequential string of characters through the interface, wherein the erroneous inputting of a character of the string of characters comprises any of

poor spelling,

mis-striking a key of the plurality of keys, wherein the wrong key is entered, or

mis-actuation of a key of the plurality of keys, wherein the key is not entered properly and either the character is not entered or is double entered,

generate variable error costs, wherein the variable error costs are determined by the calculated probability of erroneously inputting any given character of the received sequential string of characters, and

calculate an editing distance for each of the at least two candidate words using the generated variable error costs, wherein the editing distance is the degree of attenuation between each of the candidate words and the received sequential string of characters, wherein the calculating the editing distance for each of the at least two candidate words comprises a grid comparison between each candidate word of the at least two candidate words and the sequential string of characters, and wherein the grid comparison calculates cell values along grid rows, and further wherein values of cells within a row M, where M comprises a location within a matrix, are purged from memory after all cells in a row M+1 have been calculated; and

a selector configured to select a preferred candidate from the at least two candidate words using the editing distance, wherein the preferred candidate word has the smallest editing distance of all the editing distances of the at least two candidate words.

20. The device of claim 19 , wherein the characters comprise any of alphabetic symbols, syllabic symbols, or ideographic symbols.

21. The device of claim 19 , wherein the generation of the at least two candidate words comprises a selection of the at least two candidate words from the word corpus by fuzzy logic, wherein if an error is detected in a candidate word, then the candidate word can be tested again after substituting in turn each character of the received sequential string of characters with an adjacent letter from the interface.

22. The device of claim 21 , wherein the selection of the at least two candidate words from the word corpus by fuzzy logic utilizes user preferences, and wherein user preferences are generated from past user behavior.

23. The device of claim 19 , wherein the variable error costs comprises any of replacement error costs, addition error costs or deletion error costs.

24. The device of claim 19 , wherein the preferred candidate word comprises more than one candidate of the at least two candidate words, and wherein each of the more than one candidate of the preferred candidate word has an editing distance below a threshold value.

25. The device of claim 19 , wherein the at least one processor is programmed to operate continuously as the characters are input through the plurality of keys.

26. The device of claim 19 , wherein the at least one processor is programmed to operate once a word delineator is encountered in the received sequential string of characters.

Assignments (7)
RELEASE (REEL 052935 / FRAME 0584) Recorded Jan 2, 2025
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: CERENCE OPERATING COMPANY
Reel/Frame 069797/0818 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE THE CONVEYANCE DOCUMENT WITH THE NEW ASSIGNMENT PREVIOUSLY RECORDED AT REEL: 050836 FRAME: 0191. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 19, 2022
From: NUANCE COMMUNICATIONS, INC.
To: CERENCE OPERATING COMPANY
Reel/Frame 059804/0186 →
SECURITY AGREEMENT Recorded Jun 15, 2020
From: CERENCE OPERATING COMPANY
To: WELLS FARGO BANK, N.A.
Reel/Frame 052935/0584 →
RELEASE OF SECURITY INTEREST Recorded Jun 12, 2020
From: BARCLAYS BANK PLC
To: CERENCE OPERATING COMPANY
Reel/Frame 052927/0335 →
SECURITY AGREEMENT Recorded Nov 7, 2019
From: CERENCE OPERATING COMPANY
To: BARCLAYS BANK PLC
Reel/Frame 050953/0133 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 050836 FRAME: 0191. ASSIGNOR(S) HEREBY CONFIRMS THE INTELLECTUAL PROPERTY AGREEMENT. Recorded Oct 29, 2019
From: NUANCE COMMUNICATIONS, INC.
To: CERENCE OPERATING COMPANY
Reel/Frame 050871/0001 →
INTELLECTUAL PROPERTY AGREEMENT Recorded Oct 23, 2019
From: NUANCE COMMUNICATIONS, INC.
To: CERENCE INC.
Reel/Frame 050836/0191 →