Page 1
Recap Documents Terms Skip pointers Phrase queries
Introduction to Information Retrievalhttp://informationretrieval.org
IIR 2: The term vocabulary and postings lists
Hinrich Schutze
Center for Information and Language Processing, University of Munich
2014-04-09
Schutze: The term vocabulary and postings lists 1 / 62
Page 2
Recap Documents Terms Skip pointers Phrase queries
Overview
1 Recap
2 Documents
3 TermsGeneral + Non-EnglishEnglish
4 Skip pointers
5 Phrase queries
Schutze: The term vocabulary and postings lists 2 / 62
Page 3
Recap Documents Terms Skip pointers Phrase queries
Outline
1 Recap
2 Documents
3 TermsGeneral + Non-EnglishEnglish
4 Skip pointers
5 Phrase queries
Schutze: The term vocabulary and postings lists 3 / 62
Page 4
Recap Documents Terms Skip pointers Phrase queries
Inverted index
For each term t, we store a list of all documents that contain t.
Brutus −→ 1 2 4 11 31 45 173 174
Caesar −→ 1 2 4 5 6 16 57 132 . . .
Calpurnia −→ 2 31 54 101
...
︸ ︷︷ ︸ ︸ ︷︷ ︸
dictionary postings
Schutze: The term vocabulary and postings lists 4 / 62
Page 5
Recap Documents Terms Skip pointers Phrase queries
Intersecting two postings lists
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒
Schutze: The term vocabulary and postings lists 5 / 62
Page 6
Recap Documents Terms Skip pointers Phrase queries
Intersecting two postings lists
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒
Schutze: The term vocabulary and postings lists 5 / 62
Page 7
Recap Documents Terms Skip pointers Phrase queries
Intersecting two postings lists
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒
Schutze: The term vocabulary and postings lists 5 / 62
Page 8
Recap Documents Terms Skip pointers Phrase queries
Intersecting two postings lists
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒ 2
Schutze: The term vocabulary and postings lists 5 / 62
Page 9
Recap Documents Terms Skip pointers Phrase queries
Intersecting two postings lists
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒ 2
Schutze: The term vocabulary and postings lists 5 / 62
Page 10
Recap Documents Terms Skip pointers Phrase queries
Intersecting two postings lists
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒ 2
Schutze: The term vocabulary and postings lists 5 / 62
Page 11
Recap Documents Terms Skip pointers Phrase queries
Intersecting two postings lists
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒ 2
Schutze: The term vocabulary and postings lists 5 / 62
Page 12
Recap Documents Terms Skip pointers Phrase queries
Intersecting two postings lists
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒ 2 → 31
Schutze: The term vocabulary and postings lists 5 / 62
Page 13
Recap Documents Terms Skip pointers Phrase queries
Intersecting two postings lists
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒ 2 → 31
Schutze: The term vocabulary and postings lists 5 / 62
Page 14
Recap Documents Terms Skip pointers Phrase queries
Intersecting two postings lists
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒ 2 → 31
Schutze: The term vocabulary and postings lists 5 / 62
Page 15
Recap Documents Terms Skip pointers Phrase queries
Intersecting two postings lists
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒ 2 → 31
Schutze: The term vocabulary and postings lists 5 / 62
Page 16
Recap Documents Terms Skip pointers Phrase queries
Constructing the inverted index: Sort postingsterm docID
I 1did 1enact 1julius 1caesar 1I 1was 1killed 1i’ 1the 1capitol 1brutus 1killed 1me 1so 2let 2it 2be 2with 2caesar 2the 2noble 2brutus 2hath 2told 2you 2caesar 2was 2ambitious 2
=⇒
term docID
ambitious 2be 2brutus 1brutus 2capitol 1caesar 1caesar 2caesar 2did 1enact 1hath 1I 1I 1i’ 1it 2julius 1killed 1killed 1let 2me 1noble 2so 2the 1the 2told 2you 2was 1was 2with 2
Schutze: The term vocabulary and postings lists 6 / 62
Page 17
Recap Documents Terms Skip pointers Phrase queries
Westlaw: Example queries
Information need: Information on the legal theories involved inpreventing the disclosure of trade secrets by employees formerlyemployed by a competing company
Query: “trade secret” /s disclos! /s prevent /s employe!
Information need: Requirements for disabled people to be able toaccess a workplace
Query: disab! /p access! /s work-site work-place (employment /3place)
Information need: Cases about a host’s responsibility for drunkguests
Query: host! /p (responsib! liab!) /p (intoxicat! drunk!) /p guest
Schutze: The term vocabulary and postings lists 7 / 62
Page 18
Recap Documents Terms Skip pointers Phrase queries
Does Google use the Boolean model?
On Google, the default interpretation of a query [w1 w2
. . .wn] is w1 AND w2 AND . . . AND wn
Cases where you get hits that do not contain one of the wi :
anchor textpage contains variant of wi (morphology, spelling correction,synonym)long queries (n large)boolean expression generates very few hits
Simple Boolean vs. Ranking of result set
Simple Boolean retrieval returns matching documents in noparticular order.Google (and most well designed Boolean engines) rank theresult set – they rank good hits (according to some estimatorof relevance) higher than bad hits.
Schutze: The term vocabulary and postings lists 8 / 62
Page 19
Recap Documents Terms Skip pointers Phrase queries
Take-away
Schutze: The term vocabulary and postings lists 9 / 62
Page 20
Recap Documents Terms Skip pointers Phrase queries
Take-away
Understanding of the basic unit of classical informationretrieval systems: words and documents: What is adocument, what is a term?
Schutze: The term vocabulary and postings lists 9 / 62
Page 21
Recap Documents Terms Skip pointers Phrase queries
Take-away
Understanding of the basic unit of classical informationretrieval systems: words and documents: What is adocument, what is a term?
Tokenization: how to get from raw text to words (or tokens)
Schutze: The term vocabulary and postings lists 9 / 62
Page 22
Recap Documents Terms Skip pointers Phrase queries
Take-away
Understanding of the basic unit of classical informationretrieval systems: words and documents: What is adocument, what is a term?
Tokenization: how to get from raw text to words (or tokens)
More complex indexes: skip pointers and phrases
Schutze: The term vocabulary and postings lists 9 / 62
Page 23
Recap Documents Terms Skip pointers Phrase queries
Outline
1 Recap
2 Documents
3 TermsGeneral + Non-EnglishEnglish
4 Skip pointers
5 Phrase queries
Schutze: The term vocabulary and postings lists 10 / 62
Page 24
Recap Documents Terms Skip pointers Phrase queries
Documents
Last lecture: Simple Boolean retrieval system
Schutze: The term vocabulary and postings lists 11 / 62
Page 25
Recap Documents Terms Skip pointers Phrase queries
Documents
Last lecture: Simple Boolean retrieval system
Our assumptions were:
Schutze: The term vocabulary and postings lists 11 / 62
Page 26
Recap Documents Terms Skip pointers Phrase queries
Documents
Last lecture: Simple Boolean retrieval system
Our assumptions were:
We know what a document is.
Schutze: The term vocabulary and postings lists 11 / 62
Page 27
Recap Documents Terms Skip pointers Phrase queries
Documents
Last lecture: Simple Boolean retrieval system
Our assumptions were:
We know what a document is.We can “machine-read” each document.
Schutze: The term vocabulary and postings lists 11 / 62
Page 28
Recap Documents Terms Skip pointers Phrase queries
Documents
Last lecture: Simple Boolean retrieval system
Our assumptions were:
We know what a document is.We can “machine-read” each document.
This can be complex in reality.
Schutze: The term vocabulary and postings lists 11 / 62
Page 29
Recap Documents Terms Skip pointers Phrase queries
Parsing a document
We need to deal with format and language of each document.
Schutze: The term vocabulary and postings lists 12 / 62
Page 30
Recap Documents Terms Skip pointers Phrase queries
Parsing a document
We need to deal with format and language of each document.
What format is it in? pdf, word, excel, html etc.
Schutze: The term vocabulary and postings lists 12 / 62
Page 31
Recap Documents Terms Skip pointers Phrase queries
Parsing a document
We need to deal with format and language of each document.
What format is it in? pdf, word, excel, html etc.
What language is it in?
Schutze: The term vocabulary and postings lists 12 / 62
Page 32
Recap Documents Terms Skip pointers Phrase queries
Parsing a document
We need to deal with format and language of each document.
What format is it in? pdf, word, excel, html etc.
What language is it in?
What character set is in use?
Schutze: The term vocabulary and postings lists 12 / 62
Page 33
Recap Documents Terms Skip pointers Phrase queries
Parsing a document
We need to deal with format and language of each document.
What format is it in? pdf, word, excel, html etc.
What language is it in?
What character set is in use?
Each of these is a classification problem, which we will studylater in this course (IIR 13).
Schutze: The term vocabulary and postings lists 12 / 62
Page 34
Recap Documents Terms Skip pointers Phrase queries
Parsing a document
We need to deal with format and language of each document.
What format is it in? pdf, word, excel, html etc.
What language is it in?
What character set is in use?
Each of these is a classification problem, which we will studylater in this course (IIR 13).
Alternative: use heuristics
Schutze: The term vocabulary and postings lists 12 / 62
Page 35
Recap Documents Terms Skip pointers Phrase queries
Format/Language: Complications
A single index usually contains terms of several languages.
Schutze: The term vocabulary and postings lists 13 / 62
Page 36
Recap Documents Terms Skip pointers Phrase queries
Format/Language: Complications
A single index usually contains terms of several languages.
Sometimes a document or its components contain multiplelanguages/formats.
Schutze: The term vocabulary and postings lists 13 / 62
Page 37
Recap Documents Terms Skip pointers Phrase queries
Format/Language: Complications
A single index usually contains terms of several languages.
Sometimes a document or its components contain multiplelanguages/formats.
French email with Spanish pdf attachment
Schutze: The term vocabulary and postings lists 13 / 62
Page 38
Recap Documents Terms Skip pointers Phrase queries
Format/Language: Complications
A single index usually contains terms of several languages.
Sometimes a document or its components contain multiplelanguages/formats.
French email with Spanish pdf attachment
What is the document unit for indexing?
Schutze: The term vocabulary and postings lists 13 / 62
Page 39
Recap Documents Terms Skip pointers Phrase queries
Format/Language: Complications
A single index usually contains terms of several languages.
Sometimes a document or its components contain multiplelanguages/formats.
French email with Spanish pdf attachment
What is the document unit for indexing?
A file?
Schutze: The term vocabulary and postings lists 13 / 62
Page 40
Recap Documents Terms Skip pointers Phrase queries
Format/Language: Complications
A single index usually contains terms of several languages.
Sometimes a document or its components contain multiplelanguages/formats.
French email with Spanish pdf attachment
What is the document unit for indexing?
A file?
An email?
Schutze: The term vocabulary and postings lists 13 / 62
Page 41
Recap Documents Terms Skip pointers Phrase queries
Format/Language: Complications
A single index usually contains terms of several languages.
Sometimes a document or its components contain multiplelanguages/formats.
French email with Spanish pdf attachment
What is the document unit for indexing?
A file?
An email?
An email with 5 attachments?
Schutze: The term vocabulary and postings lists 13 / 62
Page 42
Recap Documents Terms Skip pointers Phrase queries
Format/Language: Complications
A single index usually contains terms of several languages.
Sometimes a document or its components contain multiplelanguages/formats.
French email with Spanish pdf attachment
What is the document unit for indexing?
A file?
An email?
An email with 5 attachments?
A group of files (ppt or latex in HTML)?
Schutze: The term vocabulary and postings lists 13 / 62
Page 43
Recap Documents Terms Skip pointers Phrase queries
Format/Language: Complications
A single index usually contains terms of several languages.
Sometimes a document or its components contain multiplelanguages/formats.
French email with Spanish pdf attachment
What is the document unit for indexing?
A file?
An email?
An email with 5 attachments?
A group of files (ppt or latex in HTML)?
Upshot: Answering the question “what is a document?” isnot trivial and requires some design decisions.
Schutze: The term vocabulary and postings lists 13 / 62
Page 44
Recap Documents Terms Skip pointers Phrase queries
Format/Language: Complications
A single index usually contains terms of several languages.
Sometimes a document or its components contain multiplelanguages/formats.
French email with Spanish pdf attachment
What is the document unit for indexing?
A file?
An email?
An email with 5 attachments?
A group of files (ppt or latex in HTML)?
Upshot: Answering the question “what is a document?” isnot trivial and requires some design decisions.
Also: XML
Schutze: The term vocabulary and postings lists 13 / 62
Page 45
Recap Documents Terms Skip pointers Phrase queries
Outline
1 Recap
2 Documents
3 TermsGeneral + Non-EnglishEnglish
4 Skip pointers
5 Phrase queries
Schutze: The term vocabulary and postings lists 14 / 62
Page 46
Recap Documents Terms Skip pointers Phrase queries
Outline
1 Recap
2 Documents
3 TermsGeneral + Non-EnglishEnglish
4 Skip pointers
5 Phrase queries
Schutze: The term vocabulary and postings lists 15 / 62
Page 47
Recap Documents Terms Skip pointers Phrase queries
Definitions
Word – A delimited string of characters as it appears in thetext.
Schutze: The term vocabulary and postings lists 16 / 62
Page 48
Recap Documents Terms Skip pointers Phrase queries
Definitions
Word – A delimited string of characters as it appears in thetext.
Term – A “normalized” word (case, morphology, spelling etc);an equivalence class of words.
Schutze: The term vocabulary and postings lists 16 / 62
Page 49
Recap Documents Terms Skip pointers Phrase queries
Definitions
Word – A delimited string of characters as it appears in thetext.
Term – A “normalized” word (case, morphology, spelling etc);an equivalence class of words.
Token – An instance of a word or term occurring in adocument.
Schutze: The term vocabulary and postings lists 16 / 62
Page 50
Recap Documents Terms Skip pointers Phrase queries
Definitions
Word – A delimited string of characters as it appears in thetext.
Term – A “normalized” word (case, morphology, spelling etc);an equivalence class of words.
Token – An instance of a word or term occurring in adocument.
Type – The same as a term in most cases: an equivalenceclass of tokens.
Schutze: The term vocabulary and postings lists 16 / 62
Page 51
Recap Documents Terms Skip pointers Phrase queries
Normalization
Need to “normalize” words in indexed text as well as queryterms into the same form.
Schutze: The term vocabulary and postings lists 17 / 62
Page 52
Recap Documents Terms Skip pointers Phrase queries
Normalization
Need to “normalize” words in indexed text as well as queryterms into the same form.
Example: We want to match U.S.A. and USA
Schutze: The term vocabulary and postings lists 17 / 62
Page 53
Recap Documents Terms Skip pointers Phrase queries
Normalization
Need to “normalize” words in indexed text as well as queryterms into the same form.
Example: We want to match U.S.A. and USA
We most commonly implicitly define equivalence classes ofterms.
Schutze: The term vocabulary and postings lists 17 / 62
Page 54
Recap Documents Terms Skip pointers Phrase queries
Normalization
Need to “normalize” words in indexed text as well as queryterms into the same form.
Example: We want to match U.S.A. and USA
We most commonly implicitly define equivalence classes ofterms.
Alternatively: do asymmetric expansion
Schutze: The term vocabulary and postings lists 17 / 62
Page 55
Recap Documents Terms Skip pointers Phrase queries
Normalization
Need to “normalize” words in indexed text as well as queryterms into the same form.
Example: We want to match U.S.A. and USA
We most commonly implicitly define equivalence classes ofterms.
Alternatively: do asymmetric expansion
window → window, windows
Schutze: The term vocabulary and postings lists 17 / 62
Page 56
Recap Documents Terms Skip pointers Phrase queries
Normalization
Need to “normalize” words in indexed text as well as queryterms into the same form.
Example: We want to match U.S.A. and USA
We most commonly implicitly define equivalence classes ofterms.
Alternatively: do asymmetric expansion
window → window, windowswindows → Windows, windows
Schutze: The term vocabulary and postings lists 17 / 62
Page 57
Recap Documents Terms Skip pointers Phrase queries
Normalization
Need to “normalize” words in indexed text as well as queryterms into the same form.
Example: We want to match U.S.A. and USA
We most commonly implicitly define equivalence classes ofterms.
Alternatively: do asymmetric expansion
window → window, windowswindows → Windows, windowsWindows (no expansion)
Schutze: The term vocabulary and postings lists 17 / 62
Page 58
Recap Documents Terms Skip pointers Phrase queries
Normalization
Need to “normalize” words in indexed text as well as queryterms into the same form.
Example: We want to match U.S.A. and USA
We most commonly implicitly define equivalence classes ofterms.
Alternatively: do asymmetric expansion
window → window, windowswindows → Windows, windowsWindows (no expansion)
More powerful, but less efficient
Schutze: The term vocabulary and postings lists 17 / 62
Page 59
Recap Documents Terms Skip pointers Phrase queries
Normalization
Need to “normalize” words in indexed text as well as queryterms into the same form.
Example: We want to match U.S.A. and USA
We most commonly implicitly define equivalence classes ofterms.
Alternatively: do asymmetric expansion
window → window, windowswindows → Windows, windowsWindows (no expansion)
More powerful, but less efficient
Why don’t you want to put window, Window, windows, andWindows in the same equivalence class?
Schutze: The term vocabulary and postings lists 17 / 62
Page 60
Recap Documents Terms Skip pointers Phrase queries
Normalization: Other languages
Normalization and language detection interact.
Schutze: The term vocabulary and postings lists 18 / 62
Page 61
Recap Documents Terms Skip pointers Phrase queries
Normalization: Other languages
Normalization and language detection interact.
PETER WILL NICHT MIT. → MIT = mit
Schutze: The term vocabulary and postings lists 18 / 62
Page 62
Recap Documents Terms Skip pointers Phrase queries
Normalization: Other languages
Normalization and language detection interact.
PETER WILL NICHT MIT. → MIT = mit
He got his PhD from MIT. → MIT 6= mit
Schutze: The term vocabulary and postings lists 18 / 62
Page 63
Recap Documents Terms Skip pointers Phrase queries
Tokenization: Recall construction of inverted index
Input:
Friends, Romans, countrymen. So let it be with Caesar . . .
Schutze: The term vocabulary and postings lists 19 / 62
Page 64
Recap Documents Terms Skip pointers Phrase queries
Tokenization: Recall construction of inverted index
Input:
Friends, Romans, countrymen. So let it be with Caesar . . .
Output:
friend roman countryman so . . .
Schutze: The term vocabulary and postings lists 19 / 62
Page 65
Recap Documents Terms Skip pointers Phrase queries
Tokenization: Recall construction of inverted index
Input:
Friends, Romans, countrymen. So let it be with Caesar . . .
Output:
friend roman countryman so . . .
Each token is a candidate for a postings entry.
Schutze: The term vocabulary and postings lists 19 / 62
Page 66
Recap Documents Terms Skip pointers Phrase queries
Tokenization: Recall construction of inverted index
Input:
Friends, Romans, countrymen. So let it be with Caesar . . .
Output:
friend roman countryman so . . .
Each token is a candidate for a postings entry.
What are valid tokens to emit?
Schutze: The term vocabulary and postings lists 19 / 62
Page 67
Recap Documents Terms Skip pointers Phrase queries
Exercises
In June, the dog likes to chase the cat in the barn. – How manyword tokens? How many word types?
Why tokenization is difficult – even in English. Tokenize: Mr.
O’Neill thinks that the boys’ stories about Chile’s capital aren’t
amusing.
Schutze: The term vocabulary and postings lists 20 / 62
Page 68
Recap Documents Terms Skip pointers Phrase queries
Tokenization problems: One word or two? (or several)
Hewlett-Packard
Schutze: The term vocabulary and postings lists 21 / 62
Page 69
Recap Documents Terms Skip pointers Phrase queries
Tokenization problems: One word or two? (or several)
Hewlett-Packard
State-of-the-art
Schutze: The term vocabulary and postings lists 21 / 62
Page 70
Recap Documents Terms Skip pointers Phrase queries
Tokenization problems: One word or two? (or several)
Hewlett-Packard
State-of-the-art
co-education
Schutze: The term vocabulary and postings lists 21 / 62
Page 71
Recap Documents Terms Skip pointers Phrase queries
Tokenization problems: One word or two? (or several)
Hewlett-Packard
State-of-the-art
co-education
the hold-him-back-and-drag-him-away maneuver
Schutze: The term vocabulary and postings lists 21 / 62
Page 72
Recap Documents Terms Skip pointers Phrase queries
Tokenization problems: One word or two? (or several)
Hewlett-Packard
State-of-the-art
co-education
the hold-him-back-and-drag-him-away maneuver
data base
Schutze: The term vocabulary and postings lists 21 / 62
Page 73
Recap Documents Terms Skip pointers Phrase queries
Tokenization problems: One word or two? (or several)
Hewlett-Packard
State-of-the-art
co-education
the hold-him-back-and-drag-him-away maneuver
data base
San Francisco
Schutze: The term vocabulary and postings lists 21 / 62
Page 74
Recap Documents Terms Skip pointers Phrase queries
Tokenization problems: One word or two? (or several)
Hewlett-Packard
State-of-the-art
co-education
the hold-him-back-and-drag-him-away maneuver
data base
San Francisco
Los Angeles-based company
Schutze: The term vocabulary and postings lists 21 / 62
Page 75
Recap Documents Terms Skip pointers Phrase queries
Tokenization problems: One word or two? (or several)
Hewlett-Packard
State-of-the-art
co-education
the hold-him-back-and-drag-him-away maneuver
data base
San Francisco
Los Angeles-based company
cheap San Francisco-Los Angeles fares
Schutze: The term vocabulary and postings lists 21 / 62
Page 76
Recap Documents Terms Skip pointers Phrase queries
Tokenization problems: One word or two? (or several)
Hewlett-Packard
State-of-the-art
co-education
the hold-him-back-and-drag-him-away maneuver
data base
San Francisco
Los Angeles-based company
cheap San Francisco-Los Angeles fares
York University vs. New York University
Schutze: The term vocabulary and postings lists 21 / 62
Page 77
Recap Documents Terms Skip pointers Phrase queries
Numbers
3/20/91
Schutze: The term vocabulary and postings lists 22 / 62
Page 78
Recap Documents Terms Skip pointers Phrase queries
Numbers
3/20/91
20/3/91
Schutze: The term vocabulary and postings lists 22 / 62
Page 79
Recap Documents Terms Skip pointers Phrase queries
Numbers
3/20/91
20/3/91
Mar 20, 1991
Schutze: The term vocabulary and postings lists 22 / 62
Page 80
Recap Documents Terms Skip pointers Phrase queries
Numbers
3/20/91
20/3/91
Mar 20, 1991
B-52
Schutze: The term vocabulary and postings lists 22 / 62
Page 81
Recap Documents Terms Skip pointers Phrase queries
Numbers
3/20/91
20/3/91
Mar 20, 1991
B-52
100.2.86.144
Schutze: The term vocabulary and postings lists 22 / 62
Page 82
Recap Documents Terms Skip pointers Phrase queries
Numbers
3/20/91
20/3/91
Mar 20, 1991
B-52
100.2.86.144
(800) 234-2333
Schutze: The term vocabulary and postings lists 22 / 62
Page 83
Recap Documents Terms Skip pointers Phrase queries
Numbers
3/20/91
20/3/91
Mar 20, 1991
B-52
100.2.86.144
(800) 234-2333
800.234.2333
Schutze: The term vocabulary and postings lists 22 / 62
Page 84
Recap Documents Terms Skip pointers Phrase queries
Numbers
3/20/91
20/3/91
Mar 20, 1991
B-52
100.2.86.144
(800) 234-2333
800.234.2333
Older IR systems may not index numbers . . .
Schutze: The term vocabulary and postings lists 22 / 62
Page 85
Recap Documents Terms Skip pointers Phrase queries
Numbers
3/20/91
20/3/91
Mar 20, 1991
B-52
100.2.86.144
(800) 234-2333
800.234.2333
Older IR systems may not index numbers . . .
. . . but generally it’s a useful feature.
Schutze: The term vocabulary and postings lists 22 / 62
Page 86
Recap Documents Terms Skip pointers Phrase queries
Numbers
3/20/91
20/3/91
Mar 20, 1991
B-52
100.2.86.144
(800) 234-2333
800.234.2333
Older IR systems may not index numbers . . .
. . . but generally it’s a useful feature.
Google example
Schutze: The term vocabulary and postings lists 22 / 62
Page 87
Recap Documents Terms Skip pointers Phrase queries
Chinese: No whitespace
莎拉波娃!在居住在美国"南部的佛#里$。今年4月
9日,莎拉波娃在美国第一大城市%&度'了18(生
日。生日派)上,莎拉波娃露出了甜美的微笑。
Schutze: The term vocabulary and postings lists 23 / 62
Page 88
Recap Documents Terms Skip pointers Phrase queries
Ambiguous segmentation in Chinese
和尚 The two characters can be treated as one word meaning ‘monk’ oras a sequence of two words meaning ‘and’ and ‘still’.
Schutze: The term vocabulary and postings lists 24 / 62
Page 89
Recap Documents Terms Skip pointers Phrase queries
Other cases of “no whitespace”
Compounds in Dutch, German, Swedish
Schutze: The term vocabulary and postings lists 25 / 62
Page 90
Recap Documents Terms Skip pointers Phrase queries
Other cases of “no whitespace”
Compounds in Dutch, German, Swedish
Computerlinguistik → Computer + Linguistik
Schutze: The term vocabulary and postings lists 25 / 62
Page 91
Recap Documents Terms Skip pointers Phrase queries
Other cases of “no whitespace”
Compounds in Dutch, German, Swedish
Computerlinguistik → Computer + Linguistik
Lebensversicherungsgesellschaftsangestellter
Schutze: The term vocabulary and postings lists 25 / 62
Page 92
Recap Documents Terms Skip pointers Phrase queries
Other cases of “no whitespace”
Compounds in Dutch, German, Swedish
Computerlinguistik → Computer + Linguistik
Lebensversicherungsgesellschaftsangestellter
→ leben + versicherung + gesellschaft + angestellter
Schutze: The term vocabulary and postings lists 25 / 62
Page 93
Recap Documents Terms Skip pointers Phrase queries
Other cases of “no whitespace”
Compounds in Dutch, German, Swedish
Computerlinguistik → Computer + Linguistik
Lebensversicherungsgesellschaftsangestellter
→ leben + versicherung + gesellschaft + angestellter
Inuit: tusaatsiarunnanngittualuujunga (I can’t hear very well.)
Schutze: The term vocabulary and postings lists 25 / 62
Page 94
Recap Documents Terms Skip pointers Phrase queries
Other cases of “no whitespace”
Compounds in Dutch, German, Swedish
Computerlinguistik → Computer + Linguistik
Lebensversicherungsgesellschaftsangestellter
→ leben + versicherung + gesellschaft + angestellter
Inuit: tusaatsiarunnanngittualuujunga (I can’t hear very well.)
Many other languages with segmentation difficulties: Finnish,Urdu, . . .
Schutze: The term vocabulary and postings lists 25 / 62
Page 95
Recap Documents Terms Skip pointers Phrase queries
Japanese
������������ ����������������
����� !" !$#�%��'(&*),-+./0*�
2�134678',95�:;:=�><?@BCA�+ED
795�:;:=*GH)IF):�J*K,MLN?OP�RQ
T�S�VUUXWY'[ZN?*�,]^;_\,�`4a,c
;b�ef)gUhiU+?dNjlmkn�:Bp��oN6,
rUsqtu'wvx*Ry{zi}'~����L?@B
Schutze: The term vocabulary and postings lists 26 / 62
Page 96
Recap Documents Terms Skip pointers Phrase queries
Japanese
|������������������������������
����� ¡¢ ¡£¤�¥��¦§¨©�ª«¬®¯°©��
±�²³´µ¶·¦«¸¹�º»º¼�½¾�¿ÀÁÂÃ�ÄÅ
¶¸¹�º»º¼©ÆǪÈÉ�ªº�Ê©Ë«ÌÍοÏÐ�ÑÒ
Ó�Ô�ÕÖÖ×ØÙ¦ÚÛο©�«ÜÝ»Þß«�à´á«â
»ã�äåªæÖçèÖ¿éÎêëìíî�ºÁï���ðε«
ñÖòóôõ¦ö÷ø©Ñùúûèü¦ý��þÿÍ¿ÀÁ
4 different “alphabets”: Chinese characters, hiragana syllabary forinflectional endings and function words, katakana syllabary fortranscription of foreign words and other uses, and latin. No spaces(as in Chinese).
Schutze: The term vocabulary and postings lists 26 / 62
Page 97
Recap Documents Terms Skip pointers Phrase queries
Japanese
������������ ����������������
����� !" !$#�%��'(&*),-+./0*�
2�134678',95�:;:=�><?@BCA�+ED
795�:;:=*GH)IF):�J*K,MLN?OP�RQ
T�S�VUUXWY'[ZN?*�,]^;_\,�`4a,c
;b�ef)gUhiU+?dNjlmkn�:Bp��oN6,
rUsqtu'wvx*Ry{zi}'~����L?@B
4 different “alphabets”: Chinese characters, hiragana syllabary forinflectional endings and function words, katakana syllabary fortranscription of foreign words and other uses, and latin. No spaces(as in Chinese).End user can express query entirely in hiragana!
Schutze: The term vocabulary and postings lists 26 / 62
Page 98
Recap Documents Terms Skip pointers Phrase queries
Arabic script
ك ت ا ب ⇐ آ��ب un b ā t i k
/kitābun/ ‘a book’
Schutze: The term vocabulary and postings lists 27 / 62
Page 99
Recap Documents Terms Skip pointers Phrase queries
Arabic script: Bidirectionality
�ل ا������132 ��� 1962ا���� ا��ا�� �� ��� �� . #"!" ! ا�
← → ← → ← START
‘Algeria achieved its independence in 1962 after 132 years of French occupation.’
Schutze: The term vocabulary and postings lists 28 / 62
Page 100
Recap Documents Terms Skip pointers Phrase queries
Arabic script: Bidirectionality
�ل ا������132 ��� 1962ا���� ا��ا�� �� ��� �� . #"!" ! ا�
← → ← → ← START
‘Algeria achieved its independence in 1962 after 132 years of French occupation.’
Bidirectionality is not a problem if text is coded in Unicode.
Schutze: The term vocabulary and postings lists 28 / 62
Page 101
Recap Documents Terms Skip pointers Phrase queries
Accents and diacritics
Accents: resume vs. resume (simple omission of accent)
Schutze: The term vocabulary and postings lists 29 / 62
Page 102
Recap Documents Terms Skip pointers Phrase queries
Accents and diacritics
Accents: resume vs. resume (simple omission of accent)
Umlauts: Universitat vs. Universitaet (substitution withspecial letter sequence “ae”)
Schutze: The term vocabulary and postings lists 29 / 62
Page 103
Recap Documents Terms Skip pointers Phrase queries
Accents and diacritics
Accents: resume vs. resume (simple omission of accent)
Umlauts: Universitat vs. Universitaet (substitution withspecial letter sequence “ae”)
Most important criterion: How are users likely to write theirqueries for these words?
Schutze: The term vocabulary and postings lists 29 / 62
Page 104
Recap Documents Terms Skip pointers Phrase queries
Accents and diacritics
Accents: resume vs. resume (simple omission of accent)
Umlauts: Universitat vs. Universitaet (substitution withspecial letter sequence “ae”)
Most important criterion: How are users likely to write theirqueries for these words?
Even in languages that standardly have accents, users oftendo not type them. (Polish?)
Schutze: The term vocabulary and postings lists 29 / 62
Page 105
Recap Documents Terms Skip pointers Phrase queries
Outline
1 Recap
2 Documents
3 TermsGeneral + Non-EnglishEnglish
4 Skip pointers
5 Phrase queries
Schutze: The term vocabulary and postings lists 30 / 62
Page 106
Recap Documents Terms Skip pointers Phrase queries
Case folding
Reduce all letters to lower case
Schutze: The term vocabulary and postings lists 31 / 62
Page 107
Recap Documents Terms Skip pointers Phrase queries
Case folding
Reduce all letters to lower case
Even though case can be semantically meaningful
Schutze: The term vocabulary and postings lists 31 / 62
Page 108
Recap Documents Terms Skip pointers Phrase queries
Case folding
Reduce all letters to lower case
Even though case can be semantically meaningful
capitalized words in mid-sentence
Schutze: The term vocabulary and postings lists 31 / 62
Page 109
Recap Documents Terms Skip pointers Phrase queries
Case folding
Reduce all letters to lower case
Even though case can be semantically meaningful
capitalized words in mid-sentenceMIT vs. mit
Schutze: The term vocabulary and postings lists 31 / 62
Page 110
Recap Documents Terms Skip pointers Phrase queries
Case folding
Reduce all letters to lower case
Even though case can be semantically meaningful
capitalized words in mid-sentenceMIT vs. mitFed vs. fed
Schutze: The term vocabulary and postings lists 31 / 62
Page 111
Recap Documents Terms Skip pointers Phrase queries
Case folding
Reduce all letters to lower case
Even though case can be semantically meaningful
capitalized words in mid-sentenceMIT vs. mitFed vs. fed. . .
Schutze: The term vocabulary and postings lists 31 / 62
Page 112
Recap Documents Terms Skip pointers Phrase queries
Case folding
Reduce all letters to lower case
Even though case can be semantically meaningful
capitalized words in mid-sentenceMIT vs. mitFed vs. fed. . .
It’s often best to lowercase everything since users will uselowercase regardless of correct capitalization.
Schutze: The term vocabulary and postings lists 31 / 62
Page 113
Recap Documents Terms Skip pointers Phrase queries
Stop words
stop words = extremely common words which would appearto be of little value in helping select documents matching auser need
Schutze: The term vocabulary and postings lists 32 / 62
Page 114
Recap Documents Terms Skip pointers Phrase queries
Stop words
stop words = extremely common words which would appearto be of little value in helping select documents matching auser need
Examples: a, an, and, are, as, at, be, by, for, from, has, he, in,
is, it, its, of, on, that, the, to, was, were, will, with
Schutze: The term vocabulary and postings lists 32 / 62
Page 115
Recap Documents Terms Skip pointers Phrase queries
Stop words
stop words = extremely common words which would appearto be of little value in helping select documents matching auser need
Examples: a, an, and, are, as, at, be, by, for, from, has, he, in,
is, it, its, of, on, that, the, to, was, were, will, with
Stop word elimination used to be standard in older IR systems.
Schutze: The term vocabulary and postings lists 32 / 62
Page 116
Recap Documents Terms Skip pointers Phrase queries
Stop words
stop words = extremely common words which would appearto be of little value in helping select documents matching auser need
Examples: a, an, and, are, as, at, be, by, for, from, has, he, in,
is, it, its, of, on, that, the, to, was, were, will, with
Stop word elimination used to be standard in older IR systems.
But you need stop words for phrase queries, e.g. “King ofDenmark”
Schutze: The term vocabulary and postings lists 32 / 62
Page 117
Recap Documents Terms Skip pointers Phrase queries
Stop words
stop words = extremely common words which would appearto be of little value in helping select documents matching auser need
Examples: a, an, and, are, as, at, be, by, for, from, has, he, in,
is, it, its, of, on, that, the, to, was, were, will, with
Stop word elimination used to be standard in older IR systems.
But you need stop words for phrase queries, e.g. “King ofDenmark”
Most web search engines index stop words.
Schutze: The term vocabulary and postings lists 32 / 62
Page 118
Recap Documents Terms Skip pointers Phrase queries
More equivalence classing
Soundex: IIR 3 (phonetic equivalence, Muller = Mueller)
Schutze: The term vocabulary and postings lists 33 / 62
Page 119
Recap Documents Terms Skip pointers Phrase queries
More equivalence classing
Soundex: IIR 3 (phonetic equivalence, Muller = Mueller)
Thesauri: IIR 9 (semantic equivalence, car = automobile)
Schutze: The term vocabulary and postings lists 33 / 62
Page 120
Recap Documents Terms Skip pointers Phrase queries
Lemmatization
Reduce inflectional/variant forms to base form
Schutze: The term vocabulary and postings lists 34 / 62
Page 121
Recap Documents Terms Skip pointers Phrase queries
Lemmatization
Reduce inflectional/variant forms to base form
Example: am, are, is → be
Schutze: The term vocabulary and postings lists 34 / 62
Page 122
Recap Documents Terms Skip pointers Phrase queries
Lemmatization
Reduce inflectional/variant forms to base form
Example: am, are, is → be
Example: car, cars, car’s, cars’ → car
Schutze: The term vocabulary and postings lists 34 / 62
Page 123
Recap Documents Terms Skip pointers Phrase queries
Lemmatization
Reduce inflectional/variant forms to base form
Example: am, are, is → be
Example: car, cars, car’s, cars’ → car
Example: the boy’s cars are different colors → the boy car be
different color
Schutze: The term vocabulary and postings lists 34 / 62
Page 124
Recap Documents Terms Skip pointers Phrase queries
Lemmatization
Reduce inflectional/variant forms to base form
Example: am, are, is → be
Example: car, cars, car’s, cars’ → car
Example: the boy’s cars are different colors → the boy car be
different color
Lemmatization implies doing “proper” reduction to dictionaryheadword form (the lemma).
Schutze: The term vocabulary and postings lists 34 / 62
Page 125
Recap Documents Terms Skip pointers Phrase queries
Lemmatization
Reduce inflectional/variant forms to base form
Example: am, are, is → be
Example: car, cars, car’s, cars’ → car
Example: the boy’s cars are different colors → the boy car be
different color
Lemmatization implies doing “proper” reduction to dictionaryheadword form (the lemma).
Inflectional morphology (cutting → cut) vs. derivationalmorphology (destruction → destroy)
Schutze: The term vocabulary and postings lists 34 / 62
Page 126
Recap Documents Terms Skip pointers Phrase queries
Stemming
Definition of stemming: Crude heuristic process that chops offthe ends of words in the hope of achieving what “principled”lemmatization attempts to do with a lot of linguisticknowledge.
Schutze: The term vocabulary and postings lists 35 / 62
Page 127
Recap Documents Terms Skip pointers Phrase queries
Stemming
Definition of stemming: Crude heuristic process that chops offthe ends of words in the hope of achieving what “principled”lemmatization attempts to do with a lot of linguisticknowledge.
Language dependent
Schutze: The term vocabulary and postings lists 35 / 62
Page 128
Recap Documents Terms Skip pointers Phrase queries
Stemming
Definition of stemming: Crude heuristic process that chops offthe ends of words in the hope of achieving what “principled”lemmatization attempts to do with a lot of linguisticknowledge.
Language dependent
Often inflectional and derivational
Schutze: The term vocabulary and postings lists 35 / 62
Page 129
Recap Documents Terms Skip pointers Phrase queries
Stemming
Definition of stemming: Crude heuristic process that chops offthe ends of words in the hope of achieving what “principled”lemmatization attempts to do with a lot of linguisticknowledge.
Language dependent
Often inflectional and derivational
Example for derivational: automate, automatic, automation
all reduce to automat
Schutze: The term vocabulary and postings lists 35 / 62
Page 130
Recap Documents Terms Skip pointers Phrase queries
Porter algorithm
Most common algorithm for stemming English
Schutze: The term vocabulary and postings lists 36 / 62
Page 131
Recap Documents Terms Skip pointers Phrase queries
Porter algorithm
Most common algorithm for stemming English
Results suggest that it is at least as good as other stemmingoptions
Schutze: The term vocabulary and postings lists 36 / 62
Page 132
Recap Documents Terms Skip pointers Phrase queries
Porter algorithm
Most common algorithm for stemming English
Results suggest that it is at least as good as other stemmingoptions
Conventions + 5 phases of reductions
Schutze: The term vocabulary and postings lists 36 / 62
Page 133
Recap Documents Terms Skip pointers Phrase queries
Porter algorithm
Most common algorithm for stemming English
Results suggest that it is at least as good as other stemmingoptions
Conventions + 5 phases of reductions
Phases are applied sequentially
Schutze: The term vocabulary and postings lists 36 / 62
Page 134
Recap Documents Terms Skip pointers Phrase queries
Porter algorithm
Most common algorithm for stemming English
Results suggest that it is at least as good as other stemmingoptions
Conventions + 5 phases of reductions
Phases are applied sequentially
Each phase consists of a set of commands.
Schutze: The term vocabulary and postings lists 36 / 62
Page 135
Recap Documents Terms Skip pointers Phrase queries
Porter algorithm
Most common algorithm for stemming English
Results suggest that it is at least as good as other stemmingoptions
Conventions + 5 phases of reductions
Phases are applied sequentially
Each phase consists of a set of commands.
Sample command: Delete final ement if what remains is longerthan 1 character
Schutze: The term vocabulary and postings lists 36 / 62
Page 136
Recap Documents Terms Skip pointers Phrase queries
Porter algorithm
Most common algorithm for stemming English
Results suggest that it is at least as good as other stemmingoptions
Conventions + 5 phases of reductions
Phases are applied sequentially
Each phase consists of a set of commands.
Sample command: Delete final ement if what remains is longerthan 1 characterreplacement → replac
Schutze: The term vocabulary and postings lists 36 / 62
Page 137
Recap Documents Terms Skip pointers Phrase queries
Porter algorithm
Most common algorithm for stemming English
Results suggest that it is at least as good as other stemmingoptions
Conventions + 5 phases of reductions
Phases are applied sequentially
Each phase consists of a set of commands.
Sample command: Delete final ement if what remains is longerthan 1 characterreplacement → replaccement → cement
Schutze: The term vocabulary and postings lists 36 / 62
Page 138
Recap Documents Terms Skip pointers Phrase queries
Porter algorithm
Most common algorithm for stemming English
Results suggest that it is at least as good as other stemmingoptions
Conventions + 5 phases of reductions
Phases are applied sequentially
Each phase consists of a set of commands.
Sample command: Delete final ement if what remains is longerthan 1 characterreplacement → replaccement → cement
Sample convention: Of the rules in a compound command,select the one that applies to the longest suffix.
Schutze: The term vocabulary and postings lists 36 / 62
Page 139
Recap Documents Terms Skip pointers Phrase queries
Porter stemmer: A few rules
Rule Example
SSES → SS caresses → caressIES → I ponies → poniSS → SS caress → caressS → cats → cat
Schutze: The term vocabulary and postings lists 37 / 62
Page 140
Recap Documents Terms Skip pointers Phrase queries
Three stemmers: A comparison
Sample text: Such an analysis can reveal features that are not easilyvisible from the variations in the individual genes and canlead to a picture of expression that is more biologicallytransparent and accessible to interpretation
Porter stemmer: such an analysi can reveal featur that ar not easili visiblfrom the variat in the individu gene and can lead to a picturof express that is more biolog transpar and access to interpret
Lovins stemmer: such an analys can reve featur that ar not eas vis from thvari in th individu gen and can lead to a pictur of expres thatis mor biolog transpar and acces to interpres
Paice stemmer: such an analys can rev feat that are not easy vis from thevary in the individ gen and can lead to a pict of express thatis mor biolog transp and access to interpret
Schutze: The term vocabulary and postings lists 38 / 62
Page 141
Recap Documents Terms Skip pointers Phrase queries
Does stemming improve effectiveness?
In general, stemming increases effectiveness for some queries,and decreases effectiveness for others.
Schutze: The term vocabulary and postings lists 39 / 62
Page 142
Recap Documents Terms Skip pointers Phrase queries
Does stemming improve effectiveness?
In general, stemming increases effectiveness for some queries,and decreases effectiveness for others.
Queries where stemming is likely to help: [tartan sweaters],[sightseeing tour san francisco]
Schutze: The term vocabulary and postings lists 39 / 62
Page 143
Recap Documents Terms Skip pointers Phrase queries
Does stemming improve effectiveness?
In general, stemming increases effectiveness for some queries,and decreases effectiveness for others.
Queries where stemming is likely to help: [tartan sweaters],[sightseeing tour san francisco]
(equivalence classes: {sweater,sweaters}, {tour,tours})
Schutze: The term vocabulary and postings lists 39 / 62
Page 144
Recap Documents Terms Skip pointers Phrase queries
Does stemming improve effectiveness?
In general, stemming increases effectiveness for some queries,and decreases effectiveness for others.
Queries where stemming is likely to help: [tartan sweaters],[sightseeing tour san francisco]
(equivalence classes: {sweater,sweaters}, {tour,tours})Porter Stemmer equivalence class oper contains all of operate
operating operates operation operative operatives operational.
Schutze: The term vocabulary and postings lists 39 / 62
Page 145
Recap Documents Terms Skip pointers Phrase queries
Does stemming improve effectiveness?
In general, stemming increases effectiveness for some queries,and decreases effectiveness for others.
Queries where stemming is likely to help: [tartan sweaters],[sightseeing tour san francisco]
(equivalence classes: {sweater,sweaters}, {tour,tours})Porter Stemmer equivalence class oper contains all of operate
operating operates operation operative operatives operational.
Queries where stemming hurts: [operational AND research],[operating AND system], [operative AND dentistry]
Schutze: The term vocabulary and postings lists 39 / 62
Page 146
Recap Documents Terms Skip pointers Phrase queries
Exercise: What does Google do?
Stop words
Normalization
Tokenization
Lowercasing
Stemming
Non-latin alphabets
Umlauts
Compounds
Numbers
Schutze: The term vocabulary and postings lists 40 / 62
Page 147
Recap Documents Terms Skip pointers Phrase queries
Outline
1 Recap
2 Documents
3 TermsGeneral + Non-EnglishEnglish
4 Skip pointers
5 Phrase queries
Schutze: The term vocabulary and postings lists 41 / 62
Page 148
Recap Documents Terms Skip pointers Phrase queries
Recall basic intersection algorithm
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒
Schutze: The term vocabulary and postings lists 42 / 62
Page 149
Recap Documents Terms Skip pointers Phrase queries
Recall basic intersection algorithm
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒
Schutze: The term vocabulary and postings lists 42 / 62
Page 150
Recap Documents Terms Skip pointers Phrase queries
Recall basic intersection algorithm
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒
Schutze: The term vocabulary and postings lists 42 / 62
Page 151
Recap Documents Terms Skip pointers Phrase queries
Recall basic intersection algorithm
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒ 2
Schutze: The term vocabulary and postings lists 42 / 62
Page 152
Recap Documents Terms Skip pointers Phrase queries
Recall basic intersection algorithm
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒ 2
Schutze: The term vocabulary and postings lists 42 / 62
Page 153
Recap Documents Terms Skip pointers Phrase queries
Recall basic intersection algorithm
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒ 2
Schutze: The term vocabulary and postings lists 42 / 62
Page 154
Recap Documents Terms Skip pointers Phrase queries
Recall basic intersection algorithm
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒ 2
Schutze: The term vocabulary and postings lists 42 / 62
Page 155
Recap Documents Terms Skip pointers Phrase queries
Recall basic intersection algorithm
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒ 2 → 31
Schutze: The term vocabulary and postings lists 42 / 62
Page 156
Recap Documents Terms Skip pointers Phrase queries
Recall basic intersection algorithm
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒ 2 → 31
Schutze: The term vocabulary and postings lists 42 / 62
Page 157
Recap Documents Terms Skip pointers Phrase queries
Recall basic intersection algorithm
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒ 2 → 31
Schutze: The term vocabulary and postings lists 42 / 62
Page 158
Recap Documents Terms Skip pointers Phrase queries
Recall basic intersection algorithm
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒ 2 → 31
Schutze: The term vocabulary and postings lists 42 / 62
Page 159
Recap Documents Terms Skip pointers Phrase queries
Recall basic intersection algorithm
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒ 2 → 31
Schutze: The term vocabulary and postings lists 42 / 62
Page 160
Recap Documents Terms Skip pointers Phrase queries
Recall basic intersection algorithm
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒ 2 → 31
Linear in the length of the postings lists.
Schutze: The term vocabulary and postings lists 42 / 62
Page 161
Recap Documents Terms Skip pointers Phrase queries
Recall basic intersection algorithm
Brutus −→ 1 → 2 → 4 → 11 → 31 → 45 → 173 → 174
Calpurnia −→ 2 → 31 → 54 → 101
Intersection =⇒ 2 → 31
Linear in the length of the postings lists.
Can we do better?
Schutze: The term vocabulary and postings lists 42 / 62
Page 162
Recap Documents Terms Skip pointers Phrase queries
Skip pointers
Skip pointers allow us to skip postings that will not figure inthe search results.
Schutze: The term vocabulary and postings lists 43 / 62
Page 163
Recap Documents Terms Skip pointers Phrase queries
Skip pointers
Skip pointers allow us to skip postings that will not figure inthe search results.
This makes intersecting postings lists more efficient.
Schutze: The term vocabulary and postings lists 43 / 62
Page 164
Recap Documents Terms Skip pointers Phrase queries
Skip pointers
Skip pointers allow us to skip postings that will not figure inthe search results.
This makes intersecting postings lists more efficient.
Some postings lists contain several million entries – soefficiency can be an issue even if basic intersection is linear.
Schutze: The term vocabulary and postings lists 43 / 62
Page 165
Recap Documents Terms Skip pointers Phrase queries
Skip pointers
Skip pointers allow us to skip postings that will not figure inthe search results.
This makes intersecting postings lists more efficient.
Some postings lists contain several million entries – soefficiency can be an issue even if basic intersection is linear.
Where do we put skip pointers?
Schutze: The term vocabulary and postings lists 43 / 62
Page 166
Recap Documents Terms Skip pointers Phrase queries
Skip pointers
Skip pointers allow us to skip postings that will not figure inthe search results.
This makes intersecting postings lists more efficient.
Some postings lists contain several million entries – soefficiency can be an issue even if basic intersection is linear.
Where do we put skip pointers?
How do we make sure insection results are correct?
Schutze: The term vocabulary and postings lists 43 / 62
Page 167
Recap Documents Terms Skip pointers Phrase queries
Basic idea
Brutus
Caesar
34
2 4 8
128
34 35 64 128
8
1 2 3 5
31
8 17 21 31 75 81 84 89 92
Schutze: The term vocabulary and postings lists 44 / 62
Page 168
Recap Documents Terms Skip pointers Phrase queries
Basic idea
Brutus
Caesar
34
2 4 8
128
34 35 64 128
8
1 2 3 5
31
8 17 21 31 75 81 84 89 92
Schutze: The term vocabulary and postings lists 44 / 62
Page 169
Recap Documents Terms Skip pointers Phrase queries
Basic idea
Brutus
Caesar
34
2 4 8
128
34 35 64 128
8
1 2 3 5
31
8 17 21 31 75 81 84 89 92
Schutze: The term vocabulary and postings lists 44 / 62
Page 170
Recap Documents Terms Skip pointers Phrase queries
Skip lists: Larger example
16 28 72
5 51 98
2 4 8 16 19 23 28 43
1 2 3 5 8 41 51 60 71
Brutus
Caesar
Schutze: The term vocabulary and postings lists 45 / 62
Page 171
Recap Documents Terms Skip pointers Phrase queries
Intersecting with skip pointers
IntersectWithSkips(p1, p2)1 answer ← 〈 〉2 while p1 6= nil and p2 6= nil
3 do if docID(p1) = docID(p2)4 then Add(answer , docID(p1))5 p1 ← next(p1)6 p2 ← next(p2)7 else if docID(p1) < docID(p2)8 then if hasSkip(p1) and (docID(skip(p1)) ≤ docID(p2))9 then while hasSkip(p1) and (docID(skip(p1)) ≤ docID(p2))10 do p1 ← skip(p1)11 else p1 ← next(p1)12 else if hasSkip(p2) and (docID(skip(p2)) ≤ docID(p1))13 then while hasSkip(p2) and (docID(skip(p2)) ≤ docID(p1))14 do p2 ← skip(p2)15 else p2 ← next(p2)16 return answer
Schutze: The term vocabulary and postings lists 46 / 62
Page 172
Recap Documents Terms Skip pointers Phrase queries
Where do we place skips?
Tradeoff: number of items skipped vs. frequency skip can betaken
Schutze: The term vocabulary and postings lists 47 / 62
Page 173
Recap Documents Terms Skip pointers Phrase queries
Where do we place skips?
Tradeoff: number of items skipped vs. frequency skip can betaken
More skips: Each skip pointer skips only a few items, but wecan frequently use it.
Schutze: The term vocabulary and postings lists 47 / 62
Page 174
Recap Documents Terms Skip pointers Phrase queries
Where do we place skips?
Tradeoff: number of items skipped vs. frequency skip can betaken
More skips: Each skip pointer skips only a few items, but wecan frequently use it.
Fewer skips: Each skip pointer skips many items, but we cannot use it very often.
Schutze: The term vocabulary and postings lists 47 / 62
Page 175
Recap Documents Terms Skip pointers Phrase queries
Where do we place skips? (cont)
Simple heuristic: for postings list of length P , use√P
evenly-spaced skip pointers.
Schutze: The term vocabulary and postings lists 48 / 62
Page 176
Recap Documents Terms Skip pointers Phrase queries
Where do we place skips? (cont)
Simple heuristic: for postings list of length P , use√P
evenly-spaced skip pointers.
This ignores the distribution of query terms.
Schutze: The term vocabulary and postings lists 48 / 62
Page 177
Recap Documents Terms Skip pointers Phrase queries
Where do we place skips? (cont)
Simple heuristic: for postings list of length P , use√P
evenly-spaced skip pointers.
This ignores the distribution of query terms.
Easy if the index is static; harder in a dynamic environmentbecause of updates.
Schutze: The term vocabulary and postings lists 48 / 62
Page 178
Recap Documents Terms Skip pointers Phrase queries
Where do we place skips? (cont)
Simple heuristic: for postings list of length P , use√P
evenly-spaced skip pointers.
This ignores the distribution of query terms.
Easy if the index is static; harder in a dynamic environmentbecause of updates.
How much do skip pointers help?
Schutze: The term vocabulary and postings lists 48 / 62
Page 179
Recap Documents Terms Skip pointers Phrase queries
Where do we place skips? (cont)
Simple heuristic: for postings list of length P , use√P
evenly-spaced skip pointers.
This ignores the distribution of query terms.
Easy if the index is static; harder in a dynamic environmentbecause of updates.
How much do skip pointers help?
They used to help a lot.
Schutze: The term vocabulary and postings lists 48 / 62
Page 180
Recap Documents Terms Skip pointers Phrase queries
Where do we place skips? (cont)
Simple heuristic: for postings list of length P , use√P
evenly-spaced skip pointers.
This ignores the distribution of query terms.
Easy if the index is static; harder in a dynamic environmentbecause of updates.
How much do skip pointers help?
They used to help a lot.
With today’s fast CPUs, they don’t help that much anymore.
Schutze: The term vocabulary and postings lists 48 / 62
Page 181
Recap Documents Terms Skip pointers Phrase queries
Outline
1 Recap
2 Documents
3 TermsGeneral + Non-EnglishEnglish
4 Skip pointers
5 Phrase queries
Schutze: The term vocabulary and postings lists 49 / 62
Page 182
Recap Documents Terms Skip pointers Phrase queries
Phrase queries
We want to answer a query such as [stanford university] – as aphrase.
Schutze: The term vocabulary and postings lists 50 / 62
Page 183
Recap Documents Terms Skip pointers Phrase queries
Phrase queries
We want to answer a query such as [stanford university] – as aphrase.
Thus The inventor Stanford Ovshinsky never went to
university should not be a match.
Schutze: The term vocabulary and postings lists 50 / 62
Page 184
Recap Documents Terms Skip pointers Phrase queries
Phrase queries
We want to answer a query such as [stanford university] – as aphrase.
Thus The inventor Stanford Ovshinsky never went to
university should not be a match.
The concept of phrase query has proven easily understood byusers.
Schutze: The term vocabulary and postings lists 50 / 62
Page 185
Recap Documents Terms Skip pointers Phrase queries
Phrase queries
We want to answer a query such as [stanford university] – as aphrase.
Thus The inventor Stanford Ovshinsky never went to
university should not be a match.
The concept of phrase query has proven easily understood byusers.
Significant part of web queries are phrase queries (explicitlyentered or interpreted as such)
Schutze: The term vocabulary and postings lists 50 / 62
Page 186
Recap Documents Terms Skip pointers Phrase queries
Phrase queries
We want to answer a query such as [stanford university] – as aphrase.
Thus The inventor Stanford Ovshinsky never went to
university should not be a match.
The concept of phrase query has proven easily understood byusers.
Significant part of web queries are phrase queries (explicitlyentered or interpreted as such)
Consequence for inverted index: it no longer suffices to storedocIDs in postings lists.
Schutze: The term vocabulary and postings lists 50 / 62
Page 187
Recap Documents Terms Skip pointers Phrase queries
Phrase queries
We want to answer a query such as [stanford university] – as aphrase.
Thus The inventor Stanford Ovshinsky never went to
university should not be a match.
The concept of phrase query has proven easily understood byusers.
Significant part of web queries are phrase queries (explicitlyentered or interpreted as such)
Consequence for inverted index: it no longer suffices to storedocIDs in postings lists.
Two ways of extending the inverted index:
Schutze: The term vocabulary and postings lists 50 / 62
Page 188
Recap Documents Terms Skip pointers Phrase queries
Phrase queries
We want to answer a query such as [stanford university] – as aphrase.
Thus The inventor Stanford Ovshinsky never went to
university should not be a match.
The concept of phrase query has proven easily understood byusers.
Significant part of web queries are phrase queries (explicitlyentered or interpreted as such)
Consequence for inverted index: it no longer suffices to storedocIDs in postings lists.
Two ways of extending the inverted index:
biword index
Schutze: The term vocabulary and postings lists 50 / 62
Page 189
Recap Documents Terms Skip pointers Phrase queries
Phrase queries
We want to answer a query such as [stanford university] – as aphrase.
Thus The inventor Stanford Ovshinsky never went to
university should not be a match.
The concept of phrase query has proven easily understood byusers.
Significant part of web queries are phrase queries (explicitlyentered or interpreted as such)
Consequence for inverted index: it no longer suffices to storedocIDs in postings lists.
Two ways of extending the inverted index:
biword indexpositional index
Schutze: The term vocabulary and postings lists 50 / 62
Page 190
Recap Documents Terms Skip pointers Phrase queries
Biword indexes
Index every consecutive pair of terms in the text as a phrase.
Schutze: The term vocabulary and postings lists 51 / 62
Page 191
Recap Documents Terms Skip pointers Phrase queries
Biword indexes
Index every consecutive pair of terms in the text as a phrase.
For example, Friends, Romans, Countrymen would generatetwo biwords: “friends romans” and “romans countrymen”
Schutze: The term vocabulary and postings lists 51 / 62
Page 192
Recap Documents Terms Skip pointers Phrase queries
Biword indexes
Index every consecutive pair of terms in the text as a phrase.
For example, Friends, Romans, Countrymen would generatetwo biwords: “friends romans” and “romans countrymen”
Each of these biwords is now a vocabulary term.
Schutze: The term vocabulary and postings lists 51 / 62
Page 193
Recap Documents Terms Skip pointers Phrase queries
Biword indexes
Index every consecutive pair of terms in the text as a phrase.
For example, Friends, Romans, Countrymen would generatetwo biwords: “friends romans” and “romans countrymen”
Each of these biwords is now a vocabulary term.
Two-word phrases can now easily be answered.
Schutze: The term vocabulary and postings lists 51 / 62
Page 194
Recap Documents Terms Skip pointers Phrase queries
Longer phrase queries
A long phrase like “stanford university palo alto” can berepresented as the Boolean query “stanford university”
AND “university palo” AND “palo alto”
Schutze: The term vocabulary and postings lists 52 / 62
Page 195
Recap Documents Terms Skip pointers Phrase queries
Longer phrase queries
A long phrase like “stanford university palo alto” can berepresented as the Boolean query “stanford university”
AND “university palo” AND “palo alto”
We need to do post-filtering of hits to identify subset thatactually contains the 4-word phrase.
Schutze: The term vocabulary and postings lists 52 / 62
Page 196
Recap Documents Terms Skip pointers Phrase queries
Issues with biword indexes
Why are biword indexes rarely used?
Schutze: The term vocabulary and postings lists 53 / 62
Page 197
Recap Documents Terms Skip pointers Phrase queries
Issues with biword indexes
Why are biword indexes rarely used?
False positives, as noted above
Schutze: The term vocabulary and postings lists 53 / 62
Page 198
Recap Documents Terms Skip pointers Phrase queries
Issues with biword indexes
Why are biword indexes rarely used?
False positives, as noted above
Index blowup due to very large term vocabulary
Schutze: The term vocabulary and postings lists 53 / 62
Page 199
Recap Documents Terms Skip pointers Phrase queries
Positional indexes
Schutze: The term vocabulary and postings lists 54 / 62
Page 200
Recap Documents Terms Skip pointers Phrase queries
Positional indexes
Positional indexes are a more efficient alternative to biwordindexes.
Schutze: The term vocabulary and postings lists 54 / 62
Page 201
Recap Documents Terms Skip pointers Phrase queries
Positional indexes
Positional indexes are a more efficient alternative to biwordindexes.
Postings lists in a nonpositional index: each posting is just adocID
Schutze: The term vocabulary and postings lists 54 / 62
Page 202
Recap Documents Terms Skip pointers Phrase queries
Positional indexes
Positional indexes are a more efficient alternative to biwordindexes.
Postings lists in a nonpositional index: each posting is just adocID
Postings lists in a positional index: each posting is a docIDand a list of positions
Schutze: The term vocabulary and postings lists 54 / 62
Page 203
Recap Documents Terms Skip pointers Phrase queries
Positional indexes: Example
Schutze: The term vocabulary and postings lists 55 / 62
Page 204
Recap Documents Terms Skip pointers Phrase queries
Positional indexes: Example
Query: “to1 be2 or3 not4 to5 be6”
Schutze: The term vocabulary and postings lists 55 / 62
Page 205
Recap Documents Terms Skip pointers Phrase queries
Positional indexes: Example
Query: “to1 be2 or3 not4 to5 be6”
to, 993427:〈 1: 〈7, 18, 33, 72, 86, 231〉;2: 〈1, 17, 74, 222, 255〉;4: 〈8, 16, 190, 429, 433〉;5: 〈363, 367〉;7: 〈13, 23, 191〉; . . . 〉
be, 178239:〈 1: 〈17, 25〉;4: 〈17, 191, 291, 430, 434〉;5: 〈14, 19, 101〉; . . . 〉
Schutze: The term vocabulary and postings lists 55 / 62
Page 206
Recap Documents Terms Skip pointers Phrase queries
Positional indexes: Example
Query: “to1 be2 or3 not4 to5 be6”
to, 993427:〈 1: 〈7, 18, 33, 72, 86, 231〉;2: 〈1, 17, 74, 222, 255〉;4: 〈8, 16, 190, 429, 433〉;5: 〈363, 367〉;7: 〈13, 23, 191〉; . . . 〉
be, 178239:〈 1: 〈17, 25〉;4: 〈17, 191, 291, 430, 434〉;5: 〈14, 19, 101〉; . . . 〉
Schutze: The term vocabulary and postings lists 55 / 62
Page 207
Recap Documents Terms Skip pointers Phrase queries
Positional indexes: Example
Query: “to1 be2 or3 not4 to5 be6”
to, 993427:〈 1: 〈7, 18, 33, 72, 86, 231〉;2: 〈1, 17, 74, 222, 255〉;4: 〈8, 16, 190, 429, 433〉;5: 〈363, 367〉;7: 〈13, 23, 191〉; . . . 〉
be, 178239:〈 1: 〈17, 25〉;4: 〈17, 191, 291, 430, 434〉;5: 〈14, 19, 101〉; . . . 〉
Schutze: The term vocabulary and postings lists 55 / 62
Page 208
Recap Documents Terms Skip pointers Phrase queries
Positional indexes: Example
Query: “to1 be2 or3 not4 to5 be6”
to, 993427:〈 1: 〈7, 18, 33, 72, 86, 231〉;2: 〈1, 17, 74, 222, 255〉;4: 〈8, 16, 190, 429, 433〉;5: 〈363, 367〉;7: 〈13, 23, 191〉; . . . 〉
be, 178239:〈 1: 〈17, 25〉;4: 〈17, 191, 291, 430, 434〉;5: 〈14, 19, 101〉; . . . 〉
Schutze: The term vocabulary and postings lists 55 / 62
Page 209
Recap Documents Terms Skip pointers Phrase queries
Positional indexes: Example
Query: “to1 be2 or3 not4 to5 be6”
to, 993427:〈 1: 〈7, 18, 33, 72, 86, 231〉;2: 〈1, 17, 74, 222, 255〉;4: 〈8, 16, 190, 429, 433〉;5: 〈363, 367〉;7: 〈13, 23, 191〉; . . . 〉
be, 178239:〈 1: 〈17, 25〉;4: 〈17, 191, 291, 430, 434〉;5: 〈14, 19, 101〉; . . . 〉
Schutze: The term vocabulary and postings lists 55 / 62
Page 210
Recap Documents Terms Skip pointers Phrase queries
Positional indexes: Example
Query: “to1 be2 or3 not4 to5 be6”
to, 993427:〈 1: 〈7, 18, 33, 72, 86, 231〉;2: 〈1, 17, 74, 222, 255〉;4: 〈8, 16, 190, 429, 433〉;5: 〈363, 367〉;7: 〈13, 23, 191〉; . . . 〉
be, 178239:〈 1: 〈17, 25〉;4: 〈17, 191, 291, 430, 434〉;5: 〈14, 19, 101〉; . . . 〉
Schutze: The term vocabulary and postings lists 55 / 62
Page 211
Recap Documents Terms Skip pointers Phrase queries
Positional indexes: Example
Query: “to1 be2 or3 not4 to5 be6”
to, 993427:〈 1: 〈7, 18, 33, 72, 86, 231〉;2: 〈1, 17, 74, 222, 255〉;4: 〈8, 16, 190, 429, 433〉;5: 〈363, 367〉;7: 〈13, 23, 191〉; . . . 〉
be, 178239:〈 1: 〈17, 25〉;4: 〈17, 191, 291, 430, 434〉;5: 〈14, 19, 101〉; . . . 〉
Schutze: The term vocabulary and postings lists 55 / 62
Page 212
Recap Documents Terms Skip pointers Phrase queries
Positional indexes: Example
Query: “to1 be2 or3 not4 to5 be6”
to, 993427:〈 1: 〈7, 18, 33, 72, 86, 231〉;2: 〈1, 17, 74, 222, 255〉;4: 〈8, 16, 190, 429, 433〉;5: 〈363, 367〉;7: 〈13, 23, 191〉; . . . 〉
be, 178239:〈 1: 〈17, 25〉;4: 〈17, 191, 291, 430, 434〉;5: 〈14, 19, 101〉; . . . 〉
Schutze: The term vocabulary and postings lists 55 / 62
Page 213
Recap Documents Terms Skip pointers Phrase queries
Positional indexes: Example
Query: “to1 be2 or3 not4 to5 be6”
to, 993427:〈 1: 〈7, 18, 33, 72, 86, 231〉;2: 〈1, 17, 74, 222, 255〉;4: 〈8, 16, 190, 429, 433〉;5: 〈363, 367〉;7: 〈13, 23, 191〉; . . . 〉
be, 178239:〈 1: 〈17, 25〉;4: 〈17, 191, 291, 430, 434〉;5: 〈14, 19, 101〉; . . . 〉
Schutze: The term vocabulary and postings lists 55 / 62
Page 214
Recap Documents Terms Skip pointers Phrase queries
Positional indexes: Example
Query: “to1 be2 or3 not4 to5 be6”
to, 993427:〈 1: 〈7, 18, 33, 72, 86, 231〉;2: 〈1, 17, 74, 222, 255〉;4: 〈8, 16, 190, 429, 433〉;5: 〈363, 367〉;7: 〈13, 23, 191〉; . . . 〉
be, 178239:〈 1: 〈17, 25〉;4: 〈17, 191, 291, 430, 434〉;5: 〈14, 19, 101〉; . . . 〉
Schutze: The term vocabulary and postings lists 55 / 62
Page 215
Recap Documents Terms Skip pointers Phrase queries
Positional indexes: Example
Query: “to1 be2 or3 not4 to5 be6”
to, 993427:〈 1: 〈7, 18, 33, 72, 86, 231〉;2: 〈1, 17, 74, 222, 255〉;4: 〈8, 16, 190, 429, 433〉;5: 〈363, 367〉;7: 〈13, 23, 191〉; . . . 〉
be, 178239:〈 1: 〈17, 25〉;4: 〈17, 191, 291, 430, 434〉;5: 〈14, 19, 101〉; . . . 〉
Schutze: The term vocabulary and postings lists 55 / 62
Page 216
Recap Documents Terms Skip pointers Phrase queries
Positional indexes: Example
Query: “to1 be2 or3 not4 to5 be6”
to, 993427:〈 1: 〈7, 18, 33, 72, 86, 231〉;2: 〈1, 17, 74, 222, 255〉;4: 〈8, 16, 190, 429, 433〉;5: 〈363, 367〉;7: 〈13, 23, 191〉; . . . 〉
be, 178239:〈 1: 〈17, 25〉;4: 〈17, 191, 291, 430, 434〉;5: 〈14, 19, 101〉; . . . 〉
Schutze: The term vocabulary and postings lists 55 / 62
Page 217
Recap Documents Terms Skip pointers Phrase queries
Positional indexes: Example
Query: “to1 be2 or3 not4 to5 be6”
to, 993427:〈 1: 〈7, 18, 33, 72, 86, 231〉;2: 〈1, 17, 74, 222, 255〉;4: 〈8, 16, 190, 429, 433〉;5: 〈363, 367〉;7: 〈13, 23, 191〉; . . . 〉
be, 178239:〈 1: 〈17, 25〉;4: 〈17, 191, 291, 430, 434〉;5: 〈14, 19, 101〉; . . . 〉
Schutze: The term vocabulary and postings lists 55 / 62
Page 218
Recap Documents Terms Skip pointers Phrase queries
Positional indexes: Example
Query: “to1 be2 or3 not4 to5 be6”
to, 993427:〈 1: 〈7, 18, 33, 72, 86, 231〉;2: 〈1, 17, 74, 222, 255〉;4: 〈8, 16, 190, 429, 433〉;5: 〈363, 367〉;7: 〈13, 23, 191〉; . . . 〉
be, 178239:〈 1: 〈17, 25〉;4: 〈17, 191, 291, 430, 434〉;5: 〈14, 19, 101〉; . . . 〉
Schutze: The term vocabulary and postings lists 55 / 62
Page 219
Recap Documents Terms Skip pointers Phrase queries
Positional indexes: Example
Query: “to1 be2 or3 not4 to5 be6”
to, 993427:〈 1: 〈7, 18, 33, 72, 86, 231〉;2: 〈1, 17, 74, 222, 255〉;4: 〈8, 16, 190, 429, 433〉;5: 〈363, 367〉;7: 〈13, 23, 191〉; . . . 〉
be, 178239:〈 1: 〈17, 25〉;4: 〈17, 191, 291, 430, 434〉;5: 〈14, 19, 101〉; . . . 〉
Schutze: The term vocabulary and postings lists 55 / 62
Page 220
Recap Documents Terms Skip pointers Phrase queries
Positional indexes: Example
Query: “to1 be2 or3 not4 to5 be6”
to, 993427:〈 1: 〈7, 18, 33, 72, 86, 231〉;2: 〈1, 17, 74, 222, 255〉;4: 〈8, 16, 190, 429, 433〉;5: 〈363, 367〉;7: 〈13, 23, 191〉; . . . 〉
be, 178239:〈 1: 〈17, 25〉;4: 〈17, 191, 291, 430, 434〉;5: 〈14, 19, 101〉; . . . 〉
Schutze: The term vocabulary and postings lists 55 / 62
Page 221
Recap Documents Terms Skip pointers Phrase queries
Positional indexes: Example
Query: “to1 be2 or3 not4 to5 be6”
to, 993427:〈 1: 〈7, 18, 33, 72, 86, 231〉;2: 〈1, 17, 74, 222, 255〉;4: 〈8, 16, 190, 429, 433〉;5: 〈363, 367〉;7: 〈13, 23, 191〉; . . . 〉
be, 178239:〈 1: 〈17, 25〉;4: 〈17, 191, 291, 430, 434〉;5: 〈14, 19, 101〉; . . . 〉
Document 4 is a match!
Schutze: The term vocabulary and postings lists 55 / 62
Page 222
Recap Documents Terms Skip pointers Phrase queries
Proximity search
We just saw how to use a positional index for phrase searches.
Schutze: The term vocabulary and postings lists 56 / 62
Page 223
Recap Documents Terms Skip pointers Phrase queries
Proximity search
We just saw how to use a positional index for phrase searches.
We can also use it for proximity search.
Schutze: The term vocabulary and postings lists 56 / 62
Page 224
Recap Documents Terms Skip pointers Phrase queries
Proximity search
We just saw how to use a positional index for phrase searches.
We can also use it for proximity search.
For example: employment /4 place
Schutze: The term vocabulary and postings lists 56 / 62
Page 225
Recap Documents Terms Skip pointers Phrase queries
Proximity search
We just saw how to use a positional index for phrase searches.
We can also use it for proximity search.
For example: employment /4 place
Find all documents that contain employment and place
within 4 words of each other.
Schutze: The term vocabulary and postings lists 56 / 62
Page 226
Recap Documents Terms Skip pointers Phrase queries
Proximity search
We just saw how to use a positional index for phrase searches.
We can also use it for proximity search.
For example: employment /4 place
Find all documents that contain employment and place
within 4 words of each other.
Employment agencies that place healthcare workers are seeing
growth is a hit.
Schutze: The term vocabulary and postings lists 56 / 62
Page 227
Recap Documents Terms Skip pointers Phrase queries
Proximity search
We just saw how to use a positional index for phrase searches.
We can also use it for proximity search.
For example: employment /4 place
Find all documents that contain employment and place
within 4 words of each other.
Employment agencies that place healthcare workers are seeing
growth is a hit.
Employment agencies that have learned to adapt now place
healthcare workers is not a hit.
Schutze: The term vocabulary and postings lists 56 / 62
Page 228
Recap Documents Terms Skip pointers Phrase queries
Proximity search
Use the positional index
Schutze: The term vocabulary and postings lists 57 / 62
Page 229
Recap Documents Terms Skip pointers Phrase queries
Proximity search
Use the positional index
Simplest algorithm: look at cross-product of positions of (i)employment in document and (ii) place in document
Schutze: The term vocabulary and postings lists 57 / 62
Page 230
Recap Documents Terms Skip pointers Phrase queries
Proximity search
Use the positional index
Simplest algorithm: look at cross-product of positions of (i)employment in document and (ii) place in document
Very inefficient for frequent words, especially stop words
Schutze: The term vocabulary and postings lists 57 / 62
Page 231
Recap Documents Terms Skip pointers Phrase queries
Proximity search
Use the positional index
Simplest algorithm: look at cross-product of positions of (i)employment in document and (ii) place in document
Very inefficient for frequent words, especially stop words
Note that we want to return the actual matching positions,not just a list of documents.
Schutze: The term vocabulary and postings lists 57 / 62
Page 232
Recap Documents Terms Skip pointers Phrase queries
Proximity search
Use the positional index
Simplest algorithm: look at cross-product of positions of (i)employment in document and (ii) place in document
Very inefficient for frequent words, especially stop words
Note that we want to return the actual matching positions,not just a list of documents.
This is important for dynamic summaries etc.
Schutze: The term vocabulary and postings lists 57 / 62
Page 233
Recap Documents Terms Skip pointers Phrase queries
“Proximity” intersection
PositionalIntersect(p1, p2, k)1 answer ← 〈 〉2 while p1 6= nil and p2 6= nil
3 do if docID(p1) = docID(p2)4 then l ← 〈 〉5 pp1 ← positions(p1)6 pp2 ← positions(p2)7 while pp1 6= nil
8 do while pp2 6= nil
9 do if |pos(pp1)− pos(pp2)| ≤ k
10 then Add(l , pos(pp2))11 else if pos(pp2) > pos(pp1)12 then break
13 pp2 ← next(pp2)14 while l 6= 〈 〉 and |l [0]− pos(pp1)| > k
15 do Delete(l [0])16 for each ps ∈ l
17 do Add(answer , 〈docID(p1), pos(pp1), ps〉)18 pp1 ← next(pp1)19 p1 ← next(p1)20 p2 ← next(p2)21 else if docID(p1) < docID(p2)22 then p1 ← next(p1)23 else p2 ← next(p2)24 return answer
Schutze: The term vocabulary and postings lists 58 / 62
Page 234
Recap Documents Terms Skip pointers Phrase queries
Combination scheme
Biword indexes and positional indexes can be profitablycombined.
Schutze: The term vocabulary and postings lists 59 / 62
Page 235
Recap Documents Terms Skip pointers Phrase queries
Combination scheme
Biword indexes and positional indexes can be profitablycombined.
Many biwords are extremely frequent: Michael Jackson,Britney Spears etc
Schutze: The term vocabulary and postings lists 59 / 62
Page 236
Recap Documents Terms Skip pointers Phrase queries
Combination scheme
Biword indexes and positional indexes can be profitablycombined.
Many biwords are extremely frequent: Michael Jackson,Britney Spears etc
For these biwords, increased speed compared to positionalpostings intersection is substantial.
Schutze: The term vocabulary and postings lists 59 / 62
Page 237
Recap Documents Terms Skip pointers Phrase queries
Combination scheme
Biword indexes and positional indexes can be profitablycombined.
Many biwords are extremely frequent: Michael Jackson,Britney Spears etc
For these biwords, increased speed compared to positionalpostings intersection is substantial.
Combination scheme: Include frequent biwords as vocabularyterms in the index. Do all other phrases by positionalintersection.
Schutze: The term vocabulary and postings lists 59 / 62
Page 238
Recap Documents Terms Skip pointers Phrase queries
Combination scheme
Biword indexes and positional indexes can be profitablycombined.
Many biwords are extremely frequent: Michael Jackson,Britney Spears etc
For these biwords, increased speed compared to positionalpostings intersection is substantial.
Combination scheme: Include frequent biwords as vocabularyterms in the index. Do all other phrases by positionalintersection.
Williams et al. (2004) evaluate a more sophisticated mixedindexing scheme. Faster than a positional index, at a cost of26% more space for index.
Schutze: The term vocabulary and postings lists 59 / 62
Page 239
Recap Documents Terms Skip pointers Phrase queries
“Positional” queries on Google
For web search engines, positional queries are much moreexpensive than regular Boolean queries.
Schutze: The term vocabulary and postings lists 60 / 62
Page 240
Recap Documents Terms Skip pointers Phrase queries
“Positional” queries on Google
For web search engines, positional queries are much moreexpensive than regular Boolean queries.
Let’s look at the example of phrase queries.
Schutze: The term vocabulary and postings lists 60 / 62
Page 241
Recap Documents Terms Skip pointers Phrase queries
“Positional” queries on Google
For web search engines, positional queries are much moreexpensive than regular Boolean queries.
Let’s look at the example of phrase queries.
Why are they more expensive than regular Boolean queries?
Schutze: The term vocabulary and postings lists 60 / 62
Page 242
Recap Documents Terms Skip pointers Phrase queries
“Positional” queries on Google
For web search engines, positional queries are much moreexpensive than regular Boolean queries.
Let’s look at the example of phrase queries.
Why are they more expensive than regular Boolean queries?
Can you demonstrate on Google that phrase queries are moreexpensive than Boolean queries?
Schutze: The term vocabulary and postings lists 60 / 62
Page 243
Recap Documents Terms Skip pointers Phrase queries
Take-away
Understanding of the basic unit of classical informationretrieval systems: words and documents: What is adocument, what is a term?
Tokenization: how to get from raw text to words (or tokens)
More complex indexes: skip pointers and phrases
Schutze: The term vocabulary and postings lists 61 / 62
Page 244
Recap Documents Terms Skip pointers Phrase queries
Resources
Chapter 2 of IIR
Resources at http://cislmu.org
Porter stemmerA fun number search on Google
Schutze: The term vocabulary and postings lists 62 / 62