Query understanding
Query understanding is the process of inferring the intent of a search engine user by extracting semantic meaning from the searcher’s keywords.[1] Query understanding methods generally take place before the search engine retrieves and ranks results. It is related to natural language processing but specifically focused on the understanding of search queries. Query understanding is at the heart of technologies like Amazon Alexa,[2] Apple's Siri.[3] Google Assistant,[4] IBM's Watson,[5] and Microsoft's Cortana.[6]
Methods
Tokenization
Tokenization is the process of breaking up a text string into words or other meaningful elements called tokens. Typically, tokenization occurs at the word level. However, it is sometimes difficult to define what is meant by a "word". Often a tokenizer relies on simple heuristics, such as splitting the string on punctuation and whitespace characters. Tokenization is more challenging in languages without spaces between words, such as Chinese and Japanese. Tokenizing text in these languages requires the use of word segmentation algorithms.[7]
Spelling correction
Spelling correction is the process of automatically detecting and correcting spelling errors in search queries. Most spelling correction algorithms are based on a language model, which determines the a priori probability of an intended query, and an error model (typically a noisy channel model), which determines the probability of a particular misspelling, given an intended query.[8]
Stemming and lemmatization
Many, but not all, language inflect words to reflect their role in the utterance they appear in: a word such as *care* may appear as, besides the base form. as *cares*, *cared*, *caring*, and others. The variation between various forms of a word is likely to be of little importance for the relatively coarse-grained model of meaning involved in a retrieval system, and for this reason the task of conflating the various forms of a word is a potentially useful technique to increase recall of a retrieval system.[9]
The languages of the world vary in how much morphological variation they exhibit, and for some languages there are simple methods to reduce a word in query to its lemma or root form or its stem. For some other languages, this operation involves non-trivial string processing. A noun in English typically appears in four variants: *cat* *cat's* *cats* *cats'* or *child* *child´s* *children* *children's*. Other languages have more variation. Finnish, e.g., potentially exhibits about 5000 forms for a noun,[10] and for many languages the inflectional forms are not limited to affixes but change the core of the word itself.
Stemming algorithms, also known as stemmers, typically use a collection of simple rules to remove suffixes intended to model the language’s inflection rules.[11]
More advanced methods, lemmatisation methods, group together the inflected forms of a word through more complex rule sets based on a word’s part of speech or its record in a lexical database, transforming an inflected word through lookup or a series of transformations to its lemma. For a long time, it was taken to be proven that morphological normalisation by and large did not help retrieval performance.[12]
Once the attention of the information retrieval field moved to languages other than English, it was found that for some languages there were obvious gains to be found.[13]
Entity recognition
Entity recognition is the process of locating and classifying entities within a text string. Named-entity recognition specifically focuses on named entities, such as names of people, places, and organizations. In addition, entity recognition includes identifying concepts in queries that may be represented by multi-word phrases. Entity recognition systems typically use grammar-based linguistic techniques or statistical machine learning models.[14]
Query rewriting
Query rewriting is the process of automatically reformulating a search query to more accurately capture its intent. Query expansion adds additional query terms, such as synonyms, in order to retrieve more documents and thereby increase recall. Query relaxation removes query terms to reduce the requirements for a document to match the query, thereby also increasing recall. Other forms of query rewriting, such as automatically converting consecutive query terms into phrases and restricting query terms to specific fields, aim to increase precision. Apache Lucene search engine [15] uses query rewrite to transform complex queries to more primitive queries, such as expressions with wildcards (e.g. quer*) into a boolean query of the matching terms from the index (such as query OR queries).[16]
See also
References
- "Association of Computing Machinery (ACM) Special Interest Group on Information Retrieval (SIGIR) 2010 Workshop on Query Representation and Understanding" (PDF).
- "Amazon AI - Artificial Intelligence".
- "iOS - Siri - Apple".
- "How Google uses machine learning in its search algorithms".
- "When Watson met Siri: Apple's IBM deal could make Siri a lot smarter".
- "The story of Cortana, Microsoft's Siri killer".
- "Tokenization".
- "How to Write a Spelling Corrector".
- Lowe, Thomas; Roberts, David; Kurtz, Peterdate=1973. Additional Text Processing for On-Line Retrieval (The RADCOL System). Volume 1. DTIC Document. Lennon, Martin; Peirce, David; Tarry, Brian D; Willett, Peter (1981). "An evaluation of some conflation algorithms for information retrieval". Information Scientist. SAGE. 3 (4).
- Karlsson, Fred (2008). Finnish: an essential grammar. Routledge.
- Lovins, Julie (1968). Development of a stemming algorithm. MIT Information Processing Group.
- Harman, Donna (1991). "How Effective is Suffixing?". Journal of the American Society for Information Science. 42 (1): 7–15. doi:10.1002/(SICI)1097-4571(199101)42:1<7::AID-ASI2>3.0.CO;2-P.
- Popovic, Mirkoc; Willett, Peter (1981). "The effectiveness of stemming for natural-language access to Slovene textual data". Information Scientist. SAGE. 3 (4).
- "A Survey of Named Entity Recognition and Classification" (PDF).
- "Apache Lucene".
- "Query in Lucene 6.4.1 API documentation".