Semantic News Matching with Knowledge Graphs
Overview
A semantic matching pipeline that uses word embeddings to relate news articles across thousands of sources. A custom scraper assembled the news corpus, matches were stored in Neo4j, and an API surfaces related articles to the article a reader is currently viewing — visualised as a comparison graph. Outcome: Powered a "related news" experience that connects readers to relevant articles across the web in real time.
Architecture & Pipeline
flowchart LR
n0["News SourcesMany publishers"]
n1["Custom ScrapersPython"]
n2["Word EmbeddingsTensorFlow"]
n3["Semantic MatchPairwise similarity"]
n4["Knowledge GraphNeo4j + PostgreSQL"]
n5["Related-Articles APIReal-time serving"]
n0 --> n1
n1 --> n2
n2 --> n3
n3 --> n4
n4 --> n5
classDef step0 fill:#f1f5f9,stroke:#64748b,color:#1e293b,stroke-width:2px,rx:10,ry:10;
classDef step1 fill:#ecfeff,stroke:#06b6d4,color:#1e293b,stroke-width:2px,rx:10,ry:10;
classDef step2 fill:#f0fdfa,stroke:#0d9488,color:#1e293b,stroke-width:2px,rx:10,ry:10;
classDef step3 fill:#ecfdf5,stroke:#10b981,color:#1e293b,stroke-width:2px,rx:10,ry:10;
classDef step4 fill:#fffbeb,stroke:#f59e0b,color:#1e293b,stroke-width:2px,rx:10,ry:10;
class n0 step0;
class n1 step1;
class n2 step2;
class n3 step2;
class n4 step3;
class n5 step4;
End-to-end flow derived from this project's scope and tech stack. Tap View Fullscreen for a larger view, or scroll horizontally on small screens.
Key Features
- Custom scrapers across many news sources
- Word-embedding-based semantic matching
- Knowledge graph storage in Neo4j
- API for serving related articles in real time
- Tech Stack:** Python, TensorFlow, PostgreSQL