前一两个月有一些灵感写了一个和单字学习有关的side project,这个project应该在各种语言都适用
但毕竟自己也不是一个很会学习外语的人,不知道写出来后是不是真的有用,所以先写出一个简单的demo,Po上来给大家过目
希望大家对这个side project给些建议或批评,或是发现已经有现成的程式已经写的更好了,也希望能提供给我。
主要动机:
平时会阅读网络上自己感兴趣的英文文章来学习英文
虽然有人说遇到看不懂的英文就先跳过,或是从上下文来推敲单字的意思,但是发现自己感兴趣的英文文章有时候太难
平时会读网络上英文小说,但英文小说有时会有非常多描述事物或状态的形容词,而且有些构句觉得很高深,单字都会但整句就是看不懂。
当遇到太难懂但是实在很想看完的英文小说时,很多时候只能一句一句查单字,但不会的单字太多,总不想查完之后又忘记,希望真的有学到英文的感觉
所以我就想写一个个人单字记忆库,把含有生字的句子和生字的中文翻译藉著复制贴上就能加到单字库里。
单字库程式有一个接口会随机跳出之前加入的句子,可以在每天空闲的时候让接口跳出几个题目考考自己
而且因为都是自己读过的句子,所以在做单字题库的时候,会让自己对这些句子和单字更有印象,我认为理想状况下,几乎可以让自己无痛记忆单字
当然一开始读英文小说的时候,查询单字是蛮痛苦的XD
github 路径:
https://github.com/shnovaj30101/shno_wordbase
使用说明:
README.md已经有一些简略的使用说明,以下再多补充一些
成功让程式跑起来后,主要有3个接口:
1. addition接口 (http://localhost:3000/addition/)
用来加入新的句子和生字进mongoDB,从里面的gif可以看到,点击一个生字会跑出一个中文翻译和一个索引的input框框
索引的意思是要输入刚刚点击的生字的原型,比如说把过去式改回来,或是里面有一些标点符号
这样可以帮助搜寻功能,但如果原本句子里的生字就是原型就不用填写。
2. problem接口 (http://localhost:3000/problem/)
随机跳出一些单字题目来帮助记忆
3. search接口 (http://localhost:3000/search/)
单字库的管理接口,目前可以指定关键字和时间范围,对于搜到的题目可以做删除和编辑
目前使用心得:
虽然现在只加了约20几个句子,但确实关于背单字这方面真的蛮无痛的,至少因为这个程式,让我更乐于去读那些我觉得很困难的英文文章
因为有更大的信心确保自己读过的句子和生字可以背的起来,有一种累积的感觉。
但他还是有一些本质上的缺点,比如说加入生字和句子的速度还是很慢,很多生字都要网络查到翻译后,再加到单字库里
若想迅速累积单字量,还不如直接拿起坊间分类好的单字书来背
而且这单字库只适用于网络上的文章,现实中的文章还是能用手key而不是复制贴上,反而还更慢。
改进方向:
以下列举一些技术上可以改进的方向:
1. 把这个单字库改写成插件,这样就可以像medium一样文字反白就可以跳出一个addition接口让反白的句子能加入单字库。
2. 插件还能改进成只要点选某个英文单字,就可以自动到辞典网站查询他的中文翻译,并把中文翻译放到addition接口,让使用者用鼠标选择他觉得正确的翻译,只要第一点第二点完成,就能够几乎只用鼠标就能把句子加进单字库。
3. 目前功能只能加入单字,之后可以加上词组加入功能。
4. 也可加入笔记接口,上面可以比较自由的写一些关于这个句子的其他讯息,比如说文法。
5. problem接口的随机跳句子的机制可以加入一些权重,比如说让新加入的句子比较常跳出。
6. 目前search接口只能搜寻生字,无法搜寻句子里非生字的其他单字,但其实只是懒惰,这应该不是很难。
7. 把mongoDB改成elastic search,除了因为elastic search可以提供更强大的搜寻功能,主要只是想玩玩看elastic search XD
以上,谢谢大家花时间阅读,并欢迎提供各种意见。