注:本文是[日文维基百科20220820文字离线版&制作经验分享 - 日语 - FreeMdict Forum](https://forum.freemdict.com/t/topic/15199)的帖子。 正文参考[日文维基百科20220820](日文维基百科20220820.md)。 # 讨论 不过你可以指下路么?以我爱折腾的性格,说不定哪天手痒就去抓了(但最近几个月应该不会动手),我用关键词 “Wiktionary” 在这里和 PDAwiki 都没有找到相关的制作教程,只找到一篇看起来会有教程的文章: [【2016/09】Wiktionary 2016豪华版 - MDict 词库资源区 - MDict Dictionaries - 掌上百科 - PDAWIKI - Powered by Discuz! 5](https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=18397&highlight=Wiktionary) 你链接这本就挺不错的,后人又有依据他的脚本制作过2019的版本,我现在还在用。 但这个是英-英,wiktionary的语言又很多,例如一个汉字在中文/日文/韩文/越南文里有不同的解释,用来解释的语言也可以选择多种,不知道能否通用。 本坛有一个[CJK-English Wiktionary 2021 7](https://forum.freemdict.com/t/topic/8492),里面也有分享脚本(脚本里可指定语言),供你参考。能通用的话,制作一个CJK-Chinese 或 CJK-Japanese 也许不错。 个人意见,用离线的wiktionary果然还是喜欢bt4baidu那样紧凑美观的样式,但为日语适配一个样式可能难度太大,不妨考虑精简一下,只提取词源等最有价值的部分。 感谢指路,简单了解了下,这里可以下载词典文件,放到Golden Dict就可以加载了[Index of /zim/wikipedia 2](https://download.kiwix.org/zim/wikipedia/) 上面的老兄指点的网站提供了你感兴趣的wiktionary离线文件(非mdx),有日语的,感兴趣的话去这里下[Index of /zim/wiktionary 3](https://download.kiwix.org/zim/wiktionary/) 具体下哪个文件看看这里的说明:[https://download.kiwix.org/zim/README 4](https://download.kiwix.org/zim/README) 在goldendict上试了试,ja还行,zh排版很乱,但似乎有的词在zh里的解释丰富一点,比如`英語`只在汉语的解释里有詞源。 (每个zim都是包含所言语言的词条,用你选择的语言来解释。) 有[讨论](https://forum.freemdict.com/t/topic/15199/7)指出了 感谢指点,简单了解了下,这里可以下载词典文件,放到Golden Dict就可以加载了https://download.kiwix.org/zim/wikipedia/ 但我在欧路手机端也经常查词,所以更喜欢mdx(记性不好,复习的时候不想打开几个软件,只想找个全平台通用的方案) 而这里提到zim转mdx的方法 https://forum.freemdict.com/t/topic/5577 看起来很简单:zim 可以解压为HTML文件,有了这个转为mdx就简单多了…但我没有找到完整的教程,只有零碎的讨论,估计动起手来,又是一堆坑。而我最近比较忙,所以寒假有空才会折腾吧… 对了,上面的老兄指点的网站提供了你感兴趣的wiktionary离线文件(非mdx),有日语的,感兴趣的话去这里下 https://download.kiwix.org/zim/wiktionary/ 具体下哪个文件看看这里的说明:https://download.kiwix.org/zim/README 目前为止我收集到的日文维基百科都比较旧了: 2013-11-19,词条数未知,Epwing 格式(公式正常) 2016-09-01,1698853,mdx 格式(公式无法显示) 再加上在论坛找东西时偶然看到了[分享:i- - 词库制作交流区 - Dictionary-Making - 掌上百科 - PDAWIKI - Powered by Discuz!](https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=9481),萌生了制作离线版的想法。 不过由于技术水平和时间精力的限制,我制作的版本有如下问题,介意者慎下: 1. 没有网页中的图片,mdd里面的图片是数学公式的 2. 部分词条排版比较乱(比如`サクラ`、`今敏`……,而`日文维基百科20160901`的这部分词条是正常的) 3. 可能会存在比较严重的词条丢失问题(原因后面说明) [数据源](https://dumps.wikimedia.org/jawiki)来自维基官方,使用的是[20220820](https://dumps.wikimedia.org/jawiki/20220820/)的数据,共计1959774个词条。 百度网盘链接:[https://pan.baidu.com/s/1cPMeMvGpg6Tg5pHhfiWDew?pwd=ef7i](https://pan.baidu.com/s/1cPMeMvGpg6Tg5pHhfiWDew?pwd=ef7i) 提取码:ef7i 天翼云盘链接:[https://cloud.189.cn/t/3qAFRrJ3iyYn](https://cloud.189.cn/t/3qAFRrJ3iyYn) 访问码:bwd6 接下来记录下自己制作时踩的坑,希望对后来人折腾这个有点帮助,遇到问题可以通过 [email protected]向我请教:) # 制作的大致流程 到这里下载[数据](https://dumps.wikimedia.org/jawiki),注意是像`jawiki-20220820-pages-articles.xml.bz2 `这样以`pages-articles.xml.bz2`结尾,不是其他方式结尾的文件。 用解压工具解压前校验下 SHA1 的值,不要做了半天才发现文件不全。 推荐下载 7.zip,除了可以解压、计算 SHA1 值外,还可以用来处理报错的词条(不然可能要用Linux系统处理)。 打开`W2T.exe`,注意软件内置有分解功能,不用自己找第三方的工具拆分。 这个工具可能要在 Win7 环境才能正常运行。本人在 Win 10 和 Win11 环境下启动后均报错,而且安装了注册表文件也无法正常运行。 另外,部分 Win7 也会报错(可能是因为我找的系统文件被人精简过),不过有解决的办法,参考[这里](https://www.jb51.net/dll/msstdfmt.dll.html)。 如果没有 Win7 的电脑的话,创建虚拟机的时候,内存分配 2G 就够用了,但 CPU 尽量多分配点,因为可以同时运行多个程序来加速。单独的一个进程只需要下面一点资源。 ![](Assets/Pasted%20image%2020220828145153.png) 可以每十个分解后的文件放在一个文件夹,然后各放一个`W2T.exe`运行。下面是同时运行 4 个`W2T.exe`的内存占用:(联想小新 Air 2019 的笔记本,VMWare 16 2x2 的 CPU) ![](Assets/Pasted%20image%2020220828224111.png) 处理过程中经常会报错提示`Run-time error '5'`,需要将正在处理的词条提取出来——打开处理好的txt文件,看一下最后一个词条,然后去源文件删掉下一个就可以了,修改完后再去编辑下配置文件,重新启动软件继续运行就可以了。 ![](Assets/Pasted%20image%2020220828071117.png) 关于报错部分的词条的处理,原项目地址的有讨论指出可能是 HTML标签异常,不过我不熟 WikiPedia 的编辑语法,也不想花时间去检查一个 1.76MB 的 txt 文件到底有哪些错误(至少有 28 个),所以换用了其他引擎并将这部分单独放在了一个mdx。 另外,根据前人经验,制作大文件的 mdx,使用 mdxbulider 3.0 RC1 更好,欧路提供链接就是这个[版本](https://www.eudic.net/v4/en/home/EudicBuilder) # iwiki 处理异常的词条的处理 除了上面提到的会导致程序终止的词条,还有 2 个分解后的文件用 iwiki 处理虽然不会报错,但是没有生成文件,而且处理时间非常奇怪。 ![](Assets/Pasted%20image%2020220830221735.png) 校对下载文件的 SHA-1、重新解压后分解、删除第一个词条……等等方法都无法解决后,决定使用[维基咖啡](https://www.pdawiki.com/forum/thread-13368-1-1.html)来处理。 把上面的所有报错词条添加一个 xml 文件中,再在文件最开始的地方插入`jawiki-20220820-pages-articles.xml`的 1-596 行的内容,这样用 WikiCafe 引擎才可以正常处理。 只是这个引擎不会处理模板,所以排版会比较乱,所以这部分的词头我单独打包为了`ja-wikipieda_20220820_error.mdx` 另外,如果赶时间,不介意排版的话,可以直接用Wikicafe来处理——速度非常快,我用iwiki大概花了4天左右的时间,用Wikicafe一个多小时就处理完了,但是有些比较严重的问题。 # Wikicafe 项目原地址:[维基咖啡](https://www.pdawiki.com/forum/thread-13368-1-1.html) 和 iwiki 一样,都是一个作者的作品,特点是速度非常快,但不会处理模板,制作的词条也会有点问题: ![](Assets/Pasted%20image%2020220828213141.png) 还有这种会导致打包报错的词条: ![](Assets/Pasted%20image%2020220828213210.png) 使用 wikicafe 补充制作报错的词条倒是没有遇到上述情况。 # 致谢 感谢 i-wiki 提供维基转换引擎,他的工具是这个mdx出现的重要前提; 感谢网友邱海波,他对中文维基百科的处理经验帮助我少走了很多弯路; 感谢 Rayman Zhang提供 MDict 平台; 感谢 Wikipedia 团队和参与词条的诸位编辑,Ta 们的工作是这个词典的灵魂所在:) # 打包信息 ```html <p>维基百科 海纳百川,有容乃大 人人可编辑的自由百科全书</p> <p>日文维基百科 For Mdict(文字正式版)</p> <p>Ver.2022.08.20</p> <p>By: NoHeartPen, bulid20220820 V1 (1)制作信息: ·转制工具:i-wiki 0.76 &amp; mdxbulider 3.0 RC1 ·数据版本:2022.08.20(https://dumps.wikimedia.org/jawiki) ·更新日志: 1、基于 20220820 版本离线日文维基百科数据制作。绝大多数词条均采用 i-wiki 0.76 引擎转制,保证总体效果;少数冗长异常的词条采用 wikicafe 引擎转制,并在最开始的部分补充网页跳转链接,兼顾内容完整。 ·特别鸣谢: 鸣谢 Rayman Zhang(提供 MDict 平台)、i-wiki(提供维基转换引擎)。 (2)联系作者: ·邮箱:[email protected] ·主页:https://noheartpen.github.io/ (3)欢迎赞助: ·制作不易,欢迎赞助,不限金额和次数。谢谢! </p> ``` # Error报错文件打包信息 ```html <p>维基百科 海纳百川,有容乃大 人人可编辑的自由百科全书</p> <p>日文维基百科 For Mdict(文字正式版_异常词条补充)</p> <p>Ver.2022.08.20</p> <p>By: NoHeartPen, bulid20220820 V1 (1)制作信息: ·转制工具:i-wiki 0.76 &amp; mdxbulider 3.0 RC1 ·数据版本:2022.08.20(https://dumps.wikimedia.org/jawiki) ·更新日志: 1、基于 20220820 版本离线日文维基百科数据制作。绝大多数词条均采用 i-wiki 0.76 引擎转制,保证总体效果;少数冗长异常的词条采用 wikicafe 引擎转制,并在最开始的部分补充网页跳转链接,兼顾内容完整。 ·特别鸣谢: 鸣谢 Rayman Zhang(提供 MDict 平台)、i-wiki(提供维基转换引擎)。 (2)联系作者: ·邮箱:[email protected] ·主页:https://noheartpen.github.io/ (3)欢迎赞助: ·制作不易,欢迎赞助,不限金额和次数。谢谢! </p> ``` # 其他参考 [VMware 安装 Ubuntu18.04](https://zhuanlan.zhihu.com/p/38797088):VMWare 安装 Ubuntu 指南,写得非常详细——但用 7.zip 就可以解决的问题,为什么非要去折腾 Linux 的``tar -cjf all.tar.bz2 *.xml``呢…… 缺少`msstdfmt.dll`:下载这里的[msstdfmt.dll](https://www.jb51.net/dll/msstdfmt.dll.html)文件即可。如果直接通过`开始`-`运行`无法激活成功的话,试着到对应的文件夹下使用命令行手动激活(也是下载链接提到的方法),网上找了半天,只有这里在激活命令最后带上了`/s`。 ## 其他 WikiPedia 处理工具 [日本語版 Wikipedia ダンプのダウンロード,ファイル分割(XMLファイル) (kkaneko.jp)](https://www.kkaneko.jp/tools/bigdata/ja.html)和[Release V3.0.6 · attardi/wikiextractor (github.com)](https://github.com/attardi/wikiextractor):需要 Python 环境,从描述和代码来看,疑似提取纯文本,未对排版进行优化,尚未进行试验。 [Wiki语料处理](https://www.cnblogs.com/chenbjin/p/5635853.html):和上面的比较类似的一个Python库,也是提取 WikiPieda 的纯文字内容 ## 分割 XML 再次强调:`W2T`已经内置了分解工具,不用自己找第三方的分解工具,如果要动手的话,先解决启动时的报错问题,不要纠结如何拆分下载的文件。 文件过期,无法下载[分割 xml/:xmlsplit - 词库制作交流区 - Dictionary-Making - 掌上百科 - PDAWIKI - Powered by Discuz!](https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=11459) [请教各位手动分割 ? - 词库制作交流区 - Dictionary-Making - 掌上百科 - PDAWIKI - Powered by Discuz!](https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=13649&highlight=xml):这里的工具可以下载部分,但是折腾了半天也没有分解成功 [XML Split of a Large file - Stack Overflow](https://stackoverflow.com/questions/700213/xml-split-of-a-large-file):这里也谈到很多,但是折腾了半天也没有拆出自己想要的的文件 [windows - How do I split a large xml file? - Stack Overflow](https://stackoverflow.com/questions/4325823/how-do-i-split-a-large-xml-file/):这里也谈到一些,但没有进行过尝试。