Input method editor providing language assistance
First Claim
1. One or more computer-readable storage storing computer executable instructions that, when executed, cause one or more processors to perform acts comprising:
- detecting keystrokes within an application by operation of an in-process input method editor (IME) dynamic link library (DLL);
forwarding the keystrokes detected within the application by operation of the in-process IME DLL to an out-of-process IME platform process, wherein the out-of-process IME platform process is located within a defined computer-readable memory address range separate and distinct from an address range within which the application is defined;
detecting a need for a suggestion to assist with input of a word into the application, the detecting comprising;
accessing words entered into the application and recorded; and
calculating a probability of correctness of the word input based at least in part on the recorded words;
obtaining a suggestion for replacement of the word, if indicated by the calculated probability, the obtaining comprising;
obtaining the suggestion from a cloud linguistic service (CLS);
if network capability used to communicate with the CLS is limited or non-existent, then obtaining a suggestion from a local lexicon or statistical language-model, based at least in part on the recorded words previously entered into the application; and
utilizing a confidence score for an obtained suggestion to determine whether to present the obtained suggestion;
providing the obtained suggestion for display if indicated by the confidence score, the providing comprising;
providing the obtained suggestion for display within a notification bubble; and
providing the notification bubble for display at a location based at least in part on location of an IME bar; and
moving the IME bar and/or the notification bubble in response to input signifying movement.
2 Assignments
0 Petitions
Accused Products
Abstract
An input method editor (IME) configured to provide language assistance across a plurality of applications is disclosed. In one example, the IME is adapted for use by English-as-a-second-language (ESL) users. In a specific example, language assistance may be provided by first detecting a need to suggest a substitute word to a user who is typing within an application. The detection may be based on a probability that a current word is in error. If a need is detected, a suggestion may be obtained for the word, such as from a cloud linguistic service or from a local lexicon and language-model, if network connectivity is poor. Once obtained, the suggestion may be displayed to the user in a non-intrusive manner by user interface element(s). Interaction with the user allows the user to accept or reject the suggestion, and perform other functions, such as relocating user interface elements utilized by the display.
207 Citations
18 Claims
-
1. One or more computer-readable storage storing computer executable instructions that, when executed, cause one or more processors to perform acts comprising:
-
detecting keystrokes within an application by operation of an in-process input method editor (IME) dynamic link library (DLL); forwarding the keystrokes detected within the application by operation of the in-process IME DLL to an out-of-process IME platform process, wherein the out-of-process IME platform process is located within a defined computer-readable memory address range separate and distinct from an address range within which the application is defined; detecting a need for a suggestion to assist with input of a word into the application, the detecting comprising; accessing words entered into the application and recorded; and calculating a probability of correctness of the word input based at least in part on the recorded words; obtaining a suggestion for replacement of the word, if indicated by the calculated probability, the obtaining comprising; obtaining the suggestion from a cloud linguistic service (CLS); if network capability used to communicate with the CLS is limited or non-existent, then obtaining a suggestion from a local lexicon or statistical language-model, based at least in part on the recorded words previously entered into the application; and utilizing a confidence score for an obtained suggestion to determine whether to present the obtained suggestion; providing the obtained suggestion for display if indicated by the confidence score, the providing comprising; providing the obtained suggestion for display within a notification bubble; and providing the notification bubble for display at a location based at least in part on location of an IME bar; and moving the IME bar and/or the notification bubble in response to input signifying movement. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An input method editor (IME), comprising:
-
an out-of-process IME platform process configured to; receive, from an in-process IME dynamic link library (DLL), keystrokes detected by an application of the in-process DLL, wherein the out-of-process IME platform process is located within a defined computer-readable memory address range separate and distinct from an address range within which the application is defined; detect a need for a suggestion to fix a word entered into an application operating on a computing device; obtain the suggestion from a cloud linguistic service (CLS) through a network connection on the computing device; and obtain the suggestion from a local lexicon or language-model if network capability used to communicate with the CLS is limited or nonexistent; and a suggestion renderer operating on the computing device and configured to prepare the suggestion for display, preparation of the suggestion for display comprising; causing display of the suggestion within a notification bubble; and binding the notification bubble according to received input. - View Dependent Claims (8, 9, 10)
-
-
11. A method, comprising:
-
detecting keystrokes within an application by operation of an in-process input method editor (IME) dynamic link library (DLL); forwarding the keystrokes detected within the application by operation of the in-process IME DLL to an out-of-process IME platform process, wherein the out-of-process IME platform process is located within a defined computer-readable memory address range separate and distinct from an address range within which the application is defined; detecting, by operation of one or more processors configured with executable instructions, a need for a suggestion to an error in text entered into the application, the detecting comprising testing for whether suggestions are needed based on a probability of correctness of a word, wherein the probability is based on multiple factors, including local checks on a client or check by a server received at the client; obtaining, by operation of the one or more processors configured with the executable instructions, a suggestion for a replacement for the word, the obtaining comprising querying services for correction candidates and probabilities, in the form of a confidence score, that the correction is likely; causing the suggestion to be displayed if a confidence in the suggestion is greater than an threshold, the displaying comprising; providing the suggestion in response to selection of an indicator that a suggestion is available; and locating a display of the suggestion adjacent to an IME bar; and operating a user interface, the operating comprising; receiving instructions for use of the displayed suggestion; and responding to input to move the displayed suggestion to a preferred screen location. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
Specification