掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 4240|回复: 13

[讨论] mdb xls mdx dict词库格式相互转换

[复制链接]
  • TA的每日心情
    擦汗
    2021-3-8 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-1-8 18:21:47 | 显示全部楼层 |阅读模式
    本帖最后由 lixun305 于 2014-1-9 19:25 编辑 , c6 ]- p- c% w8 E! H' }9 D7 g
    0 N0 o0 a8 ^; l. r9 I6 [5 e
    http://pan.baidu.com/share/home?uk=2718706185#category/type=0  这是连接地址,只是抛砖引玉.
    , V& n, O, e1 n% p% d# rmdb词库:
    % R# V1 H$ k0 |- ?$ u2 w1. 现代汉英综合大辞典
    8 N6 {9 L0 V6 U' p2. 21世纪大英汉词典_微调版本( g( g, |1 T0 e) j: @. T
    3. 牛津英汉简明词典修正版2 ~5 ?9 M6 `- Y. X' e( ?) W; E
    4. 朗文当代英语词典5版5 }& J2 v6 W6 g6 [; @
    5. 诗词总汇
    # p3 Q5 G" f1 I4 y$ C; T, h  ]6. 牛津英汉词典
    ; m* v$ Q9 b7 W' l7. 牛津高阶学习词典英汉双解第7版OALD7& ~$ N1 |; M- D% F
    0 t* K9 ]. a( @( e6 v5 ]
    分析有偏颇,不当之处,请谅解。4 p0 A2 c  u% @1 T- y
    ) {# J& o. g$ [+ ]
    mdx词典日渐丰富,仔细看来,下面列举的都是相通的:
    1 `+ b; b2 N* D, {" ?& U( n# @1. chm (hlp) 文件  可以查找,复制,有索引。查找索引或内容或。。。$ J! O/ k) Y. h5 D& Q" \+ X7 a/ ?( y
    2. 网上百科 例如百度,维基,内容海量,查找甚爽。+ }% |. _9 c4 p* F
    3. dict(startdict)这个研究不深入,仅可以读取它的内容,相比查找方式和mdx差不多。" l  \/ @4 ^/ m  u/ L8 _
    4. 有些软件生成的exe文件,也有内嵌的查找功能。 也包括大型的词典软件(例如牛津出的光盘版),一般小民也无福,无M消受啊。+ r1 I0 G3 G2 W. Q! z  {% H
    5. pdf 文件,可有索引,查找索引或内容。
    # P: V8 d( a) N2 N! A( I3 `- q+ a6. xls文件  Excel格式,可以直接打开看,当然查找再方便不过了,不过,记录数不成超过65536(现代英汉综合大辞典,21大英汉辞典,牛津英汉简明词典。。。被pass了)。 单个条目不能超过32767个字符。这些限制可能excel2007以上都已解决,但我是一直windowsxp + office2003的ghost系统,谁想再重装一次恶心人的office2007呢。  唉,这个格式限制甚是恶心啊。
    ' p3 i5 F  i# q6 ~0 j' o! U7. mdb文件 这个是微软access的主打格式,小型数据库文件,但接口方便灵活,规模较小(甚至绿色版都可以)。对记录总数和单条的限制几乎没有,对一般p民来说足够用了。
    2 U+ Q3 e) [+ m% Q; q   网上许多软件其实就是mdb的外壳,查找,编辑等一体,当然,为了保护知识产权,加了密的居多(但可以破解2003, 2007格式,其它未知,:p)。
    3 r. s4 j1 E, P   
    ( b( g' S7 D: i, i4 s: s8. mdx  mdx的词典丰富,内容紧凑,尺寸小,查询快速(只是快速,但这确实很重要),可联合查找,手机pc都可以用。。。优点不一而足, 我就不细说了,只说其缺点,这里绝无贬低之意,只为探讨,学术性的,:p...9 V; m1 Q! g7 _: z; [  Y6 i
            (1) 只能对索引进行查找,因此基本上就是索引,内容两部分内容,更多的信息只能存于内容中,靠html的格式进行格式的编排。
    9 r& d6 W% X! Q7 A: l3 b        (2) 对索引的查找无法精细化,例如:& F) w4 z- h* n& e: L. n
            大小写敏感  dog DOG, CALD cald,在很多时候还是有区别的.( o; X" n! ]) Y0 L6 I" W! h% z
            查找个数无法限制,有时真的不需要找到很多,一个足以,或者三五个就行,可是出来一堆很头大。
    2 ^+ {/ c- D2 Z! T5 F! C        没有匹配方式  例如:  这些匹配方式有时真的很有用,特别是有几十万个词条的时候,出来成百上千个查找结果,情何以堪。
    0 K: \5 p) ~& X- D  {1 A                精确匹配  dog  dog, dogmatic,dog's head, 只dog可以0 A% ^3 i0 V- U3 m# M& Y: M
                    单词匹配  fat  fat, fat salary, fat job均可' d3 @2 f9 U; g* n5 [/ r
                    模糊匹配  fat  fate, stepfather 均可1 H% U+ M3 w: r- a4 X/ S
                    从头匹配  fat  fate, fat job可以,stepfather不可以。 只有从头开始是fat的才可以。
    / E& T# N8 w& w% v1 o4 ^        (3) 无法高级查找(多个条件查找)例如:
    % A+ w0 h6 X8 o; a                查找成语:要查 ?三?四组成的成语(不三不四,朝三暮四,丢三落四,低三下四。。。),其实就是含有通配符,需要满足有 三 四 关键词的查找方式。4 e. {- n& T- X, N& K6 @# m
                    查找诗词库中李白写到黄鹤楼的诗词:(望黄鹤楼, 与史中郎钦听黄鹤楼上吹笛, 李白见崔颢《黄鹤楼》有感)。  其实就是要求词库中至少有作者,题目(或内容)两个字段,然后查找条件: 作者为李白且 题目=黄鹤楼(模糊匹配,不从头匹配)。8 `! ^3 P7 N& A  F+ a
            (4) 无法对多个查找内容综合到一个窗口内并且对查找内容二次查找。
    5 \( q3 M6 a. J  Z8 c  t- k$ N                例如诗词库查作者李白,出来984条记录(这是中华诗词总汇中收录的李白诗词)。 这么多诗词,包含作者,题目,年代,题材,类别,内容,感想,出处等信息,通过一个简单的分割条放置在一起,导出成txt或者html文件,不就是一本:《李白诗词大全》吗?   如果仅仅在pc上查找,出来984条记录也挺头大的,于是二次查找很有必要,例如:就在这个结果中查找出现 “庐山”的诗词,并且逐一定位,很有必要啊。; t1 v+ i' f9 }" x/ j/ {& F
            (5)  无法对词库进行编辑' M! _3 t* s. L% Z8 [; _* ]
            包括删除,添加,更新,查补(用其它来源的词库文件对现有的进行查漏补缺)。. E1 m" h, R, a. F' V1 C( o
            例如,安装了英汉词典,只有36691个词汇,好多查不到,但又不想用动辄30多万甚至上百万的词汇量,于是只对自己感兴趣的若干词条导入到其中,很有必要。1 z, o' _4 b+ }7 ~
            再例如:看到错误或疑问,是否可以对源词库进行更新:例如孩子问杨万里的宿新市徐公店怎么背, 诗词总汇呀,赶紧查,(作者 杨万里 and  题目 宿新市徐公店),出来了:篱落疏疏小径深,孩子撅嘴了,不对,我们语文课本上是篱落疏疏一径深,怎么回事,可不能与国家教育部的相悖啊,赶紧上网再查,果然,两个版本都有,没办法了,只好以国家出的为权威了,于是,需要更新这首诗,省得以后孩子再查的时候又错了。 但mdx不好办啊。2 O1 W3 C" d- I  K7 M
            再比如:诗词,高鼎的村居(草长莺飞二月天),孩子又忘了,结果,诗词总汇居然没有高先生的诗词,于是添加进去吧。 但mdx不好办吧。
    9 g9 r* X; v% p        (6) 无法做到一些完美的查找。. [3 u9 E, X! I' z4 {( G$ j# _' m
            例如,有了汉语字典库, 里面,部首,划数等都有了,做到新华字典的部首查字法不难吧,但mdx就word, content(一堆)两个字段,难呢。但对含有多个字段的词库来说,只要文件在手,编程不愁,部首查字有何难哉。 不就是定义一个部首,划数联合查找吗( 部首=??? and 划数=?)。9 Q2 n0 J& p/ ]9 |7 I
            再比如:四角号码查字法,虽然鲜有人用,但是,本人上初中,家里有一本《四角号码新词典》,商务印书馆的,熟记了口诀之后,有时查的还是挺快的,好吧,不说了,为了回忆一下以前, 这个汉字库中有一个字段就是汉字的四角号码,有了这个,不就是一个不同字段的查找吗( 四角号码=??)
    6 c. p1 W! D$ C: [7 z        (7) 无法保存查找结果。1 \. F/ h+ w$ G, d, n7 ?. T
            两个方面。 一,查找的结果可以导出成txt或htm文件  二,查找条件(关键词,查找范围,匹配方式等)和哪个词库,哪个字段保存下来即可,想看一下历史查找记录,将这些查找条件调出来即可复现,关键是你得能调出来呀。0 e5 B! B$ v6 c
            (8) 无法浏览整个词库
    9 E$ h4 X  C* |  @6 `; \4 I+ u$ x        例如,诗词库,就像excel的表格一样,在一个界面下,按照字段,记录的二维表格方式浏览。当然,这种浏览更多是为了方便,直观的编辑词库。   如果词库太大,就不说了把,光打开一次就头大。
      \8 P. i. j9 U7 w# D- y& @        说道这里,如果词库太大,对他的编辑可以逐条进行。. t5 I) Z1 s" d' [& t8 ^7 |; Y9 C
            (9)  待发现,呵呵。。。。。。5 }9 B# d7 g; Z  e: b" _
            + _6 o% E, _. `: c3 d
            以上问题,总有相应的词典软件或者词典库能够解决,但想都做到,并且做的通用性和专用型于一体,还真难啊,但如果有了词库文件,知其格式,不愁编程,这些又有何难哉?
    & L& e- y$ j2 |' W& x        但,也不是所有问题都要靠编程解决的,我觉得,可以通过将各种词库文件进行相互转化(尽量做到无损,无误转换)来达到,因为,可以利用现有的各种软件,找自己趁手的就行。6 h2 i8 n; [8 d, j- C' g
            本贴子就是想达到这样一个目的:实现各个词库之间格式的相互转换。 我认为,手里有了mdb格式的词库文件,还愁什么。 这个格式,太多的代码,文献资料,接口程序,通用软件可用。 而其它的,例如mdx,直到现在,我也读不出来,网上也找不到opensource,唉,词库如此丰富,用人如此之多,难道真像windows一样,也是个不公开格式? 废话不说了。& Q$ n) @6 W! J3 p# o
            具体:, ?$ G& G2 s3 `
            1. 实现  mdx  dict  txt  xls 到 mdb格式的转换.4 ]4 K8 q- i* E
            已经实现,陆续会有一些mdb格式的文件传到网盘上。目前只传了一个 牛津英汉简明词典修正版.mdb。
    5 H* {5 S5 a4 U  u$ x3 ~        2. 利用GetDict得到mdx文件的 startdict格式或者UTF-8或者mdx源文件格式,将其转换成 mdb或者脱了html格式的txt文件。  UTF-8和html格式均可。7 G/ Y9 P$ l0 k8 |$ e; f$ o2 {3 i* G
            已经实现。 但目前对一些音标(unicode字符或者金山拼音格式Kingsoft Phonetic Plain字体) 和比较复杂 unicode格式的转出文件会有乱码出现。
    $ j2 R% F5 H( L- y$ u' J        为了压缩体积,可以剔除转出文件中的html格式(就是一堆<font><br></font>...),因为,如果不剔除,转换成的mdb文件很大。 剔除了,音标就乱码了或者只有金山拼音格式。 因此,仅仅保留音标的html格式也可以考虑。' E+ x! c, e7 x9 t9 d6 @
            3. 利用 GetDict转出的dict格式的词库,实现 dict 到 mdb xls, txt格式的转换。5 _. }3 G6 h  R6 O, `1 Y1 \' f
            已经实现。
    . C9 g$ |6 |( o: U: x        4. 自定义简洁 txt格式(文本),作为可以打开的词典文件。 例如,本人定义如下:; R& C) q" x' @/ d% G2 Q3 U
            dog
    4 g) h$ L8 |5 }( R( h4 J% Q        n. 狗,一种动物。* M) [4 `' B8 }8 K' v' p% a# h
            fat0 N$ W. R) j/ X" a; U% H8 b: [
            adj. 肥胖的。& D& f6 j6 k) ?. Z- c7 q" ]
            .....$ n; S  P  l" y$ k
            就这样,一个词条占据两行。 . B  P$ ]# @% h$ o  {% S  Y: D
            5. 将mdb xls格式的词库导出成二维文本格式。
    ; V( ~) q" O: p. N9 m        例如:
    ; m5 Y( u5 Z4 h( T8 m6 r6 r        【word】       【explain】                                  【spell】, S* \9 T$ c; p1 q1 }, \, o: z
              dog                        狗                                [dCg]
    + ^% M4 @, ?5 N0 X" e  [          hotdog                热狗                                               
    & I$ d2 e& j- m% S0 x" W# n          ..........
    ; J' \: D7 t2 O          
    " ^9 W" P$ O2 c          待续。。。。。: @6 r+ }4 A3 W  C5 i
           
    8 w' E, x8 B& e$ k! e) K8 I" V       
    6 z$ s( c; y+ H2 r6 j8 r        $ y$ H5 y6 y( \9 L
           
    7 J) b* l" {1 s  |7 D& ^       
    ) l0 K  y1 W) A7 z  d       
    1 B' h8 `1 _( V9 D        9 c# F* O) N/ Q' W' U
            5 F! ]- q3 G' _6 s7 m
           
    $ i. F) |) [4 q: Y( K- `        ' _4 U6 ?, f' a1 W; J
            $ ?' _  Q. ?) j1 n( C4 V1 p( Z
            / ^8 p5 E' u: l
           

    该用户从未签到

    发表于 2014-1-8 22:22:16 来自手机 | 显示全部楼层
    高手,说说方法嘛
  • TA的每日心情
    擦汗
    2021-3-8 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2014-1-9 19:24:30 | 显示全部楼层
    hmh986 发表于 2014-1-8 22:22 9 G$ F9 R( c6 o4 d
    高手,说说方法嘛
    : T5 M! x4 n4 L/ f6 @9 S
    无他,就是用GetDict转换出来的源文件,用vc编程,写入数据库 mdb 中。 当然,其中大量的判断和处理还是很挠头的。毕竟我不了解html脚本,不知道mdx格式,就是看出来的算法。

    该用户从未签到

    发表于 2014-6-8 13:49:27 | 显示全部楼层
    本帖最后由 vbnet 于 2014-6-8 13:54 编辑
      `+ e8 p1 L" |7 o. W4 B
    7 @2 S! m* j; S: v8 u& v7 A% q
    - x% ]* A3 T. ~) h( I7 F
    8 g) U: w$ d# p/ ~, x( z# R' X期待  J- G9 t/ X! t2 ]: G
    日汉词典

    该用户从未签到

    发表于 2014-6-28 19:14:23 | 显示全部楼层
    楼主见解较高,思考缜密,多谢分享

    该用户从未签到

    发表于 2014-6-28 19:20:06 | 显示全部楼层
    希望分享楼主以前的程序:Sqlite2mdb
    + h. ?1 f: K& e! i( k原链接已失效
  • TA的每日心情
    擦汗
    2021-3-8 17:59
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2014-7-3 15:29:13 | 显示全部楼层
    tjzzw 发表于 2014-6-28 19:20
    1 r4 Z  ]! V9 C$ Y9 ]+ T# O希望分享楼主以前的程序:Sqlite2mdb* H6 \0 J7 S' ~! _$ q  m  V
    原链接已失效

    " Z% i; C1 u# y, B$ L1 ?: |, C一楼的连接一直有效啊。 程序就在 mdx_ from mdb下。
  • TA的每日心情
    慵懒
    2023-11-29 11:23
  • 签到天数: 783 天

    [LV.10]以坛为家III

    发表于 2014-7-3 16:16:24 | 显示全部楼层
    呵呵,学习了,等楼主的待续。
  • TA的每日心情
    开心
    2019-5-18 14:33
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2014-7-5 19:46:20 | 显示全部楼层
    不错的想法,希望你成功。

    该用户从未签到

    发表于 2014-7-7 21:22:30 | 显示全部楼层
    本帖最后由 vbnet 于 2014-7-8 04:28 编辑 ( A1 Q, c: [0 w# {6 s: a. s
    4 V2 a! t  S4 p
    话说我也喜欢mdb格式的词库8 c. ^9 S  L2 I& Q
    配合单词表、真人wav、TTS 、图片
    / _$ f+ s0 I" q2 |2 B很便利7 [* ~3 v4 R- _0 Z
    5 I$ ]# Z  `6 R9 |% v7 n
    ( k* A0 ]% m  `0 I' L3 `
    5 s- D2 [  l9 L# C# r+ V
    请问楼主
    ( o) s' k8 K2 R" n/ pmdb中重覆词条如何合并比较快?
    9 R( I, ^: S. p9 e8 V+ @; k5 _3 hxls中我用vba做合并,但是太慢,跑一半还会溢位
    7 k( ]( w' m) M2 @' ltxt用站上的RegEx Dotext,因正则不熟,所以没效果

    该用户从未签到

    发表于 2014-7-9 09:51:12 | 显示全部楼层
    mdx 文件是不是这样的:5 G2 \0 k! ?4 n/ q. N9 u9 y5 L

    4 {; ^# p" F% \5 i9 j1 T  内容上分成索引 和 内容;
    6 i  e, M( b$ ?  程序运行是 索引读入内存;
    2 g4 Q& o+ P+ u/ x( V  检索时根据索引再打开文件定位到指定位置读取具体内容?

    该用户从未签到

    发表于 2014-7-9 09:58:29 | 显示全部楼层
    顺便请教下楼主,我正在写个图片词典软件。但是图片库是开放式的,所以没有办法做成类似mdd的资源文件形式,要不是放在目录下,一个图片一个文件,要么存在例如sqlite数据库里面。不知道哪个方案读取性能更优?

    该用户从未签到

    发表于 2014-7-9 10:01:33 | 显示全部楼层
    网上有很多软件都可以直接读取 mdx mdd 文件,他们把文件格式破解了?

    该用户从未签到

    发表于 2014-7-21 14:51:03 | 显示全部楼层
    本帖最后由 fghhfg 于 2014-7-28 02:21 编辑
    * G( C9 w+ v$ }% [9 c( r5 c) G3 M8 m! c5 f+ `3 n! a' G
    mdb? why not sqlite?  t8 c+ a8 [, v
      o7 k0 x! c/ g4 n- {/ A9 p
    cc-cedict .sql:105MB .mdx:6.6MB .txt:57MB/ u& _& y3 o- a

    8 p( g6 y8 V6 c! a9 F" g  T( g, m6 F. ^ahd4-asicsfree: (.sql:116MB data:50MB) (.mdx:25MB .mdd:45MB) .txt: 95MB2 K( [( K& E, s

    # M8 R7 i0 y4 n) n7 ?7 S9 MLDOCE5-asicsfree: (.sql:508MB->.zip70MB data:10KB) (.mdx:80MB .mdd:5KB) .txt: 508MB->.zip70MB
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-28 13:36 , Processed in 0.045687 second(s), 12 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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