[go: up one dir, main page]

HK1169191B - Input method editor - Google Patents

Input method editor Download PDF

Info

Publication number
HK1169191B
HK1169191B HK12109785.6A HK12109785A HK1169191B HK 1169191 B HK1169191 B HK 1169191B HK 12109785 A HK12109785 A HK 12109785A HK 1169191 B HK1169191 B HK 1169191B
Authority
HK
Hong Kong
Prior art keywords
input
writing system
duration
interface
interface element
Prior art date
Application number
HK12109785.6A
Other languages
Chinese (zh)
Other versions
HK1169191A1 (en
Inventor
张光强
王墨君
吴根清
黄泰一
Original Assignee
Google Llc
Filing date
Publication date
Application filed by Google Llc filed Critical Google Llc
Priority claimed from PCT/CN2009/070888 external-priority patent/WO2010105427A1/en
Publication of HK1169191A1 publication Critical patent/HK1169191A1/en
Publication of HK1169191B publication Critical patent/HK1169191B/en

Links

Abstract

Methods, systems, and apparatus, including computer program products, in which an input method editor receives input in a first writing system and presents input candidates in the first writing system or a second writing system. In one implementation, a method is provided. The method includes receiving input in a first writing system; presenting the input in the first writing system in a first interface element of an interface as content input; automatically identifying one or more candidates in a second writing system based on the input in the first writing system; and presenting the one or more candidates in the second writing system in a second interface element that is separate from the first interface element.

Description

Input method editor
Technical Field
This description relates to input methods.
Background
The writing system uses symbols (e.g., characters or graphemes) to represent the sound of a language. The set of symbols in the writing system may be referred to as an alphabet. For example, a latin writing system (which includes one or more roman character sets in the roman alphabet) may be used to represent english. The latin writing system may include segmented roman characters (e.g., uppercase character "B"), typed roman characters (e.g., plain character "B"), and handwritten roman characters (e.g., handwritten character "B"). Each visual representation of the character "b" represents the same grapheme in the latin writing system.
As another example, Chinese may be represented by multiple writing systems. For example, Chinese may be represented by a first writing system such as Pinyin (or Roman Chinese). As another example, Chinese may be represented using a second writing system such as the Chinese Pinyin alphabet or ZhuYin symbols ("ZhuYin"). As yet another example, a third writing system, such as Chinese characters, may be used to represent Chinese. In particular, pinyin and ZhuYin are phonetic systems used to represent Chinese characters.
Languages using logographic writing systems in which one or more symbols, such as characters, roughly correspond to a word or meaning use more characters than keys on a standard input device, such as a computer keyboard on a mobile device keypad. However, input method editors facilitate the use of computer keyboards to enter characters in these writing systems. For example, an input method editor may take roman character input in a pinyin writing system and map the input to multiple kanji characters in chinese. Thus, a keyboard designed for input in a first writing system may be used to input text in a second writing system, e.g., a keyboard for the roman alphabet (e.g., a QWERTY keyboard) may be used to input chinese, japanese, or korean characters.
Users of devices implementing input method editors often desire to switch between languages (e.g., from chinese to english or from english to chinese) or to use one writing system to enter text of another writing system (e.g., use the chinese pinyin letters to enter chinese hanzi). As the number of user inputs or interactions required to select a particular language or writing system (e.g., switch between modes) increases, the ease of using an input method editor may decrease.
Disclosure of Invention
This specification describes technologies relating to input methods.
In general, one aspect of the subject matter described in this specification can be embodied in methods that include the following actions, including: receiving input in a first writing system; presenting input of a first writing system as content input in a first interface element of an interface, wherein the first interface element is a default interface element for presenting input and a default entry command of the first interface element copies the input to a target location in the interface; automatically identifying one or more candidates for a second writing system based on input of the first writing system; and presenting the one or more candidates in the second writing system in a second interface element separate from the first interface element, wherein the first candidate in the second writing system is copied to the target location after corresponding selection of one of the one or more candidates in the second interface element. Other embodiments of this aspect include corresponding systems, apparatus, and computer program products.
These and other embodiments may optionally include one or more of the following features. The corresponding selection is a user selection of the first candidate. The one or more candidates for the second writing system include a translation, a transliteration, or a phonetic representation of the input of the first writing system. The method further comprises the following steps: calculating a duration of the input, the duration representing a duration of the input device drive corresponding to the input; comparing the input duration with a threshold; and identifying the input as representing content input in the second writing system based on the comparison. The first writing system is pinyin, and the second writing system is Chinese characters.
In general, another aspect of the subject matter described in this specification is embodied in methods that include the following actions, including: detecting a current input to the interface; calculating a duration of a current input, the duration representing a driving duration of the input device corresponding to the current input; comparing the currently input duration with a threshold; if the duration is greater than or equal to the threshold, identifying the current input as content input of a first writing system, or if the duration is less than the threshold, identifying the current input as content input representing a second writing system; copying the current input to a target location in the interface if the current input is identified as a content input for the first writing system; and if the current input is identified as representing content input of the second writing system, identifying one or more candidates of the second writing system for display in the interface based on the content input of the first writing system. Other embodiments of this aspect include corresponding systems, apparatus, and computer program products.
These and other embodiments may optionally include one or more of the following features. Identifying the one or more candidates for the second writing system includes generating the one or more candidates for the second writing system based on the current input and a previous input representing a content input for the second writing system. A current input is received through the virtual input device. The first writing system is pinyin, and the second writing system is Chinese characters.
In general, another aspect of the subject matter described in this specification is embodied in a system that includes: a data processing device; and a data storage in which are stored: a detection engine comprising an input module that detects input received through an interface of the data processing device, wherein the input is a first writing system; and an input method editor that presents input of the first writing system as content input in a first interface element of the interface and automatically identifies one or more candidates of the second writing system based on the input of the first writing system for display in a second interface element separate from the first interface element. Other embodiments of this aspect include corresponding systems, apparatus, and computer program products.
These and other embodiments may optionally include one or more of the following features. The first interface element is a default interface element for presenting input, and a default entry command of the first interface element copies the input to a target location in the interface and copies a first candidate of the second writing system to the target location after corresponding selection of one of the one or more inputs of the second interface element. The detection engine also includes a timing module that calculates a duration of the input, the duration representing a duration of actuation of the input device corresponding to the input. The input module identifies the input as content input in a first writing system or representing content input in a second writing system based on a duration of the input. The first writing system is pinyin, and the second writing system is Chinese characters.
In general, another aspect of the subject matter described in this specification is embodied in a system that includes: a data processing device; and a data storage in which are stored: a detection engine, comprising: an input module that detects an input received through an interface of the data processing apparatus, wherein the input is a first writing system, and a timing module that calculates a duration of the input, the duration representing a driving duration of an input device corresponding to the input; and an input method editor that identifies the input as a content input in a first writing system if the duration is greater than or equal to a threshold, or as a content input representing a second writing system if the duration is less than the threshold, for display in a target location in the interface. Other embodiments of this aspect include corresponding systems, apparatus, and computer program products.
These and other embodiments may optionally include one or more of the following features. The data store also stores: a language model that identifies, if the input is identified as representing content input of a second writing system, one or more candidates of the second writing system for display in the target location based on the input of the first writing system. The first writing system is pinyin, and the second writing system is Chinese characters.
Particular embodiments of the subject matter described in this specification can be implemented to realize one or more of the following advantages. Using separate interface elements to present the input of the first writing system and the one or more candidates of the second writing system reduces the amount of user input and interaction required to switch between entering the input of the first writing system or the second writing system, thereby increasing the convenience and efficiency of the input method and improving the user experience.
Furthermore, using separate interface elements to present the input of the first writing system and the one or more candidates of the second writing system reduces the number of modes (e.g., different input method editor modes for different writing systems) that the user must be familiar with or understand, thereby reducing the likelihood of the user selecting an unintended mode, and further increases the convenience and efficiency of the input method, and improves the user's experience.
In addition, identifying the current input as a content input of the first writing system, or as a content input representative of the second writing system, based on the duration of the current input (e.g., the duration of actuation of the input device corresponding to the current input) further reduces the amount of user input and interaction required to switch between entering inputs of the first or second writing systems, thereby increasing the convenience and efficiency of the input method and improving the user experience.
Reducing the number of user inputs and interactions may be particularly useful on mobile devices (e.g., mobile phones) that include smaller keypads or predictive keyboards. For example, reducing the number of user inputs and interactions on a smaller keypad also reduces the likelihood of a user selecting an incorrect key, thereby increasing the efficiency and accuracy of the input method.
Reducing the amount of user input and interaction may be particularly useful when the user is operating in a multitasking environment (e.g., using a global positioning system navigation device while driving), or when one or both of the user's hands are limited in use for operating devices (e.g., mobile phones). For example, reducing the number of user inputs and interactions in a multitasking environment reduces the likelihood of a user selecting an incorrect key, thereby increasing the efficiency and accuracy of performing multiple tasks (e.g., multitasking), and further increasing the efficiency and accuracy of the input method.
The details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.
Drawings
FIG. 1 is a block diagram of an example system that may be used to implement the systems and methods described herein.
FIG. 2 includes a block diagram of example software that may be used to implement the input method editor of FIG. 1.
FIG. 3 is a flow diagram illustrating an example process for generating output text candidates for a second writing system based on text input for a first writing system.
4A-4C illustrate example input method editor interfaces.
FIG. 5 is a flow diagram illustrating another example process for generating output text candidates for a second writing system based on text input for a first writing system.
FIG. 6 illustrates example steps for identifying an input as a content input in a first writing system, or representing a content input in a second writing system.
Like reference numbers and designations in the various drawings indicate like elements.
Detailed Description
FIG. 1 is a block diagram of an example system 100 that may be used to implement the systems and methods described herein. The example system 100 may be implemented, for example, in a computer device, such as a personal computer device, or other electronic devices, such as a mobile phone, a mobile communication device, a Personal Digital Assistant (PDA), a Global Positioning System (GPS) navigation device, and so forth.
The example system 100 includes a processing device 102, a first data store 104, a second data store 106, an input device 108, an output device 110, and a network interface 112. For example, a bus system 114, including a data bus and a motherboard, may be used to establish and control data communications between the components 102, 104, 106, 108, 110, and 112. Other system architectures may also be used.
The processing device 102 may include, for example, one or more microprocessors. The first data store 104 may comprise, for example, a random access memory storage device (such as dynamic random access memory) or other type of computer-readable medium memory device. The second data store 106 may include, for example, one or more hard drives, flash and/or read-only memories, or other types of computer-readable medium memory devices.
Example input devices 108 may include a keyboard, mouse, stylus, etc., and example output devices 110 may include a display device, audio device, etc. The network interface 112 may comprise, for example, a wired or wireless network device operable to communicate data to and from the network 116. The network 116 may include one or more Local Area Networks (LANs), Wide Area Networks (WANs), such as the internet, wireless networks, such as cellular networks, or a combination of all of the above.
In some implementations, the system 100 can include Input Method Editor (IME) code 101 from a data store, such as data store 106. The input method editor code 101 may be defined by instructions that, when executed, cause the processing device 102 to perform input method editing functions. The input method editor code 101 may include, for example, interpreted instructions such as script instructions (e.g., JavaScript or ECMAScript instructions) that can be executed in a web browser environment. Other implementations such as standalone applications, applets, plug-in modules, and the like, for use in a user interface such as a display that displays user input received through use of a keypad map for a mobile device or a keyboard map for a mobile device or personal computer, may also be used.
Execution of the input method editor code 101 generates or initiates an Input Method Editor Instance (IMEI) 103. The input method editor instance 103 facilitates processing of one or more input methods in the system 100 during which time the system 100 may receive input for characters or symbols, such as, for example, roman characters representing pinyin. For example, a user may enter pinyin input identifying a chinese term using one or more of the input devices 108 (e.g., a keyboard such as that used for the roman alphabet, a stylus used with a handwriting recognition engine, etc.). In some examples, a hanzi term may consist of multiple pinyin inputs.
The first data store 104 and/or the second data store 106 can store an association of inputs. Based on the user input, the input method editor instance 103 may use information in the data store 104 and/or the data store 106 to identify one or more candidate selections represented by the input. In some implementations, if multiple candidate selections are identified, the candidate selections are displayed on the output device 110. Using the input device 108, the user may select, for example, a chinese term that the user wishes to enter from the candidate selections.
In some implementations, the input method editor instance 103 on the system 100 can receive one or more pinyin inputs and convert the inputs into hanzi terms. The input method editor instance 103 may represent the hanzi terms using, for example, the composition of pinyin syllables (e.g., roman characters) received from keystrokes. Each roman character may, for example, correspond to a key in a keyboard for the roman alphabet. Using a pinyin input method editor, a user may input a hanzi term by using inputs that include one or more pinyin syllables representing the sound of the hanzi term. However, input methods for other languages and writing systems may also be facilitated.
In some implementations, a remote computing system 118 accessed by the system 100 may also be used to edit the logographic alphabet. For example, the system 100 may be a server that provides logographic alphabet editing capabilities via the network 116. In one example, a user may use a remote computing system (e.g., a client computer) to edit a logographic alphabet stored in the data store 104 and/or the data store 106. The system 100 may, for example, select a character and receive input from a user through the network interface 112. The processing device 102 may, for example, identify one or more characters adjacent to the selected character and identify one or more candidate selections based on the received input and the adjacent characters. The system 100 may send a data communication including the candidate selection back to the remote computing system.
Fig. 2 includes a block diagram of example software that may be used to implement the input method editor (e.g., IMEI103) of fig. 1. The system 200 includes a user interface 202 and software 204. The user 206 may access the system 200 through the user interface 202. Software 204 includes application 205, IME engine 206, Operating System (OS)207, language model 208, and detection engine 210. Operating system 207 is a particular piece of software that can provide user interface 202 between software 204 (e.g., applications 205 and IME engine 206) and user 206.
As shown in FIG. 2, the language model 208 is separate from the IME engine 206. In particular, language model 208 is included within software 204 as a separate software component. Other implementations are possible. For example, language model 208 may be remotely located (e.g., at remote system 118 of FIG. 1). As another example, language model 208 may be included within IME engine 206.
Language model 208 may define one or more language sub-models, such as a japanese sub-model, a chinese sub-model, and the like. Each language submodel may, for example, define a particular set of rules, e.g., language-specific grammars, phrase sets, spoken languages, etc., that may be used to determine a user's likely intent in entering a set of inputs, e.g., for generating inputs that are candidates for translation, transliteration, or other types of phonetic representations. Each language submodel may also include a user history for a particular user, such as a dictionary of words and phrases commonly used by a particular user.
The detection engine 210 includes an input module 212 and a timing module 214. The input module 212 may, for example, receive input to a particular application 205 (e.g., a keystroke representing a character of the first writing system) and send the received input to the IME engine 206. In some implementations, the detection engine 210 is a component of the IME engine 206.
The detection engine 210 may detect input in a first writing system (e.g., pinyin input including roman characters) and determine whether to send the input to the IME engine 206. The IME engine 206 may be implemented, for example, by using the input method editor code 101 and associated data stores 104 and 106, and upon detecting an input (e.g., a grapheme such as roman characters), as described below with reference to fig. 3-6, provides output candidates (e.g., lexical terms such as kanji terms) of the second writing hierarchy to an interface (e.g., the user interface 202).
The components of system 200 may be communicatively coupled to one or more other components with each other. Although the components identified above are described as separate or discrete, one or more components may be combined in a single process or routine. The functional descriptions provided herein (including the act of distinguishing between different functions) are exemplary only. Other storage architectures may also be used. In particular, other groupings or other divisions of functionality may be made as necessary or according to design preferences. For example, IME engine 206 may perform the functions of detection engine 210. As another example, the input module 212 and the timing module 214 may be combined into a single module.
FIG. 3 is a flow diagram illustrating an example process 300 for generating output text candidates for a second writing system based on text input for a first writing system. By way of overview, the process 300 includes receiving input in a first writing system (305), presenting the input in the first writing system as content input in a first interface element of an interface (310), automatically identifying one or more candidates in a second writing system based on the input in the first writing system (315), and presenting the one or more candidates in the second writing system in a second interface element separate from the first interface element (320). The process 300 may be illustrated by way of example with reference to fig. 4A-4C.
Fig. 4A-4C illustrate example input method editor interfaces 420, 440, and 460. The IME interface may include a first interface element (e.g., a writing box) for providing input in a first writing system and a second interface element (e.g., a candidate window) for displaying output candidates in a second writing system.
As shown in fig. 4A, IME interface 420 also includes a virtual input device 421 (e.g., a virtual representation of a keyboard). In this example, the keyboard includes keys corresponding to roman characters, and the user may provide input in a first writing system, such as the roman character sequence "hello". In addition, the keyboard includes a key labeled "space" (e.g., "space" in english) to allow the user to enter space as input.
In response to receiving input in the first writing system (e.g., step 305), for example, as detected by the detection engine 210, the input method editor (e.g., IME engine 205) can present the input in the first writing system as content input in a first interface element of the interface (e.g., step 310). The first interface element may be considered a default interface element because the input originally provided by the user and detected by the system may be presented in the first interface element by default. As shown in FIG. 4A, the Roman character sequence "hello" is presented in the first interface element 422.
In addition, the default entry command of the first interface element copies the input into a target location of an interface (e.g., a graphical user interface). For example, on a device that includes a touch-sensitive display, the default entry command may be a gesture indicating a selection of the first interface element 422. In particular, the user may "touch" the first interface element 422 and, as shown in fig. 4C, may copy the contents of the first interface element 422 to a target location 426 (e.g., a text entry box for the application 205). Other implementations are possible. For example, the default entry command may be received as input through a physical button or key on a user device (e.g., a mobile phone). In some implementations, as will be shown in FIG. 4b, the default entry command may be a selection of another object or element in the IME interface.
For example, in response to user input being received and detected by the detection engine 210, the input method editor (e.g., IME engine 206) may automatically identify one or more candidates for a second writing system (e.g., chinese characters) based on the input for the first writing system (e.g., a sequence of roman characters that may represent pinyin) (e.g., step 315). Referring to FIG. 4B, the input module 212 of the detection engine 210 in FIG. 2 can detect "hello" and send "hello" to the IME engine 206. IME engine 206 may use language model 208 to identify one or more candidates (e.g., terms) for a second writing system that is different from the first writing system based on the graphemes "h", "e", "l", "o" that the input includes.
One or more candidates for the second writing system may be presented in a second interface element separate from the first interface element (e.g., step 320). In FIG. 4A, the Chinese character terms are presented in the second interface element 424. In FIG. 4B, the Chinese term is presented in the second interface element 444. Although one or more candidates for the second writing system are displayed in the second interface element, the content input for the first writing system may still be copied to the target location in the interface in response to the default entry command. In some implementations, the presentation of the virtual keyboard 421 can be modified such that the keys corresponding to the default entry commands are displayed. For example, the space key labeled "space" in FIG. 4C is remapped to a different command, namely "confirm" (e.g., "confirm" in English) in FIGS. 4A and 4B. As shown in fig. 4A, the default entry command may correspond to selection of a confirmation command when a candidate for the second writing system has not been selected.
Referring to fig. 4A, in some implementations, an indicator may be presented in the first interface element 422 that indicates whether the content input of the first writing system or a candidate of the second writing system is to be copied to the target location 426 in response to the default entry command. For example, the indicator in the first interface element 422 shows the content input "hello" indicating that selecting the enter key will copy the content input in the first writing system (i.e., "hello") into the target location 426.
Alternatively, the user may want to copy the candidates for the second writing system into target location 426. In FIG. 4B, the indicator in the first interface element 422 shows a different representation of the content input (i.e., "HeLLo") and indicates that selecting the OK key (labeled "OK") will copy one of the one or more candidates of the second writing system to the target location 426. In particular, the different representation of the content input "HeLLo" may be used to show segments of the input of the first writing system that are used to generate one or more candidates for the second writing system. For example, "He" corresponds to "He" (pinyin for "h"), "L" corresponds to "theory" (pinyin for "L ǐ"), and "Lo" corresponds to "pyrrole" (pinyin for "Lo"). Other implementations are possible. For example, the indicator may show an identifier that identifies a particular writing system or language (e.g., "kanji," "chinese," "english").
The candidates in the second writing system may be copied to the target location after corresponding selection of one of the one or more candidates in the second interface element 444. For example, in a touch-sensitive display, a user may touch a first candidate (e.g., "logical chuck") in the second interface element 444.
In some implementations, one of the one or more candidates for the second writing system may be selected by default. For example, in FIG. 4B, the highlighting of the candidate "logical chuck" may indicate that it has been selected by default. The default selection may be identified based on one or more criteria. For example, the candidate that is most likely to occur in the training data may be identified as the default selection. In these and other implementations, the user may select a "confirm" key to copy the indicated selection to the target location. The user may also navigate among the one or more candidates in the second writing system, for example, by using a physical input device (e.g., a scroll wheel). Highlighting or other indication (e.g., shading, blinking, zooming in) may be used to indicate selection of one of the one or more candidates for the second writing system.
In some implementations, the input method editor can automatically identify whether the input is a content input in a first writing system, or whether the input is a symbolic input, i.e., a content input representing a second writing system. The identification may be considered automatic in that the input method editor may identify from only a single input that the single input is a content input or a symbol input without further user input or interaction.
FIG. 5 is a flow diagram illustrating another example process 500 for generating output text candidates for a second writing system based on text input for a first writing system. To summarize, the process 500 includes detecting a current input to the interface (530), calculating a duration of the current input (535), and comparing the duration of the current input to a threshold (540). The process 500 also includes identifying the current input as content input in the first writing system if the duration is greater than or equal to the threshold, or as content input on behalf of the second writing system if the duration is less than the threshold (545). If the current input is identified as content input in the first writing system, the current input is copied to a target location in the interface (550). If the current input is identified as representing an input in a second writing system, one or more candidates in the second writing system are identified for display in the interface based on the current input in the first input system (555). The process 500 may be illustrated by way of example with reference to fig. 6.
FIG. 6 illustrates example steps for identifying an input as a content input in a first writing system, or representing a content input in a second writing system. Interface 610a (e.g., a graphical user interface) includes an IME interface 614 and a target location 615 for text entry. The IME interface 614 includes (e.g., similar to that in the first interface element 442) an indicator showing a previous input (e.g., an input that the IME has received) consisting of the character sequence "Han". IME interface 614 also includes a virtual keyboard 616. Virtual keyboard 616 shows that the current input has been received by actuating the input device (i.e., virtual keyboard 616), and in particular by actuating the keys mapped to the input for the roman character "L" shown by highlighting the key. .
The input module 212 of the detection engine 210 may detect a current input to the interface 610a (e.g., step 530). The timing module 214 may calculate the length of time currently entered (e.g., step 535). The duration represents the duration of actuation of the input device. For example, the duration may be a number of seconds a key is actuated (e.g., pressed or tapped). The detection engine 210 may compare the duration of the input to a threshold (e.g., step 540). The threshold may be a predetermined amount of time (e.g., two seconds). In some implementations, the threshold may be a predetermined amount of time configured based on previous input or habits of the user. For example, if the user drives the input device for an average of one second for each input, the threshold may be set to one second. Further, the threshold may also be configured according to the user's preference, for example, the user may set the threshold to three seconds.
The detection engine 210 may determine whether the current input is content input in the first writing system or content input representative of the second writing system based on a comparison of the duration to a threshold. If the duration is greater than or equal to the threshold, the detection engine 210 can identify the current input as content input (e.g., explicit Roman characters) in the first writing system (e.g., step 545). Referring to FIG. 6, if the duration is greater than or equal to the threshold (e.g., a timeout occurs), the explicit Roman character "L" is copied to the target location of the interface 610b (e.g., step 550). Note that one or more candidates of the second writing system shown in the interface element in interface 610b have not changed in response to the current input.
If the duration is less than the threshold (e.g., no timeout), the detection engine 210 may identify the current input as representing content input for the second writing system (e.g., step 545). As shown in interface 610c, the current input is identified as representing pinyin. In addition, one or more candidates (e.g., kanji terms) for the second writing hierarchy are identified for display in the interface based on the current input for the first writing hierarchy (e.g., step 555). As shown in interface 610c, the indicator now displays the pinyin input "HanL" and candidates for the second writing system that may be represented by "HanL" are presented in the interface element.
In particular, the candidates shown in interface 610c may be different from the candidates shown in interface 610a because the candidates in 610c were generated based on "HanL" including the current input "L" and the previous input represented content input (i.e., "Han") in the second writing system. For example, the interface 610a shows the pinyin input "Han" and the chinese character candidate "sweat" (pinyin "h a n"). The interface 610c shows the pinyin input "HanL" (e.g., "content" with pinyin "h-nli ng") that may represent two pinyin syllables.
Other implementations are possible. For example, if the detection engine 210 identifies the input as representing content data for the second writing system a predetermined number of times (e.g., three times), the detection engine 210 may default to deeming the next input to represent content input for the second writing system and send the next input to the IME engine 206. Further, a second threshold (which is, for example, greater than the first threshold) may be used to identify that the additional input is a content input in the first writing system, or another predetermined command may be used to prevent the detection engine 210 from defaulting the additional input as representing a content input in the second writing system.
Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible program carrier for execution by, or to control the operation of, data processing apparatus, e.g., processing device 102. The tangible program carrier may be a computer readable medium. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, or a combination of one or more of them.
The term "data processing apparatus" encompasses all apparatus, devices, and machines for processing data (including by way of example a programmable processor, a computer, or multiple processors or multiple computers). The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
A computer program (also known as a program, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages or declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from and/or transmit data to, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Additionally, the computer may be embedded in another device, e.g., a mobile telephone, a Personal Digital Assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, to name a few.
Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices (e.g., EPROM, EEPROM, and flash memory devices), magnetic disks (e.g., an internal hard disk or removable disks), magneto-optical disks, and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices may also be used to provide for interaction with a user; for example, feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including acoustic, speech, or tactile input.
While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any implementation or what may be claimed, but rather as descriptions of features specific to particular embodiments of particular implementations. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Also, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be omitted from the combination and the claimed combination can relate to a sub-combination or a variation of a sub-combination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown, or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
Specific embodiments of the subject matter described in this specification have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. As one example, the depictions in the figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some embodiments, multitasking and parallel processing may be advantageous.

Claims (14)

1. A computer-implemented method for processing input, comprising:
receiving input in a first writing system, the first writing system being an alphabetic writing system;
presenting the input of the first writing system as content input in a first interface element of an interface, wherein the first interface element is a default interface element for presenting the input, and a default entry command of the first interface element copies the input to a target location in the interface;
calculating a duration of the input, the duration representing a duration of actuation of an input device corresponding to the input;
comparing the duration of the input to a threshold;
identifying the input as content input representative of a second writing system based on the comparison, wherein the second writing system is a transliteration of the first writing system;
automatically identifying one or more candidates for the second writing system based on the input of the first writing system; and is
Presenting the one or more candidates in the second writing system in a second interface element separate from the first interface element, wherein the first candidate in the second writing system is copied to the target location after corresponding selection of one of the one or more candidates in the second interface element.
2. The method of claim 1, wherein the corresponding selection is a user selection of the first candidate.
3. The method of claim 1, wherein the one or more candidates of the second writing system include a translation, a transliteration, or a phonetic representation of the input of the first writing system.
4. The method of claim 1, wherein the first writing system is pinyin and the second writing system is chinese.
5. A computer-implemented method for processing input, comprising:
detecting a current input to the interface;
calculating a duration of the current input, the duration representing a duration of actuation of an input device corresponding to the current input;
comparing the currently input duration to a threshold;
identifying the current input as a content input in a first writing system if the duration is greater than or equal to the threshold, or as a content input representing a second writing system if the duration is less than the threshold, wherein the first writing system is an alphabetic writing system, and wherein the second writing system is a transliteration of the first writing system;
copying the current input to a target location in the interface if the current input is identified as content input in the first writing system; and
identifying, for display in the interface, one or more candidates for the second writing system based on the current input of the first writing system if the current input is identified as representing content input of the second writing system.
6. The method of claim 5, wherein identifying one or more candidates for the second writing system comprises:
generating the one or more candidates for the second writing system based on the current input and a previous input representing a content input for the second writing system.
7. The method of claim 5, wherein the current input is received through a virtual input device.
8. The method of claim 5, wherein the first writing system is pinyin and the second writing system is Chinese characters.
9. A system for processing input, comprising:
a data processing device; and
a data store in which are stored:
a detection engine comprising an input module that detects an input received through an interface of the data processing apparatus, wherein the input is a first writing system that is an alphabetic writing system, wherein the detection engine further comprises a timing module that calculates a duration of the input, the duration representing a duration of actuation of an input device corresponding to the input, and wherein the input module identifies the input as a content input of the first writing system or as a content input of a second writing system based on the duration of the input, wherein the second writing system is a transliteration of the first writing system; and
an input method editor that presents the input of the first writing system as content input in a first interface element of the interface and automatically identifies, based on the input of the first writing system, one or more candidates of a second writing system for display in a second interface element that is different from the first interface element.
10. The system of claim 9, wherein the first interface element is a default interface element for presenting the input, and a default entry command of the first interface element copies the input to a target location in the interface and copies a first candidate of the second writing system to the target location after corresponding selection of one of the one or more candidates in the second interface element.
11. The system of claim 9, wherein the first writing system is pinyin and the second writing system is chinese.
12. A system for processing input, comprising:
a data processing device; and
a data storage in which is stored:
a detection engine, comprising:
an input module that detects input received through an interface of the data processing apparatus, wherein the input is a first writing system, the first writing system is an alphabetic writing system, and
a timing module that calculates a duration of the input, the duration representing a duration of actuation of an input device corresponding to the input; and
an input method editor that identifies the input as a content input in a first writing system if the duration is greater than or equal to a threshold or as a content input representing a second writing system for display in a target location in the interface if the duration is less than the threshold, wherein the second writing system is a transliteration of the first writing system.
13. The system of claim 12, wherein the data store further stores:
a language model that, if the input is identified as representing content input in the second writing system, identifies one or more candidates in the second writing system for display in the target location based on the input in the first writing system.
14. The system of claim 12, wherein the first writing system is pinyin and the second writing system is chinese.
HK12109785.6A 2009-03-19 Input method editor HK1169191B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2009/070888 WO2010105427A1 (en) 2009-03-19 2009-03-19 Input method editor

Publications (2)

Publication Number Publication Date
HK1169191A1 HK1169191A1 (en) 2013-01-18
HK1169191B true HK1169191B (en) 2017-04-07

Family

ID=

Similar Documents

Publication Publication Date Title
CN102422245B (en) input method editor
US9552125B2 (en) Input method editor
US11379663B2 (en) Multi-gesture text input prediction
TWI443551B (en) Method and system for an input method editor and computer program product
US8661340B2 (en) Input methods for device having multi-language environment
US9026428B2 (en) Text/character input system, such as for use with touch screens on mobile phones
JP2010538391A (en) Virtual keyboard in multilingual environment
JP5947887B2 (en) Display control device, control program, and display device control method
WO2014062588A2 (en) Incremental multi-word recognition
US20140129930A1 (en) Keyboard gestures for character string replacement
HK1169191B (en) Input method editor
KR20240118587A (en) Character input device implemented in software
HK1183952A (en) Input method editor
HK1130914B (en) Input methods for device having multi-language environment
HK1160254A (en) Typing assistance for editing
HK1160254B (en) Typing assistance for editing
HK1137525A1 (en) Language input interface on a device