reciter 是个用来训练记忆的脚本。你可以它背单词,背诗句……只要是键值对都可以加入数据库,下文用“词”一字来指代你要背的东西。
这是个命令行工具,推荐在*nix上用。一点也不花哨(没法花哨),不过方便实用。
需要的东西:
- bash (3 以上)
- sqlite3
- 你的“词”库(没有也可以从零积累)
推荐在linux环境下运行,如果你需要记忆中文条目,注意对中文字体/编码的配置。
你要背的东西可以是中文成语、诗句,可以是外语单词……只要你想得到。
recite 用到的“词”库在recite_work_dir
下,是db
的数据库文件。
数据库含有三张表:dict
,errorlist
,progress
。
dict 表就是”词“库,它有几列:
- ”word“:你需要记忆的东西
- ”exp”:它的提示或解释
- “freq" :它的频率。频率越高你需要记忆的次数越多。
- ”time“:添加的时间。以后按日期查起来很方便。
目前,它内置了一个空白的数据库default.db
和一本小的英汉词典dict.db
。(词典10万左右)方便记单词的人群使用。
创建recite用的数据库可以这样:
$ recite -d <数据库名>
如果数据库存在,那么使用它记忆,否则提醒你创建空数据库。
不加-d <数据库名>
表示用的是默认的数据库default.db
。
往数据库里加条目有两种途径:
手动输入条目和解释。适用于看书的时候往里面加入单词。
$ recite [ -d <数据库名> ] -a
然后输入对应的item,explanation就行了。q
退出。
这个方法使用于自己制作“词典”。假设“词典”的文件名是mydict.csv
,分隔符是逗号,创建的空数据库名字是mydict:
$ sqlite3 recite_word_dir/mydict.db
sqlite>.saparator ,
sqlite>.import mydict.csv dict
自制字典格式在后面说明。
$ recite # 背!
有三种模式:
- 按照序号背
- 按照词频背(又叫温故)
- 随机抽选条目背
这三种模式分别用的参数是:-A
,-R
,(空)
不管哪种模式都从复习开始。你得按照词频(错误的次数)把所有错的背一遍。
不管哪种模式,回答问题正确了,词频会减少1,错误了会增加3(你可以更改这个数)。
如果你是typo造成了回答错误,但是又不想多记忆三遍这个词的话,在问你有没有笔误的时候做赶紧出点反应(随便写些东西再回车)就行。
对于条目的操作一般是根据id引用条目。sqlite
的表里有一个自增列rowid
,用它操作比较方便。
在**“选中-操作”模式下,你可以直接通过输入id**选中条目,也可以按字符串查找条目来得到id并选中它,然后确认相应的操作。在查找条目的时候,输入的待查找的字符串前面应该跟一个半角符号。用处如下:
符号 | 用处 |
---|---|
/ | 匹配关键字 |
^ | 匹配开头 |
$ | 匹配结尾 |
= | 全字匹配 |
用-i
参数,“选中-操作”。
有的时候你把词典制作好了,或者需要多背诵几次某个条目,你可以用-i
进入“找id - 增加频率”的模式。
####重设背诵次数
用-0
参数,“选中-操作”。
你实在不想看到这个条目,日后再说,先归零。
用-r
参数,“选中-操作”。
用-l
参数。
默认是列出dict里的条目,如果想看错误的历史记录可以在后面跟一个-e
参数。时常看看这张表有利于整体印象的强化。
用-s
参数。有词典的时候,很方便从词典里找某条目,然后人工增加词频来学习它(通过-i
一步到位)。查找的时候用^
作为前缀可以从开头匹配,用=
开头可以精确匹配,否则是简单的关键字匹配。
为了降低难度你可以随机留一些字(母)在空上。提示率可以用-p <0-10的整数>
来指定。默认是0。
自制dict表用带分割符号的文本文件。以,
为分隔符为例,每一行的格式:
关键字,解释或提示,初始词频,添加日期YYYY-MM-DD