如何解决扩展完整维基百科转储的维基文本的最佳方法是什么?
以 XML 格式download dumps of Wikipedia很容易。但是,文章的内容是用维基文本编写的,它有一个模板系统。为了从这些转储中提取干净的全文,有必要扩展这些模板。维基百科 provides an API 这样做,但它不适合扩展整个转储。可以找到几个脚本来处理 wikitext,such as this one written in python,但它们似乎都过时了或者根本不处理模板。解决这个问题的另一种方法是在计算机上运行维基媒体并使用 API:Expandtemplates,但这似乎是一个相当麻烦的解决方案。最后,HTML 转储也存在,但我更喜欢使用扩展的 wikitexts,因为它可以更轻松地处理 wikilinks、表格、部分等。
我的目标是提取干净的文本,同时保留维基链接并丢弃复杂的模板,例如信息框。你知道如何解决这个模板扩展问题吗?
解决方法
我做了一个使用 Kiwix 从维基百科获取干净文本的解决方案。 Kiwix 生成的 HTML 似乎很容易解析。您可以检查代码 here,但请注意它目前不可靠。
此外,您还可以下载此解决方案生成的转储(English 和 French)。
,我相信 https://github.com/tatuylonen/wikitextprocessor/ 可以满足您的需求:
这是一个用于处理维基媒体转储文件的 Python 包 维基词典、维基百科等,用于数据提取、错误检查、 离线转换成 HTML 或其他格式,以及其他用途。钥匙 功能包括:
- 解析转储文件,包括对并行处理页面的内置支持
- Wikitext 语法解析器,可将整个页面转换为解析树
- 从转储文件中提取模板定义和 Scribunto Lua 模块定义
- 展开选定模板或所有模板,启发式识别解析前需要展开的模板 合理可能的(例如,发出表开始和结束的模板 标签)
- 处理和扩展维基文本解析器功能
- 处理、执行和扩展 Scribunto Lua 模块(它们非常广泛地用于例如维基词典,例如用于生成 多种语言的 IPA 字符串)
- 对于在解析之前解析整体页面结构但随后扩展模板的应用程序,页面部分的受控扩展 页面的某些部分
- 在扩展模板参数的同时从模板参数中获取信息,因为模板参数通常包含有用的信息而不是 在扩展内容中可用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。