1992 字
10 分钟
基于多邻国的单元单词背诵软件
基于多邻国单元的日语单词背诵软件
Waiting for api.github.com...
一个基于间隔重复(SM-2)的离线词汇学习工具,支持「日→中」与「中→日」两种模式、可选本地词典联想、学习统计可视化、单位(单元)管理与简洁的键盘操作。
功能特性
- 复习队列:默认到期优先,支持“包含未到期/全部”回退
- 学习模式:日→中(评分)与中→日(输入判定),默认约 70%/30% 混排
- 假名辅助:输入罗马音即时生成平/片假名候选,一键写回并自动回填罗马音
- 单元总览:按单元浏览假名/汉字/罗马音/释义与重复次数
- 学习统计:总览、每日复习量与正确率、EF/重复次数分布;无 matplotlib 时自动退化为表格
- 可选本地词典:支持 CSV 词典反查,辅助中→日判定与补全
- 键盘友好:Space 展开/继续,数字键打分(1/2/3/4)
- 字体与 CJK 友好:自动装载项目内字体并设置回退链,matplotlib 统一 CJK 字体
环境要求
- Python >= 3.8(Windows 推荐 3.10+)
- 依赖
- PyQt5
- matplotlib(可选,用于图表)
- SQLite(标准库自带)
安装
# 建议使用虚拟环境python -m venv .venv.venv\Scripts\activate
# 安装依赖pip install -U pippip install PyQt5pip install matplotlib # 可选运行
# 在项目根目录执行python main.py首次启动会自动设置应用字体与样式。Windows 下默认使用 Microsoft YaHei UI,并为 matplotlib 配置 CJK 字体。
基本用法
- 添加词条:在主界面录入「日语词条」「汉字写法」「假名读音」「中文释义」,可选择「单元」
- 在“假名”框可输入罗马音,自动弹出平/片假名候选并写回
- 复习:
- 点击开始复习,可选择单元与是否包含未到期
- 日→中:Space 展示释义后,用数字键评分(1=Again,2=Hard,3=Good,4=Easy)
- 中→日:输入假名或汉字后“确认”;也可直接点“没记住”
- 统计:菜单中打开统计对话框;默认以“安全模式”纯表格展示(避免 Qt5Agg 崩溃),如安装了 matplotlib 会显示图表
- 单元总览:在列表中按单元查看词条的假名/汉字/罗马音/释义与重复次数
快捷键
- Space:展开/收起释义;判定完成后进入下一题
- 数字键 1/2/3/4:日→中模式下评分
- 回车:在中→日模式“确认”答案
设置项
- 包含未到期的词
- 每次会话上限(0 表示不限)
- 打开复习时自动打乱
- 表格行高与操作列宽
- 字号缩放
- 本地词典文件路径(CSV)
- 记住“中文释义→候选”的偏好
所有设置存入应用配置,并在启动时动态应用,包括表格行高、列宽、字号缩放与本地词典热切换。
本地词典(可选)
- 在设置中选择本地 CSV 文件路径
- 建议列格式:
term,kana,meaning- 例如:
食べる,たべる,吃
- 例如:
- 用途
- 中→日判定兜底:当用户输入汉字但标准答案是“假名”时,按词典中的“该汉字的假名”与标准假名比对
- 输入联想与补全
term,kana,meaning食べる,たべる,吃今日,きょう,今天学习统计
- 总览:总词条数、单元 Top10、最近新增趋势
- 复习活动:每日复习量、每日正确率
- 记忆质量:EF 分布、重复次数分布
- 无 matplotlib 时以表格形式展示;装有 matplotlib 时显示柱状/折线/直方图,并应用 CJK 字体
复习与排程
- 记忆算法:基于 SM-2,保存
interval/repetition/ef/last_review - 事件记录:每次判定写入
reviews表,包含日期、模式与质量分 - 模式与组卷:按队列大小约 70% 日→中、30% 中→日,随机混排
- 队列来源:优先到期卡片;若无到期则回退到全部;按单元过滤
字体与显示
- 项目内置
ZenMaruGothic-Medium.ttf与Hanalei-Regular.ttf - 应用默认字体:
- Windows:
Microsoft YaHei UI - 其它平台:
Zen Maru Gothic
- Windows:
- 为
Hanalei插入 CJK 回退链,避免缺字 - matplotlib 统一设置
font.sans\-serif,关闭负号乱码
数据库
- 使用 SQLite,核心表:
cards:词条、单位、EF、重复次数、到期时间、创建时间等reviews:复习时间、模式(0=日→中/1=中→日)、质量分
- 应用在复习与编辑时更新
cards,每次判定追加reviews
故障排除
- 统计图表崩溃(Qt5Agg):应用已默认以“安全模式”打开统计(纯表格),或安装
matplotlib并确保图形后端可用 - 字体缺字:确认项目根目录存在
ZenMaruGothic-Medium.ttf,Windows 下确保系统有Microsoft YaHei UI - 词典无效:检查 CSV 列顺序为
term,kana,meaning,且在设置中选择了正确路径
开发与运行于
- IDE:
PyCharm 2024.3.1.1 - 操作系统:Windows
- 启动入口:
main.py
软件打包
安装 PyInstaller
pip install pyinstaller进入脚本目录,执行打包命令
-
打包最新版本:
python build_vocab.py -
指定版本前缀:
python build_vocab.py -v 2.6 -
显示控制台:
python build_vocab.py --console -
使用 onedir 模式:
python build_vocab.py --onedir
版本历史
- 1.0
- v1.0.0:基础版本(单元录入、学习与复习)
- 2.0:
- v2.0.0:优化前端展示与复习逻辑
- v2.1.0:录入新增“汉字写法/罗马音”,接入本地词库自动补全
- v2.2.0:新增导出 CSV 功能
- v2.3.0:可以选中多个单元合并复习,修复部分环境下导出 CSV 文件名和内容错误问题
- v2.4.0:更改 GUI 界面 ID 显示逻辑,优化 GUI 界面显示
- v2.4.1:修复部分环境下更改词条导致程序崩溃问题
- v2.4.2:优化 Bug 与大量潜在问题,为相对稳定版本
- v2.4.3:更改单元单词总览界面和添加到题库界面样式显示逻辑和样式
- v2.5.0:添加单元单词总览界面,增加模糊查询。可以对选中单元单词打乱顺序,和按照特定规则排序
- v2.5.1:修复导入单词后的单词页面重置问题
- v2.6.0 优化 GUI 界面,增加删除单元功能,修复新建单元后不会立即显示的 Bug
- 2.6.1 新增通过汉语释义自动补全假名、汉字写法和罗马音的功能
- 2.6.2 修复操作列点击后无法响应的 Bug
- 2.6.3 修复空格键无法继续复习的 Bug,对于复习页面的四个按钮新增快捷键支持
- v3.0
- v3.0.0 新增数据层升级 & 迁移,复习引擎重构,优化表格与性能(Model/View 化),增加自动补全和词典(更“聪明”的输入),增加导入/导出 & 备份/恢复,设置中心 & 个性化,新增统计与可视化
- v3.0.1 删除 Windows 标题栏无用的 “What’s This” 模式
- v3.1.0 新增单元重命名功能,修复未选单元也提示“录入成功”的 Bug
- v3.1.1 修复补全功能的部分 Bug,现在只有按下 Enter 键时才会触发补全
- v3.2.0 修复单元无法重命名问题,新增左侧拖拽单元改变顺序功能,优化单词自动补全逻辑,修复候选框无法主动退出的问题
- v3.2.1 修复“英语外来语”在回填时被错当成“假名=英文”的典型错位问题
- v3.2.2 删除右侧的单元选择下拉框,优化单元选择逻辑,现在与左侧进行绑定,修复学习统计的统计错误 Bug,为相对稳定版本
- v3.3.0 内置简单的日语输入法,可以通过模拟键盘输入自动补全假名
- v3.3.1 删除录入成功的提示框
- v3.3.2 新增平片假名学习界面
- v3.3.3 更改全局字体
- v3.3.4 学习界面新增“五十音图”,为相对稳定版本
- v3.0.0 新增数据层升级 & 迁移,复习引擎重构,优化表格与性能(Model/View 化),增加自动补全和词典(更“聪明”的输入),增加导入/导出 & 备份/恢复,设置中心 & 个性化,新增统计与可视化
欢迎根据需要扩展单元管理、导入导出、更多统计类型或复习策略。如果有实际需要,可以在本界面下留言,或者去Github题issue或pr!
基于多邻国的单元单词背诵软件
https://lansganbs.cn/posts/项目开发/基于多邻国的单元单词背诵软件/ 部分信息可能已经过时