Hugh 发表于 2013-5-28 07:46:10

【图文】手把手教你[转换]+[排版] MDX格式词库

本帖最后由 Hugh 于 2016-3-15 22:05 编辑

入门贴小白进来,老鸟飞过
如有操作失败,请贴图跟帖。
在看本帖前,请确信自己已经看过置顶贴mdict版制作方法和常用工具, 能看懂多少是多少,当然一点都不懂也是可以的
目录:
1楼:准备
2楼:转换
3楼:排版
4楼:词典信息
5楼:常用的正则
---------------------------
第一阶段:准备原材料
自己百度下载如下工具:(如果你找工具都不行,那就站内短信我,我会共享给你, 但愿你不要太懒,让我太忙。)
1. Ultraedit
2. EmEditor
3. 置顶贴:MdxBuilder 3.0 Beta2
4. PC端Mdict
5. 7zip解压缩软件
6. 请百度 苏沈小雨 css2.0 手册,自习下面内容,不求全懂


7.这是即将被动刀的DSL格式的《Longman DOCE5 Extras (En-En)》到 HERE下载备用


等你准备好了,我们就开始奇妙的DIY之旅!

Oeasy 发表于 2013-5-29 11:32:52

本帖最后由 Oeasy 于 2013-5-29 11:36 编辑

楼主您好,我正在按照您的tutorial制作MDict词库,目标是制作一部乃至更多像您发布的{【2013.05.25】语音版 Merriam-Webster's Collegiate Dictionary}那样高质量的带原版发音的词典。在这个过程中也可以学习html、css方面的知识。
我的动刀对象是AHD4,原材料是dsl格式AHD4。

我刚开始用的EditPlus,后来还是转到UltraEdit了,后者确实更强大。

目前到了这一步。

发现词头有一些有问题,需要之后再细调。
可以开始学习排版了。
恳请楼主把教程继续下去,尤其是排版以及您制作语音版Merriam-Webster's Collegiate Dictionary的过程。
做伸手党是没有前途的,向楼主这样的好人致敬!

wilen 发表于 2023-2-24 06:38:46

感谢楼主分享,自己动手学习学习

MrLing 发表于 2022-12-29 07:34:26

看一看,学习学习

yutoo 发表于 2022-12-25 22:30:45

这个教程真的很好!有空来学习学习!

sandianyinglang 发表于 2022-11-18 13:07:57

好东西呀,值得研究一下

lsz68 发表于 2022-8-12 13:22:38

非常期待 谢谢楼主

又是六点钟 发表于 2021-3-9 23:37:22

感谢楼主分享

1650694369 发表于 2020-5-11 19:53:27

非常感谢H大的帖子。除此之外,这两天结合chigre图片词典的制作思路和自己拆了几个mdx和mdd(一并感谢),感觉学到了好多。有时间了一定要自己做一做。

recure 发表于 2020-5-4 22:33:19

我有纸质的词典,还要先ocr出来文字才行,慢慢先试试吧

hbxfzyy 发表于 2020-4-21 00:13:29

写的很详细。。。有空了也着手弄一个MDX看看。

Hugh 发表于 2013-5-28 07:49:10

本帖最后由 Hugh 于 2013-6-8 18:15 编辑

第二阶段: 转换
1. 右键下载好的Longman DOCE5 Extras.dsl.dz,7zip解压缩
   如下图操作
   
2. 得到一个文件夹,里面有一个Longman DOCE5 Extras.dsl文件
3. 将这个文件放到便于操作的地方,我习惯于桌面
4. 用ultraedit打开刚才的文件(好吧:我再详细点:文件-打开-...)
5. 打开后截图:
   
6. 先要了解下mdx文本的结构(以下分割线之间的内容)
-----------------------------------------
seabird
<b>seabird</b><br><font color=navy>海鸟</font>
</>
dog
<b>dog</b><br><font color=navy>狗</font>
</>
-----------------------------------------
每一个词条必须包括三个部分
   1)head如文本的红色部分seabird和dog
   2)body如上文本的绿色部分
   3 ) tail就是文本的</>

7.将刚才第4步打开的文本只具备两个title和body,缺少tail</>; 所以要做的就是加</>

8. 观察文本,会发现
   1)文本1、2、3行如下所示 多余,删去,一定不要留空格,也就是第一行现在是第一个head 'bout
       #NAME        "Longman DOCE5 Extras (En-En)"
       #INDEX_LANGUAGE        "English"
       #CONTENTS_LANGUAGE        "English"
   2)上一组 body下方和下一组head之间有空行,正好是</>的位置,有人想到正则了吧?非也----仍然是机械的方法!
9.
    1)将鼠标定位到第四行尾(图示1),按住shift键,点击第六行首(图示2)
      
    2)按住ctrl键不放再按 R 键,跳出如下替换窗口后,鼠标在查找框内从左上角向下拖动,直到图示效果
      
    3)按住ctrl键不放再按 c 键, 执行复制功能,然后将鼠标定位到 替换为 框里,按住ctrl键不放再按 v 键,执行粘贴功能
    4)这一步比较关键:用鼠标定位到替换为框里的 第二行,英文输入法状态下输入</>
      
    5)点击右侧的全部替换
   其实以上步骤也可以用转义符解决。但因为是入门教程,所以就用这种最可爱的方式吧!o(∩_∩)o
    6)o(∩_∩)o 得到如下文本
      
    7)执行文件-另存为,按如下操作
      
10. 似乎符合第6步的结构了,试下吧!
      打开Rayman的Mdxbuilder,按图示操作,注意别打错勾儿!
      
      点击 Start ,天哪,status报错了
         ---------------status------------      
         Begining loading source file...
         Content is longer then 8388608 at position: 0 of the source file
         Failed to load source file, process cancelled
       -----------------------------
11. 关闭Ultraedit,打开EmEditor(这个我更顺手些),文件-打开刚才的extras文本,检查head,body和tail吧-------发现问题了</>后面多了空格了!
   
12. 删除</>后的空格:
      在EmEditor中,如上图所示选中</>所在整行,按住ctrl不放再按H键,跳出替换对话框(这和Ultraedit快捷键不同),按如下图示操作点击替换全部
      
13. 将文件另存为extras1.txt
14. 再次用Mdxbuilder执行第10步,激动人心的时刻来了:
   
   —————————status———————————————
Begining loading source file...
Done
Time used for this section: 1 seconds
Sorting dictionary...
Done!
Begin processing index...
Done!
Original index size = 553KB, compressed size = 244KB, compression ratio = 44%
Time used for this section: 0 seconds
Begin processing data contents...
Done!
Original text size = 193793KB, compressed size = 43340KB, compression ratio = 22%
Time used for this section: 18 seconds
Number of entries: 32359
Conversion succeed!
-----------------------------------------------------------

15. 用PC端加载做好的extras.mdx文件,查个词试下 输入“dog”------WOOOO,尽管丑点,它也是词典啦:
   
   
16. 转换成功,本楼层结束,坐电梯到3楼学习排版基础吧!

Hugh 发表于 2013-5-28 07:49:32

本帖最后由 Hugh 于 2013-6-13 14:55 编辑

第三阶段: 排版
排版之前,必须先对要处理的文本勾勒一个基本的概念,预期的效果图,基本的一些元素我已高亮

底下我们来DIY onebyone
---1. entry--------
1. 为了后期要用正则,免去转义符的烦恼,我们将所有的中括弧换为尖括弧
工具:emeditor
查找(ctrl +H):[
替换为:<
然后同理换掉]为>
文件另存为Extras2.txt   (由于编辑可能失误,所以要尽可能的对每一次变动作另存处理)

2. 定位文本到词条dog:
查找(ctrl + F):Domino rushed to meet her, tail wagging with excitement.
下面是dog相关文本

注意:此处高亮的dog并非效果图中高亮的dog,而是词条列表中的dog,所以用到正则:
a.先观察规律:每一个词条列表的词如dog前都有一个</>,并换行。之后都有一次换行 ,还有一个”大空格“(文一点说就是一个制表位,你可以不记住),
b. 运用正则
工具:emeditor
查找(ctrl +H):</>\n(?<sub>.*?)\n\t
替换为:</>\n\1\n<b>\1</b><br>
选中正则表达式选项

点击全部替换之后文件另存为extras3
说明:\n表示一次换行,(?<sub>.*?)表不确定的部分,\t表示一个制表位,\1表示查找的不确定部分后期显示结果,<br>表示css网页换行,<b></b>表示中间的内容加粗,也是css语言
c. 用mdxbuilder再次转文本为mdx,查验效果图:

Step 1 is done!
---2. segment bar--------
工具:emeditor
查找(ctrl +H):<br><b>I.</b> <i><c>
替换为:<table width="100%" border="0" bgcolor="#D3D3D3" ><tr><td align="center"><font color= "black" size=-2 ><b>I</b></font></td></tr></table> <i><c

文件另存为extras4
用mdxbuilder再次转文本为mdx,查验效果图:

---3. Part of speech 词性--------
工具:emeditor
查找(ctrl +H):<i><c>(?<sub>.*?)</c></i>
替换为:<b><font color=#DF0101>\1</font></b>
勾选正则

文件另存为extras5
用mdxbuilder再次转文本为mdx,查验效果图:

---4. 搭配bar   COLLOCATIONS FROM OTHER ENTRIES--------
工具:emeditor
查找(ctrl +H):<b><c chocolate>COLLOCATIONS FROM OTHER ENTRIES</c></b>
替换为:<table width="100%" border="0" bgcolor="#D07427"><tr><td><span style="color: #FFFFFF;"><b>COLLOCATIONS FROM OTHER ENTRIES</b></span></td></tr></table>
不勾选正则
点击全部替换
---5. 搭配   a pet dog/cat/rabbit etc--------
工具:emeditor
查找(ctrl +H):<m3><b><c saddlebrown><trn>(?<sub>.*?)</trn></c></b></m>
替换为:<br>&nbsp;&nbsp;<font color=saddlebrown>▪</font> <b><font color=saddlebrown>\1</font></b></m>
勾选正则
点击全部替换
---6. 搭配例句   I used to have a pet rabbit when I was young.--------
工具:emeditor
查找(ctrl +H):<m4><c gray>▪</c> <\*><ex><lang id=1033>(?<sub>.*?)</lang></ex></\*></m>
替换为:<br>     <ex><font color=#2F4F4F>\1</font></ex></m>
点击全部替换
勾选正则
文件另存为extras8
用mdxbuilder再次转文本为mdx,查验效果图:


本词典还有其他部分需要编排,但原理一样。


最后一步就是删除冗余代码,方法很简单选中冗余代码,替换为框中为空,什么都不填,然后点击全部替换即可。
如本词典的</m>就是冗余,如下操作,即可全部删去:

Hugh 发表于 2013-5-28 07:49:57

本帖最后由 Hugh 于 2013-6-13 14:35 编辑

第四阶段: 编辑词典信息
编辑词典信息通常包括
1. 词典名称
2. 词条数(每次mdxbuilder会有提醒)
3. 词典特征(尽量不要杜撰,可以到官方网站网站上搜索)
4.数据来源
5.词典编辑日期(方便后期更新及使用者参考)
以本词典为例,用文本编辑器emeditor事先写好以下内容,点击web预览按钮可以看到效果

------------------------------------------------------
<table width="100%" border="0" bgcolor=#5c67c0><tr><td align="center"><fontstyle='color:#FFFFFF; font-size:150%;'><br><br><b>Longman DOCE5 Extras</b><br><br><br></font></td></tr></table>
<table width="100%" border="0" bgcolor=#fcd91b><tr><td align="center"><br><fontcolor=red><b><i>a great companion for the main Longman DOCE5 dictionary<i/></b></font><br><br></td></tr></table>
<br><b>Number of Entries: </b>32,359
<br><b>Features:</b>
<br>·Additional material (phrases, collocations, examples from corpus)
<br>·It doubles the original content of the printed
<br>·From Longman Dictionary of Contemporary English 5th Ed. DVD
<br><br><b>Data from .dsl source files; Last converted by Hugh for Mdict</b>
<br>2013 06 08
------------------------------------------------------
复制编辑好的文本,贴入mdxbuilder下框

title我一般不填,因为有些软件会读取。不方便他人更名
转换为mdx,用Mdict加载,查看词典信息

Hugh 发表于 2013-5-28 07:50:17

本帖最后由 Hugh 于 2013-6-13 20:26 编辑

用emeditor编辑词典中最常用正则三例:
-------示例一--------
将每次出现的 doesn't 改为 does not,(前提是文本里没有其他的*n't, 此处仅作例解)
查找: (?<sub>.*?)n't
替换: \1 not


-------示例二--------
</>
flu{·}ox{·}e{·}tine
      <b style="color:navy">flu{·}ox{·}e{·}tine</b>...(注:后面还有其它文字)
</>
flu{·}phen{·}azine
       <b style="color:navy">flu{·}phen{·}azine</b>...(注:后面还有其它文字)
</>


要求
1. <b style="color:navy">和</b>中间的{·}替换成 XXX
2. 其它部分的{·}保持不变
查找内容:(<b.*){·}(.*</b>)
替换为内容:\1xxx\2
多次替换,直到0处替换

-------示例三--------
要求:将所有数字黑体编号改为数字斜体编号
查找:<b>(*)</b>
替换为:<i>\1</i>

clarencehuo 发表于 2013-5-28 08:01:07

这个好!

zcb 发表于 2013-5-28 10:15:19

感谢楼主发布教程,功德无量!论坛就缺少这样的帖子!

clarencehuo 发表于 2013-5-28 11:34:08

期待第三个阶段。

louislaolu 发表于 2013-5-28 12:25:08

连“文件”“打开”这一步都有了。小白有福了{:soso_e100:}

thy234152566 发表于 2013-5-28 13:10:49

请继续

54john 发表于 2013-5-28 15:24:23

ultraedit是一大利器,请楼主再普及下正则表达式。

Hugh 发表于 2013-5-29 07:58:21

ultraedit是一大利器,请楼主再普及下正则表达式。
54john 发表于 2013-5-28 15:24 https://pdawiki.com/forum/images/common/back.gif
其实在我DIY词典过程中,正则用的非常少,基本就是那两三条。

54john 发表于 2013-5-29 09:06:37

期待排版的内容,精彩在后面。

Hugh 发表于 2013-5-29 10:34:37

期待排版的内容,精彩在后面。
54john 发表于 2013-5-29 09:06 https://pdawiki.com/forum/images/common/back.gif
兄弟其实是高手了----纯粹来捧场的,谢谢。这种入门贴别见笑!

Oeasy 发表于 2013-5-29 10:44:59

Guys, you can refer to this thread:https://pdawiki.com/forum/viewthread.php?tid=5386&highlight=

54john 发表于 2013-5-29 11:26:40


兄弟其实是高手了----纯粹来捧场的,谢谢。这种入门贴别见笑!
heshunyihugh 发表于 2013-5-29 10:34 https://pdawiki.com/forum/images/common/back.gif
本人纯属新手,来学习交流。

louislaolu 发表于 2013-5-29 12:22:36

本帖最后由 louislaolu 于 2013-5-29 12:24 编辑

我也向楼主致敬!过了这段时间好好研究研究。

thy234152566 发表于 2013-5-29 12:27:40

请继续啊,楼主!!!

Hugh 发表于 2013-5-29 13:43:22

本帖最后由 heshunyihugh 于 2013-5-29 21:10 编辑

17# Oeasy 这样的回帖觉得此主题有那么点意义!要不我继续下去?
不过正在搞语音版的朗文5,就要收工了,所以请稍等。不过大家一定要看看苏沈小雨的css手册

Balsampear 发表于 2013-5-29 14:42:27

教程帖一定要顶!
感谢分享!

Oeasy 发表于 2013-5-29 15:21:42

本帖最后由 Oeasy 于 2013-5-29 15:38 编辑

20# heshunyihugh
目前已经有的和原版词典所带光盘内容,包括文字、音频、图片都完全一致的.mdd/.mdx词库有:
1. LDOCE5, 作者superfan89,https://pdawiki.com/forum/thread-3766-1-1.html,不过略有瑕疵,得知您正在修改,非常激动!
2. CALD3,   作者jiushiworr,https://pdawiki.com/forum/thread-5385-1-1.html
3. MED2,    作者cracode,https://pdawiki.com/forum/thread-7332-1-1.html
4. LDAE,   作者superfan89,https://pdawiki.com/forum/viewthread.php?tid=4751&highlight=
5. OALD7,   作者superfan89,https://pdawiki.com/forum/thread-3798-1-1.html
6. OALD8,   作者a4311261,https://pdawiki.com/forum/thread-7445-1-1.html
7. MW11,    作者heshunyihugh,https://pdawiki.com/forum/thread-10679-1-1.html
superfan89另外还提取了Oxford Learner's Theasurus光盘,但是没有声音https://pdawiki.com/forum/viewthread.php?tid=5450&highlight=
我自己从网上搜集了以下词典光盘:
1. Oxford Advanced Learner's Dictionary, 8th Edition, CD-ROM
2. Merriam-Webster's *** Dictionary, 2003
3. Collins COBUILDDictionary on CD-ROM 2006, actually it's the 5th
Edition
4. Cambridge Advanced Learner's Dictionary, 3rd Edition, CD-ROM
5. Macmillan English Dictionary for Advanced Learner, 2nd Edition, CD-ROM
6. Chambers 21st Century Dictionary
7. Longman Dictionary of Contemporary English, 5th Edition, DVD-ROM
8. Longman Advanced American Dictionary
9. Longman Business English Dictionary
10. Longman Wordwise Dictionary
11. Oxford Essential Dictionary CD-ROM
12. Oxford Basic American Dictionary
13. Oxford Learner's Thesaurus
14. Longman Active Study Dictionary
15. Random House Webster's Unabridged Dictionary
16. Oxford Collocations Dictionary, 2nd Edition
17. Concise Oxford English Dictionary, 11th Edition
18. Cambridge Academic Content Dictionary
19. Collins Cobuild Advanced Dictionary Of American English, 2007
20. Cambridge Dictionary of American English
21. Oxford English Dictionary
22. Cambridge English Pronouncing Dictionary
23. Longman Pronunciation Dictionary, 3rd Edition, 2008
……
如上所述,这些词典中有一些已经有.mdx/.mdd词库了,不过有一些都没有带音频。我非常希望能提取出光盘中的文字、音频、图片,制作成词库,免去一个个打开之苦。不过由于能力实在有限,所以看到楼主的详细教程,非常激动!目前利用业余时间在学习Python,希望能像superfan89那样提取出光盘中的内容再制作成词库。
目标就在这里,不知道自己能到哪个地步,加油加油。

thy234152566 发表于 2013-5-29 17:42:44

20# heshunyihugh


实际上我要的恰恰只是把mdx重新排版。。。直接用GetDict吧mdx转为txt就好了,但是我想问问怎么把点改成数字呢?还有如何把css写入并生成mdx?请楼主继续。。。

chigre 发表于 2013-5-29 19:19:43

23# thy234152566


你可以getdict之后拿出一个词条进行分析。

thy234152566 发表于 2013-5-29 20:06:03

24# chigre


但是怎么改点号为数字?说是用css写的?css不懂额
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 【图文】手把手教你[转换]+[排版] MDX格式词库