Interactive lab notes for the Information Retrieval course at Sofia University “St. Kliment Ohridski”, Faculty of Mathematics and Informatics.
The lab exercises (Jupyter notebooks, datasets and setup instructions) are in the course repository: di-dimitrov/information_retrieval_fmi_new.
Served from docs/ on GitHub Pages: elitsay.github.io/Information_Retrieval_course
| Lab | Class notes | Quiz | Covers |
|---|---|---|---|
| 00 | Introduction | coming soon | The team, course content, SemEval-2027 (Task 9, organised by us), the top AI and NLP conferences |
| 01 | Inverted Index and Boolean Queries | Quiz | Incidence matrices, dictionary and postings, index construction, Boolean queries, skip pointers, phrase queries |
| 02 | Text Preprocessing | coming soon | Tokenizers, normalization, stop words, stemming and lemmatization, a preprocessing pipeline |
| 03 | Tolerant Retrieval and Spelling Correction | coming soon | Wild-card queries, edit distance, n-gram overlap, context-sensitive correction, Soundex |
| 04 | Ranked Retrieval: TF-IDF and BM25 | coming soon | TF, DF and IDF, TF-IDF vectors, cosine similarity, BM25, the Cranfield collection |
| 05 | Evaluating IR Systems | coming soon | Accuracy, precision and recall, MRR, MAP, nDCG, per-query analysis |
| 06 | Web Crawling and PageRank | coming soon | Crawler types, the crawl loop and URL frontier, URL normalization and duplicates, robots.txt and politeness, Scrapy, the Web as a graph, PageRank |
| 07 | Query Expansion and Language Models | coming soon | Vocabulary mismatch, query expansion and drift, Rocchio, pseudo-relevance feedback, n-gram language models and smoothing, query likelihood |
| 08 | Neural Text Representations | coming soon | Sparse vs dense vectors, tokens and token embeddings, self-attention (queries, keys, values), what a Transformer is and where it came from, Transformer layers and position |
| 09 | Sentence Embeddings and Semantic Search | coming soon | Encoders vs decoders, pooling into sentence embeddings, generic vs trained models, semantic search, bi-encoders, an embedding demo |
| 10 | Dense Retrieval and Vector Databases | coming soon | Dense retrieval on Cranfield, Dense Passage Retrieval, similarity functions, exact nearest-neighbor search, ANN (IVF, HNSW), FAISS, vector databases and metadata filtering, ANN recall vs IR recall |
| 11 | Hybrid Retrieval and Reranking | coming soon | Multi-stage retrieval, score fusion vs rank fusion, Reciprocal Rank Fusion, cross-encoder reranking, candidate-set sizes, ablations |
| 12 | Retrieval-Augmented Generation | coming soon | RAG architecture, encoder vs generator, chunking and overlap, top-k context selection, grounded prompts and citations, prompt injection, failure modes |
| 13 | Evaluating RAG Systems | coming soon | Evaluation by stage, evidence recall, context precision, faithfulness, citation quality, unanswerable questions, failure analysis, ablations, LLM-as-judge |
A copy of the notebook each page is built from is in notebooks/:
| File | Topic |
|---|---|
lab1_inverted_index_and_queries.ipynb |
Inverted Index and Boolean Queries |
lab3_spellchecking.ipynb |
Tolerant Retrieval and Spelling Correction |
lab7_web_crawlers.ipynb |
Web Crawlers (used in Lab 06) |
lab10_language_modeling.ipynb |
Language Modeling (used in Lab 07) |
The notebooks for Labs 01 and 03 use the mini_newsgroups version of the Twenty Newsgroups dataset; see the course repository for how to download it. The Web Crawlers notebook crawls quotes.toscrape.com, a sandbox site for scraping practice, and the Language Modeling notebook uses Jane Austen’s Emma from NLTK’s Gutenberg corpus.