
An information retrieval system that recommends anime and manga using TF-IDF vector similarity, query spell correction, inverted indices, and user feedback refinement.
Anime and manga catalogs contain thousands of titles, making discovery overwhelming. Simple keyword search misses thematic similarity between titles, and genre tags are too broad to capture nuanced preferences. An information retrieval approach using content-based similarity can surface recommendations that keyword search and genre filters cannot.
I built a content-based recommendation engine using TF-IDF vectorization and cosine similarity on anime/manga descriptions. The system augments basic search with spell correction for common romanization variations and Rocchio's relevance feedback to refine results based on user interactions. Flask serves the web interface with search, results, and feedback interactions.
Python handles the IR pipeline: text preprocessing, TF-IDF vectorization with scikit-learn, cosine similarity computation, and inverted index construction for fast term lookup. Spell correction uses edit distance and a domain-specific dictionary of anime/manga titles. Rocchio's algorithm adjusts query vectors based on user-marked relevant/irrelevant documents. Flask renders the search interface and results with HTML/CSS templates.
Deployed a working anime/manga recommendation system that demonstrates core information retrieval principles on a real dataset. The TF-IDF similarity approach surfaces thematically related titles that simple keyword matching misses. The relevance feedback loop measurably improves result quality over successive queries as the system learns user preferences.

A deep learning comparative study using Simple NN, CNN, and Residual CNN architectures to classify chest X-rays as Normal or Pneumonia with TensorFlow and Keras.

A Python Pygame 2D action RPG inspired by Legend of Zelda, featuring real-time combat with 5 weapons, magic spells, 4 enemy types, and character progression.

A cross-language text analysis tool implementing word probability calculation with stopword filtering in Java, Python, and JavaScript for comparative study.