Josh Hirschkorn
--:--:--
All projects

Feb 2025

LLM Misinformation Detection & Clustering

Fact-checking YouTube transcripts with embeddings, clustering and a claim graph.

  • Python
  • GPT-4
  • Flask
  • React
  • TypeScript
  • scikit-learn
  • React Flow
Repository

An AI system that extracts claims from YouTube videos, fact-checks them, groups related misinformation, and estimates how much each claim matters. Built during ICHack.

Statement extraction

The pipeline parses YouTube transcripts and structures them into discrete statements using an LLM, identifying which are controversial, dubious or misleading while preserving timestamps so every claim can be traced back to the moment it was made.

Fact-checking

Truthiness scoring uses a hybrid approach rather than trusting a single source: OpenAI’s models, Wikipedia verification, and real-time article retrieval through the Google Fact Check API, with historical event validation and contextual analysis applied on top. Any one of these alone is unreliable in a different way, which is the argument for combining them.

Clustering and aggregation

Statements are embedded into vector space and grouped with KMeans clustering, so the same claim repeated in different words collapses into one cluster. Each cluster is then summarised by an LLM into a concise description of the underlying claim.

Severity and propagation

An impact scoring model estimates the severity of each piece of misinformation, and article correlation graphs, built as DAGs, map how it spreads. The result is a hierarchical graph with statement, misinformation and article nodes.

Interface

The backend is a Flask API with caching for fast responses, fronted by a TypeScript and React application plus a Chrome extension. The frontend uses React Flow to render misinformation clusters, statement propagation and source credibility as an explorable graph rather than a list of verdicts.