M4RKYU.SYSEdition 2027
Skip to content
LOCZH/安大略 · 加拿大/▸work · politilens待机OK/--:--:--EST
M4M4RK_YUportfolio
  • 创作创作
    创作Overview
    • 作品精选案例与项目记录
    • 游戏可玩原型与游戏开发日志
  • 影像影像
    影像Overview
    • 照片影像合集与视觉实验
    • 商店印刷品、海报和限量物件
  • 写作写作
    写作Overview
    • 博客长篇开发日志与现场笔记
    • 笔记短观察、链接与代码片段
  • 资源资源
    资源Overview
    • 工具38 款浏览器内开发工具
    • 链接每日使用的开发与设计书签
  • 关于关于
  • 联系联系
EN
← 项目档案
Web 应用 · 2026就绪

PolitiLens

政治新闻情报面板,用来比较不同立场媒体如何报道同一事件。

关键信息

角色
Solo product engineer: research model, data pipeline, dashboard architecture, information design, internationalization, and deployment.
周期
May 2026 · v1.1.0
平台
Web · Responsive dashboard
在线

本页导航

  • >这是什么
  • >界面一览
  • >技术栈
  • >亮点功能
  • >工程实现
  • >实现细节
  • >结果
  • >规划与心得
PolitiLens political compass dashboard comparing news outlets and story clusters
Fig. 01 — PolitiLens

为什么做这个

我想做一个不靠单一分数替读者判断对错的政治新闻工具。更有价值的问题其实更窄:同一件事经过不同编辑视角时,哪些部分发生了变化?

01

这是什么

#

问题

政治新闻数量庞大,但横向比较成本很高。读者需要手动寻找平行报道、判断媒体位置,并区分共同事实与叙事差异。

方案

PolitiLens 汇集不同政治光谱与地区的媒体报道,将同一事件聚类,并展示分歧度、语气、来源健康度、政治罗盘位置与 AI 辅助的叙事分析,同时公开方法与局限。

02

界面一览

#
  • Story explorerClustered stories expose source breadth, political lean coverage, sentiment, and divergence before the reader opens a comparison.
03

技术栈

#

Product

  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS

Data

  • TanStack Query
  • Zustand
  • RSS
  • GDELT
  • Congress.gov

Analysis

  • Vercel AI SDK
  • OpenRouter
  • AFINN
  • compromise

Visualization

  • Recharts
  • react-simple-maps
04

亮点功能

#
  • Story clustering across politically diverse outlets
  • Two-axis political compass with regional filtering
  • Divergence and sentiment signals with confidence context
  • AI-assisted framing comparison and consensus extraction
  • Congress, fact-check, source-health, and world-coverage views
  • Complete English and Simplified Chinese interface
05

工程实现

#
  1. 过程 01

    Measure divergence without calling it truth

    背景
    Political framing is multidimensional, and a single bias score can imply certainty the system does not possess.
    方法
    Compute a documented heuristic from source breadth, spectrum coverage, and region, then show its method and confidence context.
    结果
    The signal supports comparison without judging factual correctness, but readers must still inspect the underlying coverage.
  2. 过程 02

    Cluster deterministically before invoking AI

    背景
    Letting a model decide which articles belong together would make the core research unit difficult to reproduce or challenge.
    方法
    Normalize, deduplicate, and similarity-cluster articles first; use AI only to describe framing and consensus inside an established cluster.
    结果
    The pipeline stays inspectable and cheaper, while deterministic clustering errors remain visible instead of being hidden by fluent summaries.
06

实现细节

#

架构笔记

  • RSS and API articles normalize into one model before URL deduplication and similarity clustering.
  • Divergence is a transparent heuristic based on source breadth, spectrum coverage, and region rather than a claim about truth.
  • Expensive news aggregation routes use bounded concurrency, caching, and stale-while-revalidate behavior.
  • AI analysis is downstream of deterministic clustering and presents framing differences without assigning factual authority.

挑战

  • Keeping politically sensitive scores explainable enough that users can challenge the method.
  • Handling unreliable feeds and uneven source coverage without hiding degraded data.
  • Making a dense research interface scan quickly on both desktop and mobile.
07

结果

#
“
一个已部署的 v1.1 研究产品,把嘈杂的新闻流整理成透明的比较流程,同时明确说明启发式指标并不等同于客观真相。
08

规划与心得

#

复盘

  1. 01Trust comes from showing how a score was produced, not polishing away its uncertainty.
  2. 02Dense dashboards need progressive disclosure so methodology remains available without blocking the first scan.
  3. 03AI is more credible when it describes differences after deterministic grouping instead of deciding the groups itself.

下一步

  1. 01Ground framing summaries in cited article excerpts
  2. 02Improve entity-aware story clustering
  3. 03Add timeline views for how coverage changes across a news cycle

相关案例

Web 应用

Nimbus

A passwordless cloud workspace for organizing, sharing, beaming, and asking questions about your files.

Web 应用

M4rketView

A free, no-key crypto dashboard with live prices, resilient public-data fallbacks, local portfolios, alerts, and comparison tools.

上一篇BloomprintTurns yard inspiration into a buildable plan — what to buy, how much, what tools, in what order, and what can go wrong.
返回全部作品
下一篇PurecreateA 3D apparel customizer that designs your shirt in real time and generates decals from a text prompt with DALL·E 3.
返回档案
M4RKYUM4RKYUM4RKYUM4RKYUM4RKYUM4RKYUM4RKYUM4RKYU
始于 2024
ZhenXiao Mark YuZhenXiao Mark Yu
联系

看到什么有意思的?和我聊聊。

这是一个作品集,不是服务 · 但每一条留言我都会看 — 如果哪里让你有所触动,或者只想打个招呼,欢迎写信过来。

开启对话
频道开放

随时打个招呼 · 2026

--:--:--EST加拿大 安大略
  • 邮件
  • GitHub
  • dev.to
  • 领英
  • 推特 / X
  • Instagram
  • Facebook
  • YouTube
  • CodePen
  • Spotify
  • Snapchat

订阅

偶尔收到一封简讯

来自 m4rkyu.com 的笔记与日志——简短、标注日期、没有杂音。随时可退订。

作品

线上发布、游戏作品与视觉档案。

  • 项目
  • 游戏
  • 档案
  • 日志

资源

每日好用的工具与个人收藏的链接库。

  • 搜索
  • 最新
  • 工具
  • 链接
  • 笔记
  • 主题
  • 商店
RSSJSON Feed

工作室

背景、联系方式以及合作渠道。

  • 关于
  • 联系
  • 更新日志
  • 技术说明
  • 简历筹备中

社交

在常去的平台上找到我。

  • GitHub
  • dev.to
  • 领英
  • 推特 / X
  • Instagram
  • Facebook
  • YouTube
  • CodePen
  • Spotify
  • Snapchat
  • 邮件
© 2026 ZhenXiao Mark Yumarkyu0615@gmail.com
  • 邮件
  • GitHub
  • dev.to
  • 领英
  • 推特 / X
  • Instagram
  • Facebook
  • YouTube
  • CodePen
  • Spotify
  • Snapchat
隐私条款由 Next.js 16 · React 19 · Tailwind 4 构建