获取 中文 维基百科语料

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

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

下载数据

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

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

数据导出

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

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

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

在我 2015 年款的中配13寸rmbp上跑了大概十来分钟就好了,导出的数据是 950M 文本,每篇文章一行。

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

文本整理

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

安装 OpenCC

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

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

将其保存为  zht2zhs_config.json 备用。

转换

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

这下就OK了。

转换为简体内容
转换为简体内容

结论

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

延伸阅读

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

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

发表评论

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