Sentiment: Classical vs Neural vs LLM
A logistic-regression classifier comparing hand-engineered features against word embeddings, then a PyTorch MLP with hyperparameter tuning, then zero-shot and few-shot LLM classification over the same data. Three approaches compared head-to-head: where the simple model holds up, where the neural network earns its complexity, and where the LLM wins or fails.
Corpus Analysis and Retrieval
A document-retrieval system over literary corpora: text pre-processing, Named Entity Recognition, TF-IDF vectorisation and cosine-similarity ranking, with dimensionality reduction to visualise how the documents cluster.
Language Models
Generative n-gram language models written from scratch: 1-gram, 2-gram and beyond. Building them by hand shows exactly why longer context helps and where sparse counts make the models fall apart. A final open-ended methodological extension completed the graded notebook.