微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

扩展完整维基百科转储的维基文本的最佳方法是什么?

如何解决扩展完整维基百科转储的维基文本的最佳方法是什么?

以 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,但请注意它目前不可靠。

此外,您还可以下载此解决方案生成的转储(EnglishFrench)。

,

我相信 https://github.com/tatuylonen/wikitextprocessor/ 可以满足您的需求:

这是一个用于处理维基媒体转储文件的 Python 包 维基词典、维基百科等,用于数据提取、错误检查、 离线转换成 HTML 或其他格式,以及其他用途。钥匙 功能包括:

  • 解析转储文件,包括对并行处理页面的内置支持
  • Wikitext 语法解析器,可将整个页面转换为解析树
  • 从转储文件中提取模板定义和 Scribunto Lua 模块定义
  • 展开选定模板或所有模板,启发式识别解析前需要展开的模板 合理可能的(例如,发出表开始和结束的模板 标签)
  • 处理和扩展维基文本解析器功能
  • 处理、执行和扩展 Scribunto Lua 模块(它们非常广泛地用于例如维基词典,例如用于生成 多种语言的 IPA 字符串)
  • 对于在解析之前解析整体页面结构但随后扩展模板的应用程序,页面部分的受控扩展 页面的某些部分
  • 在扩展模板参数的同时从模板参数中获取信息,因为模板参数通常包含有用的信息而不是 在扩展内容中可用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?