
Xikipedia 并不是一个真正的社交媒体平台,而是一个巧妙的概念验证项目:它用最朴素的算法,在不依赖云端、不收集用户数据、不使用机器学习的前提下,模拟出类似 TikTok 或 Twitter 的个性化信息流体验。所有计算都在你的设备上完成,内容来自简单维基百科(Simple Wikipedia),整个应用甚至可以在离线状态下持续运行。

核心理念:极简算法也能实现个性化
Xikipedia 证明了一件事:个性化推荐不一定需要大数据或复杂模型。它的推荐逻辑完全基于你对当前内容的实时互动,并通过一套透明、可解释的计分规则动态调整后续内容。
计分机制详解
每个帖子(即一条维基百科条目)都关联一组“类别”——这些类别来自该页面本身的维基分类标签,以及页面中链接到的其他维基页面。系统为每个类别维护一个分数,而你的每一次操作都会影响这些分数:
| 用户行为 | 分数变化 |
|---|---|
| 滚动略过一个帖子 | -5(表示不感兴趣) |
| 点赞一个帖子 | 50 + 4 × 自上次点赞以来滑过的帖子数(鼓励连续互动) |
| 点击文章正文 | +75 |
| 点击内嵌图片 | +100(图片被视为高价值信号) |
此外,每个帖子还有一个基础分数:
- 默认为 0;
- 若包含图片,+5;
- 如果你已经看过该帖子,基础分会急剧下降:
(3^查看次数 - 1) × (-5000),有效防止重复内容刷屏; - 对于“名字”“姓氏”等过于泛化的类别(如“John”“Smith”),初始基础分设为 -1000,避免信息流被琐碎条目淹没。
内容选择策略
每次加载新帖子时,系统从数据库中随机抽取 10,000 条候选,然后按以下概率决定展示哪一条:
- 42% 概率:直接展示当前总分最高的帖子(强个性化);
- 40% 概率:按分数加权随机选择(兼顾探索与利用);
- 18% 概率:完全随机展示(保证内容多样性,避免信息茧房)。
这种混合策略在“精准推荐”和“偶然发现”之间取得平衡,且全部逻辑在前端 JavaScript 中实现,无需后端支持。

数据与自定义
项目默认内置了简单维基百科的 JSON 数据集,但你完全可以替换为自己的内容源:
- 获取 Wikimedia 的公开数据转储(如 Simple English Wikipedia dump);
- 修改
process_data.py脚本中的输入文件路径; - 重新生成
.json数据文件; - 替换应用中的
data.json即可切换知识库。
这意味着 Xikipedia 不仅可用于阅读百科,还可改造为本地知识库浏览器、离线学习工具,甚至私有文档推荐系统。
技术亮点:真正的离线优先 PWA
截至 2026 年 2 月 6 日的最新版本,Xikipedia 已全面升级为渐进式 Web 应用(PWA):
- ✅ 支持“安装为应用”(桌面/手机均可);
- ✅ 通过 Service Worker 实现完全离线使用——首次加载后,即使断网也能继续浏览、互动、获取推荐;
- ✅ 所有用户行为数据(点赞、点击、算法状态)本地持久化,可选是否保存;
- ✅ 提供浅色/深色主题、设置菜单、统计数据面板;
- ✅ 支持在“简单维基百科”和“英文维基百科”之间切换链接目标;
- ✅ 包含独立的“关于”页面与自定义导航栏图标。
未来计划(来自作者待办事项)
尽管已功能完整,作者仍列出了多项改进方向:
- 优化移动端体验(如处理浏览器后退按钮);
- 增加 iframe 内嵌视图,避免跳转新标签页;
- 支持配置文件重命名与算法状态重置(不影响使用时长统计);
- 实现数据集更新与配置文件导出/导入功能。
这些更新将进一步提升其作为个人知识伴侣的实用性。
为什么 Xikipedia 值得关注?
在 AI 推荐系统日益黑箱化、数据滥用频发的今天,Xikipedia 提供了一种反向思路:
个性化 ≠ 监控,智能 ≠ 云端,推荐 ≠ 成瘾。
它用不到 200 行核心逻辑,展示了如何在尊重隐私、保障透明、保持轻量的前提下,依然提供流畅、贴合兴趣的内容体验。对于开发者,它是学习推荐系统原理的绝佳示例;对于普通用户,它是一个干净、专注、无广告的知识探索工具。
数据统计
相关导航


SeatMaps

BuildCores

Cosmos

YourInfo

GeoSpy

素食烹饪指南






