US7254774B2 - Systems and methods for improved spell checking - Google Patents
Systems and methods for improved spell checking Download PDFInfo
- Publication number
- US7254774B2 US7254774B2 US10/801,968 US80196804A US7254774B2 US 7254774 B2 US7254774 B2 US 7254774B2 US 80196804 A US80196804 A US 80196804A US 7254774 B2 US7254774 B2 US 7254774B2
- Authority
- US
- United States
- Prior art keywords
- substring
- substrings
- query
- iteration
- alternative
- 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.)
- Expired - Fee Related, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9532—Query formulation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/232—Orthographic correction, e.g. spell checking or vowelisation
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B63—SHIPS OR OTHER WATERBORNE VESSELS; RELATED EQUIPMENT
- B63B—SHIPS OR OTHER WATERBORNE VESSELS; EQUIPMENT FOR SHIPPING
- B63B2221/00—Methods and means for joining members or elements
- B63B2221/08—Methods and means for joining members or elements by means of threaded members, e.g. screws, threaded bolts or nuts
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B63—SHIPS OR OTHER WATERBORNE VESSELS; RELATED EQUIPMENT
- B63C—LAUNCHING, HAULING-OUT, OR DRY-DOCKING OF VESSELS; LIFE-SAVING IN WATER; EQUIPMENT FOR DWELLING OR WORKING UNDER WATER; MEANS FOR SALVAGING OR SEARCHING FOR UNDERWATER OBJECTS
- B63C5/00—Equipment usable both on slipways and in dry docks
- B63C5/02—Stagings; Scaffolding; Shores or struts
- B63C2005/022—Shores or struts, e.g. individual oblique support elements for stabilizing hulls in dry-docks
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F16—ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
- F16B—DEVICES FOR FASTENING OR SECURING CONSTRUCTIONAL ELEMENTS OR MACHINE PARTS TOGETHER, e.g. NAILS, BOLTS, CIRCLIPS, CLAMPS, CLIPS OR WEDGES; JOINTS OR JOINTING
- F16B5/00—Joining sheets or plates, e.g. panels, to one another or to strips or bars parallel to them
- F16B5/02—Joining sheets or plates, e.g. panels, to one another or to strips or bars parallel to them by means of fastening members using screw-thread
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3322—Query formulation using system suggestions
Definitions
- the present invention relates generally to spell checkers, and more particularly to systems and methods for improving spell checking via utilization of query logs.
- a dictionary of “valid strings” may be employed by the spell checking application. If a spell checker encounters a string not in the dictionary, it may hypothesize that the string is a spelling error and attempt to find the “closest” string in the dictionary for the misspelled string. Most spell checkers provide a list of possible matches to the user, whereby if the match is on the list, the user can select the word having the corrected spelling from the list. Other spell checking features may perform automatic corrections—if so configured by the user.
- Spell checking for word processing presents only a partial view of potential areas that may be applicable to assist users when entering information into a file or document. For example, with all the potential web sites and services available, users often navigate between sites by explicitly typing in all or portions of the site name or by performing searches on words or phrases that appear in the title and the body of a web page. As many have come to find out, if the site information or the search query is entered incorrectly, the cost in time to re-navigate can become quite high. Language processors employed in search engines or other applications often process user queries and may attempt to distinguish actual user commands from incorrectly entered information.
- Browser or other search queries for information present a unique problem for spell checking applications, since the queries often consist of words that may not be found in a standard spell-checking dictionary, such as artist, product, or company names. Another problem is that a word in a query may have been entered incorrectly, but not be spelled incorrectly (for example, “and processors” instead of “amd processors”). Thus, the manner in which people enter text into a type-in line, for example, such as an input box to a search engine, is often very different than typing for word processing. Both what is entered and the types of errors people make with respect to query input are also quite different in nature.
- web data and search queries are very dynamic in nature, containing a large number of proper nouns; new products, people, institutions, locations, and events become popular every day.
- a standard dictionary while suitable for spell checking in the context of word processing, may not be appropriate for type-in-line and search-query spell checking.
- a dictionary i.e., lexicon
- a dictionary is an important component of any spell checker since the information contained therein provides the foundation to determine incorrect spellings.
- a standard dictionary is not optimal for the problem.
- a dictionary should include strings such as “hanging chad” and “Apolo Anton Ohno” in order to check more recent events or information that may be of interest.
- these and a plurality of other type strings would not appear in a standard dictionary.
- One possible approach is to utilize substring matching techniques on a log of what users are typing into a particular location, such as a search engine or language processor. Unfortunately, a problem with this approach is that the query logs will generally also contain a large number of input errors and return substring matches that are not relevant to a user's desired search.
- the dictionary utilized for the spell checking and the context of the search are always changing. These dynamic behaviors cannot be accounted for utilizing traditional dictionary and search query processing. For example, if there is currently a popular band called Limp Bizkit, a search for “bizkit pictures” is likely to refer to this band and not a misspelling of “biscuit.” If suddenly the band becomes unpopular, and there is a top-selling book on pictures of biscuits, “bizkit pictures” is then more likely a misspelling of “biscuit pictures.” Likewise, given a current state of politics, “govenor anld” probably refers to “governor arnold” if he is currently a popular California governor. Thus, the context of the search query impacts the spell checking significantly.
- the present invention relates generally to spell checkers, and more particularly to systems and methods for improving spell checking via utilization of query logs. Iterative transformations of search query strings along with statistics extracted from search query logs and/or web data are leveraged to provide possible alternative spellings for the search query strings. This provides a superior spell checking means that can be influenced to provide individualized suggestions for each user.
- the present invention can account for substrings not found in a lexicon but still acceptable as a search query of interest. This allows a means to provide a higher quality proposal for alternative spellings, beyond the content of the lexicon.
- One instance of the present invention operates at a substring level by utilizing word unigram and bigram statistics extracted from query logs along with an iterative search.
- the present invention provides substantially better spelling alternatives for a given query than employing only exact string matching.
- the present invention can tailor its suggested alternatives based on the recent history of popular concepts/queries. It can also tailor its corrections for a given user based on the corresponding prior query logs, enabling a much more relevant spelling alternative to be provided.
- Other instances of the present invention can receive input data from sources other than a search query input. This provides a method of utilizing the query log facilitated spell checking in the context of ordinary word processors and the like.
- FIG. 1 is a block diagram of a search query evaluation system in accordance with an aspect of the present invention.
- FIG. 2 is another block diagram of a search query evaluation system in accordance with an aspect of the present invention.
- FIG. 3 is an illustration of a search process in accordance with an aspect of the present invention.
- FIG. 4 is another illustration of a search process in accordance with an aspect of the present invention.
- FIG. 5 is an illustration of an information flow structure in accordance with an aspect of the present invention.
- FIG. 6 is a flow diagram of a method of facilitating search queries in accordance with an aspect of the present invention.
- FIG. 7 is another flow diagram of a method of facilitating search queries in accordance with an aspect of the present invention.
- FIG. 8 is yet another flow diagram of a method of facilitating search queries in accordance with an aspect of the present invention.
- FIG. 9 illustrates an example operating environment in which the present invention can function.
- FIG. 10 illustrates another example operating environment in which the present invention can function.
- a component is intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution.
- a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer.
- an application running on a server and the server can be a computer component.
- One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers.
- a “thread” is the entity within a process that the operating system kernel schedules for execution.
- each thread has an associated “context” which is the volatile data associated with the execution of the thread.
- a thread's context includes the contents of system registers and the virtual address belonging to the thread's process. Thus, the actual data comprising a thread's context varies as it executes.
- the present invention provides improved systems and methods for spell-checking queries to a search engine.
- One instance of the present invention utilizes a trusted lexicon (which is a list of valid words in a language) and query logs as sources of data.
- the present invention operates at a substring level by utilizing word unigram and bigram (with stop word skipping) statistics as extracted from query logs, and, also, an innovative type of iterative search for better spelling alternatives to a given query over employing only string matching.
- Another instance of the present invention utilizes, at least in part, web statistics for low-count word n-grams (which are defined as sequences of n consecutive words; in particular, unigrams are individual words, bigrams are sequences of two consecutive words).
- a set of in-lexicon alternative spellings ⁇ w 1 , w 2 , . . . , w k ⁇ is proposed for each out-of-lexicon word form in the text when such valid alternatives exist within a given fixed distance threshold, ⁇ , typically one or two edits away (i.e., dist(w, w i ) ⁇ ).
- the alternatives are usually ordered by a conditional likelihood function P(w i
- the actual distance function, d, and threshold, ⁇ are important for the accuracy of a spell checker. On one extreme, the utilization of a too restrictive function/threshold combination can result in not finding the best correction for a given query. On the other extreme, the utilization of a less limiting function might have as the consequence of suggesting very unlikely corrections.
- the present invention provides a viable compromise, by utilizing a modified limited search for alternatives at the string level, while not substantially restricting the search of alternatives at the word level.
- One instance of the present invention utilizes, as a distance to identify the set of alternatives for each word of a string, a context-dependent weighted Levenshtein distance which allows insertion, deletion, substitution, immediate transposition, and long-distance movement of letters as basic edits.
- the threshold itself is variable, depending on the characteristics of each word (mainly, whether a word is in the lexicon or not) and on the iteration number.
- FIG. 1 a block diagram of a search query evaluation system 100 in accordance with an aspect of the present invention is shown.
- the search query evaluation system 100 is comprised of a search query evaluation component 102 .
- the search query evaluation component 102 receives a search query input 104 and outputs alternative query suggestion data 106 .
- the search query evaluation component 102 utilizes lexicon as well as search query logs to evaluate each search query.
- Other instances of the present invention also utilize web statistics to evaluate the search query input 104 .
- an iterative process is utilized to further refine each alternative suggestion until an optimum suggestion is obtained.
- the search query logs provide statistical information that the search query evaluation component 102 can leverage to find the best solution for a typical user or a given user.
- the search query logs are processed such that timing patterns can be employed to facilitate in evaluation of the search query.
- the timing patterns can be, but are not limited to, time of the year patterns, date patterns (e.g., every Wednesday, holiday, etc.), and time of the day patterns, etc.
- an instance of the present invention can obtain query logs for the month of October of the current year and the month of October for the preceding year.
- This type of time pattern recognition can facilitate in producing better search query suggestion data 106 .
- other types of pattern recognitions can be utilized by the present invention, such as, for example, search patterns of the user, hobbies and interests of the user, preferences of the user, etc. Search query logs and/or web data can be obtained by the present invention related to these particular aspects of a given user to further facilitate search query evaluations.
- search query is synonymous with various forms of “input data” when utilized in the context of the present invention.
- input data refers to any data being submitted for spell checking purposes to instances of the present invention.
- the search query evaluation system is comprised of a search query evaluation component 202 that receives search query data 204 and outputs alternative query suggestion data 206 .
- the search query evaluation component 202 is comprised of a substring processor component 208 and an iterative query evaluation component 210 .
- the substring processor component 208 receives the search query data 204 and tokenizes it to a level that can be utilized by the iterative query evaluation component 210 .
- the iterative query evaluation component 210 utilizes query log data 214 and can also utilize additional data sources such as lexicon data 212 and/or optional web statistics data 216 .
- the iterative query evaluation component 210 processes the tokenized query terms and sends a new set of alternative search query substrings 218 back to the substring processor component 208 for tokenization. This iterative process is continued until the iterative query evaluation component 210 determines that an optimum suggestion has been reached and outputs this information as the alternative query suggestion data 206 .
- the present invention formulates the problem of spell correcting web queries as an iterative transformation of the query strings into other strings that represent more and more likely queries according to statistics extracted from web-query logs and web data.
- the task of general purpose spelling correction has a long history, traditionally focusing on resolving typographical errors such as insertions, deletions, substitutions and transpositions of letters (e.g., McIlroy, M. D.; Development of a Spelling List; In J - IEEE - TRANS - COMM , 30(1); 91-99; 1982).
- Typical spell checkers compute for each unknown word (i.e., which is not found in a trusted lexicon of the language), a small set of in-lexicon alternatives to be proposed as possible corrections.
- Such systems generally ignore context and only rely on information about in-lexicon word frequencies (as estimated from a large corpus) and the most common mistakes both at word level (e.g., the utilization of acceptible instead of acceptable) and at character level (e.g., the misuse of f instead of ph).
- a web-query corrector should be able to suggest the correction lego toys for lego tos, ideally the best possible correction based on information about what other people search for, despite the fact that letter-based error models (such as with typical word processor spell checkers) would predict toss, toes, tops, tons, and togs as more probable alternatives for the misspelling tos and that the word lego might not appear in many English lexicons.
- letter-based error models such as with typical word processor spell checkers
- misspelling britny spears is a much more popular query than the correctly spelled, but possibly containing out-of lexicon words, e.g., queries bayesian nets or amd processors. The same applies for counting the number of web documents containing the queried terms. Misspellings of very popular terms have much higher frequencies than perfectly valid, less popular terms.
- dist ⁇ ( w , w ′ ) min v ⁇ L ⁇ dist ⁇ ( w , v ) . i.e., for any out-of-lexicon word in a text, find the closest word form in the available lexicon and hypothesize it as the correct spelling alternative.
- dist can be any string-based function, for example, a ratio between the number of letters two words do not have in common and the number of letters they share.
- the two most used classes of distances in spelling correction are edit distances, as proposed by Damerau (see, Damerau, F.
- P ⁇ ( w ′ ) max v ⁇ L : dist ⁇ ( w , v ) ⁇ ⁇ ⁇ P ⁇ ( v ) .
- a natural step forward is to use posterior probability as an objective function in a noisy channel model framework (see, Kernighan, M.; Church, K.; and Gale, W.; A Spelling Correction Program Based on a noisy channel Model; In Proceedings of COLING 1990).
- the objective function will be the probability of a correction conditioned on the original spelling P(v
- all formulations described herein use prior probabilities as an objective function, but in practice, these can be replaced with posterior probabilities.
- misspelled word form crd should be corrected to two different words depending on its contexts (Other valid alternatives, such as video cd, exist; these are ignored on purpose as they are not useful for this discussion.).
- the corrections suggested by a traditional spell checker e.g., typical word processor spell checker
- card, cord, crud, curd, cud in this order.
- One instance of the present invention employs a modified context-dependent weighted Levenshtein distance which allows insertion, deletion, substitution, immediate transposition, and long-distance movement of letters as point changes.
- the actual string distance function, d, and threshold, ⁇ are important for the accuracy of a speller.
- a typical word processor spell checker might suggest only plantain and plantains as corrections for the misspelled word platnuin.
- the typical word processor spell checker highlights the word ditroitigers as a misspelling but provides no correction suggestion. While a traditional trusted lexicon and corpus approach may not be able to solve this type of problem, it can be addressed with the present invention by utilizing large query logs.
- the correct alternative can be reached by allowing intermediate valid corrections steps, such as ditroitigers ⁇ detroittigers ⁇ detroit tigers.
- the last formulation of the problem did not explicitly utilize a lexicon of the language. Rather, any substring that appears in the query log utilized for training can be considered a valid correction and can be suggested as an alternative to the current web query based on the relative frequency of the query and the alternative spelling.
- an instance of the present invention's base spell checker suggests detroittigers, because this alternative occurs frequently in the query log.
- detroittigers itself can be corrected to detroit tigers if presented as a stand-alone query to the base spell checker by using similar query-log frequency facts, which is the basis for the present invention's iterative correction approach.
- P ⁇ ( s i + 1 ) max t ⁇ ⁇ * : dist ⁇ ( s i , t ) ⁇ ⁇ ⁇ P ⁇ ( t ) , ⁇ i ⁇ 0 ⁇ ⁇ ... ⁇ ⁇ n - 1
- P ⁇ ( s n ) max t ⁇ ⁇ * : dist ⁇ ( s n , t ) ⁇ ⁇ ⁇ P ⁇ ( t ) .
- P ⁇ ( s n ) max t ⁇ ⁇ * : dist ⁇ ( s n , t ) ⁇ ⁇ ⁇ P ⁇ ( t ) .
- the length of the string decomposition can vary from one iteration to the next iteration, for example:
- Short queries can be iteratively transformed into other un-related queries; therefore, in one instance of the present invention, changing such queries has additional restrictions.
- the present invention tokenizes all queries in an employed web query log utilizing very basic space and word-delimiter information in addition to the available lexical information (for example, a lexicon entry such as multi-modal will not be split into three parts) and collect unigram and bigram statistics.
- An input query is tokenized utilizing the same space and word-delimiter information in addition to the available lexical information as utilized for processing the query log.
- a set of alternatives is computed utilizing a string distance function (in one instance of the present invention this is the weighted Levenshtein function described) supra and allowing different thresholds for in-lexicon words and out-of-lexicon tokens.
- the matches are searched in the space of word/token unigrams and bigrams extracted from query logs in addition to the lexicon.
- both unigrams and bigrams are stored in a same data structure, so that a system handles concatenation and splitting of words in exactly the same way it handles one-word unknown forms.
- a modified Viterbi search (in which the transition probabilities are computed utilizing bigram and unigram query-log statistics and output probabilities are replaced with inverse string distances between words) is employed to find the best possible alternative string to the input query under the following constraint (for example): no two adjacent in-vocabulary words are allowed to change simultaneously. This constraint prevents changes such as log wood ⁇ dogfood.
- An algorithmic consequence of this constraint is that there is no need to search all the possible paths in a trellis (i.e., all possible combinations of correction candidates for every token in a query), which makes the modified search procedure a lot faster, as described further.
- FIG. 3 in illustration 300 of a modified Viterbi search, presents such an example of a trellis in which w 1 , w 2 , and w 3 are presumed in-lexicon word forms. Observe that instead of computing the cost of k 1 ⁇ k 2 possible paths between the alternatives corresponding to w 1 and w 2 , it is only necessary to compute the cost of k 1 +k 2 paths.
- stop words can many times interfere negatively with a best path search.
- stop words such as prepositions and conjunctions
- the language model based on word bigrams would not use a relevant context for the word form rigs.
- stop words and their most likely misspellings are treated separately, the search being done by first ignoring them, as in illustration 300 , where w 4 is presumed to be such a word.
- the best alternatives for the stop words are computed by a second Viterbi search with fringes in which the extremities are fixed, as presented in illustration 400 of a modified Viterbi search of stop-word treatment in FIG. 4 .
- a search with fringes appears to have a possibly negative impact on the accuracy by restricting the search space too much, such an approach is very powerful when coupled with an iterative process of spelling correction.
- the present invention can employ both query logs and web indexes as valuable resources in estimating the probability of n-grams in web queries needed by the proposed Viterbi search with fringes method. However, neither of them can be considered a better resource than the other if utilized in isolation.
- web frequencies may not be very useful for the iterative correction approach, as web document mistakes are less frequent than web query mistakes (approximately 10 to 15% of the web queries contain misspellings) and the mistakes made by web page authors may not model well the mistakes made by the people that query the web. Also, web frequencies may not necessarily reflect the importance of some terms for query spelling correction.
- query logs can be quite unreliable for low-count unigrams and bigrams.
- word unigrams and bigrams that appear in the query logs are employed, but have their query-log frequencies adjusted according to their web frequencies.
- FIG. 5 an illustration of an information flow structure 500 in accordance with an aspect of the present invention is shown.
- the information flow structure 500 depicts a web index 502 being utilized to re-estimate unigram and bigram statistics for a query log trie 504 .
- lexicon development can be enhanced by enriching trusted lexicons (especially for languages other than English) by adding to the trusted lexicon words which pass a spelling correction constantly, for example amd:
- program modules include routines, programs, objects, data structures, etc., that perform particular tasks or implement particular abstract data types.
- functionality of the program modules may be combined or distributed as desired in various instances of the present invention.
- FIG. 6 a flow diagram of a method 600 of facilitating search queries in accordance with an aspect of the present invention is shown.
- the method 600 starts 602 by obtaining an input search query 604 .
- the query is typically input by a user into a web search application.
- the search query is then tokenized by the present invention to break it down into bigrams and unigrams for processing 606 .
- the tokenized query is then utilized to compute an alternative query suggestion employing, at least in part, at least orne query log 608 .
- the query log provides, at least in part, statistical information relating to prior searches conducted by users. Such statistical information as frequency and/or corrective suggestions and the like can be employed by the present invention to provide the alternative query suggestion.
- a trusted lexicon can also be utilized along with additional web statistics to improve low-count word n-grams. Web statistics can also be employed without the lexicon information as well.
- the present invention can also utilize a modified context-dependent weighted Levenshtein distance which allows insertion, deletion, substitution, immediate transposition, and long-distance movement of letters and the like as point changes.
- the present invention can also employ a constraint that no two adjacent in-vocabulary words are allowed to change simultaneously. An algorithmic consequence of this constraint is that there is no need to search all the possible paths in a trellis, which makes the modified search procedure substantially faster. Additionally, it prevents a query from becoming a totally erroneous phrase for an alternate query suggestion.
- Once the alternative query suggestion is computed it is output to a user and/or system 610 , ending the flow 612 .
- FIG. 7 another flow diagram of a method 700 of facilitating search queries in accordance with an aspect of the present invention is depicted.
- the method 700 starts 702 by obtaining an input search query 704 .
- the input query is then tokenized utilizing the same space and word-delimiter information in addition to available lexical information as utilized for processing a query log 706 .
- a set of alternatives is computed utilizing a weighted Levenshtein distance function and allowing different thresholds for in-lexicon words and out-of-lexicon tokens 708 .
- the present invention contrasts with traditional spelling correction because the matches are searched in the space of word/token unigrams and bigrams extracted from query logs in addition to the lexicon.
- both unigrams and bigrams are stored in a same data structure, so that a system handles concatenation and splitting of words in exactly the same way it handles one-word unknown forms.
- a modified Viterbi search in which the transition probabilities are computed utilizing bigram and unigram query-log statistics and output probabilities are replaced with inverse distances between words is employed to find the best possible alternative string to the input query under the following constraint: no two adjacent in-vocabulary words are allowed to change simultaneously 710 .
- FIG. 8 yet another flow diagram of a method 800 of facilitating search queries in accordance with an aspect of the present invention is illustrated.
- the method 800 starts 802 by obtaining web statistics for low-count query log n-grams from an inverted web index 804 . This enhances the statistical information for the n-gram by incorporating information from a much larger data base.
- the web statistics are then utilized, at least in part, as the statistics for the n-gram for iterative processing of low-count query log n-grams 806 , ending the flow 808 .
- word unigrams and bigrams that appear in the query logs are employed, but have their query-log frequencies adjusted according to their web frequencies.
- n-grams can be filtered out from the query log that do not occur on the web (this can be done to limit the size of the data utilized at runtime), but do not lose higher frequency query misspellings that are useful for iterative correction, while obtaining more reliable word n-gram statistics.
- FIG. 9 and the following discussion is intended to provide a brief, general description of a suitable computing environment 900 in which the various aspects of the present invention may be implemented. While the invention has been described above in the general context of computer-executable instructions of a computer program that runs on a local computer and/or remote computer, those skilled in the art will recognize that the invention also may be implemented in combination with other program modules. Generally, program modules include routines, programs, components, data structures, etc., that perform particular tasks and/or implement particular abstract data types.
- inventive methods may be practiced with other computer system configurations, including single-processor or multi-processor computer systems, minicomputers, mainframe computers, as well as personal computers, hand-held computing devices, microprocessor-based and/or programmable consumer electronics, and the like, each of which may operatively communicate with one or more associated devices.
- the illustrated aspects of the invention may also be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network. However, some, if not all, aspects of the invention may be practiced on stand-alone computers.
- program modules may be located in local and/or remote memory storage devices.
- a component is intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution.
- a component may be, but is not limited to, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and a computer.
- an application running on a server and/or the server can be a component.
- a component may include one or more subcomponents.
- an exemplary system environment 900 for implementing the various aspects of the invention includes a conventional computer 902 , including a processing unit 904 , a system memory 906 , and a system bus 908 that couples various system components, including the system memory, to the processing unit 904 .
- the processing unit 904 may be any commercially available or proprietary processor.
- the processing unit may be implemented as multi-processor formed of more than one processor, such as may be connected in parallel.
- the system bus 908 may be any of several types of bus structure including a memory bus or memory controller, a peripheral bus, and a local bus utilizing any of a variety of conventional bus architectures such as PCI, VESA, Microchannel, ISA, and EISA, to name a few.
- the system memory 906 includes read only memory (ROM) 910 and random access memory (RAM) 912 .
- ROM read only memory
- RAM random access memory
- a basic input/output system (BIOS) 914 containing the basic routines that help to transfer information between elements within the computer 902 , such as during start-up, is stored in ROM 910 .
- the computer 902 also may include, for example, a hard disk drive 916 , a magnetic disk drive 918 , e.g., to read from or write to a removable disk 920 , and an optical disk drive 922 , e.g., for reading from or writing to a CD-ROM disk 924 or other optical media.
- the hard disk drive 916 , magnetic disk drive 918 , and optical disk drive 922 are connected to the system bus 908 by a hard disk drive interface 926 , a magnetic disk drive interface 928 , and an optical drive interface 930 , respectively.
- the drives 916 - 922 and their associated computer-readable media provide nonvolatile storage of data, data structures, computer-executable instructions, etc. for the computer 902 .
- computer-readable media refers to a hard disk, a removable magnetic disk and a CD
- other types of media which are readable by a computer such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, and the like, can also be used in the exemplary operating environment 900 , and further that any such media may contain computer-executable instructions for performing the methods of the present invention.
- a number of program modules may be stored in the drives 916 - 922 and RAM 912 , including an operating system 932 , one or more application programs 934 , other program modules 936 , and program data 938 .
- the operating system 932 may be any suitable operating system or combination of operating systems.
- the application programs 934 and program modules 936 can include a search query spell checking scheme in accordance with an aspect of the present invention.
- a user can enter commands and information into the computer 902 through one or more user input devices, such as a keyboard 940 and a pointing device (e.g., a mouse 942 ).
- Other input devices may include a microphone, a joystick, a game pad, a satellite dish, wireless remote, a scanner, or the like.
- These and other input devices are often connected to the processing unit 904 through a serial port interface 944 that is coupled to the system bus 908 , but may be connected by other interfaces, such as a parallel port, a game port or a universal serial bus (USB).
- a monitor 946 or other type of display device is also connected to the system bus 908 via an interface, such as a video adapter 948 .
- the computer 902 may include other peripheral output devices (not shown), such as speakers, printers, etc.
- the computer 902 can operate in a networked environment utilizing logical connections to one or more remote computers 960 .
- the remote computer 960 may be a workstation, a server computer, a router, a peer device or other common network node, and typically includes many or all of the elements described relative to the computer 902 , although, for purposes of brevity, only a memory storage device 962 is illustrated in FIG. 9 .
- the logical connections depicted in FIG. 9 can include a local area network (LAN) 964 and a wide area network (WAN) 966 .
- LAN local area network
- WAN wide area network
- the computer 902 When used in a LAN networking environment, for example, the computer 902 is connected to the local network 964 through a network interface or adapter 968 .
- the computer 902 When used in a WAN networking environment, the computer 902 typically includes a modem (e.g., telephone, DSL, cable, etc.) 970 , or is connected to a communications server on the LAN, or has other means for establishing communications over the WAN 966 , such as the Internet.
- the modem 970 which can be internal or external relative to the computer 902 , is connected to the system bus 908 via the serial port interface 944 .
- program modules including application programs 934
- program data 938 can be stored in the remote memory storage device 962 . It will be appreciated that the network connections shown are exemplary, and other means (e.g., wired or wireless) of establishing a communications link between the computers 902 and 960 can be used when carrying out an aspect of the present invention.
- the present invention has been described with reference to acts and symbolic representations of operations that are performed by a computer, such as the computer 902 or remote computer 960 , unless otherwise indicated. Such acts and operations are sometimes referred to as being computer-executed. It will be appreciated that the acts and symbolically represented operations include the manipulation by the processing unit 904 of electrical signals representing data bits which causes a resulting transformation or reduction of the electrical signal representation, and the maintenance of data bits at memory locations in the memory system (including the system memory 906 , hard drive 916 , floppy disks 920 , CD-ROM 924 , and remote memory 962 ) to thereby reconfigure or otherwise alter the computer system's operation, as well as other processing of signals.
- the memory locations where such data bits are maintained are physical locations that have particular electrical, magnetic, or optical properties corresponding to the data bits.
- FIG. 10 is another block diagram of a sample computing environment 1000 with which the present invention can interact.
- the system 1000 further illustrates a system that includes one or more client(s) 1002 .
- the client(s) 1002 can be hardware and/or software (e.g., threads, processes, computing devices).
- the system 1000 also includes one or more server(s) 1004 .
- the server(s) 1004 can also be hardware and/or software (e.g., threads, processes, computing devices).
- the server(s) 1004 can house threads to perform transformations by employing the present invention, for example.
- One possible communication between a client 1002 and a server 1004 may be in the form of a data packet adapted to be transmitted between two or more computer processes.
- the system 1000 includes a communication framework 1008 that can be employed to facilitate communications between the client(s) 1002 and the server(s) 1004 .
- the client(s) 1002 are connected to one or more client data store(s) 1010 that can be employed to store information local to the client(s) 1002 .
- the server(s) 1004 are connected to one or more server data store(s) 1006 that can be employed to store information local to the server(s) 1004 .
- a data packet transmitted between two or more computer components that facilitates search query spell checking is comprised of, at least in part, information relating to a search query spell checking system that provides, at least in part, at least one alternative spelling for a query string set based on at least one query log.
- systems and/or methods of the present invention can be utilized in search query spell checking facilitating computer components and non-computer related components alike. Further, those skilled in the art will recognize that the systems and/or methods of the present invention are employable in a vast array of electronic related technologies, including, but not limited to, computers, servers and/or handheld electronic devices, and the like.
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Machine Translation (AREA)
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Priority Applications (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/801,968 US7254774B2 (en) | 2004-03-16 | 2004-03-16 | Systems and methods for improved spell checking |
| EP05101951A EP1577793A3 (de) | 2004-03-16 | 2005-03-14 | Rechtschreibprüfungverfahren und -systeme |
| CNB2005100592310A CN100517301C (zh) | 2004-03-16 | 2005-03-16 | 改进的拼写检查系统和方法 |
| KR1020050021727A KR20060043682A (ko) | 2004-03-16 | 2005-03-16 | 개선된 맞춤법 검사를 위한 시스템 및 방법 |
| JP2005074980A JP2005267638A (ja) | 2004-03-16 | 2005-03-16 | 改善されたスペルチェックのためのシステムおよび方法 |
| US11/094,078 US8321471B2 (en) | 2004-03-16 | 2005-03-30 | Error model formation |
| US11/620,171 US20070106937A1 (en) | 2004-03-16 | 2007-01-05 | Systems and methods for improved spell checking |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/801,968 US7254774B2 (en) | 2004-03-16 | 2004-03-16 | Systems and methods for improved spell checking |
Related Child Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US11/094,078 Continuation-In-Part US8321471B2 (en) | 2004-03-16 | 2005-03-30 | Error model formation |
| US11/620,171 Continuation US20070106937A1 (en) | 2004-03-16 | 2007-01-05 | Systems and methods for improved spell checking |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20050210383A1 US20050210383A1 (en) | 2005-09-22 |
| US7254774B2 true US7254774B2 (en) | 2007-08-07 |
Family
ID=34838898
Family Applications (3)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US10/801,968 Expired - Fee Related US7254774B2 (en) | 2004-03-16 | 2004-03-16 | Systems and methods for improved spell checking |
| US11/094,078 Expired - Fee Related US8321471B2 (en) | 2004-03-16 | 2005-03-30 | Error model formation |
| US11/620,171 Abandoned US20070106937A1 (en) | 2004-03-16 | 2007-01-05 | Systems and methods for improved spell checking |
Family Applications After (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US11/094,078 Expired - Fee Related US8321471B2 (en) | 2004-03-16 | 2005-03-30 | Error model formation |
| US11/620,171 Abandoned US20070106937A1 (en) | 2004-03-16 | 2007-01-05 | Systems and methods for improved spell checking |
Country Status (5)
| Country | Link |
|---|---|
| US (3) | US7254774B2 (de) |
| EP (1) | EP1577793A3 (de) |
| JP (1) | JP2005267638A (de) |
| KR (1) | KR20060043682A (de) |
| CN (1) | CN100517301C (de) |
Cited By (53)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050210017A1 (en) * | 2004-03-16 | 2005-09-22 | Microsoft Corporation | Error model formation |
| US20060167676A1 (en) * | 2005-01-26 | 2006-07-27 | Research In Motion Limited | Method and apparatus for correction of spelling errors in text composition |
| US20070038619A1 (en) * | 2005-08-10 | 2007-02-15 | Norton Gray S | Methods and apparatus to help users of a natural language system formulate queries |
| US20070130126A1 (en) * | 2006-02-17 | 2007-06-07 | Google Inc. | User distributed search results |
| US20070165003A1 (en) * | 2006-01-13 | 2007-07-19 | Vadim Fux | Handheld electronic device and method for disambiguation of text input and providing spelling substitution |
| US20070172124A1 (en) * | 2006-01-23 | 2007-07-26 | Withum Timothy O | Modified levenshtein distance algorithm for coding |
| US20070198514A1 (en) * | 2006-02-10 | 2007-08-23 | Schwenke Derek L | Method for presenting result sets for probabilistic queries |
| US20070198340A1 (en) * | 2006-02-17 | 2007-08-23 | Mark Lucovsky | User distributed search results |
| US20070198500A1 (en) * | 2006-02-17 | 2007-08-23 | Google Inc. | User distributed search results |
| US20070276653A1 (en) * | 2006-05-23 | 2007-11-29 | Greenwald Charles M | Method and apparatus for multilingual spelling corrections |
| US20080059876A1 (en) * | 2006-08-31 | 2008-03-06 | International Business Machines Corporation | Methods and apparatus for performing spelling corrections using one or more variant hash tables |
| US20080178076A1 (en) * | 2007-01-18 | 2008-07-24 | Barry Alan Kritt | Method and apparatus for spellchecking electronic documents |
| US20090063462A1 (en) * | 2007-09-04 | 2009-03-05 | Google Inc. | Word decompounder |
| US20090164338A1 (en) * | 2007-12-21 | 2009-06-25 | Glyde Corporation | Virtual Shelf With Single-Product Choice and Automatic Multiple-Vendor Selection |
| US20090164383A1 (en) * | 2007-12-21 | 2009-06-25 | Glyde Corporation | System and method for dynamic product pricing |
| US20090164333A1 (en) * | 2007-12-21 | 2009-06-25 | Glyde Corporation | System and method for integrated payment and shipping information |
| US20090164890A1 (en) * | 2007-12-19 | 2009-06-25 | Microsoft Corporation | Self learning contextual spell corrector |
| US20090164273A1 (en) * | 2007-12-21 | 2009-06-25 | Glyde Corporation | Product distribution system and method thereof |
| US20090164315A1 (en) * | 2007-12-21 | 2009-06-25 | Glyde Corporation | Software System for Decentralizing eCommerce With Single Page Buy |
| US20090164339A1 (en) * | 2007-12-21 | 2009-06-25 | Glyde Corporation | 3d product display on internet with content or transaction data on back of image |
| US20090216689A1 (en) * | 2008-01-24 | 2009-08-27 | Dmitry Zelenko | System and method for variant string matching |
| US20090249197A1 (en) * | 2008-03-31 | 2009-10-01 | Fujitsu Limited | Document proofreading support method and document proofreading support apparatus |
| US7644076B1 (en) * | 2003-09-12 | 2010-01-05 | Teradata Us, Inc. | Clustering strings using N-grams |
| US20100082657A1 (en) * | 2008-09-23 | 2010-04-01 | Microsoft Corporation | Generating synonyms based on query log data |
| US20100250239A1 (en) * | 2009-03-25 | 2010-09-30 | Microsoft Corporation | Sharable distributed dictionary for applications |
| US7831584B2 (en) | 2007-12-21 | 2010-11-09 | Glyde Corporation | System and method for providing real-time search results on merchandise |
| US20110035375A1 (en) * | 2009-08-06 | 2011-02-10 | Ron Bekkerman | Building user profiles for website personalization |
| US7953746B1 (en) * | 2007-12-07 | 2011-05-31 | Google Inc. | Contextual query revision |
| US20110145264A1 (en) * | 2009-12-14 | 2011-06-16 | Electronics And Telecommunications Research Institute | Method and apparatus for automatically creating allomorphs |
| US20110202836A1 (en) * | 2010-02-12 | 2011-08-18 | Microsoft Corporation | Typing assistance for editing |
| US8051096B1 (en) * | 2004-09-30 | 2011-11-01 | Google Inc. | Methods and systems for augmenting a token lexicon |
| US20110302188A1 (en) * | 2005-12-30 | 2011-12-08 | Google Inc. | Dynamic search box for web browser |
| US20120221543A1 (en) * | 2009-06-01 | 2012-08-30 | Aol Inc. | Systems and methods for improved web searching |
| US20130138641A1 (en) * | 2009-12-30 | 2013-05-30 | Google Inc. | Construction of text classifiers |
| US8620749B2 (en) | 2011-06-20 | 2013-12-31 | Glyde Corporation | Customized offers for E-commerce |
| US8745019B2 (en) | 2012-03-05 | 2014-06-03 | Microsoft Corporation | Robust discovery of entity synonyms using query logs |
| US20140280285A1 (en) * | 2013-03-15 | 2014-09-18 | Mapquest, Inc. | Systems and methods for analyzing failed and successful search queries |
| US9043248B2 (en) | 2012-03-29 | 2015-05-26 | International Business Machines Corporation | Learning rewrite rules for search database systems using query logs |
| US9229924B2 (en) | 2012-08-24 | 2016-01-05 | Microsoft Technology Licensing, Llc | Word detection and domain dictionary recommendation |
| US9317606B1 (en) * | 2012-02-03 | 2016-04-19 | Google Inc. | Spell correcting long queries |
| US9335924B2 (en) | 2006-09-06 | 2016-05-10 | Apple Inc. | Touch screen device, method, and graphical user interface for customizing display of content category icons |
| US9594831B2 (en) | 2012-06-22 | 2017-03-14 | Microsoft Technology Licensing, Llc | Targeted disambiguation of named entities |
| US9600566B2 (en) | 2010-05-14 | 2017-03-21 | Microsoft Technology Licensing, Llc | Identifying entity synonyms |
| US10032131B2 (en) | 2012-06-20 | 2018-07-24 | Microsoft Technology Licensing, Llc | Data services for enterprises leveraging search system data assets |
| US10068008B2 (en) | 2014-08-28 | 2018-09-04 | Microsoft Technologies Licensing, LLC | Spelling correction of email queries |
| US10372814B2 (en) | 2016-10-18 | 2019-08-06 | International Business Machines Corporation | Methods and system for fast, adaptive correction of misspells |
| US10579729B2 (en) | 2016-10-18 | 2020-03-03 | International Business Machines Corporation | Methods and system for fast, adaptive correction of misspells |
| US20200134010A1 (en) * | 2018-10-26 | 2020-04-30 | International Business Machines Corporation | Correction of misspellings in qa system |
| US10740852B1 (en) | 2015-06-23 | 2020-08-11 | Square, Inc. | Classifying merchants |
| US10949825B1 (en) | 2017-06-30 | 2021-03-16 | Square, Inc. | Adaptive merchant classification |
| US11348119B1 (en) | 2017-10-18 | 2022-05-31 | Block, Inc. | Intelligent merchant onboarding |
| US12147761B2 (en) * | 2023-02-17 | 2024-11-19 | Optum, Inc. | Systems and methods for improved spell check |
| US12164510B2 (en) | 2018-07-11 | 2024-12-10 | Home Depot Product Authority, Llc | Presentation of related and corrected queries for a search engine |
Families Citing this family (149)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7286115B2 (en) | 2000-05-26 | 2007-10-23 | Tegic Communications, Inc. | Directional input system with automatic correction |
| US7030863B2 (en) | 2000-05-26 | 2006-04-18 | America Online, Incorporated | Virtual keyboard system with automatic correction |
| US7821503B2 (en) | 2003-04-09 | 2010-10-26 | Tegic Communications, Inc. | Touch screen and graphical user interface |
| US7750891B2 (en) | 2003-04-09 | 2010-07-06 | Tegic Communications, Inc. | Selective input system based on tracking of motion parameters of an input device |
| US7149970B1 (en) * | 2000-06-23 | 2006-12-12 | Microsoft Corporation | Method and system for filtering and selecting from a candidate list generated by a stochastic input method |
| US7617205B2 (en) | 2005-03-30 | 2009-11-10 | Google Inc. | Estimating confidence for query revision models |
| US7836044B2 (en) * | 2004-06-22 | 2010-11-16 | Google Inc. | Anticipated query generation and processing in a search engine |
| US7487145B1 (en) | 2004-06-22 | 2009-02-03 | Google Inc. | Method and system for autocompletion using ranked results |
| US9223868B2 (en) | 2004-06-28 | 2015-12-29 | Google Inc. | Deriving and using interaction profiles |
| US7664748B2 (en) * | 2004-07-12 | 2010-02-16 | John Eric Harrity | Systems and methods for changing symbol sequences in documents |
| US7478081B2 (en) * | 2004-11-05 | 2009-01-13 | International Business Machines Corporation | Selection of a set of optimal n-grams for indexing string data in a DBMS system under space constraints introduced by the system |
| US7895218B2 (en) | 2004-11-09 | 2011-02-22 | Veveo, Inc. | Method and system for performing searches for television content using reduced text input |
| US7499940B1 (en) | 2004-11-11 | 2009-03-03 | Google Inc. | Method and system for URL autocompletion using ranked results |
| US20060106769A1 (en) | 2004-11-12 | 2006-05-18 | Gibbs Kevin A | Method and system for autocompletion for languages having ideographs and phonetic characters |
| US7493578B1 (en) * | 2005-03-18 | 2009-02-17 | Xilinx, Inc. | Correlation of data from design analysis tools with design blocks in a high-level modeling system |
| US7565345B2 (en) * | 2005-03-29 | 2009-07-21 | Google Inc. | Integration of multiple query revision models |
| US7870147B2 (en) * | 2005-03-29 | 2011-01-11 | Google Inc. | Query revision using known highly-ranked queries |
| US20060230005A1 (en) * | 2005-03-30 | 2006-10-12 | Bailey David R | Empirical validation of suggested alternative queries |
| US7636714B1 (en) | 2005-03-31 | 2009-12-22 | Google Inc. | Determining query term synonyms within query context |
| WO2006124027A1 (en) * | 2005-05-16 | 2006-11-23 | Ebay Inc. | Method and system to process a data search request |
| CN101194258B (zh) * | 2005-05-31 | 2011-09-14 | 美国西门子医疗解决公司 | 用于患者人口统计学记录查询的数据敏感过滤的系统以及方法 |
| US7321892B2 (en) * | 2005-08-11 | 2008-01-22 | Amazon Technologies, Inc. | Identifying alternative spellings of search strings by analyzing self-corrective searching behaviors of users |
| US7779011B2 (en) | 2005-08-26 | 2010-08-17 | Veveo, Inc. | Method and system for dynamically processing ambiguous, reduced text search queries and highlighting results thereof |
| US7788266B2 (en) * | 2005-08-26 | 2010-08-31 | Veveo, Inc. | Method and system for processing ambiguous, multi-term search queries |
| US7496869B1 (en) | 2005-10-04 | 2009-02-24 | Xilinx, Inc. | Method and apparatus for implementing a program language description of a circuit design for an integrated circuit |
| US7363599B1 (en) | 2005-10-04 | 2008-04-22 | Xilinx, Inc. | Method and system for matching a hierarchical identifier |
| US8249871B2 (en) * | 2005-11-18 | 2012-08-21 | Microsoft Corporation | Word clustering for input data |
| US7644054B2 (en) | 2005-11-23 | 2010-01-05 | Veveo, Inc. | System and method for finding desired results by incremental search using an ambiguous keypad with the input containing orthographic and typographic errors |
| EP1826692A3 (de) * | 2006-02-22 | 2009-03-25 | Copernic Technologies, Inc. | Abfragekorrektur auf Basis von indiziertem Inhalt in einem Desktop-Indexer-Programm |
| US8195683B2 (en) | 2006-02-28 | 2012-06-05 | Ebay Inc. | Expansion of database search queries |
| US8875249B2 (en) | 2006-03-01 | 2014-10-28 | Oracle International Corporation | Minimum lifespan credentials for crawling data repositories |
| US7941419B2 (en) * | 2006-03-01 | 2011-05-10 | Oracle International Corporation | Suggested content with attribute parameterization |
| US9177124B2 (en) * | 2006-03-01 | 2015-11-03 | Oracle International Corporation | Flexible authentication framework |
| US8433712B2 (en) * | 2006-03-01 | 2013-04-30 | Oracle International Corporation | Link analysis for enterprise environment |
| US8005816B2 (en) * | 2006-03-01 | 2011-08-23 | Oracle International Corporation | Auto generation of suggested links in a search system |
| US8214394B2 (en) * | 2006-03-01 | 2012-07-03 | Oracle International Corporation | Propagating user identities in a secure federated search system |
| US8027982B2 (en) * | 2006-03-01 | 2011-09-27 | Oracle International Corporation | Self-service sources for secure search |
| US8707451B2 (en) * | 2006-03-01 | 2014-04-22 | Oracle International Corporation | Search hit URL modification for secure application integration |
| US8868540B2 (en) * | 2006-03-01 | 2014-10-21 | Oracle International Corporation | Method for suggesting web links and alternate terms for matching search queries |
| US8332430B2 (en) | 2006-03-01 | 2012-12-11 | Oracle International Corporation | Secure search performance improvement |
| US7676460B2 (en) * | 2006-03-03 | 2010-03-09 | International Business Machines Corporation | Techniques for providing suggestions for creating a search query |
| US8380726B2 (en) * | 2006-03-06 | 2013-02-19 | Veveo, Inc. | Methods and systems for selecting and presenting content based on a comparison of preference signatures from multiple users |
| US7761272B1 (en) | 2006-03-10 | 2010-07-20 | Xilinx, Inc. | Method and apparatus for processing a dataflow description of a digital processing system |
| US7380232B1 (en) | 2006-03-10 | 2008-05-27 | Xilinx, Inc. | Method and apparatus for designing a system for implementation in a programmable logic device |
| US8402409B1 (en) | 2006-03-10 | 2013-03-19 | Xilinx, Inc. | Method and apparatus for supporting run-time reconfiguration in a programmable logic integrated circuit |
| JP4734155B2 (ja) * | 2006-03-24 | 2011-07-27 | 株式会社東芝 | 音声認識装置、音声認識方法および音声認識プログラム |
| US8073860B2 (en) | 2006-03-30 | 2011-12-06 | Veveo, Inc. | Method and system for incrementally selecting and providing relevant search engines in response to a user query |
| US9135238B2 (en) * | 2006-03-31 | 2015-09-15 | Google Inc. | Disambiguation of named entities |
| US7797629B2 (en) * | 2006-04-05 | 2010-09-14 | Research In Motion Limited | Handheld electronic device and method for performing optimized spell checking during text entry by providing a sequentially ordered series of spell-check algorithms |
| EP3822819A1 (de) | 2006-04-20 | 2021-05-19 | Veveo, Inc. | Benutzerschnittstellenverfahren und systeme zur auswahl und darstellung von inhalt auf der basis von benutzernavigation sowie auswahlaktionen in zusammenhang mit dem inhalt |
| EP2024863B1 (de) | 2006-05-07 | 2018-01-10 | Varcode Ltd. | System und verfahren zur verbesserten qualitätsverwaltung in einer produktlogistikkette |
| US7562811B2 (en) | 2007-01-18 | 2009-07-21 | Varcode Ltd. | System and method for improved quality management in a product logistic chain |
| EP1855210B1 (de) * | 2006-05-11 | 2018-01-03 | Dassault Systèmes | Rechtschreibprüfung |
| US7849078B2 (en) * | 2006-06-07 | 2010-12-07 | Sap Ag | Generating searchable keywords |
| US7533089B2 (en) * | 2006-06-27 | 2009-05-12 | International Business Machines Corporation | Hybrid approach for query recommendation in conversation systems |
| US8856145B2 (en) * | 2006-08-04 | 2014-10-07 | Yahoo! Inc. | System and method for determining concepts in a content item using context |
| US7818332B2 (en) * | 2006-08-16 | 2010-10-19 | Microsoft Corporation | Query speller |
| US8019595B1 (en) | 2006-09-11 | 2011-09-13 | WordRake Holdings, LLC | Computer processes for analyzing and improving document readability |
| WO2008034057A2 (en) | 2006-09-14 | 2008-03-20 | Veveo, Inc. | Methods and systems for dynamically rearranging search results into hierarchically organized concept clusters |
| US7925986B2 (en) | 2006-10-06 | 2011-04-12 | Veveo, Inc. | Methods and systems for a linear character selection display interface for ambiguous text input |
| US7590626B2 (en) * | 2006-10-30 | 2009-09-15 | Microsoft Corporation | Distributional similarity-based models for query correction |
| US8078884B2 (en) | 2006-11-13 | 2011-12-13 | Veveo, Inc. | Method of and system for selecting and presenting content based on user identification |
| CN101206659B (zh) | 2006-12-15 | 2013-09-18 | 谷歌股份有限公司 | 自动搜索查询校正 |
| US8201087B2 (en) | 2007-02-01 | 2012-06-12 | Tegic Communications, Inc. | Spell-check for a keyboard system with automatic correction |
| US8225203B2 (en) | 2007-02-01 | 2012-07-17 | Nuance Communications, Inc. | Spell-check for a keyboard system with automatic correction |
| US7991609B2 (en) * | 2007-02-28 | 2011-08-02 | Microsoft Corporation | Web-based proofing and usage guidance |
| US20080256057A1 (en) * | 2007-04-12 | 2008-10-16 | Soren Riise | Optimizing a query using fuzzy matching |
| US7917493B2 (en) * | 2007-04-19 | 2011-03-29 | Retrevo Inc. | Indexing and searching product identifiers |
| EP2156369B1 (de) | 2007-05-06 | 2015-09-02 | Varcode Ltd. | System und verfahren zur qualitätsverwaltung unter verwendung von strichcodeindikatoren |
| WO2008148012A1 (en) | 2007-05-25 | 2008-12-04 | Veveo, Inc. | System and method for text disambiguation and context designation in incremental search |
| US7996392B2 (en) * | 2007-06-27 | 2011-08-09 | Oracle International Corporation | Changing ranking algorithms based on customer settings |
| US8316007B2 (en) * | 2007-06-28 | 2012-11-20 | Oracle International Corporation | Automatically finding acronyms and synonyms in a corpus |
| US8914278B2 (en) * | 2007-08-01 | 2014-12-16 | Ginger Software, Inc. | Automatic context sensitive language correction and enhancement using an internet corpus |
| US8229732B2 (en) | 2007-08-31 | 2012-07-24 | Google Inc. | Automatic correction of user input based on dictionary |
| US8341520B2 (en) * | 2007-09-24 | 2012-12-25 | Ghotit Ltd. | Method and system for spell checking |
| US20090083255A1 (en) * | 2007-09-24 | 2009-03-26 | Microsoft Corporation | Query spelling correction |
| CN101131706B (zh) * | 2007-09-28 | 2010-10-13 | 北京金山软件有限公司 | 一种查询修正方法及系统 |
| WO2009063465A2 (en) | 2007-11-14 | 2009-05-22 | Varcode Ltd. | A system and method for quality management utilizing barcode indicators |
| US8943539B2 (en) | 2007-11-21 | 2015-01-27 | Rovi Guides, Inc. | Enabling a friend to remotely modify user data |
| US8667004B2 (en) * | 2007-11-30 | 2014-03-04 | Microsoft Corporation | Providing suggestions during formation of a search query |
| US9454516B2 (en) * | 2008-01-14 | 2016-09-27 | Blackberry Limited | Method and handheld electronic device employing a touch screen for ambiguous word review or correction |
| US20110086331A1 (en) * | 2008-04-16 | 2011-04-14 | Ginger Software, Inc. | system for teaching writing based on a users past writing |
| US8090669B2 (en) * | 2008-05-06 | 2012-01-03 | Microsoft Corporation | Adaptive learning framework for data correction |
| US11704526B2 (en) | 2008-06-10 | 2023-07-18 | Varcode Ltd. | Barcoded indicators for quality management |
| CN101625678B (zh) * | 2008-07-11 | 2011-01-19 | 英业达股份有限公司 | 拼写检查系统及其方法 |
| US8301437B2 (en) * | 2008-07-24 | 2012-10-30 | Yahoo! Inc. | Tokenization platform |
| WO2010139277A1 (en) | 2009-06-03 | 2010-12-09 | Google Inc. | Autocompletion for partially entered query |
| KR101083455B1 (ko) * | 2009-07-17 | 2011-11-16 | 엔에이치엔(주) | 통계 데이터에 기초한 사용자 질의 교정 시스템 및 방법 |
| US9166714B2 (en) | 2009-09-11 | 2015-10-20 | Veveo, Inc. | Method of and system for presenting enriched video viewing analytics |
| US8515975B1 (en) | 2009-12-07 | 2013-08-20 | Google Inc. | Search entity transition matrix and applications of the transition matrix |
| US8549018B1 (en) * | 2010-01-21 | 2013-10-01 | Symantec Corporation | Systems and methods for predictive responses to internet object queries |
| US8543381B2 (en) * | 2010-01-25 | 2013-09-24 | Holovisions LLC | Morphing text by splicing end-compatible segments |
| JP5752150B2 (ja) | 2010-02-01 | 2015-07-22 | ジンジャー ソフトウェア、インコーポレイティッド | 特に小型キーボード装置向けのインターネットコーパスを用いた文脈感応型自動言語訂正 |
| US20110191330A1 (en) | 2010-02-04 | 2011-08-04 | Veveo, Inc. | Method of and System for Enhanced Content Discovery Based on Network and Device Access Behavior |
| US9002866B1 (en) | 2010-03-25 | 2015-04-07 | Google Inc. | Generating context-based spell corrections of entity names |
| US8161073B2 (en) | 2010-05-05 | 2012-04-17 | Holovisions, LLC | Context-driven search |
| US20110314337A1 (en) * | 2010-06-18 | 2011-12-22 | International Business Machines Corporation | Method and Apparatus for Locating Input-Model Faults Using Dynamic Tainting |
| US20110313756A1 (en) * | 2010-06-21 | 2011-12-22 | Connor Robert A | Text sizer (TM) |
| US8769516B2 (en) * | 2010-08-19 | 2014-07-01 | International Business Machines Corporation | Systems and methods for automated support for repairing input model errors |
| US8812734B2 (en) * | 2010-09-01 | 2014-08-19 | Microsoft Corporation | Network feed content |
| KR101378162B1 (ko) * | 2010-11-10 | 2014-03-27 | (주)아이티버스 | 오류단어 자동 정정시스템 및 그 자동 정정방법 |
| US9195745B2 (en) | 2010-11-22 | 2015-11-24 | Microsoft Technology Licensing, Llc | Dynamic query master agent for query execution |
| US8620907B2 (en) * | 2010-11-22 | 2013-12-31 | Microsoft Corporation | Matching funnel for large document index |
| US9424351B2 (en) | 2010-11-22 | 2016-08-23 | Microsoft Technology Licensing, Llc | Hybrid-distribution model for search engine indexes |
| US9342582B2 (en) * | 2010-11-22 | 2016-05-17 | Microsoft Technology Licensing, Llc | Selection of atoms for search engine retrieval |
| US8478704B2 (en) | 2010-11-22 | 2013-07-02 | Microsoft Corporation | Decomposable ranking for efficient precomputing that selects preliminary ranking features comprising static ranking features and dynamic atom-isolated components |
| US8713024B2 (en) | 2010-11-22 | 2014-04-29 | Microsoft Corporation | Efficient forward ranking in a search engine |
| US9529908B2 (en) | 2010-11-22 | 2016-12-27 | Microsoft Technology Licensing, Llc | Tiering of posting lists in search engine index |
| US8626681B1 (en) * | 2011-01-04 | 2014-01-07 | Google Inc. | Training a probabilistic spelling checker from structured data |
| US20120246133A1 (en) * | 2011-03-23 | 2012-09-27 | Microsoft Corporation | Online spelling correction/phrase completion system |
| EP3115913B1 (de) * | 2011-05-10 | 2018-03-14 | Uber Technologies, Inc. | Systeme und verfahren zur suche und zum abruf elektronischer dokumente mit einem grossen index |
| EP2541439A1 (de) * | 2011-06-27 | 2013-01-02 | Amadeus s.a.s. | Verfahren und System zur Verarbeitung einer Suchanfrage |
| US20130061139A1 (en) * | 2011-09-01 | 2013-03-07 | Google Inc. | Server-based spell checking on a user device |
| WO2013032617A1 (en) * | 2011-09-01 | 2013-03-07 | Google Inc. | Server-based spell checking |
| US8768935B2 (en) * | 2011-10-10 | 2014-07-01 | Verisign, Inc. | Bigram suggestions |
| US10176168B2 (en) | 2011-11-15 | 2019-01-08 | Microsoft Technology Licensing, Llc | Statistical machine translation based search query spelling correction |
| EP2786276A1 (de) | 2011-11-30 | 2014-10-08 | DeCarta Inc. | Systeme und verfahren zur durchführung einer geo-suche und zum abruf elektronischer datensätze eines bestimmten ortes unter verwendung eines grossen index |
| US9183312B2 (en) * | 2012-03-20 | 2015-11-10 | Google Inc. | Image display within web search results |
| US8856166B2 (en) * | 2012-06-25 | 2014-10-07 | Sap Ag | Query validator |
| US9135912B1 (en) * | 2012-08-15 | 2015-09-15 | Google Inc. | Updating phonetic dictionaries |
| US8807422B2 (en) | 2012-10-22 | 2014-08-19 | Varcode Ltd. | Tamper-proof quality management barcode indicators |
| CN103838739B (zh) * | 2012-11-21 | 2019-05-28 | 百度在线网络技术(北京)有限公司 | 一种搜索引擎中纠错词的检测方法及系统 |
| KR101446468B1 (ko) * | 2012-11-28 | 2014-10-06 | (주)이스트소프트 | 자동완성 질의어 제공 시스템 및 방법 |
| KR101483433B1 (ko) * | 2013-03-28 | 2015-01-16 | (주)이스트소프트 | 오타 교정 시스템 및 오타 교정 방법 |
| US20140317495A1 (en) * | 2013-04-22 | 2014-10-23 | Research In Motion Limited | Retroactive word correction |
| US9552411B2 (en) | 2013-06-05 | 2017-01-24 | Microsoft Technology Licensing, Llc | Trending suggestions |
| KR101482430B1 (ko) * | 2013-08-13 | 2015-01-15 | 포항공과대학교 산학협력단 | 전치사 교정 방법 및 이를 수행하는 장치 |
| US9594742B2 (en) | 2013-09-05 | 2017-03-14 | Acxiom Corporation | Method and apparatus for matching misspellings caused by phonetic variations |
| IL230993A (en) * | 2014-02-16 | 2017-01-31 | Google Inc | Spelling variant detection by imagining pairs of sequences |
| TWI553491B (zh) * | 2014-11-21 | 2016-10-11 | 財團法人工業技術研究院 | 問句處理系統及其方法 |
| US9679024B2 (en) * | 2014-12-01 | 2017-06-13 | Facebook, Inc. | Social-based spelling correction for online social networks |
| CA2985160C (en) | 2015-05-18 | 2023-09-05 | Varcode Ltd. | Thermochromic ink indicia for activatable quality labels |
| WO2017006326A1 (en) | 2015-07-07 | 2017-01-12 | Varcode Ltd. | Electronic quality indicator |
| KR101839121B1 (ko) * | 2015-09-14 | 2018-04-26 | 네이버 주식회사 | 사용자 질의 교정 시스템 및 방법 |
| US10628522B2 (en) * | 2016-06-27 | 2020-04-21 | International Business Machines Corporation | Creating rules and dictionaries in a cyclical pattern matching process |
| CN106911717A (zh) * | 2017-04-13 | 2017-06-30 | 成都亚信网络安全产业技术研究院有限公司 | 一种域名检测方法及装置 |
| US11663201B2 (en) * | 2017-04-29 | 2023-05-30 | Google Llc | Generating query variants using a trained generative model |
| KR101977206B1 (ko) * | 2017-05-17 | 2019-06-18 | 주식회사 한글과컴퓨터 | 유사어 보정 시스템 및 방법 |
| US11093709B2 (en) * | 2017-08-10 | 2021-08-17 | International Business Machine Corporation | Confidence models based on error-to-correction mapping |
| CN108280051B (zh) * | 2018-01-22 | 2019-04-05 | 清华大学 | 一种文本数据中错误字符的检测方法、装置和设备 |
| CN108376365B (zh) * | 2018-03-22 | 2021-06-18 | 中国银行股份有限公司 | 一种银行编号确定方法及装置 |
| CN109214167B (zh) * | 2018-08-01 | 2021-04-16 | 深圳市文鼎创数据科技有限公司 | 一种智能密钥安全设备及其密钥恢复方法、存储介质 |
| US10977430B1 (en) * | 2018-11-19 | 2021-04-13 | Intuit Inc. | System and method for correction of acquired transaction text fields |
| KR101966627B1 (ko) * | 2018-12-26 | 2019-04-08 | 사라소프트주식회사 | 모바일용 의료기록지 번역시스템 |
| CN109992796B (zh) * | 2019-02-22 | 2023-07-04 | 中译语通科技股份有限公司 | 一种MerCube机器翻译管理控制系统及方法、计算机程序 |
| US10936813B1 (en) * | 2019-05-31 | 2021-03-02 | Amazon Technologies, Inc. | Context-aware spell checker |
| US10963640B2 (en) * | 2019-06-28 | 2021-03-30 | Microsoft Technology Licensing, Llc | System and method for cooperative text recommendation acceptance in a user interface |
| US11860884B2 (en) * | 2021-03-30 | 2024-01-02 | Snap Inc. | Search query modification database |
| CN113627160B (zh) * | 2021-09-17 | 2023-09-22 | 平安银行股份有限公司 | 文本纠错方法、装置、电子设备及存储介质 |
Citations (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5258909A (en) | 1989-08-31 | 1993-11-02 | International Business Machines Corporation | Method and apparatus for "wrong word" spelling error detection and correction |
| US5659771A (en) * | 1995-05-19 | 1997-08-19 | Mitsubishi Electric Information Technology Center America, Inc. | System for spelling correction in which the context of a target word in a sentence is utilized to determine which of several possible words was intended |
| US5715469A (en) | 1993-07-12 | 1998-02-03 | International Business Machines Corporation | Method and apparatus for detecting error strings in a text |
| US5754939A (en) * | 1994-11-29 | 1998-05-19 | Herz; Frederick S. M. | System for generation of user profiles for a system for customized electronic identification of desirable objects |
| US5875443A (en) * | 1996-01-30 | 1999-02-23 | Sun Microsystems, Inc. | Internet-based spelling checker dictionary system with automatic updating |
| US5892919A (en) * | 1997-06-23 | 1999-04-06 | Sun Microsystems, Inc. | Spell checking universal resource locator (URL) by comparing the URL against a cache containing entries relating incorrect URLs submitted by users to corresponding correct URLs |
| US6047300A (en) | 1997-05-15 | 2000-04-04 | Microsoft Corporation | System and method for automatically correcting a misspelled word |
| US6081774A (en) * | 1997-08-22 | 2000-06-27 | Novell, Inc. | Natural language information retrieval system and method |
| US6272456B1 (en) * | 1998-03-19 | 2001-08-07 | Microsoft Corporation | System and method for identifying the language of written text having a plurality of different length n-gram profiles |
| US20030033288A1 (en) * | 2001-08-13 | 2003-02-13 | Xerox Corporation | Document-centric system with auto-completion and auto-correction |
| US20030037077A1 (en) | 2001-06-02 | 2003-02-20 | Brill Eric D. | Spelling correction system and method for phrasal strings using dictionary looping |
| US6616704B1 (en) * | 2000-09-20 | 2003-09-09 | International Business Machines Corporation | Two step method for correcting spelling of a word or phrase in a document |
| US6636849B1 (en) * | 1999-11-23 | 2003-10-21 | Genmetrics, Inc. | Data search employing metric spaces, multigrid indexes, and B-grid trees |
| US20040002994A1 (en) | 2002-06-27 | 2004-01-01 | Brill Eric D. | Automated error checking system and method |
| US6684201B1 (en) | 2000-03-31 | 2004-01-27 | Microsoft Corporation | Linguistic disambiguation system and method using string-based pattern training to learn to resolve ambiguity sites |
| US6701309B1 (en) * | 2000-04-21 | 2004-03-02 | Lycos, Inc. | Method and system for collecting related queries |
| US6853993B2 (en) * | 1998-07-15 | 2005-02-08 | A9.Com, Inc. | System and methods for predicting correct spellings of terms in multiple-term search queries |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US2011103A (en) * | 1935-08-13 | Furnace damper | ||
| US3081774A (en) * | 1960-05-19 | 1963-03-19 | Lelyveld Joseph | Arch support with metatarsal support bar |
| US5963965A (en) * | 1997-02-18 | 1999-10-05 | Semio Corporation | Text processing and retrieval system and method |
| US6424983B1 (en) * | 1998-05-26 | 2002-07-23 | Global Information Research And Technologies, Llc | Spelling and grammar checking system |
| US6006225A (en) * | 1998-06-15 | 1999-12-21 | Amazon.Com | Refining search queries by the suggestion of correlated terms from prior searches |
| US6772150B1 (en) * | 1999-12-10 | 2004-08-03 | Amazon.Com, Inc. | Search query refinement using related search phrases |
| US6918086B2 (en) * | 2000-03-28 | 2005-07-12 | Ariel S. Rogson | Method and apparatus for updating database of automatic spelling corrections |
| US6785677B1 (en) * | 2001-05-02 | 2004-08-31 | Unisys Corporation | Method for execution of query to search strings of characters that match pattern with a target string utilizing bit vector |
| US7016829B2 (en) * | 2001-05-04 | 2006-03-21 | Microsoft Corporation | Method and apparatus for unsupervised training of natural language processing units |
| US20040073333A1 (en) * | 2001-11-27 | 2004-04-15 | Brill Eric A. | System, method, and program for sorting objects |
| US7194684B1 (en) * | 2002-04-09 | 2007-03-20 | Google Inc. | Method of spell-checking search queries |
| US7051023B2 (en) * | 2003-04-04 | 2006-05-23 | Yahoo! Inc. | Systems and methods for generating concept units from search queries |
| US8666983B2 (en) * | 2003-06-13 | 2014-03-04 | Microsoft Corporation | Architecture for generating responses to search engine queries |
| US7617202B2 (en) * | 2003-06-16 | 2009-11-10 | Microsoft Corporation | Systems and methods that employ a distributional analysis on a query log to improve search results |
| US7254774B2 (en) * | 2004-03-16 | 2007-08-07 | Microsoft Corporation | Systems and methods for improved spell checking |
| GB0413743D0 (en) * | 2004-06-19 | 2004-07-21 | Ibm | Method and system for approximate string matching |
| US20060112091A1 (en) * | 2004-11-24 | 2006-05-25 | Harbinger Associates, Llc | Method and system for obtaining collection of variants of search query subjects |
-
2004
- 2004-03-16 US US10/801,968 patent/US7254774B2/en not_active Expired - Fee Related
-
2005
- 2005-03-14 EP EP05101951A patent/EP1577793A3/de not_active Withdrawn
- 2005-03-16 KR KR1020050021727A patent/KR20060043682A/ko not_active Withdrawn
- 2005-03-16 CN CNB2005100592310A patent/CN100517301C/zh not_active Expired - Fee Related
- 2005-03-16 JP JP2005074980A patent/JP2005267638A/ja active Pending
- 2005-03-30 US US11/094,078 patent/US8321471B2/en not_active Expired - Fee Related
-
2007
- 2007-01-05 US US11/620,171 patent/US20070106937A1/en not_active Abandoned
Patent Citations (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5258909A (en) | 1989-08-31 | 1993-11-02 | International Business Machines Corporation | Method and apparatus for "wrong word" spelling error detection and correction |
| US5715469A (en) | 1993-07-12 | 1998-02-03 | International Business Machines Corporation | Method and apparatus for detecting error strings in a text |
| US5754939A (en) * | 1994-11-29 | 1998-05-19 | Herz; Frederick S. M. | System for generation of user profiles for a system for customized electronic identification of desirable objects |
| US5659771A (en) * | 1995-05-19 | 1997-08-19 | Mitsubishi Electric Information Technology Center America, Inc. | System for spelling correction in which the context of a target word in a sentence is utilized to determine which of several possible words was intended |
| US5875443A (en) * | 1996-01-30 | 1999-02-23 | Sun Microsystems, Inc. | Internet-based spelling checker dictionary system with automatic updating |
| US6047300A (en) | 1997-05-15 | 2000-04-04 | Microsoft Corporation | System and method for automatically correcting a misspelled word |
| US5892919A (en) * | 1997-06-23 | 1999-04-06 | Sun Microsystems, Inc. | Spell checking universal resource locator (URL) by comparing the URL against a cache containing entries relating incorrect URLs submitted by users to corresponding correct URLs |
| US6081774A (en) * | 1997-08-22 | 2000-06-27 | Novell, Inc. | Natural language information retrieval system and method |
| US6272456B1 (en) * | 1998-03-19 | 2001-08-07 | Microsoft Corporation | System and method for identifying the language of written text having a plurality of different length n-gram profiles |
| US6853993B2 (en) * | 1998-07-15 | 2005-02-08 | A9.Com, Inc. | System and methods for predicting correct spellings of terms in multiple-term search queries |
| US6636849B1 (en) * | 1999-11-23 | 2003-10-21 | Genmetrics, Inc. | Data search employing metric spaces, multigrid indexes, and B-grid trees |
| US6684201B1 (en) | 2000-03-31 | 2004-01-27 | Microsoft Corporation | Linguistic disambiguation system and method using string-based pattern training to learn to resolve ambiguity sites |
| US6701309B1 (en) * | 2000-04-21 | 2004-03-02 | Lycos, Inc. | Method and system for collecting related queries |
| US6616704B1 (en) * | 2000-09-20 | 2003-09-09 | International Business Machines Corporation | Two step method for correcting spelling of a word or phrase in a document |
| US20030037077A1 (en) | 2001-06-02 | 2003-02-20 | Brill Eric D. | Spelling correction system and method for phrasal strings using dictionary looping |
| US20030033288A1 (en) * | 2001-08-13 | 2003-02-13 | Xerox Corporation | Document-centric system with auto-completion and auto-correction |
| US20040002994A1 (en) | 2002-06-27 | 2004-01-01 | Brill Eric D. | Automated error checking system and method |
Non-Patent Citations (10)
| Title |
|---|
| Brill, An Improved Error Model for Noisy Channel Spelling Correction. In Proc. of the 2000 Association for Computational Linguistics Confernece, 2000. 8 pages. |
| Church, et al., Probability Scoring for Spelling Correction, Statistics and Computing 1, pp. 93-103, 1991. |
| Damerau, A Technique for Computer Detection and Correction of Spelling Errors, Information Retrieval, Communication sof the ACM, vol. 7, No. 3, Mar. 1964. |
| Hitachi, Derwent, Feb. 15, 2001, p. 1. * |
| Mangu, et al., Automatic rule acquisition for spelling correction. In Proc. 14th International Conference on Machine Learning, 1997, 8 pages. |
| Mays, et al., Context Based Spelling Correction, Information Processing and Management, vol. 27, No. 5, pp. 517-522, 1991. |
| Ruch, Information Retrieval and Spelling Correction: an Inquiry into Lexical Disambiguation. Proceedings of the 2002 ACM Symposium on Applied Computing, pp. 699-703, 2002. |
| Srihari et al , Integrating Diverse Knowledge Sources in Text Recognition, ACM, vol. 1, Jan. 1983, pp. 68-75. * |
| Srihari, Integrating Diverse Knowledge Sources in Text Recognition, ACM, vol. 1, Jan. 1983, pp. 75-77. * |
| U.S. Appl. No. 09/681,771, filed Jun. 2, 2001, Brill et al. |
Cited By (111)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7644076B1 (en) * | 2003-09-12 | 2010-01-05 | Teradata Us, Inc. | Clustering strings using N-grams |
| US20050210017A1 (en) * | 2004-03-16 | 2005-09-22 | Microsoft Corporation | Error model formation |
| US8321471B2 (en) | 2004-03-16 | 2012-11-27 | Microsoft Corporation | Error model formation |
| US9652529B1 (en) | 2004-09-30 | 2017-05-16 | Google Inc. | Methods and systems for augmenting a token lexicon |
| US8051096B1 (en) * | 2004-09-30 | 2011-11-01 | Google Inc. | Methods and systems for augmenting a token lexicon |
| US20060167676A1 (en) * | 2005-01-26 | 2006-07-27 | Research In Motion Limited | Method and apparatus for correction of spelling errors in text composition |
| US20070038619A1 (en) * | 2005-08-10 | 2007-02-15 | Norton Gray S | Methods and apparatus to help users of a natural language system formulate queries |
| US8548799B2 (en) * | 2005-08-10 | 2013-10-01 | Microsoft Corporation | Methods and apparatus to help users of a natural language system formulate queries |
| US8639684B2 (en) * | 2005-12-30 | 2014-01-28 | Google Inc. | Dynamic search box for web browser |
| US20110302188A1 (en) * | 2005-12-30 | 2011-12-08 | Google Inc. | Dynamic search box for web browser |
| US9275106B2 (en) | 2005-12-30 | 2016-03-01 | Google Inc. | Dynamic search box for web browser |
| US7786979B2 (en) * | 2006-01-13 | 2010-08-31 | Research In Motion Limited | Handheld electronic device and method for disambiguation of text input and providing spelling substitution |
| US8854311B2 (en) | 2006-01-13 | 2014-10-07 | Blackberry Limited | Handheld electronic device and method for disambiguation of text input and providing spelling substitution |
| US9442573B2 (en) | 2006-01-13 | 2016-09-13 | Blackberry Limited | Handheld electronic device and method for disambiguation of text input and providing spelling substitution |
| US20070165003A1 (en) * | 2006-01-13 | 2007-07-19 | Vadim Fux | Handheld electronic device and method for disambiguation of text input and providing spelling substitution |
| US8537118B2 (en) | 2006-01-13 | 2013-09-17 | Blackberry Limited | Handheld electronic device and method for disambiguation of text input and providing spelling substitution |
| US20100293456A1 (en) * | 2006-01-13 | 2010-11-18 | Research In Motion Limited | Handheld electronic device and method for disambiguation of text input and providing spelling substitution |
| US7664343B2 (en) * | 2006-01-23 | 2010-02-16 | Lockheed Martin Corporation | Modified Levenshtein distance algorithm for coding |
| US20070172124A1 (en) * | 2006-01-23 | 2007-07-26 | Withum Timothy O | Modified levenshtein distance algorithm for coding |
| US20070198514A1 (en) * | 2006-02-10 | 2007-08-23 | Schwenke Derek L | Method for presenting result sets for probabilistic queries |
| US20070198500A1 (en) * | 2006-02-17 | 2007-08-23 | Google Inc. | User distributed search results |
| US8862572B2 (en) | 2006-02-17 | 2014-10-14 | Google Inc. | Sharing user distributed search results |
| US8122019B2 (en) | 2006-02-17 | 2012-02-21 | Google Inc. | Sharing user distributed search results |
| US8849810B2 (en) | 2006-02-17 | 2014-09-30 | Google Inc. | Sharing user distributed search results |
| US9015149B2 (en) | 2006-02-17 | 2015-04-21 | Google Inc. | Sharing user distributed search results |
| US20070198340A1 (en) * | 2006-02-17 | 2007-08-23 | Mark Lucovsky | User distributed search results |
| US20110040622A1 (en) * | 2006-02-17 | 2011-02-17 | Google Inc. | Sharing user distributed search results |
| US20070130126A1 (en) * | 2006-02-17 | 2007-06-07 | Google Inc. | User distributed search results |
| US7844603B2 (en) * | 2006-02-17 | 2010-11-30 | Google Inc. | Sharing user distributed search results |
| US7558725B2 (en) * | 2006-05-23 | 2009-07-07 | Lexisnexis, A Division Of Reed Elsevier Inc. | Method and apparatus for multilingual spelling corrections |
| AU2007268059B2 (en) * | 2006-05-23 | 2012-05-17 | Lexis-Nexis A Division Of Reed Elsevier Inc | Method and apparatus for multilingual spelling corrections |
| WO2007139798A3 (en) * | 2006-05-23 | 2008-11-27 | Lexisnexis A Division Of Reed | Method and apparatus for multilingual spelling corrections |
| US20070276653A1 (en) * | 2006-05-23 | 2007-11-29 | Greenwald Charles M | Method and apparatus for multilingual spelling corrections |
| US20080059876A1 (en) * | 2006-08-31 | 2008-03-06 | International Business Machines Corporation | Methods and apparatus for performing spelling corrections using one or more variant hash tables |
| US9552349B2 (en) * | 2006-08-31 | 2017-01-24 | International Business Machines Corporation | Methods and apparatus for performing spelling corrections using one or more variant hash tables |
| US11029838B2 (en) | 2006-09-06 | 2021-06-08 | Apple Inc. | Touch screen device, method, and graphical user interface for customizing display of content category icons |
| US9952759B2 (en) | 2006-09-06 | 2018-04-24 | Apple Inc. | Touch screen device, method, and graphical user interface for customizing display of content category icons |
| US12236080B2 (en) | 2006-09-06 | 2025-02-25 | Apple Inc. | Device, method, and medium for sharing images |
| US9335924B2 (en) | 2006-09-06 | 2016-05-10 | Apple Inc. | Touch screen device, method, and graphical user interface for customizing display of content category icons |
| US8201086B2 (en) * | 2007-01-18 | 2012-06-12 | International Business Machines Corporation | Spellchecking electronic documents |
| US20080178076A1 (en) * | 2007-01-18 | 2008-07-24 | Barry Alan Kritt | Method and apparatus for spellchecking electronic documents |
| US20090063462A1 (en) * | 2007-09-04 | 2009-03-05 | Google Inc. | Word decompounder |
| US8380734B2 (en) | 2007-09-04 | 2013-02-19 | Google Inc. | Word decompounder |
| US8046355B2 (en) | 2007-09-04 | 2011-10-25 | Google Inc. | Word decompounder |
| WO2009032940A1 (en) * | 2007-09-04 | 2009-03-12 | Google Inc. | Word decompounder |
| US20110219441A1 (en) * | 2007-12-07 | 2011-09-08 | Google Inc. | Contextual Query Revision |
| US8626785B2 (en) | 2007-12-07 | 2014-01-07 | Google Inc. | Contextual query revision |
| US7953746B1 (en) * | 2007-12-07 | 2011-05-31 | Google Inc. | Contextual query revision |
| US9305113B2 (en) | 2007-12-07 | 2016-04-05 | Google Inc. | Contextual query revision |
| US8996554B2 (en) | 2007-12-07 | 2015-03-31 | Google Inc. | Contextual query revision |
| US8176419B2 (en) | 2007-12-19 | 2012-05-08 | Microsoft Corporation | Self learning contextual spell corrector |
| US20090164890A1 (en) * | 2007-12-19 | 2009-06-25 | Microsoft Corporation | Self learning contextual spell corrector |
| US8589253B2 (en) | 2007-12-21 | 2013-11-19 | Glyde Corporation | Software system for decentralizing eCommerce with single page buy |
| US20090164383A1 (en) * | 2007-12-21 | 2009-06-25 | Glyde Corporation | System and method for dynamic product pricing |
| US20090164273A1 (en) * | 2007-12-21 | 2009-06-25 | Glyde Corporation | Product distribution system and method thereof |
| US8447645B2 (en) | 2007-12-21 | 2013-05-21 | Glyde Corporation | System and method for dynamic product pricing |
| US20090164339A1 (en) * | 2007-12-21 | 2009-06-25 | Glyde Corporation | 3d product display on internet with content or transaction data on back of image |
| US8244590B2 (en) | 2007-12-21 | 2012-08-14 | Glyde Corporation | Software system for decentralizing ecommerce with single page buy |
| US20090164333A1 (en) * | 2007-12-21 | 2009-06-25 | Glyde Corporation | System and method for integrated payment and shipping information |
| US7831584B2 (en) | 2007-12-21 | 2010-11-09 | Glyde Corporation | System and method for providing real-time search results on merchandise |
| US20090164315A1 (en) * | 2007-12-21 | 2009-06-25 | Glyde Corporation | Software System for Decentralizing eCommerce With Single Page Buy |
| US7899716B2 (en) | 2007-12-21 | 2011-03-01 | Glyde Corporation | System and method for integrated payment and shipping information |
| US20090164338A1 (en) * | 2007-12-21 | 2009-06-25 | Glyde Corporation | Virtual Shelf With Single-Product Choice and Automatic Multiple-Vendor Selection |
| US8630923B2 (en) | 2007-12-21 | 2014-01-14 | Glyde Corporation | Virtual shelf with single-product choice and automatic multiple-vendor selection |
| US20090216689A1 (en) * | 2008-01-24 | 2009-08-27 | Dmitry Zelenko | System and method for variant string matching |
| US8209268B2 (en) * | 2008-01-24 | 2012-06-26 | Sra International, Inc. | System and method for variant string matching |
| US20090249197A1 (en) * | 2008-03-31 | 2009-10-01 | Fujitsu Limited | Document proofreading support method and document proofreading support apparatus |
| US20100082657A1 (en) * | 2008-09-23 | 2010-04-01 | Microsoft Corporation | Generating synonyms based on query log data |
| US9092517B2 (en) | 2008-09-23 | 2015-07-28 | Microsoft Technology Licensing, Llc | Generating synonyms based on query log data |
| US8423353B2 (en) * | 2009-03-25 | 2013-04-16 | Microsoft Corporation | Sharable distributed dictionary for applications |
| US20100250239A1 (en) * | 2009-03-25 | 2010-09-30 | Microsoft Corporation | Sharable distributed dictionary for applications |
| US9449101B2 (en) | 2009-06-01 | 2016-09-20 | Aol Inc. | Systems and methods for improved web searching |
| US8892592B2 (en) * | 2009-06-01 | 2014-11-18 | Aol Inc. | Systems and methods for improved web searching |
| US11714862B2 (en) | 2009-06-01 | 2023-08-01 | Yahoo Assets Llc | Systems and methods for improved web searching |
| US10956518B2 (en) | 2009-06-01 | 2021-03-23 | Verizon Media Inc. | Systems and methods for improved web searching |
| US20130268548A1 (en) * | 2009-06-01 | 2013-10-10 | Aol Inc. | Systems and methods for improved web searching |
| US8396885B2 (en) * | 2009-06-01 | 2013-03-12 | Aol Inc. | Systems and methods for improved web searching |
| US20120221543A1 (en) * | 2009-06-01 | 2012-08-30 | Aol Inc. | Systems and methods for improved web searching |
| US20110035375A1 (en) * | 2009-08-06 | 2011-02-10 | Ron Bekkerman | Building user profiles for website personalization |
| US20110145264A1 (en) * | 2009-12-14 | 2011-06-16 | Electronics And Telecommunications Research Institute | Method and apparatus for automatically creating allomorphs |
| US8868402B2 (en) * | 2009-12-30 | 2014-10-21 | Google Inc. | Construction of text classifiers |
| US20130138641A1 (en) * | 2009-12-30 | 2013-05-30 | Google Inc. | Construction of text classifiers |
| US9317564B1 (en) | 2009-12-30 | 2016-04-19 | Google Inc. | Construction of text classifiers |
| US20110202836A1 (en) * | 2010-02-12 | 2011-08-18 | Microsoft Corporation | Typing assistance for editing |
| US10126936B2 (en) | 2010-02-12 | 2018-11-13 | Microsoft Technology Licensing, Llc | Typing assistance for editing |
| US20110201387A1 (en) * | 2010-02-12 | 2011-08-18 | Microsoft Corporation | Real-time typing assistance |
| US10156981B2 (en) | 2010-02-12 | 2018-12-18 | Microsoft Technology Licensing, Llc | User-centric soft keyboard predictive technologies |
| US9613015B2 (en) | 2010-02-12 | 2017-04-04 | Microsoft Technology Licensing, Llc | User-centric soft keyboard predictive technologies |
| US9165257B2 (en) | 2010-02-12 | 2015-10-20 | Microsoft Technology Licensing, Llc | Typing assistance for editing |
| US9600566B2 (en) | 2010-05-14 | 2017-03-21 | Microsoft Technology Licensing, Llc | Identifying entity synonyms |
| US8620749B2 (en) | 2011-06-20 | 2013-12-31 | Glyde Corporation | Customized offers for E-commerce |
| US9317606B1 (en) * | 2012-02-03 | 2016-04-19 | Google Inc. | Spell correcting long queries |
| US8745019B2 (en) | 2012-03-05 | 2014-06-03 | Microsoft Corporation | Robust discovery of entity synonyms using query logs |
| US9298671B2 (en) | 2012-03-29 | 2016-03-29 | International Business Machines Corporation | Learning rewrite rules for search database systems using query logs |
| US9043248B2 (en) | 2012-03-29 | 2015-05-26 | International Business Machines Corporation | Learning rewrite rules for search database systems using query logs |
| US10032131B2 (en) | 2012-06-20 | 2018-07-24 | Microsoft Technology Licensing, Llc | Data services for enterprises leveraging search system data assets |
| US9594831B2 (en) | 2012-06-22 | 2017-03-14 | Microsoft Technology Licensing, Llc | Targeted disambiguation of named entities |
| US9229924B2 (en) | 2012-08-24 | 2016-01-05 | Microsoft Technology Licensing, Llc | Word detection and domain dictionary recommendation |
| US9740767B2 (en) * | 2013-03-15 | 2017-08-22 | Mapquest, Inc. | Systems and methods for analyzing failed and successful search queries |
| US20140280285A1 (en) * | 2013-03-15 | 2014-09-18 | Mapquest, Inc. | Systems and methods for analyzing failed and successful search queries |
| US10068008B2 (en) | 2014-08-28 | 2018-09-04 | Microsoft Technologies Licensing, LLC | Spelling correction of email queries |
| US10740852B1 (en) | 2015-06-23 | 2020-08-11 | Square, Inc. | Classifying merchants |
| US10579729B2 (en) | 2016-10-18 | 2020-03-03 | International Business Machines Corporation | Methods and system for fast, adaptive correction of misspells |
| US10372814B2 (en) | 2016-10-18 | 2019-08-06 | International Business Machines Corporation | Methods and system for fast, adaptive correction of misspells |
| US10949825B1 (en) | 2017-06-30 | 2021-03-16 | Square, Inc. | Adaptive merchant classification |
| US11720905B2 (en) | 2017-10-18 | 2023-08-08 | Block, Inc. | Intelligent merchant onboarding |
| US11348119B1 (en) | 2017-10-18 | 2022-05-31 | Block, Inc. | Intelligent merchant onboarding |
| US12164510B2 (en) | 2018-07-11 | 2024-12-10 | Home Depot Product Authority, Llc | Presentation of related and corrected queries for a search engine |
| US10803242B2 (en) * | 2018-10-26 | 2020-10-13 | International Business Machines Corporation | Correction of misspellings in QA system |
| US20200134010A1 (en) * | 2018-10-26 | 2020-04-30 | International Business Machines Corporation | Correction of misspellings in qa system |
| US12147761B2 (en) * | 2023-02-17 | 2024-11-19 | Optum, Inc. | Systems and methods for improved spell check |
Also Published As
| Publication number | Publication date |
|---|---|
| US20070106937A1 (en) | 2007-05-10 |
| EP1577793A2 (de) | 2005-09-21 |
| US20050210017A1 (en) | 2005-09-22 |
| US20050210383A1 (en) | 2005-09-22 |
| CN100517301C (zh) | 2009-07-22 |
| CN1670723A (zh) | 2005-09-21 |
| KR20060043682A (ko) | 2006-05-15 |
| JP2005267638A (ja) | 2005-09-29 |
| US8321471B2 (en) | 2012-11-27 |
| EP1577793A3 (de) | 2007-05-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20050210383A1 (en) | Systems and methods for improved spell checking | |
| Cucerzan et al. | Spelling correction as an iterative process that exploits the collective knowledge of web users | |
| Ahmad et al. | Learning a spelling error model from search query logs | |
| Dagan et al. | Word sense disambiguation using a second language monolingual corpus | |
| US7574348B2 (en) | Processing collocation mistakes in documents | |
| US7478033B2 (en) | Systems and methods for translating Chinese pinyin to Chinese characters | |
| Brill et al. | An improved error model for noisy channel spelling correction | |
| CN101131706B (zh) | 一种查询修正方法及系统 | |
| US20130304730A1 (en) | Automated answers to online questions | |
| Samanta et al. | A simple real-word error detection and correction using local word bigram and trigram | |
| Saloot et al. | An architecture for Malay Tweet normalization | |
| US7475005B2 (en) | Translation system, dictionary updating server, translation method, and program and recording medium for use therein | |
| CN110888946A (zh) | 一种基于知识驱动的查询的实体链接方法 | |
| Mittra et al. | A bangla spell checking technique to facilitate error correction in text entry environment | |
| Panahandeh et al. | Correction of spaces in persian sentences for tokenization | |
| Rozovskaya | Spelling correction for Russian: A comparative study of datasets and methods | |
| Andrade et al. | Hasch: high performance automatic spell checker for Portuguese texts from the web | |
| Ion et al. | A trainable multi-factored QA system | |
| Remse et al. | Feature-rich error detection in scientific writing using logistic regression | |
| Minin et al. | Elaborating Russian spelling-correction algorithms with custom n-gram models | |
| Dridan et al. | Unsupervised parse selection for hpsg | |
| Li et al. | An Error Classification-Based Query Error Correction Method in Chinese Search Engine | |
| Henrich et al. | LISGrammarChecker: Language Independent Statistical Grammar Checking | |
| Zribi et al. | A Multi-Agent System for Detecting and Correcting" Hidden" Spelling Errors in Arabic Texts. | |
| Kovács | Efficient dictionary matching of character stream |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: MICROSOFT CORPORATION, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CUCERZAN, SILVIU-PETRU;BRILL, ERIC D.;REEL/FRAME:015107/0409 Effective date: 20040315 |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| FPAY | Fee payment |
Year of fee payment: 4 |
|
| AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034541/0477 Effective date: 20141014 |
|
| FPAY | Fee payment |
Year of fee payment: 8 |
|
| FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
| FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20190807 |