最近用js写了一个用完形填空的方式进行语境记忆单词的程序

虽然电子词典从文本中查单词十分方便,但每次用手或鼠标点击一下也得一秒钟,用阅读软件标注一个生词又得一秒钟。而且每次将文章与文中生词整理出来也浪费时间。最重要的是,边看文章边查单词很难进入状态。试想有这样一个智能的软件:

1 将没有看过的文章输入,程序能自动识别出难度较高,但对于考试比较重要的单词,因此对于比较难的小说例如《双城记》这种,可以先背重点词汇,再看原文。

2 你看过文章又背过单词之后,软件可以将你不会的单词隐藏,将原文做成完形填空,进行词汇拼写练习。
3 对于程序提取出的单词,你可以按照你已经熟悉的和你不太熟悉的进行标记,并且一键将文本与生词表保存到本地,以后只需要打开记录文件就可以重做完形填空强化记忆。
4 输入新文章之前,可以先 Load 所有先前的记录。凡是以前曾经标注为已经掌握的词汇,新文章的生词表中也会自动标记为已掌握。
5 背单词必须要有音频,而且程序可以自动朗读整理好的单词表。
6 软件要能够识别并去除英文单词常见的后缀。例如 -ing, -s, -es, 辅音后去e, 变y为i, 双写辅音字母等这类固定语法规则,一旦发现就要先还原,再从核心词汇表对比。

由于很久以来一直没有人开发出这样一款令我满意的软件,所以我用javascript自己写了一个。用熟练之后操作是这样的(视频):

> 小破站视频演示


蓝色是已掌握的单词,黄色是还需背诵的单词。文本是《福尔摩斯探案集》


完形填空,需要用键盘输入。

由于我经常重新编辑界面,所以目前可能与图片不太一样。
目前使用的词库是 7000 GRE核心词汇,可以识别出大部分我不认识的单词。每篇文章提取出的单词我都把认识的单词做了标记,几篇文章训练过之后,程序识别出的基本都是我不怎么熟悉的单词了。

目前单词的释义比较简陋,一词多义的情况照顾得也不全。但这软件主打的是从文本上下文学习单词的意义,所以暂时问题不大。

简单操作:
1。 粘贴文本,点击Start识别所有单词,再点击Cloze进行完形填空练习,点击Pause会保存进度并终止完形填空。
2。 点击一个单词,按主键盘4可以直接将单词标成蓝色,再按4又会变成黄色。注意:只有黄色单词才会列入完形填空练习。
3。 完形填空时,按空格键或退格键重新输入。按,和。可以前后跳转,按分号建;查看答案,按主键盘1键可以提示一个字母。输入正确单词会变蓝,需要手动跳转到下一个单词。
输入第一个单词之前,可能需要按以下空格键,页面才能自动滚动。这个是装门设计的。
4。 朗读词汇表。直观操作,可调整间隔,点Pause停止。如果你不小心点击了多次,会启动多个朗读进程,需要点击多次Pause才能一一关掉。
5。 Level设定不用管。大多数人用cet-6都可以,其他选项的单词表我没有仔细校对过。

复杂操作:

4。 保存记录:右键点 Export 链接另存为,可以保存当前学习记录到本地。记录文件中,包含输入文本和标记为蓝色的单词列表,因此体积很小。
注意:输入文本最后一行的前20个字母会被当作文章标题,修改此行可以方便日后复习时查找。另外每次保存时,文章录入的时间也会自动包含在文件名和主文本中。
注意:已经标记为蓝色的单词,必须在点击Pause之后才能被包含在当前的学习记录中。

5。 读取记录(三步):点击Load,选择文件;再点击Start重新提取单词;然后点击Redundant将上一次标记的已掌握词汇全部标蓝。

6。读取已掌握的单词列表:点击Import Lists, 打开储存学习记录的文件夹,用Ctrl + A选择所有记录文件,点确认。之后再点击 Redundant,你会发现凡是在之前文件中标为蓝色的单词,现在也自动变为蓝色了(此时依然需要点击Pause才能保存在当前的学习记录里)

安装:

在线版(推荐):无需安装,访问网页即可使用。
https://fulgenssequar.github.io/mw/

Chrome插件版:https://github.com/fulgenssequar/milkyway/
打开Chrome浏览器 点击: 菜单 附加组件 开发者模式 导入已解压的附加组件 选择源代码文件夹
其中,项目源代码可以从Github项目中Clone,点击”Download Zip“下载解压即是。建议把文件解压到 D:/Program Files, 因为之后一旦移动,Chrome浏览器就要重新安装此插件。

大家有什么问题或者建议可以到Github主页上提issue:


如果觉得好用请点赞。
12 Likes

有个类似功能的app , 不过收费略贵, 买过163的app , 我竟然也觉得贵。 一定支持你到底。

能不能给个链接?可能别人用的单词表全而且校对得比较好,我想去观摩一下。

可以 , 名称叫 LingQ , 主要的功能是导入新闻 电子书 网页 , 来学习的。一年700 好像是 。 我好久没登录了 , 或许有新功能了;

你这个就非常赞了!!

词表你可以采用 COCA 60000 活着 iweb的词频表;

类似或相关的开源或免费软件

LearnEnglishBySubtitle

src: studyzy/LearnEnglishBySubtitle

深蓝英文字幕助手,是一款学习英语的辅助工具,可以通过记录用户的词汇量,然后对英文字幕中不认识的单词进行注释,做到摆脱中文字幕看懂美剧英剧。
使用C# 写成,需要.Net Framework 4.0的运行环境

“深蓝英文字幕助手”是一款看美剧(英剧)学英语的字幕辅助软件,通过只对英文字幕中生词的注释,实现摆脱对中文字幕的依赖,同时在潜移默化中学习英语的目的。本软件主要有以下特点:

  • 采用斯坦福自然语言处理引擎,实现很好的词性判断和注释预判。
  • 支持灵格斯提供的维科英汉词典,能够准确的提供英语单词的中文解释。
  • 采用柯林斯词频分级方式,方便为用户初始化词汇量。
  • 支持SRT,ASS等常用的字幕格式。
  • 自动对中文字幕过滤,对于中英双语的字幕处理后只保留英文字幕。
  • 支持用户词汇和生词的导入导出和调整。
  • 支持百度翻译和有道翻译提供的整句翻译。
  • 扩展:支持沪江开心词典,有道词典生词本等外部词典的生词本导入。
  • 扩展:支持灵格斯提供的朗道英汉词典、现代英汉综合大辞典,英汉速查词典,维科词典等较权威的词典,能够准确的提供英语单词的中文解释。
  • 最重要的是,本软件完全绿色、免费、开源

melt subtile

src: Celthi/meltSubtitles

融化字幕(melt subtile)去掉字幕的熟词,给生词一个参考释义
使用Python编写,支持Python 2和3

思路

  1. 词库假定是你认识的单词
  2. 将字幕里在词库中的单词去掉,
  3. 通过查询有道网页得到生词的释义
  4. 将释义加入到新的字幕文件中
  5. done

洛克生词本

src: 洛克生词本

语境学英语、辅助阅读英文原著、妙用Anki的利器
目前最新版本1.7,仅支持Python 2.x
程序下载地址: https://pan.baidu.com/s/1jItXuVO

为什么要使用洛克生词本?
帮你更有效地背单词,更高效地阅读英文原著
洛克生词本可以做什么?
自动扫描英文文本中难词、生词,查找释义,添加例句
注意!这个例句是难词或生词出现在文本中的那个句子,也就是这个单词所在的“语境”
洛克生词本生成的是什么?
是tab键分隔的txt文件,你需要把它导入到一个记忆辅助软件“Anki”中
我最终怎么学习?
Anki记忆库是由许多卡片(Card)组成的,牌面是“生词”,牌背是“音标 - 例句 - 释义”,
就像我们以前自己做的抽认卡一样!
Anki使用的是被证明行之有效的记忆算法,帮你更科学地复习

find-all-the-new-words

src: Steven-AA/find-all-the-new-words

FAIDK 建立自己的词库,找出文章中的生词(配合anki使用)
依赖Python 3.6

VocabularyAnalyzer

src: hao-lee/VocabularyAnalyzer
英语词汇分析器,可用于提取文本中的高阶词汇
用 NLTK 的 lemmatizer 函数库进行词形还原

epubFreq

src: sandae/epubFreq
为epub电子书添加词频标记和注释(词典释义)
使用shell和python混合编程

advanced_freeq

src: advanced_freeq

A Python script to generate word frequency report of English text, pdf, epub, mobi.

收费类的

爱英阅

src: 爱英阅iyingyue

英文分析与提词软件,辅助阅读英文原著、英语资讯,为英语学习和英文原著爱好者设计,帮助读者提前梳理英文中的生词,获得更顺畅的阅读体验.
可以对原著进行难度分析:有多少不认识的单词,占比多少,词汇生僻度,单词总量等。

3 Likes

记得很久之前,有道翻译官做的类似的事情,不过我自己不太需要,所以就没持续关注了。

感觉你还是很有想法做个 基于学习方法观点的应用的,不过我觉得你真的需要一个产品和设计,黑乎乎的有的太程序员风格了。想法不错,功能也基本都有了,不过还可以多考虑考虑可用性/易用性。

只为学习使用 , 这个就足够了 , 普通人也可以看懂 , 只要不是电脑小白。 我之前做测试工程师 , 这点代码没什么问题。

iOS上的蒙哥阅读器有类似的对epub的词汇进行分类的功能。

进行分类的依据是词频表,各大学习型词典都有星级等词频分类标识,这一点需要更多的积累。
可参见
https://www.pdawiki.com/forum/thread-21736-1-1.html

我,用 Anki。

谢谢楼主分享。
个人一直在用Words Discoverer(提取码an428h)插件。关键把陌生单词批量highlight出来。后续填空,导出句子,导入anki等就好弄了
当前这个插件有些小毛病,不知楼主能否修改一下:
1,同步:google drive科学也连不上,改为坚果云;
2,插件没有highlight的单词,用户也没办法highlight。这点不人性;
3,锦上添花的:自定义词库,不同难度单词不同颜色highlight等。
谢谢啦。

1 Like

可惜楼主制作的在android手机上测试都无法正常使用。。。