全新的mdx/mdd词典制作工具

是啊 大家都想着兼容,那就这样吧。我只想做好索引,不过看起来大家对于词典的索引不是那么在乎。想要在 MDX 身上加索引是一个很难的事情。

1 个赞

创新既难又不难。
看看现在有多少种完全开源的词典格式?现实中能广泛使用的甚至说不上屈指可数。

我也许有点保守现实,但我不希望为了创新而创新,劳而无功。现在回头去看Linux0.01的源码,有什么惊天动地的大创新吗?现实有很强的路径依赖,不同于书本上的理论。

2 个赞

恩……基于现有的mdx框架后期就没法再加全文检索等新特性了嘛,mdx源txt文件实质上就是个半个html吧,最终在客户端被解析后也完全就是个html,个人觉得网页般的呈现方式还是最优选择。

还有人说将文本数据json化、数据库sql化,我觉得这个应该是很好的,并且只要在后端实现就可以的吧,文本等数据一律存在json或sqlite里,在txt文件里通过引用的方式将指定的json的数据列插入其中,得到的结果和现行的txt源文件格式是完全一致的,这些可以通过打包工具实现,用户写好txt引用语法就行。当然,旧的直接制作txt源文件的方式依然支持。

至于说加全文检索特性,这个应该仅是要对索引的优化吧,如果数据存在json或sqlite里了,只要对它们建个全文检索index就行了的吧

总而言之,想保持原mdx格式一是为了让目前mdx生态里的用户迁移过来,不然直接搞个全新完全不同的格式,没有用户很难开头吧;二是html的呈现方式还是很好的选择吧。

2 个赞

词典内置的排序,必须和词典软件预期的一致,否则词典软件需要重建索引。排序是重中之重,官方不支持,又没有第三方逆向官方的排序算法,后续怎么推陈出新,都谈不上青出于蓝,因为排序问题解决不了。

1 个赞

目前是这么做的, MDX 的格式我已经根据已有公开的资料重新绘制了, 参见项目主页的高清大图.

1 个赞

关于排序, 目前默认升序的词头排序有什么问题吗? 生成的 MDX 欧陆什么的无法识别吗?

原来难点在索引的排序算法,要打包工具的算法和客户端的算法一致,我看目前也有一些词典制作者用mdx-utils等工具打包生成mdx,GoldenDict用应该是没问题,不知道深蓝、欧路等使用这种方式生成的mdx有没有什么问题。

1 个赞

严重同意,楼主一定要立足索引这个重点基础。

楼主自己的工具内做到就好啦,其它软件是否支持那是另一会儿事情 - 楼主开源,就不用担心其它软件的支持啦 - 商业软件排除在外,别指望欧陆MDict会为了开源免费词典格式的生态做多少贡献啦

老铁的表意不清楚嘛?围师必阙,哈哈哈哈,非得把楼主的设计思路往欧陆和MDict、深蓝等商业软件是否兼容上靠,不厚道

楼主不要被扯偏方向啦,能坚持做好索引就是最大的胜利

默认升序没有问题,但需要先去掉词头里的符号和忽略大小写后再排序。不去掉符号,在欧路MDict里很难用,上面说的排序黑盒,就是指不清楚官方工具,到底去掉了哪些符号。这个符号表需要逆向出来,让词典制作工具的作者和词典软件的作者都知道才行,两边都知道需要去掉哪些符号,才能让词典里内置的排序,和词典软件预期的排序保持一致

1 个赞

大家想要兼容性,谈不上说什么厚道不厚道的,大家都在提建议而已。

让商业软件来做兼容嘛,哈哈,建议绕满一圈啦,哈哈哈哈

谈建议,楼主维护好 issues 是最好的选择

如果商业软件不来做这个 - 那所谓的兼容性实质上就落实了是商业软件的需求,哈哈,这个需求为什么要转嫁到一款开源工具上呢?

没毛病,绕一圈,再圆满一次,哈哈,哈哈哈哈

目前很多短语mdx词典,要查短语,还要输入somebody、someone、one’s、yourself、oneself、something、sb、sth、sb’s,好像只有隔壁jiangws的那个几个短语mdx词典合并成一个mdx可以不输入这些人称代词就可以直接查,他的那部词典增加了索引:

去掉人称代词的短语
@@@LINK=有人称代词的短语
</>

这样处理索引,大幅增加了词典的查得率。

3 个赞

楼主,你的工具能否支持@@@LINK=内部词条重定向呢?@biu

1 个赞

可以报名参与到测试中去啦,问题迎刃而解,同时也为开源软件做一下贡献嘛

纯粹是MDict或欧陆对词典的兼容性差异啦

很多mdx是compact HTML,体积小,这是一大优点,遗憾的是,目前很多图片版mdx体积太大,手机内存小了,根本装不下,要装图片版mdx,手机的闪存空间至少是256GB,128GB的手机闪存根本不够用,很多手机系统都要占几十GB的内存,要命的是,很多手机还不能获取root权限,手机系统自带的垃圾APP卸载不了。

1 个赞

@free
我觉得这个功能应该问题不大, 事实上甚至可以做的更好, 使用一些分词工具入 jieba (GitHub - fxsjy/jieba: 结巴中文分词), 然后建立反向索引表, 源文件处理的时候自动生成, 最后写入到 MDX 中.

2 个赞

全文检索不是什么大问题, 这个我看了一些开源项目比如GitHub - valeriansaliou/sonic: 🦔 Fast, lightweight & schema-less search backend. An alternative to Elasticsearch that runs on a few MBs of RAM. 的大致实现原理, 按照他们的处理方法, 可以做一个 mini 类型的全文检索功能.

2 个赞

我今天会发布命令行版本的 mdx 创建和解析工具, 到时候有空的朋友门可以帮忙测试一下.

3 个赞