之前想做一个利用艾宾浩斯遗忘曲线规律来背单词的小程序,但是不太知道这么做,参考查阅了很多文章,这里整理一下思路。

一、艾宾浩斯遗忘曲线

艾宾浩斯遗忘曲线的具体应用是利<复习点>来重复学习单词。

百度百科里面写的<复习点>分为八个周期,如下图:

其中,人的记忆周期分为短期记忆长期记忆

故,短期记忆周期:5分钟、30分钟、12小时。

长期记忆周期:1天、2天、4天、7天、15天。

在这里采用长期记忆这个周期来复习单词。

二、每个单词应该有两个重要的字段/属性,分别为<时间戳>、<学习次数>。

单词名称

单词释义

...

时间戳

学习次数

abandon

放弃

...

2023-2-10

0

时间戳:时间戳代表最近一次学习该单词的日期时间。(上次学习该单词的时间)

学习次数:用来表示对该单词的熟练程度。如下表。

0次

1

2

3

4

5

6

未学习

已学习1次

已学习2次

已学习3次

已学习4次

已学习5次

已掌握

三、艾宾浩斯实现的过程(一些思路)

所有单词初始的时间戳为空,学习次数为零。

1.用户选择单词本后,根据单词本的单词生成一个该用户的<单词列表>;

2.用户设置学习计划(例如,每日学习10个新单词,复习20个单词(复习的单词可不设置数量,即复习所有应复习单词))

3.用户每日学习时,应该根据<单词列表>生成<今日单词列表>、<需复习单词列表>。

<今日单词列表>应该随机从<单词列表>中抽取10个新单词(学习次数为0次),再从需复习单词(学习次数为1~5次)中随机抽取20个单词。

需复习单词的判断(重要!体现艾宾浩斯遗忘曲线的地方):

用户学习过单词后,学习次数+1,最高为6。根据时间戳、学习次数、当前日期来判断需复习单词。复习时间点( 1天、2天、4天、7天、15天 )

单词学习次数为1,当前日期 - 时间戳 > 1 天,该单词放入<需复习单词列表>。

单词学习次数为2,当前日期 - 时间戳 > 2 天,该单词放入<需复习单词列表>。

单词学习次数为3,当前日期 - 时间戳 > 4 天,该单词放入<需复习单词列表>。

单词学习次数为4,当前日期 - 时间戳 > 7 天,该单词放入<需复习单词列表>。

单词学习次数为5,当前日期 - 时间戳 > 15 天,该单词放入<需复习单词列表>。

考虑到用户不太可能都按规律学习,所以应该给单词熟练程度降级。(学习次数为1时,代表单词已学过,不再降级。学习次数为6时,代表已掌握,不再降级)

单词学习次数为1,当前日期 - 时间戳 > 1 天,该单词放入<需复习单词列表>。

单词学习次数为2,当前日期 - 时间戳 > 4 天,该单词学习次数 - 1 ,放入<需复习单词列表>。

当前日期 - 时间戳 > 2 天,该单词放入<需复习单词列表>。

单词学习次数为3,当前日期 - 时间戳 > 7 天,该单词学习次数 - 1 ,放入<需复习单词列表>。

当前日期 - 时间戳 > 4 天,该单词放入<需复习单词列表>。

单词学习次数为4,当前日期 - 时间戳 > 15 天,该单词学习次数 - 1 ,放入<需复习单词列表>。

当前日期 - 时间戳 > 7 天,该单词放入<需复习单词列表>。

单词学习次数为5,当前日期 - 时间戳 > 30 天,该单词学习次数 - 1 ,放入<需复习单词列表>。

当前日期 - 时间戳 > 15 天,该单词放入<需复习单词列表>。

四、用户学习进度以及单词的存储(一些想法)

用户的学习进度用单词的<时间戳>和<学习次数>来体现。

一开始我打算把用户单词数据保存在MySQL数据库中,但考虑到多个用户的单词数据保存,思路有些混乱,不知道数据库怎么设计比较好,所以采用一种其他的方式。

采用JSON格式或txt文本格式等来保存用户单词数据。个人认为JSON格式是一个比较好的方式。JSON(JavaScriptObject Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

1.这种文本数据可以存储在小程序的缓存文件中;也可以存储在服务器中,然后把该文件的路径添加到MySQL数据库的用户表中。

2.数据库中只保存单词本的单词,用户选择单词本后,就给他生成一个专属的单词数据文本文件。

3.用户每天学习时,先读取这些文本数据,结束后再写入新的文本数据。

其他:单词语音可以调用有道或扇贝的语音API。单词数据可以从这个链接获得GitHub - kajweb/dict: 英语字典 英语词库 字典词库 四级单词 六级单词 考研单词 雅思 托福 SAT GMAT TOEFL GRE

以上,就是我的一些思路和想法,如果有什么错误,欢迎大家指出。如果大家有其他的方式或思路来实现,欢迎大家指教。

基于艾宾浩斯遗忘曲线的英语词汇学习微信小程序——一些思路和想法相关推荐

  1. 微信小程序最新开发资源汇总,对学习微信小程序的新手有一定帮助

    微信小程序最新开发资源汇总,希望给想学习或正在学习微信小程序开发的同学们带来一定帮助,汇总的小程序资源有点繁杂,各种类型的小程序demo都有,大家可以选择自己想要的demo进行下载学习.这些微信小程序 ...

  2. 前端学习——微信小程序

    今天是学习微信小程序的第三天. 1. 一定要给脚本文件定义出口.如以下代码 var local_database = [{date: "Nov 18 2017",title: &q ...

  3. 新手从零开始学习微信小程序开发01

    新手从零开始学习小程序开发01 文章目录 新手从零开始学习小程序开发01 前言 一.什么是微信小程序? 二.如何着手学习微信小程序 1.开发工具下载安装 2.注册账户 前言 本章主要介绍微信小程序开发 ...

  4. 【微信小程序开发全流程】篇章0:基于JavaScript开发的校园综合类微信小程序的概览

    基于JavaScript开发的校园综合类微信小程序的概览 本文仅供学习,未经同意请勿转载 一些说明:上述项目来源于笔者我本科大三阶段2020年电子设计课程项目,在这个项目中,我主要是负责的部分有前端, ...

  5. 一个C#程序员学习微信小程序的笔记

    一个C#程序员学习微信小程序的笔记 客户端打开小程序的时候,就将代码包下载到本地进行解析,首先找到了根目录的 app.json ,知道了小程序的所有页面. 在这个Index页面就是我们的首页,客户端在 ...

  6. 云开发版高效学习微信小程序源码包含复习资料学习共享护眼精灵等功能

    ☑️ 编号:X0016 ☑️ 品牌:暂无 ☑️ 语言:微信小程序 ☑️ 数据库:无需数据库 ☑️ 类型:微信小程序 ☑️ 规格:小程序 ※ 欢迎关注私信(发消息不限制),领取福利 ※ ☑️ 源码介绍: ...

  7. 微信小程序实现lot开发01 学习微信小程序 helloworld

    最近走进一个新项目的任务里,主要的任务是实现用微信小程序利用websocket使用mqtt协议走网络控制继电器(其实在生活中这个技术已经普及了,我们用的充电桩扫码充电,我们学校里的饮水机扫码接水以及我 ...

  8. 毕设项目-基于人脸识别的高校课堂考勤微信小程序及系统

    基于人脸识别的高校课堂考勤微信小程序及系统 人脸识别.地图定位考勤微信小程序,调用百度云免费人脸识别API实现. 功能简介 教师学生信息管理,课堂考勤信息管理,人脸识别,地图打卡四大模块. 功能模块说 ...

  9. 0基础学习微信小程序(转载)

    原文地址:https://blog.csdn.net/qq_41464123/article/details/105198163 前言 微信小程序作为近几年"微服务"的杰出代表,应 ...

最新文章

  1. C# 启动外部程序的几种方法
  2. 还原时代原声,AI修复老北京再次火爆全网
  3. java接收xml数据_关于java后台如何接收xml格式的数据
  4. mysql t-sql,将T-SQL转换为MySQL
  5. 彻底明白TCP的三次握手与四次挥手
  6. 【CF809D】Hitchhiking in the Baltic States(Splay,动态规划)
  7. js中toFixed方法的两个坑
  8. javascript 实现禁止右键,复制,选取文本 (兼容firefox,IE,chrome等主流浏览器)...
  9. flask对mysql数据库增删改查_flask后台框架1.4(mysql配置+数据库增删改查)-Go语言中文社区...
  10. 蓝桥杯 ALGO-104 算法训练 阿尔法乘积
  11. java国际化程序创建属性文件_Java国际化(i18n)ResourceBundle类
  12. ./configure --prefix --with解释
  13. xwt100编程器使用方法与xtw100没有找到编程器解决办法
  14. mysql读写分离优点_mysql读写分离
  15. androidFD泄露问题总结
  16. Nav2极简笔记03-启动文件launch
  17. 若依集成actuator实现优雅关闭应用
  18. python字符类型是英文_Python中常见数据类型
  19. HTTP状态码完整介绍
  20. MQTT学习笔记——Yeelink MQTT服务 使用mqtt.js和paho-mqtt

热门文章

  1. web切图怎么做_ps如何切图?
  2. 我的世界服务器怎么制作头颅,MythicMobs/论坛教程/如何制作自定义头颅的怪物
  3. 2021-05-26 吾日三省吾身
  4. 学习通页面元素和属性
  5. iphone计算机适配,适配iPhone用户!戴尔将支持iPhone投屏电脑
  6. 【MPU6050能读ID 但读数据值为零(一个硬件问题)】
  7. MYSQL常用语法命令,MySQL中delete,drop和alter分别是用来删除什么的?有什么区别?删除了以后可以恢复吗?
  8. MASM写的屏幕刻度尺工具
  9. 思维导图软件TheBrain使用攻略——启动并探索TheBrain窗口
  10. 刚刚出新的Kubernetes 却曝出了“高危”安全漏洞;亚马逊将推免费新闻视频服务,对标苹果 | 极客头条...