[go: up one dir, main page]

WO2017116471A1 - Identifying errors in input data from multiple sources - Google Patents

Identifying errors in input data from multiple sources Download PDF

Info

Publication number
WO2017116471A1
WO2017116471A1 PCT/US2015/068296 US2015068296W WO2017116471A1 WO 2017116471 A1 WO2017116471 A1 WO 2017116471A1 US 2015068296 W US2015068296 W US 2015068296W WO 2017116471 A1 WO2017116471 A1 WO 2017116471A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
sources
error
information
errors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2015/068296
Other languages
French (fr)
Inventor
Joel Fogelson
Arden ASH
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Technicolor USA Inc
Original Assignee
Technicolor USA Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Technicolor USA Inc filed Critical Technicolor USA Inc
Priority to PCT/US2015/068296 priority Critical patent/WO2017116471A1/en
Publication of WO2017116471A1 publication Critical patent/WO2017116471A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B19/00Teaching not covered by other main groups of this subclass
    • G09B19/04Speaking
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/232Orthographic correction, e.g. spell checking or vowelisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/253Grammatical analysis; Style critique
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B19/00Teaching not covered by other main groups of this subclass
    • G09B19/06Foreign languages

Definitions

  • the present disclosure generally relates to analyzing user input data to identify errors and, more particularly, to aggregating user input data and analyzing the aggregated data to distinguish errors associated with human error from errors related to other causes.
  • HMIs human-machine interfaces
  • a user might find it more difficult to type on a small virtual keyboard, and as a result, might make more errors when typing on a smartphone. That is, the user might know how to spell a particular word, but may type the word incorrectly more often on a virtual keyboard than on a full-sized mechanical keyboard.
  • the user's spelling errors for the word on a virtual keyboard may not be the result of human error (e.g., not knowing how to spell the word), but may be the result of a different cause (e.g., difficulty typing on a virtual keyboard).
  • error information can be obtained based on user input from a plurality of sources.
  • the error information can include information of misspelled words, information of violations of grammar rules, etc.
  • the plurality of sources can include devices, and each device can include one of a plurality of different types of HMIs.
  • the HMIs can include a mechanical keyboard and a virtual keyboard.
  • the plurality of sources can include different types of computer programs.
  • different types of computer programs can include word processing programs, texting programs, email programs, etc.
  • An input error can be determined from the error information.
  • Association information based on determined association can be stored and used, for example, to improve existing computer functionality.
  • a computer function can be performed based on the association information.
  • the function can include, for example, a spell checking function, a grammar checking function, a user-quizzing function, etc.
  • FIG. 1 illustrates an example of a computer network 100 in which various embodiments may be implemented.
  • FIG. 2 illustrates an example of an apparatus in which various embodiments may be implemented.
  • FIG. 3 is a flowchart of an example of a method for distinguishing human errors from errors associated with other causes according to various embodiments.
  • FIG. 4 is a flowchart of an example of a method for determining words to include in a spelling quiz based on distinguishing human errors from HMI-related errors according to various embodiments.
  • FIG. 5 is a flowchart of an example of a method for modifying an auto-suggest function of a grammar checking application based on distinguishing human errors from errors associated with a type of computer program according to various embodiments.
  • HMI human-machine interface
  • some input errors may be related to human error and some errors may be related to the HMI itself.
  • some people find it difficult to type on virtual keyboards, e.g., keyboards displayed on the touchscreens of smartphones, tablet computers, etc.
  • virtual keyboards e.g., keyboards displayed on the touchscreens of smartphones, tablet computers, etc.
  • some users can make more spelling errors when typing on a virtual keyboard than when typing on a mechanical keyboard, e.g., a typical keyboard connected to a personal computer.
  • Other data entry systems such as the use of a stylus with a virtual keyboard can be utilized as well.
  • some users might find it easier to type on a virtual keyboard, and may make fewer spelling errors on a virtual keyboard than on a mechanical keyboard. These users may make fewer errors on a virtual keyboard because, for example, the small size of virtual keyboards makes it easier to find the next key to press, or because the virtual keyboard is close to the location that the text appears. In some cases people use techniques for a virtual keyboard using two fingers, which may be more efficient for the person than using a standard mechanical keyboard.
  • determining which errors are human errors and which errors related to a particular HMI can provide useful information. For example, in order to help a user improve at spelling, a computer program can analyze user input data to determine words that the user commonly misspells when typing. The program can then quiz the user on the words that the user commonly misspells. If the user types on multiple devices, e.g., smartphone, personal computer, tablet computer, etc., the program can collect and aggregate the user input data across all of the devices in order to obtain a larger database to analyze. Having a larger database of user input can improve the accuracy of the error analysis. However, because the aggregated information can include HMI-related errors, such an approach can be improved upon.
  • the spelling quiz program may determine that the user sometimes types the "opem” instead of “open,” and as a result, may determine that the user should be quizzed on the spelling of the word "open.”
  • the user may know how to spell the word "open,” and the error may occur only when the user types on a virtual keyboard because of the user's difficulty with that particular HMI. Therefore, quizzing the user on the word "open” would not be helpful.
  • distinguishing spelling errors associated with human error from HMI-related spelling errors can improve the spelling quiz program by allowing the HMI-related misspellings to be given a low priority or weight, or to be completely disregarded, which can help focus the quiz on words that the user actually has trouble spelling.
  • Error correction is another area that can benefit from distinguishing human errors from HMI-related errors.
  • spell-checking functionality on personal computers, smartphones, tablets, etc. can analyze a user's typing errors to learn which errors the user commonly makes, and can use the analysis to provide better suggestions and/or auto-corrections.
  • the machine learning improves as more user input data is collected and analyzed. Therefore, collecting and aggregating user input data from all of the user's devices (e.g., personal computer, smartphone, tablet computer, etc.) and analyzing the aggregated data can allow the spell-checker to make better suggestions and/or auto-corrections than if spell-checkers (generically called an analyzer program) in each device analyzed the user input data from that device only.
  • spell-checkers generically called an analyzer program
  • the knowledge of which errors are common to all devices (e.g., human errors) and which errors occur only on particular devices (e.g., errors related to HMI) can be used to improve the automatic suggestions and/or corrections. For example, based on this additional knowledge, spell-checking can generate the "line" pop-up suggestion when the user types "line” on the virtual keyboard, but not when the user types "line” on the personal computer.
  • spell-checking can generate the "line” pop-up suggestion when the user types "line” on the virtual keyboard, but not when the user types "line” on the personal computer.
  • some user input errors may be associated with a particular type of computer program.
  • a user may use better grammar when typing in word processing applications than when typing in texting applications. This might be because the user prefers not to strictly adhere to the rules of grammar when texting, but uses word processing programs to prepare formal documents that require correct grammar.
  • the user may always obey a particular grammatical rule (rule A). However, the user may disregard rule A when using a texting application.
  • a grammar-quizzer program may aggregate user input data from different computer applications, including texting and word processing applications, and analyze the aggregated data to determine the user's grammar errors. If the grammar-quizzer does not distinguish errors made across all applications (i.e., human errors) from errors made only in particular applications (i.e., application-related errors) the grammar-quizzer may determine that the user has trouble with rule A and rule B. However, if the grammar-quizzer distinguishes human errors from application-related errors, the grammar-quizzer may make the more accurate determination that the user knows rule A, but has trouble with rule B.
  • Aggregated user input data can be analyzed to distinguish human errors from errors associated with other causes as well. For example, some errors may be associated with a particular person or category of person with which the user is communicating, e.g., a user may use better grammar when emailing a work associate than when emailing a friend. Distinguishing human errors from errors associated with communicating with friends may allow a grammar-quizzer to avoid testing the user on rules the user already knows. In another example, some errors may be associated with a time of day, e.g., a user may tend to make more typing errors late at night, such as misspelling words the user knows how to spell.
  • Distinguishing human errors from errors associated with typing late at night may allow a spell-checker to give lower weight to errors made late at night, which may improve the accuracy of suggestions and/or auto-corrections. It should be appreciated that errors may be associated with many reasons other than human error.
  • the other causes of error may be specifically targeted in the analysis of aggregated data.
  • a spell-checker may specifically search for differences in errors in data collected from mechanical keyboard devices and errors in data collected from virtual keyboard devices, or using a stylus interface.
  • the analysis may include determining other causes of error.
  • statistical analysis may be applied to determine likely causes of error other than human error.
  • a grammar-checker might not initially know that some grammar errors are associated with a user's preference not to use strict grammar when texting, but the grammar-checker can discover this association through statistical analysis of the aggregated user input data.
  • the grammar-checker can distinguish between grammar errors associated with human error (i.e., errors made regardless of whether the user is using texting applications, word processing applications, etc.) from errors made only in texting applications.
  • a statistical analysis may determine that the user disregards certain grammatical rules when typing emails using a personal email account and typing text messages using any texting application.
  • a grammar-checker may group these types of communications together in a "Suspect Grammar" category, and the analysis of the aggregated data can then distinguish human error from errors associated with the Suspect Grammar category of applications.
  • FIG. 1 illustrates an example of a computer network 100 in which various embodiments may be implemented.
  • Computer network 100 can include a storage server 101, a storage device 103 storing a database 105, devices 107A-107J, a local area network (LAN) 109, and an external network 111.
  • Storage device 103 can be, for example, a hard disk drive (HDD), a solid-state drive (SSD), etc., that stores database 105.
  • Database 105 as a computer implemented program, for some embodiments, can include, for example, aggregated user input data.
  • Storage server 101 can be, for example, a computer server connected to storage device 103.
  • Storage server 101 can include hardware, such as one or more processors and memory, software, and/or firmware to perform various functions, including aggregating user input data from multiple devices (such as devices 107A-107J), applications (such as word processing applications, email applications, texting applications), etc., analyzing the aggregated user input data to distinguish human errors from errors associated with other causes, and utilizing the results of the distinction of human errors according to the methods described in more detail below.
  • Devices 107A-107J can be, for example, desktop computers, laptop computers, tablet computers, mobile devices, video game systems, set top boxes, televisions, audio-video equipment, etc.
  • Devices 107A-107J can be operated by the various users, for example, and a single user can operate multiple devices.
  • devices 107A, 107J, and 1071 can be, respectively, a personal computer, a smartphone, and a tablet computer operated by a single user.
  • Devices 107A-107J can connect to storage server 101 through external network 111.
  • External network 111 can be, for example, the Internet.
  • Devices 107 A and 107B can connect to storage server 101 through LAN 109.
  • Various computer programs running on devices 107A-107J can connect to storage server 101 through external network 111, and various user input data can be transmitted to database 105 for aggregation and analysis in accordance with various embodiments described herein.
  • FIG. 2 illustrates an example of an apparatus in which various embodiments may be implemented.
  • FIG. 2 is a block diagram of an apparatus 200 for implementing various techniques described herein.
  • Apparatus 200 may be implemented, for example, as a general-purpose computing platform.
  • storage server 101, storage device 103, devices 107 A-J may be examples of apparatus 200.
  • Apparatus 200 can include a processor 210 for executing the computer- executable programs that perform various techniques described herein.
  • the programs may be stored in a memory 220, which may also store aggregated user input data.
  • a bus 230 can connect processor 210 and memory 220 to each other and to other components of apparatus 200.
  • apparatus 200 may include multiple processors or processors with multiple processing cores, which may execute various parts of programs in parallel.
  • a mass storage device 240 can be connected to bus 230 via a disk controller 250.
  • Mass storage device 240 may contain aggregated user input data, as well as an operating system, other programs, other data, etc.
  • Disk controller 250 may operate according to Serial Advanced Technology Advancement (SATA), Small Computer System Interface (SCSI), or other standards, and may provide connection to multiple mass storage devices.
  • SATA Serial Advanced Technology Advancement
  • SCSI Small Computer System Interface
  • a video display 260 can be connected to bus 230 via a video controller 270.
  • Video controller 270 may provide its own memory and graphics-processing capability for providing the functions of image and UI display.
  • An input device 280 can be connected to bus 230 via an input/output (I/O) controller 290.
  • I/O controller 290 may utilize one or more of USB, IEEE 1394, or other standards. Multiple input devices may be connected, such as keyboards, mice, and trackpads. Image and video capture devices may also be connected to the system through I/O controller 290 or additional I/O controllers implementing other I/O standards. Networking functionality may be provided by I/O controller 290 or a separate I/O controller.
  • FIG. 3 is a flowchart of an example of a method for distinguishing human errors from errors associated with other causes according to various embodiments.
  • Error information based on user input can be obtained (301) from multiple sources.
  • the error information can be, for example, misspelled words, incorrect use of grammar, etc.
  • the multiple sources can include, for example, devices with different types of HMIs (e.g., mechanical keyboard, virtual keyboard, etc.), different types of computer programs (e.g., texting programs, word processing programs, email programs, etc.), and so forth.
  • An input error can be determined (302) from the error information. For example, a misspelled word can be selected, a violation of a grammar rule can be determined, etc.
  • the method can determine (303) whether the input error is associated with all of the sources or fewer than all of the sources. Errors associated with all of the sources may represent errors caused by human error (such as not knowing the spelling of a word), and errors associated with fewer than all of the sources may represent errors that are caused by issues specific to the associated sources.
  • the associations can be stored (304) in a computer storage memory, such as storage device 103. In this way, a useful data structure (i.e., the stored associations) can be generated.
  • FIG. 4 is a flowchart of an example of a method for determining words to include in a spelling quiz based on distinguishing human errors from HMI-related errors according to various embodiments.
  • Information of user typing on devices with a mechanical keyboard and devices with a virtual keyboard can be received (401).
  • the devices can be, for example, smartphones, tablet computers, personal computers, etc., such as devices 107 A- J described above with respect to FIG. 1.
  • the typing can be, for example, smartphones, tablet computers, personal computers, etc., such as devices 107 A- J described above with respect to FIG. 1.
  • the typing information can be received by a device such as storage server 101 and stored on a storage device, such as storage device 103, for example.
  • the typing information can include, for example, a device identification (ID), which can indicate whether a mechanical or virtual keyboard was used.
  • ID can indicate whether a mechanical or virtual keyboard was used.
  • the typing information received for each device ID can include a history of spelling errors made on the device.
  • spell-checker programs and/or grammar programs running on each device can collect information on the spelling and grammar errors made by the user, which may include, e.g., the misspelled word, how the word was misspelled, the context of the misspelled word, etc.
  • a word that the user has misspelled can be selected (402).
  • the typing information can explicitly identify misspelled words, and selecting a misspelled word can simply select one of the identified words.
  • the typing information may not explicitly identify misspelled words (for example, the typing information may be a history of keystrokes typed by the user), and selecting a word the user has misspelled can include analyzing the history of keystrokes to determine misspelled words.
  • the method determines (403) whether the selected misspelled word was typed and/or written on both types of devices, i.e., the devices with mechanical keyboards and the devices with virtual keyboards, and/or using a handwritten input method such as using a stylus without a virtual keyboard.
  • the method determines (404) not to include the selected word in the quiz, another word the user has misspelled is selected (405), and the process continues.
  • the user may have typed the word "penultimate” only on a mechanical keyboard device and never on a virtual keyboard device.
  • the method can disregard the misspelling of "penultimate” for the purpose of quizzing the user because the method may not be able to determine whether the misspelling is associated with the particular HMI or is associated with human error.
  • various other embodiments may include "penultimate” in the quizzing anyway, and may not even include a determination such a 403.
  • the method determines (406) whether the selected word was misspelled on both types of devices.
  • the method may determine a word was misspelled on a particular type of device if the user misspelled the word one or more times on that type of device.
  • the determination of whether the selected word was misspelled on both types of devices may be based on other criteria. For example, the method may require more than one misspelling (e.g., 5 misspellings) of the word in order for the word to be considered to have been misspelled on the type of device.
  • the determination may include a determination of how frequently the word was misspelled on the type of device (e.g., by dividing the number of times the user misspelled the word with the total number of times the user typed the word), and determining the word was misspelled on the type of device can include determining the frequency of misspelling on the type of device is greater than a threshold frequency.
  • a threshold frequency e.g., a threshold frequency
  • the method adds (407) the selected word to a list of words to include in the spelling quiz, another word the user has misspelled is selected (405), and the process continues.
  • the method can determine that the misspelling of the selected word is associated with human error (i.e., the user has trouble spelling the word) because the error was made regardless of the type of HMI used.
  • the method determines (404) not to include the selected word in the quiz, another word the user has misspelled is selected (405), and the process continues. In this way, for example, the method can determine that the misspelling of the selected word is associated with a particular type of HMI because the error was made only when using that HMI.
  • the quiz word list generated by the method can represent the associations determined above, i.e., association of misspelled words with human error and error associated with a different cause.
  • the quiz word list can be stored, e.g., in storage server 101, and can be used by a spelling quiz application to generate quizzes for the user.
  • FIG. 5 is a flowchart of an example of a method for modifying an auto-suggest function of a grammar checking application based on distinguishing human errors from errors associated with a type of computer program according to various embodiments.
  • Information of user typing in texting programs and typing in word processing programs can be received (501).
  • the grammar information can be received by a device such as storage server 101 and stored on a storage device, such as storage device 103, for example.
  • the grammar information can include, for example, a computer program identification (ID), which can indicate whether a texting program or a word processing program was used.
  • the grammar information received for each type of computer program can include a history of grammar errors made when using the computer program.
  • grammar-checker functions of each computer program can collect information on the grammar errors made by the user, which may include, e.g., the violations of rules of grammar, how the rule was violated, the context of the violation, etc.
  • a grammar rule that the user has violated can be selected (502).
  • the grammar information can explicitly identify violations of grammar rules, and selecting a rule can simply select one of the identified rules that the user violated.
  • the grammar information may not explicitly identify violations of grammar rules (for example, the grammar information may be a history of keystrokes typed by the user), and selecting a rule the user has violated can include analyzing the history of keystrokes to determine grammar violations.
  • the method determines (503) whether the selected grammar rule was violated in both types of computer programs, i.e., texting programs and word processing programs.
  • both types of computer programs i.e., texting programs and word processing programs.
  • analyses may be used to determine whether a grammar rule violation should be considered to have occurred. Analyses may be directed to, for example, identifying a statistically meaningful difference between the errors made in one type of computer program versus the other type of computer program.
  • the method tags (504) the selected grammar rule for autosuggestion in both types of computer programs. Then, another grammar rule the user has violated is selected (505), and the process continues. In this way, for example, the method can determine that the grammar violation is associated with human error (i.e., the user has trouble remembering the rule) because the error was made regardless of the type of computer program used.
  • the method tags (506) the selected grammar rule for autosuggestion only in the type of computer program in which the violation has not occurred. Then, another grammar rule the user has violated is selected (505), and the process continues. For example, the user may violate a particular grammar rule when using texting programs, but may not violate the rule when using word processing programs. This may be because most of the user's texts are communications with friends, and the user prefers to use less formal grammar with friends, while most of the user's word processing documents are for work and require more formal grammar.
  • the method can determine that the violation of the rule is associated with a particular type of computer program, i.e., texting programs, rather than a human error such as not knowing the rule, because the error was made only when using texting programs. Therefore, the method can determine that if the user violates the rule while using a word processing program, that particular violation is likely the result of a genuine mistake (i.e., user error) of the user, in which case an auto-suggestion would be helpful.
  • a genuine mistake i.e., user error
  • the tags generated by the method can represent the associations determined above, i.e., association of grammar rule violations with human error or error associated with a different cause.
  • the tags can be stored, e.g., in storage server 101, and can be used by the grammar-checker functions of each computer program to generate grammar auto-suggestions that are more appropriate for the user's use of the computer program. For example, the auto-suggestion function of the texting program would not bother the user with suggestions for correcting violations of the particular grammar rule that the user typically violates when texting to friends.
  • a computing system such as a general purpose computer through computer-executable instructions (e.g., software, firmware, etc.) stored on a computer-readable medium (e.g., storage disk, memory, etc.) and executed by a computer processor.
  • a computer-readable medium e.g., storage disk, memory, etc.
  • software implementing one or more methods shown in the flowcharts could be stored in storage device 240 and executed by processor 210.
  • various elements shown in the figures may be implemented in various forms of hardware, software or combinations thereof. That is, various elements may be implemented in a combination of hardware and software on one or more appropriately programmed general-purpose devices, which may include a processor, memory and input/output interfaces.
  • the functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software.
  • the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be
  • processor or “controller” should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (“DSP”) hardware, read only memory (“ROM”) for storing software, random access memory (“RAM”), and nonvolatile storage.
  • DSP digital signal processor
  • ROM read only memory
  • RAM random access memory
  • any switches shown in the figures are conceptual only. Their function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the implementer as more specifically understood from the context.
  • such phrasing is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of the third listed option (C) only, or the selection of the first and the second listed options (A and B) only, or the selection of the first and third listed options (A and C) only, or the selection of the second and third listed options (B and C) only, or the selection of all three options (A and Band C). This may be extended for as many items as listed.
  • any element expressed as a means for performing a specified function is intended to encompass any way of performing that function including, for example, a combination of circuit elements that performs that function, software in any form, including, therefore, firmware, microcode or the like, combined with appropriate circuitry for executing that software to perform the function, etc.
  • the disclosure as defined by such claims resides in the fact that the functionalities provided by the vaiious recited means are combined and brought together in the manner the claims call for. It is thus regarded that any means that can provide those functionalities are equivalent to those shown herein.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Educational Technology (AREA)
  • Educational Administration (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Engineering & Computer Science (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Distinguishing errors associated with human error from errors associated with other causes based on analysis of error information from multiple sources is provided. Error information based on user input is obtained from a plurality of sources. An input error is determined from the error information. It is determined whether the input error is associated with all of the sources or is associated with fewer than all of the sources. Association information based on determined association is stored.

Description

IDENTIFYING ERRORS IN INPUT DATA FROM MULTIPLE SOURCES
TECHNICAL FIELD
The present disclosure generally relates to analyzing user input data to identify errors and, more particularly, to aggregating user input data and analyzing the aggregated data to distinguish errors associated with human error from errors related to other causes.
BACKGROUND
The number of computing devices, such as personal computers, smartphones, tablet computers, etc., and computer programs, such as word processing programs, texting programs, email programs, etc., continues to grow. As a result, user input is received by an increasing number and variety of devices, programs, etc. For example, a user may use a mechanical keyboard to enter text into a personal computer, use a virtual keyboard displayed on a smartphone touchscreen to enter text into the smartphone, and use a slightly larger virtual keyboard on a tablet computer to enter text into the tablet computer. The user may enter text in a word processing program, then stop to type a text into a texting program, then respond to an email by typing text into an email program.
Various computer applications exist to help users by, for example, identifying input errors such as spelling errors, grammar errors, etc. However, users may not make the same kinds of errors across all types of devices, human-machine interfaces (HMIs), computer programs, etc. For example, a user might find it more difficult to type on a small virtual keyboard, and as a result, might make more errors when typing on a smartphone. That is, the user might know how to spell a particular word, but may type the word incorrectly more often on a virtual keyboard than on a full-sized mechanical keyboard. Therefore, the user's spelling errors for the word on a virtual keyboard may not be the result of human error (e.g., not knowing how to spell the word), but may be the result of a different cause (e.g., difficulty typing on a virtual keyboard). SUMMARY
Examples and details are provided herein of systems and methods for distinguishing an error associated with human error from errors associated with other causes. In various embodiments, error information can be obtained based on user input from a plurality of sources. In various embodiments, the error information can include information of misspelled words, information of violations of grammar rules, etc. In various embodiments, the plurality of sources can include devices, and each device can include one of a plurality of different types of HMIs. For example, the HMIs can include a mechanical keyboard and a virtual keyboard. In various embodiments, the plurality of sources can include different types of computer programs. For example, different types of computer programs can include word processing programs, texting programs, email programs, etc. An input error can be determined from the error information. It can be determined whether the input error is associated with all of the sources or is associated with fewer than all of the sources. Association information based on determined association can be stored and used, for example, to improve existing computer functionality. In various embodiments, a computer function can be performed based on the association information. The function can include, for example, a spell checking function, a grammar checking function, a user-quizzing function, etc.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates an example of a computer network 100 in which various embodiments may be implemented.
FIG. 2 illustrates an example of an apparatus in which various embodiments may be implemented.
FIG. 3 is a flowchart of an example of a method for distinguishing human errors from errors associated with other causes according to various embodiments. FIG. 4 is a flowchart of an example of a method for determining words to include in a spelling quiz based on distinguishing human errors from HMI-related errors according to various embodiments.
FIG. 5 is a flowchart of an example of a method for modifying an auto-suggest function of a grammar checking application based on distinguishing human errors from errors associated with a type of computer program according to various embodiments.
It should be understood that the drawings are for purposes of illustrating the concepts of the disclosure and are not necessarily the only possible configurations for illustrating the disclosure.
DETAILED DESCRIPTION
In text entry and other computer input via a human-machine interface (HMI), some input errors may be related to human error and some errors may be related to the HMI itself. For example, some people find it difficult to type on virtual keyboards, e.g., keyboards displayed on the touchscreens of smartphones, tablet computers, etc. As a result, some users can make more spelling errors when typing on a virtual keyboard than when typing on a mechanical keyboard, e.g., a typical keyboard connected to a personal computer. Other data entry systems such as the use of a stylus with a virtual keyboard can be utilized as well. As a result, there may be some words that a user spells correctly when typing on a mechanical keyboard, but sometimes misspells when typing on a virtual keyboard by using a person's fingers or a stylus. For example, a user might always spell the word "open" correctly on a mechanical keyboard, but sometimes type "opem" on a virtual keyboard. There may be various reasons the user misspells certain words on a smartphone virtual keyboard, for example, the small size of the virtual keyboard, the lack of tactile feedback of the touchscreen, etc.
On the other hand, some users might find it easier to type on a virtual keyboard, and may make fewer spelling errors on a virtual keyboard than on a mechanical keyboard. These users may make fewer errors on a virtual keyboard because, for example, the small size of virtual keyboards makes it easier to find the next key to press, or because the virtual keyboard is close to the location that the text appears. In some cases people use techniques for a virtual keyboard using two fingers, which may be more efficient for the person than using a standard mechanical keyboard.
As described in more detail below, determining which errors are human errors and which errors related to a particular HMI can provide useful information. For example, in order to help a user improve at spelling, a computer program can analyze user input data to determine words that the user commonly misspells when typing. The program can then quiz the user on the words that the user commonly misspells. If the user types on multiple devices, e.g., smartphone, personal computer, tablet computer, etc., the program can collect and aggregate the user input data across all of the devices in order to obtain a larger database to analyze. Having a larger database of user input can improve the accuracy of the error analysis. However, because the aggregated information can include HMI-related errors, such an approach can be improved upon. For example, from an analysis of aggregated data the spelling quiz program may determine that the user sometimes types the "opem" instead of "open," and as a result, may determine that the user should be quizzed on the spelling of the word "open." However, the user may know how to spell the word "open," and the error may occur only when the user types on a virtual keyboard because of the user's difficulty with that particular HMI. Therefore, quizzing the user on the word "open" would not be helpful. In this case, distinguishing spelling errors associated with human error from HMI-related spelling errors can improve the spelling quiz program by allowing the HMI-related misspellings to be given a low priority or weight, or to be completely disregarded, which can help focus the quiz on words that the user actually has trouble spelling.
Error correction is another area that can benefit from distinguishing human errors from HMI-related errors. For example, spell-checking functionality on personal computers, smartphones, tablets, etc., can analyze a user's typing errors to learn which errors the user commonly makes, and can use the analysis to provide better suggestions and/or auto-corrections. The machine learning improves as more user input data is collected and analyzed. Therefore, collecting and aggregating user input data from all of the user's devices (e.g., personal computer, smartphone, tablet computer, etc.) and analyzing the aggregated data can allow the spell-checker to make better suggestions and/or auto-corrections than if spell-checkers (generically called an analyzer program) in each device analyzed the user input data from that device only. However, because some errors may be associated with a particular HMI, learning from aggregated data can also introduce problems. For example, a user might always spell the words "line" and "lime" correctly on a mechanical keyboard, but on a virtual keyboard the user might sometimes type "lime" when they meant to type "line." By analyzing aggregated user input data, the spell-checker can determine that the user sometimes types "lime" and then erases it and retypes "line." Based on this analysis, spell- checking may determine that a common user error is typing "lime" instead of "line" and as a result, spell-checking may automatically provide a pop-up box suggesting the word "line" whenever the user types "lime." While this suggestion might be helpful when the user is typing on the smartphone virtual keyboard, the suggestion may be intrusive and annoying when the user is typing on the personal computer. In this case, the knowledge of which errors are common to all devices (e.g., human errors) and which errors occur only on particular devices (e.g., errors related to HMI) can be used to improve the automatic suggestions and/or corrections. For example, based on this additional knowledge, spell-checking can generate the "line" pop-up suggestion when the user types "line" on the virtual keyboard, but not when the user types "line" on the personal computer. Thus, while aggregating user input data may generally provide more accurate error-checking results, distinguishing the human errors from errors that are related to a particular HMI can further improve error-checking functionality.
While the examples above are directed to distinguishing human errors from HMI-related errors, it should be appreciated that similar approaches can be used to distinguish human errors from errors associated with other causes. For example, some user input errors may be associated with a particular type of computer program. For example, a user may use better grammar when typing in word processing applications than when typing in texting applications. This might be because the user prefers not to strictly adhere to the rules of grammar when texting, but uses word processing programs to prepare formal documents that require correct grammar. When typing in a word processing application, for example, the user may always obey a particular grammatical rule (rule A). However, the user may disregard rule A when using a texting application. On the other hand, the user have trouble remember another grammatical rule (rule B), and as a result, the user may misuse rule B in word processing applications and texting applications. Similar to the spelling-quizzer example above, a grammar-quizzer program may aggregate user input data from different computer applications, including texting and word processing applications, and analyze the aggregated data to determine the user's grammar errors. If the grammar-quizzer does not distinguish errors made across all applications (i.e., human errors) from errors made only in particular applications (i.e., application-related errors) the grammar-quizzer may determine that the user has trouble with rule A and rule B. However, if the grammar-quizzer distinguishes human errors from application-related errors, the grammar-quizzer may make the more accurate determination that the user knows rule A, but has trouble with rule B.
Aggregated user input data can be analyzed to distinguish human errors from errors associated with other causes as well. For example, some errors may be associated with a particular person or category of person with which the user is communicating, e.g., a user may use better grammar when emailing a work associate than when emailing a friend. Distinguishing human errors from errors associated with communicating with friends may allow a grammar-quizzer to avoid testing the user on rules the user already knows. In another example, some errors may be associated with a time of day, e.g., a user may tend to make more typing errors late at night, such as misspelling words the user knows how to spell. Distinguishing human errors from errors associated with typing late at night may allow a spell-checker to give lower weight to errors made late at night, which may improve the accuracy of suggestions and/or auto-corrections. It should be appreciated that errors may be associated with many reasons other than human error.
In various embodiments, the other causes of error may be specifically targeted in the analysis of aggregated data. For example, a spell-checker may specifically search for differences in errors in data collected from mechanical keyboard devices and errors in data collected from virtual keyboard devices, or using a stylus interface. In various embodiments, the analysis may include determining other causes of error. In this regard, statistical analysis may be applied to determine likely causes of error other than human error. For example, a grammar-checker might not initially know that some grammar errors are associated with a user's preference not to use strict grammar when texting, but the grammar-checker can discover this association through statistical analysis of the aggregated user input data. Once the association is determined, the grammar-checker can distinguish between grammar errors associated with human error (i.e., errors made regardless of whether the user is using texting applications, word processing applications, etc.) from errors made only in texting applications. In some cases, for example, a statistical analysis may determine that the user disregards certain grammatical rules when typing emails using a personal email account and typing text messages using any texting application. In this case, a grammar-checker may group these types of communications together in a "Suspect Grammar" category, and the analysis of the aggregated data can then distinguish human error from errors associated with the Suspect Grammar category of applications.
Although the foregoing examples are directed to analyzing input data of a specific user, it should also be appreciated that similar analyses can be applied to aggregated user input data from multiple users. For example, user input data from all of the users in a household, a company, a country, etc., can be aggregated and analyzed to determine various causes of error other than human error, and the results of the analyses may be used in applications similar to those described above, e.g., a grammar-checker including a list of computer applications that have been associated with a user preference for less-than-strict grammar usage.
FIG. 1 illustrates an example of a computer network 100 in which various embodiments may be implemented. Computer network 100 can include a storage server 101, a storage device 103 storing a database 105, devices 107A-107J, a local area network (LAN) 109, and an external network 111. Storage device 103 can be, for example, a hard disk drive (HDD), a solid-state drive (SSD), etc., that stores database 105. Database 105, as a computer implemented program, for some embodiments, can include, for example, aggregated user input data. Storage server 101 can be, for example, a computer server connected to storage device 103. Storage server 101 can include hardware, such as one or more processors and memory, software, and/or firmware to perform various functions, including aggregating user input data from multiple devices (such as devices 107A-107J), applications (such as word processing applications, email applications, texting applications), etc., analyzing the aggregated user input data to distinguish human errors from errors associated with other causes, and utilizing the results of the distinction of human errors according to the methods described in more detail below. Devices 107A-107J can be, for example, desktop computers, laptop computers, tablet computers, mobile devices, video game systems, set top boxes, televisions, audio-video equipment, etc.
Devices 107A-107J can be operated by the various users, for example, and a single user can operate multiple devices. For example, devices 107A, 107J, and 1071 can be, respectively, a personal computer, a smartphone, and a tablet computer operated by a single user. Devices 107A-107J can connect to storage server 101 through external network 111. External network 111 can be, for example, the Internet. Devices 107 A and 107B can connect to storage server 101 through LAN 109.
Various computer programs running on devices 107A-107J can connect to storage server 101 through external network 111, and various user input data can be transmitted to database 105 for aggregation and analysis in accordance with various embodiments described herein.
FIG. 2 illustrates an example of an apparatus in which various embodiments may be implemented. FIG. 2 is a block diagram of an apparatus 200 for implementing various techniques described herein. Apparatus 200 may be implemented, for example, as a general-purpose computing platform. Moreover, storage server 101, storage device 103, devices 107 A-J, may be examples of apparatus 200.
Apparatus 200 can include a processor 210 for executing the computer- executable programs that perform various techniques described herein. The programs may be stored in a memory 220, which may also store aggregated user input data. A bus 230 can connect processor 210 and memory 220 to each other and to other components of apparatus 200. In some embodiments, apparatus 200 may include multiple processors or processors with multiple processing cores, which may execute various parts of programs in parallel.
A mass storage device 240 can be connected to bus 230 via a disk controller 250. Mass storage device 240 may contain aggregated user input data, as well as an operating system, other programs, other data, etc. Disk controller 250 may operate according to Serial Advanced Technology Advancement (SATA), Small Computer System Interface (SCSI), or other standards, and may provide connection to multiple mass storage devices.
A video display 260 can be connected to bus 230 via a video controller 270. Video controller 270 may provide its own memory and graphics-processing capability for providing the functions of image and UI display.
An input device 280 can be connected to bus 230 via an input/output (I/O) controller 290. I/O controller 290 may utilize one or more of USB, IEEE 1394, or other standards. Multiple input devices may be connected, such as keyboards, mice, and trackpads. Image and video capture devices may also be connected to the system through I/O controller 290 or additional I/O controllers implementing other I/O standards. Networking functionality may be provided by I/O controller 290 or a separate I/O controller.
FIG. 3 is a flowchart of an example of a method for distinguishing human errors from errors associated with other causes according to various embodiments. Error information based on user input can be obtained (301) from multiple sources. The error information can be, for example, misspelled words, incorrect use of grammar, etc. The multiple sources can include, for example, devices with different types of HMIs (e.g., mechanical keyboard, virtual keyboard, etc.), different types of computer programs (e.g., texting programs, word processing programs, email programs, etc.), and so forth. An input error can be determined (302) from the error information. For example, a misspelled word can be selected, a violation of a grammar rule can be determined, etc. The method can determine (303) whether the input error is associated with all of the sources or fewer than all of the sources. Errors associated with all of the sources may represent errors caused by human error (such as not knowing the spelling of a word), and errors associated with fewer than all of the sources may represent errors that are caused by issues specific to the associated sources. The associations can be stored (304) in a computer storage memory, such as storage device 103. In this way, a useful data structure (i.e., the stored associations) can be generated.
FIG. 4 is a flowchart of an example of a method for determining words to include in a spelling quiz based on distinguishing human errors from HMI-related errors according to various embodiments. Information of user typing on devices with a mechanical keyboard and devices with a virtual keyboard can be received (401). The devices can be, for example, smartphones, tablet computers, personal computers, etc., such as devices 107 A- J described above with respect to FIG. 1. The typing
information can be received by a device such as storage server 101 and stored on a storage device, such as storage device 103, for example. The typing information can include, for example, a device identification (ID), which can indicate whether a mechanical or virtual keyboard was used. The typing information received for each device ID can include a history of spelling errors made on the device. For example, spell-checker programs and/or grammar programs running on each device can collect information on the spelling and grammar errors made by the user, which may include, e.g., the misspelled word, how the word was misspelled, the context of the misspelled word, etc.
Based on the typing information, a word that the user has misspelled can be selected (402). In this example, the typing information can explicitly identify misspelled words, and selecting a misspelled word can simply select one of the identified words. In various other embodiments, the typing information may not explicitly identify misspelled words (for example, the typing information may be a history of keystrokes typed by the user), and selecting a word the user has misspelled can include analyzing the history of keystrokes to determine misspelled words. The method determines (403) whether the selected misspelled word was typed and/or written on both types of devices, i.e., the devices with mechanical keyboards and the devices with virtual keyboards, and/or using a handwritten input method such as using a stylus without a virtual keyboard. If the selected word was not typed on both types of devices, the method determines (404) not to include the selected word in the quiz, another word the user has misspelled is selected (405), and the process continues. For example, the user may have typed the word "penultimate" only on a mechanical keyboard device and never on a virtual keyboard device. In this case, the method can disregard the misspelling of "penultimate" for the purpose of quizzing the user because the method may not be able to determine whether the misspelling is associated with the particular HMI or is associated with human error. It should be noted that various other embodiments may include "penultimate" in the quizzing anyway, and may not even include a determination such a 403.
If the selected word was typed on both types of devices, the method determines (406) whether the selected word was misspelled on both types of devices. In various embodiments, the method may determine a word was misspelled on a particular type of device if the user misspelled the word one or more times on that type of device. In other various embodiments, the determination of whether the selected word was misspelled on both types of devices may be based on other criteria. For example, the method may require more than one misspelling (e.g., 5 misspellings) of the word in order for the word to be considered to have been misspelled on the type of device. In various other embodiments, the determination may include a determination of how frequently the word was misspelled on the type of device (e.g., by dividing the number of times the user misspelled the word with the total number of times the user typed the word), and determining the word was misspelled on the type of device can include determining the frequency of misspelling on the type of device is greater than a threshold frequency. As one skilled in the art would readily appreciate, there are many analyses that may be used to determine whether a word is considered to have been misspelled a particular type of device. Analyses may be directed to, for example, identifying a statistically meaningful difference between the errors made on one type of device versus the other type of device. Analyses can also consider the different type of input methods used, for example using handwriting using a stylus versus typing words.
If it is determined that the selected word was misspelled on both types of devices, the method adds (407) the selected word to a list of words to include in the spelling quiz, another word the user has misspelled is selected (405), and the process continues. In this way, for example, the method can determine that the misspelling of the selected word is associated with human error (i.e., the user has trouble spelling the word) because the error was made regardless of the type of HMI used.
If it is determined that the selected word was not misspelled on both types of devices, the method determines (404) not to include the selected word in the quiz, another word the user has misspelled is selected (405), and the process continues. In this way, for example, the method can determine that the misspelling of the selected word is associated with a particular type of HMI because the error was made only when using that HMI.
The quiz word list generated by the method can represent the associations determined above, i.e., association of misspelled words with human error and error associated with a different cause. The quiz word list can be stored, e.g., in storage server 101, and can be used by a spelling quiz application to generate quizzes for the user.
FIG. 5 is a flowchart of an example of a method for modifying an auto-suggest function of a grammar checking application based on distinguishing human errors from errors associated with a type of computer program according to various embodiments. Information of user typing in texting programs and typing in word processing programs can be received (501). The grammar information can be received by a device such as storage server 101 and stored on a storage device, such as storage device 103, for example. The grammar information can include, for example, a computer program identification (ID), which can indicate whether a texting program or a word processing program was used. The grammar information received for each type of computer program can include a history of grammar errors made when using the computer program. For example, grammar-checker functions of each computer program can collect information on the grammar errors made by the user, which may include, e.g., the violations of rules of grammar, how the rule was violated, the context of the violation, etc.
Based on the grammar information, a grammar rule that the user has violated can be selected (502). In this example, the grammar information can explicitly identify violations of grammar rules, and selecting a rule can simply select one of the identified rules that the user violated. In various other embodiments, the grammar information may not explicitly identify violations of grammar rules (for example, the grammar information may be a history of keystrokes typed by the user), and selecting a rule the user has violated can include analyzing the history of keystrokes to determine grammar violations.
The method determines (503) whether the selected grammar rule was violated in both types of computer programs, i.e., texting programs and word processing programs. As one skilled in the art would readily appreciate, there are many analyses that may be used to determine whether a grammar rule violation should be considered to have occurred. Analyses may be directed to, for example, identifying a statistically meaningful difference between the errors made in one type of computer program versus the other type of computer program.
If it is determined that the selected grammar rule was violated in both types of computer programs, the method tags (504) the selected grammar rule for autosuggestion in both types of computer programs. Then, another grammar rule the user has violated is selected (505), and the process continues. In this way, for example, the method can determine that the grammar violation is associated with human error (i.e., the user has trouble remembering the rule) because the error was made regardless of the type of computer program used.
If it is determined that the selected grammar rule was not violated in both types of computer programs, the method tags (506) the selected grammar rule for autosuggestion only in the type of computer program in which the violation has not occurred. Then, another grammar rule the user has violated is selected (505), and the process continues. For example, the user may violate a particular grammar rule when using texting programs, but may not violate the rule when using word processing programs. This may be because most of the user's texts are communications with friends, and the user prefers to use less formal grammar with friends, while most of the user's word processing documents are for work and require more formal grammar. In this example, the method can determine that the violation of the rule is associated with a particular type of computer program, i.e., texting programs, rather than a human error such as not knowing the rule, because the error was made only when using texting programs. Therefore, the method can determine that if the user violates the rule while using a word processing program, that particular violation is likely the result of a genuine mistake (i.e., user error) of the user, in which case an auto-suggestion would be helpful.
The tags generated by the method can represent the associations determined above, i.e., association of grammar rule violations with human error or error associated with a different cause. The tags can be stored, e.g., in storage server 101, and can be used by the grammar-checker functions of each computer program to generate grammar auto-suggestions that are more appropriate for the user's use of the computer program. For example, the auto-suggestion function of the texting program would not bother the user with suggestions for correcting violations of the particular grammar rule that the user typically violates when texting to friends.
It should be appreciated by those skilled in the art that the methods described above may be implemented by, for example, a computing system such as a general purpose computer through computer-executable instructions (e.g., software, firmware, etc.) stored on a computer-readable medium (e.g., storage disk, memory, etc.) and executed by a computer processor. Referring to FIG. 2, for example, software implementing one or more methods shown in the flowcharts could be stored in storage device 240 and executed by processor 210. It should be understood that in various embodiments, various elements shown in the figures may be implemented in various forms of hardware, software or combinations thereof. That is, various elements may be implemented in a combination of hardware and software on one or more appropriately programmed general-purpose devices, which may include a processor, memory and input/output interfaces.
It should also be appreciated that although various examples of various embodiments have been shown and described in detail herein, those skilled in the art can readily devise other varied embodiments that still remain within the scope of this disclosure.
All examples and conditional language recited herein are intended for instructional purposes to aid the reader in understanding the principles of the disclosure and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions.
Moreover, all statements herein reciting principles, aspects, and embodiments of the disclosure, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.
Thus, for example, it will be appreciated by those skilled in the art that the block diagrams presented herein represent conceptual views of illustrative circuitry embodying the principles of the disclosure. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudocode, and the like represent various processes which may be substantially represented in computer readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
The functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be
shared. Moreover, explicit use of the term "processor" or "controller" should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor ("DSP") hardware, read only memory ("ROM") for storing software, random access memory ("RAM"), and nonvolatile storage.
Other hardware, conventional and/or custom, may also be included. Similarly, any switches shown in the figures are conceptual only. Their function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the implementer as more specifically understood from the context.
It is noted that the use of "and/or" and "at least one of, for example, in the cases of "A and/or B" and "at least one of A and B", is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of both options (A and B). As a further example, in the cases of "A, B, and/or C" and "at least one of A, B, and C", such phrasing is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of the third listed option (C) only, or the selection of the first and the second listed options (A and B) only, or the selection of the first and third listed options (A and C) only, or the selection of the second and third listed options (B and C) only, or the selection of all three options (A and Band C). This may be extended for as many items as listed.
In the claims hereof, any element expressed as a means for performing a specified function is intended to encompass any way of performing that function including, for example, a combination of circuit elements that performs that function, software in any form, including, therefore, firmware, microcode or the like, combined with appropriate circuitry for executing that software to perform the function, etc. The disclosure as defined by such claims resides in the fact that the functionalities provided by the vaiious recited means are combined and brought together in the manner the claims call for. It is thus regarded that any means that can provide those functionalities are equivalent to those shown herein.

Claims

1. A system (200) comprising:
a processor (210); and
a memory (240) storing instructions configured to cause the processor to:
obtain error information based on user input from a plurality of sources;
determine an input error from the error information;
determine whether the input error is associated with all of the sources or is associated with fewer than all of the sources; and
store association information based on determined association.
2. The system of claim 1, wherein the plurality of sources includes devices, wherein each device includes one of a plurality of different types of human machine interfaces.
3. The system of claim 2, wherein the plurality of different types of human machine interfaces includes a mechanical keyboard, a virtual keyboard, and a handwriting recognition interface.
4. The system of claim 1, wherein the plurality of sources includes different types of computer programs.
5. The system of claim 1, wherein the error information includes at least one of information of misspelled words and information of violations of grammar rules.
6. The system of claim 1, wherein the instructions further cause the processor to:
perform a function based on the association information, wherein the function includes at least one of a spell checking function, a grammar checking function, and a user-quizzing function.
7. A non- transitory computer-readable medium (240) storing computer- executable instructions executable to perform a method comprising:
obtaining error information based on user input from a plurality of sources; determining an input error from the error information;
determining whether the input error is associated with all of the sources or is associated with fewer than all of the sources; and
storing association information based on determined association.
8. The non-transitory computer-readable medium of claim 7, wherein the plurality of sources includes devices, wherein each device includes one of a plurality of different types of human machine interfaces.
9. The non-transitory computer-readable medium of claim 8, wherein the plurality of different types of human machine interfaces includes a mechanical keyboard and a virtual keyboard.
10. The non-transitory computer-readable medium of claim 7, wherein the plurality of sources includes different types of computer programs.
11. The non-transitory computer-readable medium of claim 7, wherein the error information includes at least one of information of misspelled words and information of violations of grammar rules.
12. The non-transitory computer-readable medium of claim 7, wherein the method further comprises:
performing a function based on the association information, wherein the function includes at least one of a spell checking function, a grammar checking function, and a user-quizzing function.
13. A method comprising:
obtaining (301) error information based on user input from a plurality of sources;
determining (302) an input error from the error information;
determining (303) whether the input error is associated with all of the sources or is associated with fewer than all of the sources; and
storing (304) association information based on determined association.
14. The method of claim 13, wherein the plurality of sources includes devices, wherein each device includes one of a plurality of different types of human machine interfaces.
15. The method of claim 14, wherein the plurality of different types of human machine interfaces includes a mechanical keyboard and a virtual keyboard.
16. The method of claim 13, wherein the plurality of sources includes different types of computer programs.
17. The method of claim 13, wherein the error information includes at least one of information of misspelled words and information of violations of grammar rules.
18. The method of claim 13, further comprising:
performing a function based on the association information, wherein the function includes at least one of a spell checking function, a grammar checking function, and a user-quizzing function.
PCT/US2015/068296 2015-12-31 2015-12-31 Identifying errors in input data from multiple sources Ceased WO2017116471A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2015/068296 WO2017116471A1 (en) 2015-12-31 2015-12-31 Identifying errors in input data from multiple sources

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/068296 WO2017116471A1 (en) 2015-12-31 2015-12-31 Identifying errors in input data from multiple sources

Publications (1)

Publication Number Publication Date
WO2017116471A1 true WO2017116471A1 (en) 2017-07-06

Family

ID=55221549

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/068296 Ceased WO2017116471A1 (en) 2015-12-31 2015-12-31 Identifying errors in input data from multiple sources

Country Status (1)

Country Link
WO (1) WO2017116471A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6889361B1 (en) * 2000-06-13 2005-05-03 International Business Machines Corporation Educational spell checker
US20080052272A1 (en) * 2006-08-28 2008-02-28 International Business Machines Corporation Method, System and Computer Program Product for Profile-Based Document Checking
WO2008053466A2 (en) * 2006-10-30 2008-05-08 Cellesense Technologies Ltd. Context sensitive, error correction of short text messages
US20130211824A1 (en) * 2012-02-14 2013-08-15 Erick Tseng Single Identity Customized User Dictionary
WO2014035773A1 (en) * 2012-08-31 2014-03-06 Microsoft Corporation Context sensitive auto-correction

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6889361B1 (en) * 2000-06-13 2005-05-03 International Business Machines Corporation Educational spell checker
US20080052272A1 (en) * 2006-08-28 2008-02-28 International Business Machines Corporation Method, System and Computer Program Product for Profile-Based Document Checking
WO2008053466A2 (en) * 2006-10-30 2008-05-08 Cellesense Technologies Ltd. Context sensitive, error correction of short text messages
US20130211824A1 (en) * 2012-02-14 2013-08-15 Erick Tseng Single Identity Customized User Dictionary
WO2014035773A1 (en) * 2012-08-31 2014-03-06 Microsoft Corporation Context sensitive auto-correction

Similar Documents

Publication Publication Date Title
CN109800386B (en) Highlighting key portions of text within a document
US11194448B2 (en) Apparatus for vision and language-assisted smartphone task automation and method thereof
US11176453B2 (en) System and method for detangling of interleaved conversations in communication platforms
US20190311031A1 (en) Techniques for automatic proofing of textual data
US10460029B2 (en) Reply information recommendation method and apparatus
US10838592B2 (en) Terminal and method for determining type of input method editor
AU2014212844B2 (en) Character and word level language models for out-of-vocabulary text input
US20150309984A1 (en) Learning language models from scratch based on crowd-sourced user text input
WO2014062588A2 (en) Incremental multi-word recognition
WO2014047161A2 (en) Posture-adaptive selection
CN106663093A (en) Techniques for automatically swapping languages and/or content for machine translation
CN105580004A (en) Input method editor providing language assistance
CN109492085B (en) Answer determination method, device, terminal and storage medium based on data processing
CN110427622B (en) Corpus labeling evaluation method, corpus labeling evaluation device and storage medium
US20130346904A1 (en) Targeted key press zones on an interactive display
EP2909702B1 (en) Contextually-specific automatic separators
CN108664142B (en) Input method with self-learning function between documents
KR101476229B1 (en) Method And Apparatus for Inputing Mathematical Formula
WO2018032697A1 (en) Automatic error correction method and system for handwriting
US20180159804A1 (en) Systems and methods for providing a comment-centered news reader
CN118072323A (en) Recognition result error correction method, device, computer equipment and medium
CN107797676B (en) Single character input method and device
JP2018185601A (en) Information processing apparatus and information processing program
CN113626441A (en) Text management method, device and equipment based on scanning equipment and storage medium
US20210049322A1 (en) Input error detection device, input error detection method, and computer readable medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15828472

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15828472

Country of ref document: EP

Kind code of ref document: A1