[2015.3.25]自制遗忘曲线单词复习工具(自知非常简陋,求别喷),求交流,求改进建议,意见和思路
发表于 : 2014-06-01 1:25
设计这个小程序的目的是因为我英文太差了,但又想折腾linux系,所以设计了这个单词复习工具.
因为水平有限,整个程序非常简单,功能也很简陋,目前只能进行"看释义拼写单词"复习,"看单词回想释义"复习.
连发音都没有.
也不知道自己是不是造轮子,是否存在这样的免费工具呢?
网上搜索到的都是收费的.
而且我感觉我的工具和他们还有一些区别,我的工具的特点就是遗忘曲线并不是由程序统计生成,而是直接让用户估计自己能记忆多久时间.
main.h中定义了一些宏,是用来处理相关文件的命令,这些命令是用来查看"cat ",编辑"leafpad ",删除"rm "文件用的
main.c中硬编码了工作路径和相关文件(为了尽可能简单,所有配置文件都是尽可能硬编码的,但硬编码可以方便的转变为软编码)
主要原理就是遗忘曲线,用户输入期望记忆的时长,到了时间后就推荐给用户复习,如果没到时间就推荐一个最接近复习时间的单词.
就说这么多了,下面就请各位积极讨论,交流,多谢各位.
(为方便阅读,补充变为逆序(最后边的补充是最早的.))
Wed Mar 25 21:06:37 CST 2015:
最主要的更新是增加了单词发音(调用系统中的音频播放器).
另一个就是增加了"自动轻松复习",可以闲着没事就听,加强印象.
其余修改详见附件中的更新日志.
Sat Oct 25 17:15:22 CST 2014补充:
主要更新:
增加单词统计功能
修复了一些错误.
Thu Sep 25 19:26:54 CST 2014补充:
主要更新:增加了综合复习(拼写和辨认放在一起混合进行)
其余更新信息详见附件更新日志.
Fri Sep 12 01:50:08 CST 2014补充:
若干的代码重构
当复习到没有单词被遗忘时会提示用户(目的是让用户进行其它有意义的事情,比如增加一些新单词之类)
详细更新日志见附件的文本文件
也不写第几次更新了,感觉都乱了...直接写出更新时间就是了
Sun Jul 27 03:24:10 CST 2014:
改进1:
改进复习方式.
复习时不再要求用户直接输入估算时间,而是自动统计和累计用户的记忆保持时长.
如果用户认为自己记住某单词,该单词的本次记忆时长(上次复习到现在的时间),会被自动累计到下次的期望记忆时长.
改进2:
give_user_review.c中的模块被用宏替换的方式重构
清屏代码也被重构
本次发布没有经过充分测试,为了方便交流,提前发布.
但我自己使用时没发现什么问题
Fri Jul 4 19:48:52 CST 2014补充:
第17次修改
改进单词推荐方式.
改进1:
在计算距离遗忘临界点的距离时,采用按比例的方式进行计算.
比如A单词期望记忆100秒,B单词期望记忆1000秒.
B已经过去500秒(距离忘记剩余500秒),A刚刚添加,剩余100秒(距离遗忘剩余时间大于50秒)
这时B会被优先推荐给用户,因为B遗忘的比例更大.
改进2:
在有单词被忘记时,会先复习那些(数值计算上认为)被忘记且按比例最接近遗忘临界点的单词.
已经记住的单词要等到超过遗忘临界点(数值计算上认为被遗忘)时,会被推荐给用户.
如果所有单词都是被记住的,则选取一个按比例最接近遗忘临界点的被记住的单词.
改进3:
如果某单词期望的辨认(或拼写)记忆时长为0,则该单词总是会被立即推荐给用户.
改进1主要是目的是避免无意义的过度复习,使复习时间得到有效的利用.
改进2主要是目的是迫使那些被记住的单词更加接近遗忘临界点,同时避免改进1导致被遗忘单词遗忘程度(距离遗忘临界点)超过100%时,不论被记住单词记忆多么牢固,都不去复习被忘记的单词.
Fri Jun 20 16:04:17 CST 2014补充:
为了节省论坛服务器的存储空间,本帖附件只上传最新版本.
需要老版本的可以联系我以其它方式获取.
Wed Jun 18 21:13:29 CST 2014补充:
上传了第15次修改,修复了一些BUG,已经使用方式上的改变.(详见附件中的更新日志)
因为水平有限,整个程序非常简单,功能也很简陋,目前只能进行"看释义拼写单词"复习,"看单词回想释义"复习.
连发音都没有.
也不知道自己是不是造轮子,是否存在这样的免费工具呢?
网上搜索到的都是收费的.
而且我感觉我的工具和他们还有一些区别,我的工具的特点就是遗忘曲线并不是由程序统计生成,而是直接让用户估计自己能记忆多久时间.
main.h中定义了一些宏,是用来处理相关文件的命令,这些命令是用来查看"cat ",编辑"leafpad ",删除"rm "文件用的
main.c中硬编码了工作路径和相关文件(为了尽可能简单,所有配置文件都是尽可能硬编码的,但硬编码可以方便的转变为软编码)
主要原理就是遗忘曲线,用户输入期望记忆的时长,到了时间后就推荐给用户复习,如果没到时间就推荐一个最接近复习时间的单词.
就说这么多了,下面就请各位积极讨论,交流,多谢各位.
(为方便阅读,补充变为逆序(最后边的补充是最早的.))
Wed Mar 25 21:06:37 CST 2015:
最主要的更新是增加了单词发音(调用系统中的音频播放器).
另一个就是增加了"自动轻松复习",可以闲着没事就听,加强印象.
其余修改详见附件中的更新日志.
Sat Oct 25 17:15:22 CST 2014补充:
主要更新:
增加单词统计功能
修复了一些错误.
其余更新信息详见附件更新日志.Sat Oct 25 16:58:45 CST 2014:
结构(内部流程)改进:
如果用户选择忘记,则期望时长会被重置为1,就像新增单词的默认值一样.
以前则是0,导致总是立即复习该被遗忘单词.
Fri Oct 17 22:28:45 CST 2014:
功能改进:
增加单词统计功能,可以统计数值上的遗忘和记住状态
功能修正:
综合复习时最佳单词判断修正.
被修复的错误:
原来把"小于等于"写成了"大于等于",导致综合复习推荐的单词异常.
该错误不影响单纯的"辨认"和"拼写"推荐
Thu Sep 25 19:26:54 CST 2014补充:
主要更新:增加了综合复习(拼写和辨认放在一起混合进行)
其余更新信息详见附件更新日志.
Fri Sep 12 01:50:08 CST 2014补充:
若干的代码重构
当复习到没有单词被遗忘时会提示用户(目的是让用户进行其它有意义的事情,比如增加一些新单词之类)
详细更新日志见附件的文本文件
也不写第几次更新了,感觉都乱了...直接写出更新时间就是了
Sun Jul 27 03:24:10 CST 2014:
改进1:
改进复习方式.
复习时不再要求用户直接输入估算时间,而是自动统计和累计用户的记忆保持时长.
如果用户认为自己记住某单词,该单词的本次记忆时长(上次复习到现在的时间),会被自动累计到下次的期望记忆时长.
改进2:
give_user_review.c中的模块被用宏替换的方式重构
清屏代码也被重构
本次发布没有经过充分测试,为了方便交流,提前发布.
但我自己使用时没发现什么问题
Fri Jul 4 19:48:52 CST 2014补充:
第17次修改
改进单词推荐方式.
改进1:
在计算距离遗忘临界点的距离时,采用按比例的方式进行计算.
比如A单词期望记忆100秒,B单词期望记忆1000秒.
B已经过去500秒(距离忘记剩余500秒),A刚刚添加,剩余100秒(距离遗忘剩余时间大于50秒)
这时B会被优先推荐给用户,因为B遗忘的比例更大.
改进2:
在有单词被忘记时,会先复习那些(数值计算上认为)被忘记且按比例最接近遗忘临界点的单词.
已经记住的单词要等到超过遗忘临界点(数值计算上认为被遗忘)时,会被推荐给用户.
如果所有单词都是被记住的,则选取一个按比例最接近遗忘临界点的被记住的单词.
改进3:
如果某单词期望的辨认(或拼写)记忆时长为0,则该单词总是会被立即推荐给用户.
改进1主要是目的是避免无意义的过度复习,使复习时间得到有效的利用.
改进2主要是目的是迫使那些被记住的单词更加接近遗忘临界点,同时避免改进1导致被遗忘单词遗忘程度(距离遗忘临界点)超过100%时,不论被记住单词记忆多么牢固,都不去复习被忘记的单词.
Fri Jun 20 16:04:17 CST 2014补充:
为了节省论坛服务器的存储空间,本帖附件只上传最新版本.
需要老版本的可以联系我以其它方式获取.
Wed Jun 18 21:13:29 CST 2014补充:
上传了第15次修改,修复了一些BUG,已经使用方式上的改变.(详见附件中的更新日志)