【直播完成】一个在线词典的离线MDX化制作[2012-11-29]
本帖最后由 chigre 于 2012-11-30 04:57 编辑【直播完成】一个在线词典的离线MDX化制作
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++打开其中一个词条页面,搜索词条解释内容的一个关键词。
估计词条有效内容为这个之间:<div id="defin-dx" class="clearfix left">
…………………………………………
<!-- 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 写贴完成 太牛了 我觉得很适合小白啊,都不用学正则表达式什么的,会写代码自然是更省力,但不是谁都会写呢。(晕 来自10年后的回帖) 谢谢楼主,准备尝试做一本葡文字典 沙发,边观看边学习,期待! 正在学习 3# pdawiki
你都注册好几年啦~~ 3)使用\命令行CMD\合并所有文本文件;
文件夹地址栏,复制网页文件所在文件夹地址
【F:\Webdup\MyWebsites\Francese\download\latest\dizionari.corriere.it\dizionario_francese\Francese】
打开系统自带的命令行,一步一步操作:
>:cd F:\Webdup\MyWebsites\Francese\download\latest\dizionari.corriere.it\dizionario_francese\Francese 【重定位进入文件夹】
>:f:【进入文件夹】
>:ren *.shtml *.txt【重命名文件名】
>:copy *.txt __.txt【合并文本文件】
合并后的文本文件大小:4.41MB 本帖最后由 chigre 于 2012-11-30 02:57 编辑
4) 使用\Notepad++\文本转码, 替代……等主要操作;
用Notepad++打开合并后的文本文件,发现有乱码,实际上就是因为原网页编码是【ISO 8859-1】
选择该编码即显示正常,再选择【转为UTF-8编码格式】保存。。。
-------------------------------------------------------------
接下来是文本替换操作了,很繁琐。。。。
见下楼 本帖最后由 chigre 于 2012-11-30 03:05 编辑
1)将所有行的换行符替换为空,即将所有行合并:
【\r\n】→【""】
2)按词条分行,每个词条单独一行。这里用到我们之前提取文本时的特征文本内容:
【</div></div><!-- Definizioni - Fine -->】→【\r\n】
【……】其他小替换(替换多余的HTML代码)操作后:
很明显,词典需要的查询词条就在其中,接下来就需要用到EXCEL 2010了!
<h5><strong><span>ŕ-côté</span>
<h5><strong><span>ŕ-coup</span>
<h5><strong><span>ŕ</span>
<h5><strong><span>abaisse</span> 本帖最后由 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【文本导入向导】设置选项:【分隔符号】,文件原始格式:65001 UTF-8
分隔符号:无
列数据格式:文本第一列检查词条内容长度,公式:=LEN(B2)
双击自动填充公式,筛选,查看,发现最长也就2402~~~完全没有问题
---------------------------------------------------
以上图片说明检查<SPAN></SPAN>的不对齐情况原因
对数据检查span的个数,筛选出奇数个挑出来检查为何...
公式为:=(LEN(C2)-LEN(SUBSTITUTE(C2,"span","")))/4
【*注意:单词中有span的不管先,只是粗略检查原因。】
---------------------------------------------------
重新提取查询词条,然后两列复制到NOTEPAD++
进行以下替换操作:
[*]【\r\n】→【\r\n</>\r\n】
[*]【表格符】→【\r\n<link rel="stylesheet" href="Zanichelli_FR-IT_compatto.css">】
本帖最后由 chigre 于 2012-11-30 04:43 编辑
查看原网页词条块区域所使用的CSS文件,了解到是:
【http://css.corriere.it/includes2007/static/css/dizionari-2009.css】
将这个CSS文件下载,进行删减编辑,同时对原文本文件的部分CSS标签进行修改
<h5></h5>→<LEMMA></LEMMA>
最终的CSS文件内容为:BODY {font-family: Times_New_Roman, Georgia; font-size:12px;}
LEMMA {font-family: Times_New_Roman, Georgia; font-size:13px;}
LEMMA span {color:#0395e7;}
.SHILI {font-weight:bold;font-style:italic;}
u {color:#2f5eb1; font-family: Times_New_Roman, Georgia; font-size:13px;}
ul {list-style:none; margin-left:3px; padding-left:3px;}
li {list-style:none;}
ul li span.sign {color:#0395e7}
ul li span.senso {color:#7ab10b}
ul li span.sin-neg {background:#7b7b7b;color:#fff;padding:0 2px}
ul li em.imp {color:#2f5eb1}
p {margin-top:6px;margin-bottom:2px}-----------------------------------------------------
由于MdxBuilder制作MDX时候,总是会把第一个词条默认拉到最后并且不可查~
(本来应该是为了设置词典属性吧??rayman看见可以回答回答不?)
所以,我个人制作总会在正式词条之前根据词典内容添加几个词条:
1、无用的第一个词条;
2、词典制作信息;
3、词典的目录之类的~……
-----------------------------------------------------
制作转换结果:
网页比较页面:【http://dizionari.corriere.it/dizionario_francese/Francese/A/a.shtml】
2012-11-19 21:42 写贴完成 谢谢分享,支持个! 技术贴, 好难的样子 , 看来我还是只适合转换现成的资源! 小叶的可视化编辑工具很好用,可惜不更新了,也不支持win7,可惜可惜。 好久不见类似的神帖了! 不过 太 麻烦。。。。。 13# 蓝色土耳其
其实很简单的啦~ 就是为了写给别人看...所以搞得看起来很复杂~
就是离线下载网站、提取有效文本、然后合并、做些文本上的HTML处理。。。制作~ ok了! 这个网页下载器得要求词典有词条列表
很多网页词典没有这东西,比如韩语的没这个就下不了
用处不大 15# isavour
的确如此,我试过很多网页离线下载。这个对于我来说有用。我就一直用了。
其他在线词典网站要么会禁止IP,要么都是临时查询生成。
我也不知道怎么下载,请问有什么办法吗?
比如楼上几位的韩语那个网站的下载? 谢谢了。看的我头好大。 17# pdawikixxx
是我文字说明不够简明清楚...
希望还是能够耐心看好吧 O(∩_∩)O谢谢 流程很清晰,看起来第四步第五步比较麻烦 19# yzevan
反正实际上就是分析原HTML内容,精简代码,保证显示效果 本帖最后由 zhouxl2000 于 2013-5-28 12:28 编辑
15# isavour
的确如此,我试过很多网页离线下载。这个对于我来说有用。我就一直用了。
其他在线词典网站要么会禁止IP,要么都是临时查询生成。
我也不知道怎么下载,请问有什么办法吗?
比如楼上几位的韩语 ...
chigre 发表于 2012-12-1 19:31 https://pdawiki.com/forum/images/common/back.gif
试试命令行curl或者wget下载,字符处理可用sed和emeditor。尽量避免用word、excel来处理字符串,文件一大,速度相当慢,用正则表达式可提取查询词条。 下载一个在线的德语词汇词典,已经一天了,还没下载完。。。。。。郁闷。。。。想到制成的词典不过最多20多M,我就没信心了 楼主是典型的技术流的,而且乐于奉献 好厉害呀 大神,麻烦看看这个网站可以做不
vocabulary.com
https://www.pdawiki.com/forum/thread-11443-1-1.html
页:
[1]
2