掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 3392|回复: 17

[教程] 我的词典制作方法

[复制链接]
  • TA的每日心情
    开心
    2020-11-30 19:14
  • 签到天数: 249 天

    [LV.8]以坛为家I

    发表于 2016-2-19 00:33:30 | 显示全部楼层 |阅读模式
    本帖最后由 DIC4Khmer 于 2016-3-11 09:11 编辑
    + [; S2 {, ~& \4 p( g8 e3 y, V; m9 k6 \5 C1 i2 U6 W
      从接触MDICT,到立志做一个自己的词典,历时半个月,虽然很多问题不懂,但是到今天为止让我收获良多。
    % i$ e5 k/ @# d/ \7 D0 F) i' f+ F' U4 D  做图片词典的初衷是看见chigre3大大制作的精美的图片词典而心生痒痒,自己也确实需要一本衬手的电子词典,于是我开始了自己的制作之路。% t3 v! w3 R- e1 m; i
      感谢chigre3大大的支持,连非常珍贵的源代码都给我借鉴,感谢网站的知识分享,让我从搜索帖子中发现知识。但是作为一个小蜥蜴,自己心里的困惑是很多前辈想不到的。我们可能很简单的问题都想不明白,比如我最初一直弄不明白为什么我按格式做的词典加载到MDICT却无法搜索。但论坛里却没有相应的教程,可能是因为太简单了,前辈们没时间或者觉得没必要做,但是这可能会让我们这些小蜥蜴们卡在那里。
    2 ]# Z8 g' W3 D! t  所以我希望能够把我做电子词典的过程分享出来,一是感谢论坛的帮助,二是希望能对其他人有所借鉴。5 K' w; ]: p& o  V$ r
      我的词典的外观是模仿chigre3大大的排版的,因为我觉得他做的很美观、很舒服,不一样的是:我因为不懂Python编程,完全没用上大大好心赠于我的源码,而是在自己使尽浑身解数之下,终于找到的一个只用word、excel和emeditor三个软件,不停的查找替换而成功做成词典的方法。这也是我的曲线救国之法,实属无奈。如果大家有兴趣,我会慢慢地把这个过程在这个帖子中梳理出来,逻辑其实很简单,只是过程很繁琐。
    6 d/ h  L0 s. K5 Q" I, M6 H  我的方法其实总结起来就是:1、获取原始文件;2、添加链接;3、去重,合并词条;4、加内部跳转命令;5、添加完整标记。
    . v  a6 x  H  y" D) ~* X# N# t  G( v$ w; D$ N
    ################################################################################################################################################" Q7 v+ o6 K6 a. K' V0 ?6 \
    第一步:获取原始文件
    0 G3 ^1 `2 U9 g0 N9 M) X+ ^' b  我的原始文件的录入格式是:
    9 P; `- v9 m" q' Q" I1 o  词1|词2|词3|词4/词5|词6|词7|词8
    # J0 w) i9 L1 l7 A$ y/ e      其中,同列的词与词以“|”分隔,左右列单词间以“/”分隔。这里为方便输入,可以输入分号“;”代替“|”,后期将其替换为“|”即可。每行为一页,录入时确保数据准确,如果遇到左列或右列没有词,甚至于整页都是上一页某个词的解释时要尤其注意,(可以使用特殊标记表示,后期可以替换掉)避免后期出现错误。# H$ W/ J* v& Z- p$ f$ O+ G' B: L
      词典录入完成后,利用word中的域进行自动排序,形成“页码 词1|词2|词3|词4/词5|词6|词7|词8”格式,如果前期录入时没有错误,自动生成的数字就是该数据行所在的页码,为避免出错,可以每录入100行就生成页码一次,然后将域文本转换为普通文本。重复此过程,直至完全获取原始文件。& j2 H8 r2 e7 c0 o
      注意:为了方便手机上使用,同时也方便后续联合查找,我制作词典计划将每个词条都添加链接。如果碰到同一个词在字典里出现多个词条,建议采取统一的处理方法,比如统一加编号“词1(1)|词1(2)|词1(3)”等,后期使用替换将(1)(2)(3)等编号去除即可;为方便操作,同一词的多个词条,我选择只计算一次。6 t# O* R& u1 [6 D4 \# |. L$ P
    第二步:获取每个词所在页码及对应左右列位置信息,即要最终实现【左1|4】或【右6|20】这样的效果,我们必须有单个词的页码及位置信息。
    ( E9 K: m# F, Y, g; `5 F* i通过查找替换将word中“|”和“/”替换为所需数据。将word中全部数据复制到excel表A列中待用。
    . R0 f1 m$ s. y7 q3 Z5 q继续,再次对原始数据时行处理,这次更简单,删掉全部的数字,“|”和“/”全部替换为段落标记,让每个单词成一行。
    6 a) b$ X) x( {5 _3 G5 V, D将本次全部数据放到excel表B列中。" C6 @* M  `; I8 ^$ V0 G
    至此,得到excel中的数据文件。7 }- w5 [- z1 x; f& H/ v5 M
    下面,使用IF函数判断A列与B列同行数据是否相同,筛选出不同的成C列。
    " C  B" O$ a" H4 B! k用left函数筛选出位置数据2 \+ N0 @5 Z  u# G2 \
    然后,填充即可。5 \( W8 O* \5 E- m
    再使用countif函数就能得到全部位置信息。
    % Y! x, K9 Y* n; L, e1 Y2 A6 p第三步,去掉每个词对应的“页码+左或右”中的非页码信息,只保留每个词对应的页码
    ! Y! q4 j4 p! M& j; w) [然后所有准备工作完成,开始格式编辑。! ~& d. Y- g# k# j
    将词与页码两列数据,调换序列,页码在左,单词在右,然后拷贝进emeditor进行数据处理。添加链接。查找"^(.+?)\t(.+?)$",替换为“\1\t<a href="entry://\2">\2</a>”,为每个单词添加链接。链接添加完毕后,再对某页的数据进行整合。查找“^(.+?)\t(.+?)\n\1\t”,替换为“\1\t\2|”,选择全部替换,反复多次,直到查找不到为止。这样我们得到了某页码下词的集合。如图:
    , i! d0 t3 f+ F1 o! P将刚才的词与页码两列数据复制新的工作表中,保持词在左,页码在右的格式,然后在D列复制上刚才emeditor中处理的数据。在C列中使用VLOOKUP进行匹配,使每个页码都匹配上该页上所有的词的信息。剩下的就比较简单了,将ABC三列数据全部复制,选择性数值粘贴至新的工作表中,然后全部复制到emeditor中进行编辑。
    2 U2 |8 n3 c$ a( P查找“^(.+?)\t(.+?)\t(.+?)$”,替换为“\1\t<a name=\1></a>\1<Br>\3<Br><img src="/\2.png">”。+ x+ o+ @" u$ b) O0 J* h
    如果要添加上下页,可以参照tsiank的方法制作,https://pdawiki.com/forum/forum.php?mod=viewthread&tid=13451。/ I6 J! ?/ {3 @$ R% K# w% c
    继续,将数据调整为MDX需要的三行式。查找“^(.+?)\t(.+?)$”,替换为“\1\n\2\n</>”,全部替换。2 E) W6 ^) B% u$ R# ?% D9 B% d2 u
    将数据保存为utf-8,无签名格式,然后用MDXBuilder进行生成即可。2 G3 J% @2 i( Q
      当然,以上只是将大致的所需步骤进行陈述,对于字体、格式等排版方面的设置,大家可以按要求进行修改。
    # Q1 G$ D0 M8 ^- q感谢支持!如有疑问,可用站内信进行交流。7 X" M+ g+ K. e% y
      感谢版主将贴子高亮!* f+ g+ J7 C, X1 l
      

    本帖被以下淘专辑推荐:

    该用户从未签到

    发表于 2016-2-19 01:56:32 | 显示全部楼层
    又一个图片版词典,而且是小语种!新手制作~鼓励鼓励!
  • TA的每日心情
    开心
    2020-11-30 19:14
  • 签到天数: 249 天

    [LV.8]以坛为家I

     楼主| 发表于 2016-2-19 11:27:11 | 显示全部楼层
    chigre3 发表于 2016-2-19 01:56
    9 ^6 Q; K1 t% v6 n又一个图片版词典,而且是小语种!新手制作~鼓励鼓励!
    5 o. L) \$ _5 }! ]3 k3 N( l
    谢谢您的支持与鼓励
  • TA的每日心情
    开心
    2018-8-12 00:01
  • 签到天数: 136 天

    [LV.7]常住居民III

    发表于 2016-2-19 17:52:07 | 显示全部楼层
    不错,条条大路通罗马!
  • TA的每日心情
    开心
    2021-2-28 15:47
  • 签到天数: 104 天

    [LV.6]常住居民II

    发表于 2016-2-19 23:21:53 | 显示全部楼层
    请问截图里的是泰文吗?

    该用户从未签到

    发表于 2016-2-20 10:42:17 | 显示全部楼层
    楼主跟我是一样的,excel, emeditor,我也只有这两个耍得开。2 ^0 O6 V$ J& ]# G8 ?+ }0 x
    好在,好几个小词典居然弄出来了。
  • TA的每日心情
    开心
    2020-11-30 19:14
  • 签到天数: 249 天

    [LV.8]以坛为家I

     楼主| 发表于 2016-2-20 13:36:59 | 显示全部楼层
    fanziyu 发表于 2016-2-19 23:21
    3 C4 U! X7 v5 F1 y3 x- m: C! S" R8 D请问截图里的是泰文吗?
    . g6 R+ ^; v3 r" |( o
    不是泰语,柬埔寨语
  • TA的每日心情
    开心
    2020-11-30 19:14
  • 签到天数: 249 天

    [LV.8]以坛为家I

     楼主| 发表于 2016-2-20 13:38:16 | 显示全部楼层
    LYX1692 发表于 2016-2-20 10:42
    7 _, f$ @' |9 k  C楼主跟我是一样的,excel, emeditor,我也只有这两个耍得开。
    1 O! D5 ?7 t" _0 o好在,好几个小词典居然弄出来了。

    0 Q) S7 O, {; G. N: G) ]1 r+ o对,其实后来发现思路其实很简单,就是操作上相对烦琐。
  • TA的每日心情
    无聊
    昨天 23:03
  • 签到天数: 2884 天

    [LV.Master]伴坛终老

    发表于 2016-2-20 17:45:02 | 显示全部楼层
    有耐心做词典,支持~

    该用户从未签到

    发表于 2016-2-21 21:44:35 | 显示全部楼层
    技术贴,佩服。

    该用户从未签到

    发表于 2016-2-22 07:43:08 | 显示全部楼层
    原本使用python的原因是要每个词条所在整块区域的对应处也变色,这样一来,每个词条下方的整页面词条区域就都是有所区别的。。。工作量很大,这样的情况下用python最方便啦~% i& F0 |* P0 k/ l7 d% R" w5 A8 F
    不需要这样的话,只是左右+序号位置的话用 EmEditor / UltraEdit / Excel 三者完美搞定!!!

    该用户从未签到

    发表于 2016-2-22 15:44:47 | 显示全部楼层
    英语词典已经多得记不住了!
    1 G( r; D1 \! y- F9 S3 g0 d
    ! R" E; C+ b, k+ E' H( M8 `小语种奇缺!

    该用户从未签到

    发表于 2016-2-22 15:54:16 | 显示全部楼层
    如果有图片示意说明,那就更好了。
  • TA的每日心情
    开心
    2020-11-30 19:14
  • 签到天数: 249 天

    [LV.8]以坛为家I

     楼主| 发表于 2016-2-23 23:16:38 | 显示全部楼层
    chigre3 发表于 2016-2-22 07:43( d$ T8 E; x( y& P4 V* B
    原本使用python的原因是要每个词条所在整块区域的对应处也变色,这样一来,每个词条下方的整页面词条区域就 ...
    ) N3 |, |4 O( [) s( @5 j
    嗯,受教了。
  • TA的每日心情
    难过
    2020-3-17 11:17
  • 签到天数: 37 天

    [LV.5]常住居民I

    发表于 2016-3-16 15:20:59 | 显示全部楼层
    感谢楼主分享
  • TA的每日心情
    慵懒
    2018-10-24 13:08
  • 签到天数: 30 天

    [LV.5]常住居民I

    发表于 2017-5-12 09:17:26 | 显示全部楼层
    我也要学习学习
  • TA的每日心情
    开心
    2018-8-18 17:47
  • 签到天数: 103 天

    [LV.6]常住居民II

    发表于 2017-5-13 12:32:50 | 显示全部楼层
    这个版块值得学习。论坛中就缺少技术型的帖子,有的时候想找都找不到
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2026-11-3 06:20 , Processed in 0.021588 second(s), 23 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表