获取 中文 维基百科语料

最近在做输入法的词库,实现新的整句输入模型,(回头我会把之前的基于词的整句输入模型讲讲),新的整句输入模型是基于 HMM (也就是隐马尔可夫模型)来做的,当然了,由于我个人设备资金等有限,只做了二阶矩阵。不过即使如此,模型还是需要训练的。

当然,不是说用小说名著来训练就不好,只不过很难找到各行各业的相关小说,毕竟,它们覆盖的面积太单一了,这其实并不是高质量的语料库。说起高质量,那自然是非维基百科莫属,现在,我们就来获取维基百科的所有中文资料,并把它们导出为语料库,用以给模型训练。

下载数据

不用写爬虫来爬了,维基百科是开放的,所以他们自己提供了打包下载的链接,真的是很贴心。下载地址是:https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2 。

这是官方定期 dump 出来的 xml 格式数据,下载的话基本是 1GB 左右,中文的内容确实太少啊。如果你解压缩,那么是一个 6GB 多的 xml 文件,不过别去傻乎乎地解压缩,维基百科自己给你提供了方便的工具来导出内容。

数据导出

这里我们使用 python 来执行导出,首先下载维基百科提供的工具 gensim

安装成功后,大概这样来写python脚本

⚠️这里注意代码仅适用于 Python 3

UserWarning: Pattern library is not installed, lemmatization won't be available. 对于这个警告,忽略即可,我们并不使用它。

在我 2015 年款的中配13寸rmbp上跑了大概十来分钟就好了,很慢,要耐心等待一段时间,大概半个小时左右,导出的数据是 950M 1.09G 文本,每篇文章一行。

直接导出的维基百科中文文档

直接导出的维基百科中文文档

文本整理

好吧,直接导出的文本太大已经难以用普通的文本编辑器打开了,但显然,我们所谓的中文包含了简体繁体……所以还是应该处理一下的,这里我是将繁体转换为简体,当然反过来也行,我们使用 OpenCC 来完成这个工作。

安装 OpenCC

当然了,我是 macOS 平台,直接使用命令一键安装: brew install opencc

安装好后,还需要给它写一个配置文件,就写在你的语料库同目录下即可:

将其保存为  zht2zhs_config.json 备用。

转换

接下来在当前目录下执行命令

这下就OK了。

转换为简体内容

转换为简体内容

结论

这样一来,我们就得到了一个内容为简体,没有标点符号和数字的中文维基百科语料库,把它扔到训练机器中读取吧~

延伸阅读

中文维基百科文本数据分析之一(数据获取与预处理)

中英文维基百科语料上的Word2Vec实验

本文由 落格博客 原创撰写:落格博客 » 获取 中文 维基百科语料

转载请保留出处和原文链接:https://www.logcg.com/archives/2240.html

About the Author

R0uter

如非声明,本人所著文章均为原创手打,转载请注明本页面链接和我的名字。

Comments

  1. 您好
    我嘗試了您的程式
    可是卻在第6行:
    str_line = bytes.join(b’ ‘, text).decode()
    發生了下列的錯誤
    sequence item 0: expected a bytes-like object, str found

    貌似是形態問題
    上網找過相關的解答
    但是稍做更改還是報出一樣的錯誤
    請問該如何解決?

        1. 你好,我已经更正了代码,他们api行为变更了,现在直接吧内容处理成文本了,这样更方便,代价就是处理速度更慢了……
          你现在应该能按照文中的代码导出了。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注