PII-Aware Sentiment & Topic Pipeline

An end-to-end NLP system that classifies product feedback by sentiment and topic, redacts PII before any transformer sees the text, and corrects for sarcasm — a failure mode transformer sentiment models systematically miss. Same InferencePipeline instance powers both the REST API and the UI; no logic forks between surfaces. Architecture flowchart LR T["Raw feedback text"] --> R["Redaction(8 PII categories)"] R --> P["Preprocessing(lowercase, URL/mention strip)"] P --> S["Sentiment(RoBERTa 3-class)"] P --> TC["Topic(keyword classifier)"] S --> SA["Sarcasm Adjustment(regex + heuristics)"] SA --> RES["Structured resultsentiment + topic + confidences+ redaction_summary + latency"] TC --> RES RES --> API["FastAPIPOST /predict"] RES --> UI["Streamlit UI"] Each stage is an independently testable component and can be swapped at runtime via constructor injection. replace_* methods on InferencePipeline allow hot-swapping any stage without rebuilding — useful for A/B comparisons and evaluation harnesses. ...

May 17, 2025

SHERPA — Semi-Structured RAG (UIUC CS 546)

A graduate research project at UIUC (CS 546, Fall 2024) proposing SHERPA — a semi-structured non-parametric memory framework that integrates a knowledge graph with a hierarchical vector store to improve retrieval-augmented generation. Five-person team; this page covers my two contributions: Query Classification and Entity-Relation Extraction. The interesting story isn’t the destination — it’s the experimental funnel. Both contributions involved walking through multiple wrong-fits before landing on the architecture that shipped. ...

December 19, 2024

National Center for Supercomputing Applications

Context At NCSA, I worked on improving reasoning and retrieval in biomedical AI systems by incorporating knowledge graphs into LLM workflows. The research focused on building a structured knowledge base of genes, phenotypes, and biomedical relationships to support causal question-answering over CRISPR perturbation data. What I Built I built a Neo4j knowledge graph with 100K+ biomedical triples by harmonizing Monarch ontology data, creating a structured layer for multi-hop reasoning over biomedical entities. ...

July 1, 2025