Exhaustive discussion of the character-level processing of
can be found in Lunde (1998). Character bigram
indexes are perhaps the most standard approach to indexing Chinese,
although some systems use word segmentation. Due to differences
in the language and writing system, word segmentation is most usual
for Japanese (Luk and Kwok, 2002, Kishida et al., 2005). The structure of a
character -gram index over unsegmented text differs
from that in Section 3.2.2 (page
): there the
-gram dictionary points to
postings lists of entries in the regular dictionary, whereas here it
points directly to document postings lists.
For further discussion of Chinese word segmentation, see
Tseng et al. (2005), Sproat and Emerson (2003), Sproat et al. (1996), and
Gao et al. (2005).
Lita et al. (2003) present a method for truecasing . Natural language processing work on computational morphology is presented in (Sproat, 1992, Beesley and Karttunen, 2003).
Language identification was perhaps
first explored in cryptography; for example,
Konheim (1981) presents a character-level -gram
language identification algorithm. While other methods such as looking
for particular distinctive function words and letter combinations have
been used, with the advent of widespread digital text, many people have
explored the character
-gram technique, and found it to be highly
successful
(Beesley, 1998, Dunning, 1994, Cavnar and Trenkle, 1994).
Written language identification is regarded as a fairly easy problem,
while spoken language identification remains more difficult; see
Hughes et al. (2006) for a recent survey.
Experiments on and discussion of the positive and negative impact of
stemming in English can be found in the following works:
Salton (1989), Krovetz (1995), Hull (1996), Harman (1991).
Hollink et al. (2004) provide detailed results for the effectiveness of language-specific methods on 8 European languages. In terms of percent change in mean average precision (see page 8.4 ) over a baseline system, diacritic removal gains up to 23% (being especially helpful for Finnish, French, and Swedish). Stemming helped markedly for Finnish (30% improvement) and Spanish (10% improvement), but for most languages, including English, the gain from stemming was in the range 0-5%, and results from a lemmatizer were poorer still. Compound splitting gained 25% for Swedish and 15% for German, but only 4% for Dutch. Rather than language-particular methods, indexing character -grams (as we suggested for Chinese) could often give as good or better results: using within-word character 4-grams rather than words gave gains of 37% in Finnish, 27% in Swedish, and 20% in German, while even being slightly positive for other languages, such as Dutch, Spanish, and English.
Tomlinson (2003) presents broadly similar results. Bar-Ilan and Gutman (2005) suggest that, at the time of their study (2003), the major commercial web search engines suffered from lacking decent language-particular processing; for example, a query on www.google.fr for l'électricité did not separate off the article l' but only matched pages with precisely this string of article+noun.
The classic presentation of for IR can be found in Moffat and Zobel (1996). Extended
techniques are discussed in Boldi and Vigna (2005).
The main paper in the algorithms literature is Pugh (1990), which
uses multilevel skip pointers to give expected list access
(the same expected efficiency as using a tree data structure) with less
implementational complexity.
In practice, the effectiveness of using skip pointers depends on various
system parameters. Moffat and Zobel (1996) report conjunctive
queries running about five
times faster with the use of skip pointers, but
Bahle et al. (2002, p. 217) report that, with modern CPUs, using skip lists
instead slows down search because it expands the size of the postings list
(i.e., disk I/O dominates performance). In contrast,
Strohman and Croft (2007) again show good performance gains from
skipping, in a system architecture designed to optimize for the large
memory spaces and multiple cores of recent CPUs.
Johnson et al. (2006) report that 11.7% of all queries in two 2002 web query logs contained phrase queries , though Kammenhuber et al. (2006) report only 3% phrase queries for a different data set. Silverstein et al. (1999) note that many queries without explicit phrase operators are actually implicit phrase searches.