Boolean Retrieval
Boolean Retrieval
Introduction to
Information Retrieval
Information Retrieval
Information Retrieval (IR) is finding material (usually documents) of an unstructured nature (usually text) that satisfies an information need from within large collections (usually stored on computers).
Sec. 1.1
Boolean Retrieval
Which plays of Shakespeare contain the words Brutus AND Caesar but NOT Calpurnia? One could grep all of Shakespeares plays for Brutus and Caesar, then strip out lines containing Calpurnia? Why is that not the answer?
Slow (for large corpora) Ranked retrieval (best documents to return) Later lectures
The way to avoid linearly scanning the text for each query is to index the document in advance.
3
Sec. 1.1
1 1 1 0 1 1 1
1 1 1 1 0 0 0
0 0 0 0 0 1 1
0 1 1 0 0 1 1
0 0 1 0 0 1 1
1 0 1 0 0 1 0
Sec. 1.1
Incidence vectors
So we have a 0/1 vector for each term. To answer query: take the vectors for Brutus, Caesar and Calpurnia, complement the last, and then do a bitwise AND. 110100 AND 110111 AND 101111 = 100100.
Sec. 1.1
Answers to query
Antony and Cleopatra, Act III, Scene ii
Agrippa [Aside to DOMITIUS ENOBARBUS]: Why, Enobarbus, When Antony found Julius Caesar dead, He cried almost to roaring; and he wept When at Philippi he found Brutus slain.
Sec. 1.1
Sec. 1.1
Get rid of mice in a politically correct way Info about removing mice without killing them How do I trap mice alive?
Info Need
Verbal form
Query
mouse trap
SEARCH ENGINE
Query Refinement
Results
Corpus
Sec. 1.1
Sec. 1.1
Bigger collections
Consider N = 1 million documents, each with about 1000 words. Avg 6 bytes/word including spaces/punctuation
6GB of data in the documents.
11
Why?
Inverted index
For each term t, we must store a list of all documents that contain t.
Identify each by a docID, a document serial number
31
54 101
Inverted index
We need variable-size postings lists
On disk, a continuous run of postings is normal and best In memory, can use linked lists or variable length arrays
Some tradeoffs in size/ease of insertion Posting
1 1
2 2
4 4
11 5
31
54 101
Dictionary
Postings
Sorted by docID
14
Sec. 1.2
Token stream.
Friends Romans
Linguistic modules
Countrymen
Modified tokens.
friend
Indexer friend
roman
countryman
2
1
4
2 16
Inverted index.
roman countryman
13
Sec. 1.2
Doc 1 I did enact Julius Caesar I was killed i' the Capitol; Brutus killed me.
Doc 2 So let it be with Caesar. The noble Brutus hath told you Caesar was ambitious
Sec. 1.2
Sec. 1.2
Sec. 1.2
Pointers
19
Sec. 1.3
20
Sec. 1.3
Brutus 34 Caesar
21
Sec. 1.3
The merge
Walk through the two postings simultaneously, in time linear in the total number of postings entries
2
1
4
2
8
3
16
5
32 8 13
64 21
128
Brutus 34 Caesar
If the list lengths are x and y, the merge takes O(x+y) operations. Crucial: postings sorted by docID.
22
23
Sec. 1.3
Primary commercial retrieval tool for 3 decades. Many search systems you still use are Boolean:
Email, library catalog, Mac OS X Spotlight
24
Sec. 1.4
Example: WestLaw
http://www.westlaw.com/
Largest commercial (paying subscribers) legal search service (started 1975; ranking added 1992) Tens of terabytes of data; 700,000 users Majority of users still use boolean queries Example query:
What is the statute of limitations in cases involving the federal tort claims act? LIMIT! /3 STATUTE ACTION /S FEDERAL /2 TORT /3 CLAIM
/3 = within 3 words, /S = in same sentence
25
Sec. 1.4
Example: WestLaw
Another example query:
http://www.westlaw.com/
Requirements for disabled people to be able to access a workplace disabl! /p access! /s work-site work-place (employment /3 place
Note that SPACE is disjunction, not conjunction! Long, precise queries; proximity operators; incrementally developed; not like web search Many professional searchers still like Boolean search
You know exactly what you are getting
Sec. 1.3
Query optimization
What is the best order for query processing? Consider a query that is an AND of n terms. For each of the n terms, get its postings, then AND them together.
Brutus 2 4 8 16 32 64 128
Caesar
Calpurnia
16
21 34
13 16
27
Sec. 1.3
Brutus
16 32 64 128
Caesar
Calpurnia
16
21 34
13 16
Sec. 1.3
29
Exercise
Recommend a query processing order for
Term
Freq
213312 87009 107913 271658 46653 316812
30
32
How do search engines work? And how can we make them better?
33
34