查看: 2444|回复: 30
打印 上一主题 下一主题

[工具] 我的简单版维基解析引擎qlvwp。beta版

[复制链接]

该用户从未签到

13

主题

454

回帖

3027

积分

贡士

Rank: 6Rank: 6

积分
3027

灌水大神章

跳转到指定楼层
1
发表于 2013-12-30 01:32:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 惟吾无为 于 2014-1-4 15:25 编辑

开源, GPLv2协议. 不会用git. 临时传到百度盘.
下载链接: http://pan.baidu.com/s/1nt7CIRR#dir/path=%2Fqlvwp%2Fqlvwp
重大更新, 2013年12月30日18:24之前下载的请重新下载. 现在windows上使用自带的lua可以直接打开2G大文件了.

本人于1月5日回家, 之后一个半月内没有网络, 期间回复将在元宵后统一处理. (如果过年走亲戚可能提前处理回复下)

-- zip包有份使用说明, 下面都是废话, 可以不看的 --

在linux上使用wine运行mdxbuilder很慢。所以今后我很会少转mdx。但尽力提供数学公式的更新(过年后会尝试加入zhwiki图片更新)

灰色文字于2013年12月30日18:24失效


现在发帖是写注意事项的,我怕明天忘了(话说我一直试图让解析器能直接在windows上运行,结果刚才才发现好几个lua解释器都只能处理2G内的文件。)
0. 所有脚本都在linux下编写测试, 理论上windows能用, 但不做保证. 编辑脚本时请使用utf8编码, unix换行符.
1. 有能力的网友可自行编译支持大文件的lua解释器。否则参考第二条处理。
2. lua解释器只能打开2G内的文件时,请先使用xml分割工具分割,然后拼接。(别用qlvwp自带的分割拼接脚本,依赖lua, 同样不起作用的)



预期的解析器(lvwp)速度太慢,随着我对维基的了解越来越深,才终于发现这是个多么庞大的系统了,3年前的想法如今还是实现不了,所以出现了这个版本。
本版本不再试图实现维基的环境,而是保证速度,尽量针对性地人工实现一部分功能(到时模板就是直接运行对应函数,而非处理Template空间的对应页面了)。
qlvwp包括解析器(quick_wiki_parser.lua)和数学公式转换器(convformula.lua)。并额外提供了wiki xml的分割工具和文本合并工具以及xml索引工具及单个词条提取工具。

转换策略如下:
1. 先用数学公式转换器生成数学公式对照文件。(到时可使用我提供的对照文件可跳过此步. 记住附上对应的图片mdd)
2. 用解析器处理维基标记文本。(读取数学公式对照文件来确定数学公式的图片名)
*** 提示: 解析器限于lua, 只能使用单核, 如果你是多核电脑又很赶时间, 可先分割成多个小文件, 然后开多个进程来处理它们.

功能对比.
图例:√实现 ×未实现  ○小部分实现 ◎大部分实现

功能关键字qlvwpmediawiki
粗体/斜体'''/''
链接[...]/[[...]]○1
表格{|...|}
公式<math>
模板{{...}}×2
列表(空格)*#;:-
标题=...=◎3
图片[[File:]]○4
nowiki<nowiki>/<pre>
引用<ref>×
相册<gallary>×
字词转换-{...}-×5
更多特性未支持...

注释:
1. 基础的web外接, 站内链接实现了. 图片链接直接返回原始文件名. 跨站链接未处理(转储文件从0.7版好像都没了), 姊妹项目未处理. 分类链接未处理. 就记得这些了...
2. 暂时显示出模板名和所有参数. 可用css屏蔽整个模板块, 或仅屏蔽参数块.
3. 给标题们加id锚点了, 非url字符使用维基的.XX格式. 但没有生成索引. 需要的话我下次写.
4. 图片链接只返回文件名, 其他的都丢弃了.
5. 暂时没有字词转换. 今后可能实现, 可能不. 同胞們學習下正體中文唄.

界面都是命令行。理论上cmd下亦可运行,未测试。
使用说明见usage.txt

评分

1

查看全部评分

该用户从未签到

13

主题

454

回帖

3027

积分

贡士

Rank: 6Rank: 6

积分
3027

灌水大神章

2
 楼主| 发表于 2013-12-30 01:33:23 | 只看该作者

buglist

本帖最后由 惟吾无为 于 2013-12-30 14:54 编辑

今日之前的log(2#): https://www.pdawiki.com/forum/thread-11549-1-2.html
------
20131230.
bug1. 部分表格没有转换. (数学)

bug2. 连续的标题(=)只转换了第一个? (化學元素)

bug3. 有些公式没转换(数学, "-2, \frac{2}{3}, 1.21\,\!")

该用户从未签到

13

主题

454

回帖

3027

积分

贡士

Rank: 6Rank: 6

积分
3027

灌水大神章

3
 楼主| 发表于 2013-12-30 01:34:14 | 只看该作者
本帖最后由 惟吾无为 于 2013-12-30 12:40 编辑

备用楼结束标记...
------
速度不错.
vuuv@mypc:/dev/shm$ lua qlvwp/quick_wiki_parser.lua out=/mnt/data/wiki/zhwiki20131221.txt hash=/mnt/data/wiki/zhwiki20131221.math.txt /mnt/files/downloads/zhwiki-20131221-pages-articles.xml
loading formula hash ... 75886
write file:        /mnt/data/wiki/zhwiki20131221.txt       
        setvbuf:        true
now open dumps:
4418894256      /mnt/files/downloads/zhwiki-20131221-pages-articles.xml
total filesize: 4418894256 (  4.1G)
100.00% | time:  27m43s,      0s | page write:  1242092 drop:  1094643
  • TA的每日心情
    擦汗
    前天 07:00
  • 签到天数: 1090 天

    [LV.10]以坛为家III

    124

    主题

    1772

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10477

    灌水大神章小蜜蜂章笑傲江湖章

    4
    发表于 2013-12-30 07:46:01 | 只看该作者
    可不可留个选项,不转换数学公式,直接输出latex文字版。我觉得将公式留给renderer做更干净一些。

    该用户从未签到

    13

    主题

    454

    回帖

    3027

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3027

    灌水大神章

    5
     楼主| 发表于 2013-12-30 11:07:55 | 只看该作者
    本帖最后由 惟吾无为 于 2013-12-30 11:20 编辑
    spoony1971 发表于 2013-12-30 07:46
    可不可留个选项,不转换数学公式,直接输出latex文字版。我觉得将公式留给renderer做更干净一些。


    转换工具调用texvc.
    我这分两步的做法算是有个选项了. 可能需要改下加载对照文件的部分, 支持"deststr\tformula"的格式. 而非之前的"md5 formula"格式.

    您说的renderer是指谁?
    ----

    对了, 没找到的公式都会显示原始代码.

    该用户从未签到

    11

    主题

    125

    回帖

    822

    积分

    举人

    Rank: 4

    积分
    822

    灌水大神章小蜜蜂章笑傲江湖章

    6
    发表于 2013-12-30 13:19:20 | 只看该作者
    本帖最后由 hyln9 于 2013-12-30 22:24 编辑

    前排贺电!非常感谢!

    有好多话先留着,这里先补充一句,xml分割恰好可以用我破解的这个https://www.pdawiki.com/forum/thread-11459-1-1.html
    支持几十个GB的xml分割,我已经测试过了。
    而且功能比较强大
    速度是非常快的,不需要预载入,直接开始分割,而且基本不占用硬盘,不影响干别的事。

    不知引擎对于多语言支持的如何,比如enwiki?

    该用户从未签到

    13

    主题

    454

    回帖

    3027

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3027

    灌水大神章

    7
     楼主| 发表于 2013-12-30 13:30:53 | 只看该作者
    多转储文件就是为enwiki开发的.
    可见2#的参考链接.
  • TA的每日心情
    擦汗
    前天 07:00
  • 签到天数: 1090 天

    [LV.10]以坛为家III

    124

    主题

    1772

    回帖

    1万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    10477

    灌水大神章小蜜蜂章笑傲江湖章

    8
    发表于 2013-12-30 13:49:20 | 只看该作者
    惟吾无为 发表于 2013-12-30 11:07
    转换工具调用texvc.
    我这分两步的做法算是有个选项了. 可能需要改下加载对照文件的部分, 支持"destst ...

    我想用mathjax之类的引擎来处理公式。这样也可以让wiki小一点。

    该用户从未签到

    13

    主题

    454

    回帖

    3027

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3027

    灌水大神章

    9
     楼主| 发表于 2013-12-30 13:52:13 | 只看该作者
    spoony1971 发表于 2013-12-30 13:49
    我想用mathjax之类的引擎来处理公式。这样也可以让wiki小一点。

    那就不指定hash. 然后修改mathjax. 解析class="error math"的span标签.
    或者你自己改脚本决定新的class名称.

    该用户从未签到

    13

    主题

    454

    回帖

    3027

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3027

    灌水大神章

    10
     楼主| 发表于 2013-12-30 18:33:46 | 只看该作者
    编译了下最新版的lua, 加入了大文件支持.
    已经加入了zip包.
  • TA的每日心情
    难过
    2018-3-28 11:32
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    8

    主题

    203

    回帖

    2万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    22334

    灌水大神章小蜜蜂章笑傲江湖章

    11
    发表于 2013-12-30 19:34:36 | 只看该作者
    楼主辛苦了。

  • TA的每日心情
    郁闷
    2018-12-17 20:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    4

    主题

    80

    回帖

    349

    积分

    秀才

    Rank: 3Rank: 3

    积分
    349
    12
    发表于 2014-1-2 22:37:53 | 只看该作者
    貌似楼主可以看一下xowa项目,在sourceforge上。貌似不错,可惜不支持手机,也不能批量导出html。
    汉化我都不知道怎么下手,代码超多。楼主可以参考一下它的标签处理和其他的项目处理。
  • TA的每日心情
    郁闷
    2018-12-17 20:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    4

    主题

    80

    回帖

    349

    积分

    秀才

    Rank: 3Rank: 3

    积分
    349
    13
    发表于 2014-1-2 22:43:53 | 只看该作者
    我在xowa提交过不少bug,顺便问一下这个程序怎么处理rss,媒体文件(pdf,ogg,mp3,等等),以及带颜色的数学公式,看看help:数学公式,用的标签有点问题,mathjax有一个不支持 。
  • TA的每日心情
    郁闷
    2018-12-17 20:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    4

    主题

    80

    回帖

    349

    积分

    秀才

    Rank: 3Rank: 3

    积分
    349
    14
    发表于 2014-1-2 22:47:17 | 只看该作者
    以后支持中文维基字典时注意一下,哪简直就是一个个坑呀,一堆引用站外数据,dump里压根没有。
  • TA的每日心情
    郁闷
    2018-12-17 20:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    4

    主题

    80

    回帖

    349

    积分

    秀才

    Rank: 3Rank: 3

    积分
    349
    15
    发表于 2014-1-2 22:50:44 | 只看该作者

    该用户从未签到

    13

    主题

    454

    回帖

    3027

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3027

    灌水大神章

    16
     楼主| 发表于 2014-1-2 23:55:45 | 只看该作者
    本帖最后由 惟吾无为 于 2014-1-3 00:01 编辑
    zjzengdongyang 发表于 2014-1-2 22:43
    我在xowa提交过不少bug,顺便问一下这个程序怎么处理rss,媒体文件(pdf,ogg,mp3,等等),以及带颜色的数学 ...


    现在不会参考其他项目了(何况这个不能导出html). 我已经把维基的格式学的差不多了, 现在尽可能兼容维基并提高解析速度.
    由于mdict不能处理多媒体,所以我只会转换图片. 发音不同于音乐, 所以任何音频也不会处理.
    数学公式调用texvc处理.
    维基字典暂时不会考虑. 等我把维基百科做好了再说.
    ----

    刚才看了下,基于java. 我不懂任何纯面向对象的编程语言.
  • TA的每日心情
    郁闷
    2018-12-17 20:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    4

    主题

    80

    回帖

    349

    积分

    秀才

    Rank: 3Rank: 3

    积分
    349
    17
    发表于 2014-1-29 14:26:05 | 只看该作者
    这些解析器扩展标签<categorytree>、<charinsert>、<gallery>、<hiero>、<imagemap>、<inputbox>、<math>、<nowiki>、<poem>、<pre>、<quiz>、<ref>、<references>、<score>、<section>、<source>、<syntaxhighlight>、<templatedata>和<timeline>支持不?好像还有一些html5标签,忘了
    http://zh.wikipedia.org/wiki/Spe ... C%E4%BF%A1%E6%81%AF
    随便问一下,支持分类不?有没有可能从categorylinks.sql中提取?

    该用户从未签到

    13

    主题

    454

    回帖

    3027

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3027

    灌水大神章

    18
     楼主| 发表于 2014-1-30 16:16:45 来自手机 | 只看该作者
    zjzengdongyang 发表于 2014-1-29 14:26
    这些解析器扩展标签、、、、、、、、、、、、、、、、、和支持不?好像还有一些html5标签,忘了
    在http:// ...

    nowiki pre math已处理
    ref和gallery有计划。
    其他的等模板解析完成后酌情支持。

    该用户从未签到

    13

    主题

    454

    回帖

    3027

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3027

    灌水大神章

    19
     楼主| 发表于 2014-1-30 16:21:11 来自手机 | 只看该作者
    分类现在还不知道怎么实现,可能需要数据库参与。目前走的纯Lua路线,调用数据库API就不是纯Lua了。
    我有时间再看那个SQL文件的格式,或许这是一个比较简单的实现办法。
  • TA的每日心情
    郁闷
    2018-12-17 20:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    4

    主题

    80

    回帖

    349

    积分

    秀才

    Rank: 3Rank: 3

    积分
    349
    20
    发表于 2014-2-11 16:17:30 | 只看该作者
    我曾经想通过导入数据库的方式还原官方的mediawiki,安装了我觉得有关内容的插件。
    然后导入数据库,已经导入了十几个小时,结果我复制文件时按了Ctrl+c,但是在终端里按的。.........结果中断,我欲哭无泪啊。
    看了看时间,心疼了一下电费,果断放弃。
  • TA的每日心情
    郁闷
    2018-12-17 20:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    4

    主题

    80

    回帖

    349

    积分

    秀才

    Rank: 3Rank: 3

    积分
    349
    21
    发表于 2014-2-11 16:22:14 | 只看该作者
    hyln9 发表于 2013-12-30 13:19
    前排贺电!非常感谢!

    有好多话先留着,这里先补充一句,xml分割恰好可以用我破解的这个http://www.pdaw ...


    他的这玩意,我根本用不了。本人在xp里琢磨了半个多小时。最后受不了,打开OllyDbg,自己动手,结果我爸回来了,果断关机。

    该用户从未签到

    13

    主题

    454

    回帖

    3027

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3027

    灌水大神章

    22
     楼主| 发表于 2014-2-13 16:12:19 | 只看该作者
    zjzengdongyang 发表于 2014-2-11 16:17
    我曾经想通过导入数据库的方式还原官方的mediawiki,安装了我觉得有关内容的插件。
    然后导入数据库,已经导 ...

    哈哈, 我也导过, 也欲哭无泪过, 已然绝望, 所以整这...

    该用户从未签到

    11

    主题

    125

    回帖

    822

    积分

    举人

    Rank: 4

    积分
    822

    灌水大神章小蜜蜂章笑傲江湖章

    23
    发表于 2014-2-13 23:31:29 | 只看该作者
    zjzengdongyang 发表于 2014-2-11 16:22
    他的这玩意,我根本用不了。本人在xp里琢磨了半个多小时。最后受不了,打开OllyDbg,自己动手,结果我爸 ...

    你爸?你多大了?
  • TA的每日心情
    郁闷
    2018-12-17 20:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    4

    主题

    80

    回帖

    349

    积分

    秀才

    Rank: 3Rank: 3

    积分
    349
    24
    发表于 2014-2-23 14:07:31 | 只看该作者
    hyln9 发表于 2014-2-13 23:31
    你爸?你多大了?

    15 岁

    点评

    15岁就已经数据库、OllyDbg、汇编语言、HTML语言、XML、都精通了?天才!我15岁的时候连电脑都没有  发表于 2014-10-13 10:41

    该用户从未签到

    0

    主题

    23

    回帖

    68

    积分

    被盗用户

    积分
    68
    25
    发表于 2014-3-6 23:07:05 | 只看该作者
    好吧,你们的技术贴..让我乱入一下.
    看了一遍没看懂,
    好奇的是什么时候会有新的,图文版的wiki词典呢..
    现在还在用2012年iwiki的那个.