从雅虎、海词、句酷在线词典生成新东方背单词软件的词库文件

最近在忙着学英语,重点的一件事就是背单词。先从网上找了N个背单词的软件,有:轻轻松松背单词6.31美音版,我爱背单词7,奇迹智能记忆3.0,词汇大爆炸2.0,新东方背单词4。本想很快选定一个马上背单词,没想到这些背单词的软件在导入自定义的单词表时都非常麻烦,而且容易让程序崩溃,可能把原词库文件破坏,更有甚者程序无法再次启动!

我背单词的原则本来是这样的,我把要背的单词分为两种,一种是用背单词软件把大学六级(不含四级)的词汇背一遍,另一种是平常看到的英文文章或进行听力训练时学习到的词汇和短语。

第一类词汇因为没有语言环境,只能硬记,所以想用软件来帮着背,从网上看到奇迹和大爆炸不错,就下来试试,奇迹的感觉就是在硬背,不过它通过遗忘曲线原理不停地刺激你,但它又不给例句(新版本5.0好像有例句),只给你一个英文单词再加上简短几个字的简单意思,真不知道如何记住,也不知道记住了又如何应用?所以给人的综合感觉就是如果是背一些只有单一词性的单词时(比如:只是名词,或只能是形容词时),还比较容易理解单词的意思,遇到这种情况通常想查一下其它的词典,看一下详细的英文解释或例句,在语言背景中可能好记些。但这款软件不推荐你停下来查字典,只是让你硬记,记下一段时间后,有些单词因为常错,所以经常出现,确实是记下来了,但这个单词的准确意思就是不知道,更不会用。我用了一段感觉就是:不知道自己到底背了哪些单词,但这些单词出来的时候,好像真知道它的意思。

第二类词汇因为是在学习过程中不断积累的,有明确的文章背景,容易记忆,但随着时间的推移也会忘记,当然你如果能够按照遗忘规律及时复习,当然效果很好。但学习超过1个月之后,你真不知道该复习哪些单词,所以也想用这些背单词软件来帮忙。

所有的背单词的软件都有单词导入的功能,但每个软件的导入功能都不敢恭惟,举几个例子:

轻轻松松背单词虽然还是一个16位程序,也是唯一的一个绿色软件,功能确实不错,真人发音,例句都有发音,但对于每个单词和意思的长度有限制,只能是30和40个字节内,而现在的longman和oxford的解释加上例句都很长,导入后全部单词的解释全部被截断,无法忍受。

我爱背单词7安装介质硕大,整个是一个角斗士系列,到现在已经忘了它的导入功能的缺陷了。

奇迹记忆可以导入文本文件,要求一个单词占一行,意思与单词之间有空格隔开,一个明显的问题就是,如果你的单词解释中如果有空格,导入之后全乱,而且导入之后,该软件只能一个单词一个单词的删除!不提供多选功能,也不能导入例句。
大爆炸要求的格式是一行英文一行意思,提供一大堆类似xml的标记,可以导入单词、例句、词组.......,这个软件是我看到过的设置最复杂的一个软件,到处都是菜单,子菜单,外面的帮助与里面的帮助不一致,但用来背第一类单词还是不错,因为它也有真人发音+TTS发音,例句也挺多,与奇迹智能背单词类似,也按照记忆规律不断提醒你,它还提供一个工具把轻轻松松背单词的词库直接转换的功能。

新东方背单词4是一款比较简单的背单词软件,功能没有其它软件复杂,导入功能做得也不怎么理想,看了后面就知道了。它的帮助文档上说可以导入单行文本之类的,但一试经常出错,一出错还破坏你的词库。经过一番折腾,终于发现它对于一种指定的格式支持的比较好,如果注意导入的成功率还是很大的。

顺便还要提到的就是一款叫multiconvert的软件,可以转换多种背单词软件的词库,可以把金山词霸中的生词表转换成其它格式。

最后我的背单词的方案就是:对于第一类单词,使用大爆炸,当然词库用的是轻轻松松背单词中导过来的六级词库。对于第二类,使用新东方背单词4,下面详细介绍新东方要求的文本文件的格式。

新东方推荐的导入文本文件的格式是:

<w>单词拼写
<p>音标
<c>词义
<e>英义
<d>短语
<a>助记法
<f>词频
<s>同义词
<h>反义词
<k>考点
<o>其它

例句的标志我没有找到!谁找到后可以告诉我一声。

新东方的音标写法也国际上流行的方法都不一样,好像是独创的,只能记英文的音标,对我们足够了。国际音标是用unicode来表示的,而在新东方中却用一堆阿拉伯数字来代替,安装新东方提供的一个TOPhonetic字体文件就行。

为了试出以上这些格式标记与音标,让新东方崩溃了无数次。

也就是说遇到<w>标记之后,就识别出一个有效的单词,一直到下面一个<w>标记,中间的所有标记都是用来对这个单词进行解释的。这里面有一个必须要注意的问题:

很多的单词解释是多行的,你如果用windows中的文本编辑器编辑该文件,那么换行符后面的内容就被截断,甚至出错。前面说到的为什么导入过程经常出错大多都是这个问题。

新东方要求使用的是UNIX下的文本文件格式,所谓UNIX下的文本文件格式与Windows/DOS下的主要区别就是换行符的表示问题,在Windows/DOS下所有的换行符用2个字节存储,即换行与回车CR/LF,对应16进制代码为0x0D, 0x0A,而UNIX下只用0x0A表示。所以你只能用其它文本编辑器,这里我用的是Notepad++,一个免费软件,像EditPlus、UltraEdit之类的软件肯定也行,从菜单中将格式设置为UNIX格式就行。

另外还需要注意:在正式导入到你的单词库的之前,先用一个试验词库试着导一遍,不然损坏你的词库文件不要怪我。

上图从软件中设置了显示LF标记,当然按一下ENTER键就出一个LF。

另外,为了减少手工录入的工作量,也减少不必要的错误,用2天时间专门写了个.NET 2.0程序,你只需准备一个单词列表文件,也就是一个单词或词组占一行,程序会从http://bj.dict.cn中取出单标和简义,从http://zidian.cn.yahoo.com/中取出详细解释,形成一个新东方识别的文件格式,直接导入就OK。

今天,我可以开始痛快地背单词了!

因为是基于HtmlParser快速实现的,也没有时间完善代码,代码写得很乱,想参考源代码的请到这里下载。

使用方法:

在bin\release目录下有一个dict.exe程序,在tests目录中有一个wordlist.txt文件

首先编辑wordlist.txt文件,放入你的单词表,一行一个单词

然后用DOS窗口到bin\release目录下,运行dict  wordlist.txt 即可

在tests目录中会产生一个新文件就是新东方要求的格式

特别提醒:上面程序不保证永远可用,因为内容抓取自词典网站,网站变化后,HTML解析器会出现不可预料的结果。

 

2007年2月1日:

改用SuperMemo(Advanced English Speed up!)背单词了!

2010年6月15日:

雅虎、海词网站都改版了,程序已经不能用了。禁不起一个网友的执着要求,想从句酷上提取单词例句,代码修改后可以运行了,但没有仔细测试。源代码可以下载:htmlparser_jukuu.rar

posted @ 2006-12-08 18:02  申龙斌的程序人生  阅读(11405)  评论(19编辑  收藏  举报