查看: 7107|回复: 28
打印 上一主题 下一主题

[教程] 【直播完成】一个在线词典的离线MDX化制作[2012-11-29]

[复制链接]

该用户从未签到

26

主题

418

回帖

3370

积分

贡士

Rank: 6Rank: 6

积分
3370

灌水大神章小蜜蜂章笑傲江湖章

跳转到指定楼层
1
发表于 2012-11-28 08:08:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 chigre 于 2012-11-30 04:57 编辑

【直播完成】一个在线词典的离线MDX化制作[2012-11-29]
https://pdawiki.com/forum/thread-10260-1-1.html
谢谢版主ldlcau的高亮!

希望我的经验分享能对大家制作词典有一定的帮助!
-------------------------------------------
【说明】本篇将采用直播形式,一步一步以截图+文字说明
希望能在编辑有效期内完成这个帖子~
*注意:本篇帖子很多楼,很多图片~~
请耐心看完我语无伦次的话语和图片,有问题请跟帖提问~
-------------------------------------------
之前写过一点小经验:https://pdawiki.com/forum/thread-10203-1-1.html

制作MDX词典经验①在线词典离线化:
  • \webdup 0.93 beta\下载在线词典;
  • 用\TextForever\提取已下网页文件中特征行之间有效行;
  • 使用\命令行CMD\合并所有文本文件;
  • 使用\Notepad++\文本转码, 替代……等主要操作;
  • 用\Excel 2010\导入数据,提取查询词条名后倒回④;
  • 用\MdxBuilder\导出终文件

-------------------------------------------
2012-11-28 01:12 +2区时间
1)\webdup 0.93 beta\下载在线词典;
【限制下载网速,因为网络不只我一个人在用。不能影响正常使用。
这个在线词典地址为:http://dizionari.corriere.it/dizionario_tedesco/
运气不错,支持离线下载,不会禁IP...
!!项目选项里设置“URL过滤”,保证只下载*指定目录下的网页文件,即/dizionario_tedesco/*;】





、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
2012-11-29 18:09
【下面改换一个已经下载好的法语-意大利语词典数据做说明,来源同样是上面链接的同一个网站的另一个词典】

下载好的文件夹内容大小接近8GB~~~想想之后会只有2MB左右大小就觉得。。。 - -


使用Notepad++打开其中一个词条页面,搜索词条解释内容的一个关键词。
估计词条有效内容为这个之间:
  1. <div id="defin-dx" class="clearfix left">
  2. …………………………………………
  3. <!-- Definizioni - Fine -->
复制代码
再打开其他几个页面测试确认一下,的确为上面区间内容。
把所有ABCDEFG........XYZ文件夹下的网页文件统一剪贴到一个文件夹下。。。。
经过整理:
FRANCESE→ITALIANO:14510文件【制作范例!】
ITALIANO→FRANCESE:17892文件



2)用\TextForever\提取已下网页文件中特征行之间有效行;
打开TextForever软件→【文本提取】→设置参数:
1、提取操作:√提取起始点和结束点之间的内容;
2、输出内容:√包括起始点、√包括结束点;
3、起始点:文件中第一次出现字符串:<div id="defin-dx" class="clearfix left">
4、结束点:在起始点后第一次出现字符串:<!-- Definizioni - Fine -->
5、提取完成后,源文件:√删到回收站
6、开始提取:选择好网页所在文件夹,√文件:*.shtml,点击【提取指定文件夹下的文件】…………
软件提取速率大概是:304个网页/分钟
所以。。。。等待。。。。。。。。。。。。。。。。。网页文件由251KB左右变为1KB左右....
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
接近4GB→4MB左右→451KB大小!!!!!!!!!!!!
但是!!!这背后的辛苦只有制作转换词典的人才知道~~~~~~
2012-11-19 21:42 写贴完成

本帖被以下淘专辑推荐:

该用户从未签到

0

主题

4

回帖

75

积分

白身

Rank: 1

积分
75
推荐
发表于 2022-4-30 22:09:39 | 只看该作者
太牛了 我觉得很适合小白啊,都不用学正则表达式什么的,会写代码自然是更省力,但不是谁都会写呢。(晕 来自10年后的回帖)

该用户从未签到

1

主题

2

回帖

67

积分

童生

Rank: 2

积分
67
推荐
发表于 2016-7-17 20:37:08 | 只看该作者
谢谢楼主,准备尝试做一本葡文字典
  • TA的每日心情
    开心
    2021-2-5 15:40
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    8

    主题

    223

    回帖

    1746

    积分

    解元

    Rank: 5Rank: 5

    积分
    1746

    灌水大神章

    2
    发表于 2012-11-28 12:46:30 | 只看该作者
    沙发,边观看边学习,期待!

    该用户从未签到

    44

    主题

    411

    回帖

    1987

    积分

    禁止发言

    积分
    1987

    灌水大神章

    3
    发表于 2012-11-28 17:48:39 | 只看该作者
    正在学习

    该用户从未签到

    26

    主题

    418

    回帖

    3370

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3370

    灌水大神章小蜜蜂章笑傲江湖章

    4
     楼主| 发表于 2012-11-29 00:29:09 | 只看该作者
    3# pdawiki

    你都注册好几年啦~~

    该用户从未签到

    26

    主题

    418

    回帖

    3370

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3370

    灌水大神章小蜜蜂章笑傲江湖章

    5
     楼主| 发表于 2012-11-30 01:44:50 | 只看该作者
    3)使用\命令行CMD\合并所有文本文件;

    文件夹地址栏,复制网页文件所在文件夹地址
    【F:\Webdup\MyWebsites\Francese\download\latest\dizionari.corriere.it\dizionario_francese\Francese】
    打开系统自带的命令行,一步一步操作:

    1. >:cd F:\Webdup\MyWebsites\Francese\download\latest\dizionari.corriere.it\dizionario_francese\Francese 【重定位进入文件夹】
    2. >:f:  【进入文件夹】
    3. >:ren *.shtml *.txt  【重命名文件名】
    4. >:copy *.txt __.txt  【合并文本文件】
    复制代码
    合并后的文本文件大小:4.41MB

    该用户从未签到

    26

    主题

    418

    回帖

    3370

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3370

    灌水大神章小蜜蜂章笑傲江湖章

    6
     楼主| 发表于 2012-11-30 01:51:39 | 只看该作者
    本帖最后由 chigre 于 2012-11-30 02:57 编辑

    4) 使用\Notepad++\文本转码, 替代……等主要操作;
    用Notepad++打开合并后的文本文件,发现有乱码,实际上就是因为原网页编码是【ISO 8859-1】
    选择该编码即显示正常,再选择【转为UTF-8编码格式】保存。。。


    -------------------------------------------------------------
    接下来是文本替换操作了,很繁琐。。。。
    见下楼

    该用户从未签到

    26

    主题

    418

    回帖

    3370

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3370

    灌水大神章小蜜蜂章笑傲江湖章

    7
     楼主| 发表于 2012-11-30 02:02:52 | 只看该作者
    本帖最后由 chigre 于 2012-11-30 03:05 编辑

    1)将所有行的换行符替换为空,即将所有行合并
      【\r\n】→【""】


    2)按词条分行,每个词条单独一行。这里用到我们之前提取文本时的特征文本内容:
      【</div></div><!-- Definizioni - Fine -->】→【\r\n】
      【……】其他小替换(替换多余的HTML代码)操作后:


    很明显,词典需要的查询词条就在其中,接下来就需要用到EXCEL 2010了!
    <h5><strong><span>&#341;-c&#244;té</span>
    <h5><strong><span>&#341;-coup</span>
    <h5><strong><span>&#341;</span>
    <h5><strong><span>abaisse</span>

    该用户从未签到

    26

    主题

    418

    回帖

    3370

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3370

    灌水大神章小蜜蜂章笑傲江湖章

    8
     楼主| 发表于 2012-11-30 03:23:42 | 只看该作者
    本帖最后由 chigre 于 2012-11-30 03:40 编辑

    这儿在NOTEPAD++中发现有HTML不齐,需要检查<SPAN ...> </SPAN>的配对不齐情况!!!
    <span 开头的有:15959个
    span> 结尾的有:16300个
    相差:341个
    顺便都在excel 2010里搞定。
    还有需要强调一点,EXCEL单元格有字数限制的!!!
    ---------------------------------------------------
    经过excel检查,发现原网页有部分<span 被其他替代了,未还原:
    <vl+>  192个
    <es+>  147个
    <xu+>  2个
    总计:  341个
    还有<Ese> 这个单标记冗余(101个),检查原网页词条,
    这些是有用途的就是在解释内容中的原词条两侧加书名号标记!!!

    ---------------------------------------------------




    以上图片说明了EXCEL2010【文本导入向导】设置选项:
    1. 【分隔符号】,文件原始格式:65001 UTF-8
    2. 分隔符号:无
    3. 列数据格式:文本
    复制代码
    第一列检查词条内容长度,公式:=LEN(B2)
    双击自动填充公式,筛选,查看,发现最长也就2402~~~完全没有问题
    ---------------------------------------------------



    以上图片说明检查<SPAN></SPAN>的不对齐情况原因
    对数据检查span的个数,筛选出奇数个挑出来检查为何...
    公式为:=(LEN(C2)-LEN(SUBSTITUTE(C2,"span","")))/4
    【*注意:单词中有span的不管先,只是粗略检查原因。】
    ---------------------------------------------------

    该用户从未签到

    26

    主题

    418

    回帖

    3370

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3370

    灌水大神章小蜜蜂章笑傲江湖章

    9
     楼主| 发表于 2012-11-30 03:59:20 | 只看该作者

    重新提取查询词条,然后两列复制到NOTEPAD++
    进行以下替换操作:
    • 【\r\n】→【\r\n</>\r\n】
    • 【表格符】→【\r\n<link rel="stylesheet" href="Zanichelli_FR-IT_compatto.css">】

    该用户从未签到

    26

    主题

    418

    回帖

    3370

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3370

    灌水大神章小蜜蜂章笑傲江湖章

    10
     楼主| 发表于 2012-11-30 04:41:21 | 只看该作者
    本帖最后由 chigre 于 2012-11-30 04:43 编辑

    查看原网页词条块区域所使用的CSS文件,了解到是:
    http://css.corriere.it/includes2007/static/css/dizionari-2009.css

    将这个CSS文件下载,进行删减编辑,同时对原文本文件的部分CSS标签进行修改
    <h5></h5>→<LEMMA></LEMMA>
    最终的CSS文件内容为:
    1. BODY {font-family: Times_New_Roman, Georgia; font-size:12px;}
    2. LEMMA {font-family: Times_New_Roman, Georgia; font-size:13px;}
    3. LEMMA span {color:#0395e7;}
    4. .SHILI {font-weight:bold;font-style:italic;}
    5. u {color:#2f5eb1; font-family: Times_New_Roman, Georgia; font-size:13px;}
    6. ul {list-style:none; margin-left:3px; padding-left:3px;}
    7. li {list-style:none;}
    8. ul li span.sign {color:#0395e7}
    9. ul li span.senso {color:#7ab10b}
    10. ul li span.sin-neg {background:#7b7b7b;color:#fff;padding:0 2px}
    11. ul li em.imp {color:#2f5eb1}
    12. p {margin-top:6px;margin-bottom:2px}
    复制代码
    -----------------------------------------------------
    由于MdxBuilder制作MDX时候,总是会把第一个词条默认拉到最后并且不可查~
    (本来应该是为了设置词典属性吧??rayman看见可以回答回答不?)
    所以,我个人制作总会在正式词条之前根据词典内容添加几个词条:
    1、无用的第一个词条;
    2、词典制作信息;
    3、词典的目录之类的~……

    -----------------------------------------------------
    制作转换结果:


    网页比较页面:【http://dizionari.corriere.it/diz ... /Francese/A/a.shtml
    2012-11-19 21:42 写贴完成
  • TA的每日心情
    慵懒
    2021-12-21 09:52
  • 签到天数: 85 天

    [LV.6]常住居民II

    0

    主题

    631

    回帖

    2352

    积分

    解元

    Rank: 5Rank: 5

    积分
    2352

    灌水大神章

    11
    发表于 2012-11-30 10:33:02 | 只看该作者
    谢谢分享,支持个! 技术贴, 好难的样子 , 看来我还是只适合转换现成的资源!   小叶的可视化编辑工具很好用,可惜不更新了,也不支持win7,可惜可惜。

    该用户从未签到

    38

    主题

    655

    回帖

    7509

    积分

    翰林院编修

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    7509

    翰林院专用章灌水大神章笑傲江湖章小蜜蜂章管理组专用章

    12
    发表于 2012-11-30 18:04:53 | 只看该作者
    好久不见类似的神帖了!

    该用户从未签到

    93

    主题

    314

    回帖

    1642

    积分

    解元

    Rank: 5Rank: 5

    积分
    1642

    灌水大神章小蜜蜂章笑傲江湖章

    13
    发表于 2012-11-30 23:50:15 | 只看该作者
    不过 太 麻烦。。。。。

    该用户从未签到

    26

    主题

    418

    回帖

    3370

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3370

    灌水大神章小蜜蜂章笑傲江湖章

    14
     楼主| 发表于 2012-12-1 02:48:31 | 只看该作者
    13# 蓝色土耳其


    其实很简单的啦~ 就是为了写给别人看...所以搞得看起来很复杂~
    就是离线下载网站、提取有效文本、然后合并、做些文本上的HTML处理。。。制作~ ok了!

    该用户从未签到

    3

    主题

    34

    回帖

    172

    积分

    被盗用户

    积分
    172
    15
    发表于 2012-12-1 11:14:09 | 只看该作者
    这个网页下载器得要求词典有词条列表

    很多网页词典没有这东西,比如韩语的没这个就下不了

    用处不大

    该用户从未签到

    26

    主题

    418

    回帖

    3370

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3370

    灌水大神章小蜜蜂章笑傲江湖章

    16
     楼主| 发表于 2012-12-1 19:31:10 | 只看该作者
    15# isavour


    的确如此,我试过很多网页离线下载。这个对于我来说有用。我就一直用了。
    其他在线词典网站要么会禁止IP,要么都是临时查询生成。
    我也不知道怎么下载,请问有什么办法吗?
    比如楼上几位的韩语那个网站的下载?
  • TA的每日心情
    郁闷
    2018-3-3 19:50
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    10

    主题

    517

    回帖

    1888

    积分

    解元

    Rank: 5Rank: 5

    积分
    1888

    灌水大神章

    17
    发表于 2012-12-3 14:40:43 | 只看该作者
    谢谢了。看的我头好大。

    该用户从未签到

    26

    主题

    418

    回帖

    3370

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3370

    灌水大神章小蜜蜂章笑傲江湖章

    18
     楼主| 发表于 2012-12-4 04:04:42 | 只看该作者
    17# pdawikixxx


    是我文字说明不够简明清楚...
    希望还是能够耐心看好吧 O(∩_∩)O谢谢

    该用户从未签到

    0

    主题

    23

    回帖

    186

    积分

    童生

    Rank: 2

    积分
    186
    19
    发表于 2013-5-27 15:42:27 | 只看该作者
    流程很清晰,看起来第四步第五步比较麻烦

    该用户从未签到

    26

    主题

    418

    回帖

    3370

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3370

    灌水大神章小蜜蜂章笑傲江湖章

    20
     楼主| 发表于 2013-5-27 16:52:02 | 只看该作者
    19# yzevan


    反正实际上就是分析原HTML内容,精简代码,保证显示效果

    该用户从未签到

    25

    主题

    36

    回帖

    441

    积分

    禁止发言

    积分
    441
    21
    发表于 2013-5-28 12:16:37 | 只看该作者
    本帖最后由 zhouxl2000 于 2013-5-28 12:28 编辑
    15# isavour


    的确如此,我试过很多网页离线下载。这个对于我来说有用。我就一直用了。
    其他在线词典网站要么会禁止IP,要么都是临时查询生成。
    我也不知道怎么下载,请问有什么办法吗?
    比如楼上几位的韩语 ...
    chigre 发表于 2012-12-1 19:31


    试试命令行curl或者wget下载,字符处理可用sed和emeditor。尽量避免用word、excel来处理字符串,文件一大,速度相当慢,用正则表达式可提取查询词条。

    该用户从未签到

    11

    主题

    76

    回帖

    954

    积分

    举人

    Rank: 4

    积分
    954
    22
    发表于 2013-6-21 02:47:37 | 只看该作者
    下载一个在线的德语词汇词典,已经一天了,还没下载完。。。。。。郁闷。。。。想到制成的词典不过最多20多M,我就没信心了

    该用户从未签到

    8

    主题

    22

    回帖

    128

    积分

    童生

    Rank: 2

    积分
    128
    23
    发表于 2013-7-13 13:21:55 | 只看该作者
    楼主是典型的技术流的,而且乐于奉献

    该用户从未签到

    11

    主题

    243

    回帖

    472

    积分

    禁止发言

    积分
    472
    24
    发表于 2013-11-16 00:51:38 | 只看该作者
    好厉害呀

    该用户从未签到

    9

    主题

    162

    回帖

    1983

    积分

    解元

    Rank: 5Rank: 5

    积分
    1983

    灌水大神章小蜜蜂章笑傲江湖章

    25
    发表于 2013-11-19 14:58:35 | 只看该作者
    大神,麻烦看看这个网站可以做不
    vocabulary.com
    https://www.pdawiki.com/forum/thread-11443-1-1.html