查看: 327|回复: 4
打印 上一主题 下一主题

[日语] 日文喂鸡百科20220820文字离线版&制作经验分享

[复制链接]
  • TA的每日心情
    开心
    2022-11-22 11:55
  • 签到天数: 288 天

    [LV.8]以坛为家I

    4

    主题

    302

    回帖

    3702

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3702

    QQ 章灌水大神章笑傲江湖章

    跳转到指定楼层
    1
    发表于 2022-9-7 08:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    目前为止我收集到的日文喂鸡百科都比较旧了:

    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 尽量多分配点,因为可以同时运行多个程序来加速。单独的一个进程只需要下面一点资源。
    ![]()

    可以每十个分解后的文件放在一个文件夹,然后各放一个`W2T.exe`运行。下面是同时运行 4 个`W2T.exe`的内存占用:(联想小新 Air 2019 的笔记本,VMWare 16 2x2 的 CPU)
    ![]()

    处理过程中经常会报错提示`Run-time error '5'`,需要将正在处理的词条提取出来——打开处理好的txt文件,看一下最后一个词条,然后去源文件删掉下一个就可以了,修改完后再去编辑下配置文件,重新启动软件继续运行就可以了。
    ![]()

    关于报错部分的词条的处理,原项目地址的有讨论指出可能是 HTML标签异常,不过我不熟 WikiPedia 的编辑语法,也不想花时间去检查一个 1.76MB 的 txt 文件到底有哪些错误(至少有 28 个),所以换用了其他引擎并将这部分单独放在了一个mdx。

    另外,根据前人经验,制作大文件的 mdx,使用 mdxbulider 3.0 RC1 更好,欧路提供链接就是这个[版本](https://www.eudic.net/v4/en/home/EudicBuilder)

    # iwiki 处理异常的词条的处理

    除了上面提到的会导致程序终止的词条,还有 2 个分解后的文件用 iwiki 处理虽然不会报错,但是没有生成文件,而且处理时间非常奇怪。

    ![]()

    校对下载文件的 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 一样,都是一个作者的作品,特点是速度非常快,但不会处理模板,制作的词条也会有点问题:
    ![]()
    还有这种会导致打包报错的词条:
    ![]()

    使用 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 & 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 & 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/):这里也谈到一些,但没有进行过尝试。

    评分

    2

    查看全部评分

  • TA的每日心情
    开心
    2022-11-22 11:55
  • 签到天数: 288 天

    [LV.8]以坛为家I

    4

    主题

    302

    回帖

    3702

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3702

    QQ 章灌水大神章笑傲江湖章

    推荐
     楼主| 发表于 2022-9-24 17:28:16 | 只看该作者
    邱海波 发表于 2022-9-22 21:16
    大文件分割可以用gsplit,https://www.gdgsoft.com/gsplit/download

    学习了,说不定哪天有用
  • TA的每日心情
    开心
    2022-11-22 11:55
  • 签到天数: 288 天

    [LV.8]以坛为家I

    4

    主题

    302

    回帖

    3702

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3702

    QQ 章灌水大神章笑傲江湖章

    推荐
     楼主| 发表于 2022-9-24 17:27:09 | 只看该作者
    jay001 发表于 2022-9-9 11:15
    不错 不错哦  什么时候老大也做个中文版的,简体中文版的呢  嘿嘿

    中文简体的不是社区不是有么
    [2022/7/16]中文喂鸡百科20220701文字正式版For Mdict
    https://www.pdawiki.com/forum/fo ... hread&tid=22626
    (出处: 掌上百科 - PDAWIKI)
  • TA的每日心情

    2018-6-15 14:54
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    38

    主题

    509

    回帖

    5035

    积分

    翰林院编修

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    5035

    翰林院专用章灌水大神章笑傲江湖章小蜜蜂章管理组专用章

    推荐
    发表于 2022-9-22 21:16:59 | 只看该作者
    大文件分割可以用gsplit,https://www.gdgsoft.com/gsplit/download
  • TA的每日心情
    擦汗
    4 天前
  • 签到天数: 269 天

    [LV.8]以坛为家I

    1

    主题

    403

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10495

    QQ 章

    推荐
    发表于 2022-9-9 11:15:32 | 只看该作者
    不错 不错哦  什么时候老大也做个中文版的,简体中文版的呢  嘿嘿