mysql - 解析文章内容的维基百科 XML 转储并填充 MySQL 数据库的快速方法是什么?

标签 mysql mediawiki wikipedia text-mining

对于某些文本挖掘应用程序,我需要确定英文维基百科中每篇文章中每个单词的出现频率,并使用该数据填充 MySQL 数据库。 This official page建议在转储上使用 mwdumper 或 xml2sql,但它们并不直接满足我的目的(除非有人可以解释它们如何做到)。

使用 WikiExtractor 、用于 Python 的 MySQLdb 和本地 MySQL 服务器,另一方面,允许我做我想做的事,但它很慢,以至于需要一个月的时间来解析整个转储。对修改后的 WikiExtractor 程序进行分析表明,大部分运行时间都花在了它的嵌套正则表达式搜索和我的数据库插入上。

理想情况下,我不希望处理文章的时间超过几天。我怎样才能有效地做到这一点?

最佳答案

Perl 包 MediaWiki::DumpFile有利于解析。要加载转储并阅读每一页,您只需要很少的代码行。

要进行简单的词频计算,您可以使用 sample code in Perl FAQ或包裹 Text::Ngrams为了更聪明的东西。

将结果添加到数据库由您决定,因为您正在开发应用程序并且您应该知道需求。

关于mysql - 解析文章内容的维基百科 XML 转储并填充 MySQL 数据库的快速方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13546254/

相关文章:

mysql - 创建新表或添加字段是否有意义

mysql - 如何将此 MySQL 命令转换为 SQLite 命令?

javascript - 获取编辑页面的用户数组

api - 是否有一个干净的维基百科 API 仅用于按文章名称检索图像?

php - 负限制器 MySQL

php - MySQL——如何做得更好?

mysql - 将从html表单捕获的数据全部大写插入mysql中

MediaWIki 表(信息框)位于页面右下角

text - 需要体育、娱乐、健康等类别以及所有子类别的训练数据

xml - 将维基百科转储索引到 elasticsearch 获取 XML 文档结构必须在同一实体错误中开始和结束