把“看得懂的日语”,变成真正能够主动还原的句子。
JLPT Review 是一款面向中文日语学习者的自托管句子重组、汉字读音与间隔复习应用。
输入中文提示和日语原句,系统会在本地自动拆分词块、生成假名注音,并将句子转化为主动回忆练习;完成练习后,再由 FSRS 根据真实表现安排后续复习。
它不是固定题库,而是一套帮助你整理和消化个人日语材料的学习工具。JLPT 例句、教材句子、语法笔记、错题、影视台词和个人表达,都可以逐渐形成自己的日语句库。
本地分词 · 自动评分 · FSRS 复习 · 练习报告 · 学习统计 · Docker 部署
单纯阅读例句容易产生“看懂了,但无法主动说出来”的错觉。
JLPT Review 会展示中文提示,将日语原句拆分为词块。你需要重新排列这些词块,主动回忆语序、搭配和语法结构,而不是被动查看答案。
一次练习流程:
- 根据中文提示回忆日语表达;
- 重新排列词块组成句子;
- 查看正确答案和假名注音;
- 系统根据作答过程判断掌握情况;
- FSRS 自动安排下一次复习。
- 根据中文提示还原日语原句
- 每个 KWJA 文节对应一个横线槽位
- 只点选和调整非标点词块,标点与空白固定在原句位置
- 查看正确句子与假名注音
- 支持上一题、下一题自由切换
- 未回答题目不会被强制判错
- 创建多个句集
- 添加、编辑、搜索和删除句子
- 在句集之间批量移动句子
- 指定句子进行专项练习
- 支持教材、JLPT、错题和个人表达整理
- 根据完整句子的 KWJA 上下文读音生成独立四选一练习
- 每个目标词拥有独立 FSRS 状态,不影响句子重组进度
- 选项在服务器生成并持久化,练习时只改变显示顺序
- 核对后显示完整假名注音、翻译和备注
系统通过一个仅容器内网可访问的 KWJA tiny 单实例服务完成:
- 文节级学习词块分析
- 形态素、词元和上下文读音分析
- 固定标点与可排序槽位分离
- 汉字假名注音生成
- 汉字读音练习卡生成
固定配置为 CPU、char + seq2seq + word、批量大小 1、num_workers=0、torch_compile=false。模型只在 analyzer 容器加载一次,结果按原文 SHA256、模型版本和分析模式缓存。解析失败时不会降级为字符分割,也不会覆盖已有有效结果。句子不会发送到外部模型或第三方 API。
项目使用官方 FSRS 调度算法,根据每张练习卡的历史表现动态安排复习时间。句子重组卡和汉字读音卡分别调度、分别计算每日上限。
系统不会要求用户手动选择“简单”“困难”等评价,而是根据真实核对过程自动生成学习结果:
- 忘记
- 模糊
- 认识
- 轻松掌握
答题耗时仅用于统计,不参与评分。
每轮练习结束后,可以查看:
- 本轮完成情况
- 每道题的用户排列与正确答案
- FSRS 评分结果
- 历史练习记录
统计页面提供最近五天的学习表现与学习时长、未来三天预计到期数量,以及当前记忆掌握度。
推荐使用 Docker Compose:
git clone https://github.com/Kairitsu/jlpt-review.git
cd jlpt-review
cp secrets/app.env.example secrets/app.env
docker compose up -d --build默认监听:
127.0.0.1:3220
生产环境建议通过 Caddy、Nginx 等反向代理配置 HTTPS。
所有学习数据默认保存在自己的服务器中。
包括:
- 句子内容
- 练习记录
- FSRS 记忆状态
- 学习统计
项目采用 SQLite 存储,不依赖 Redis、PostgreSQL 或外部 AI 服务。
- Python / Flask
- SQLite
- Py-FSRS
- KWJA tiny / rhoknp
- Transformers / CPU PyTorch
- 原生 HTML、CSS、JavaScript
- Chart.js
- Docker Compose
不提供。项目用于管理和复习自己的句子材料。
不需要。分词、注音、评分和复习调度均在本地完成。
支持。界面适配手机、平板和桌面浏览器。
本项目采用 GNU Affero General Public License v3.0(AGPL-3.0)。