使用维基百科训练简体中文词向量

news/2024/7/19 10:49:25 标签: python, 爬虫, php

使用维基百科训练简体中文词向量

    最近需要训练简体中文的词向量,而中文大规模语料获取并没有像英文那样方便。搜狗语料库(http://www.sogou.com/labs/resource/list_yuliao.php)是能够免费获取的比较大的中文新闻语料库。但是最新的也就是更新到2012年的语料,后续并没有放出更新的语料。除了搜狗语料,要获取其他领域相关的中文语料,可能就需要自己动手写个爬虫去相关网站上爬取。后面通过检索,发现大家通过免费的中文维基百科来进行词向量的训练,于是我也下载处理了最新的维基语料,使用word2vec工具进行了中文词向量的训练。

1 下载中文维基百科。

wiki语料库下载网址:

https://dumps.wikimedia.org/

最近的中文wiki语料:

https://dumps.wikimedia.org/zhwiki/latest/

其中zhwiki-latest-pages-articles.xml.bz2文件包含了标题、正文部分。压缩包大概是1.3G,解压后大概是5.7G。相比英文wiki中文的还是小了不少。

2 抽取wiki正文内容

下载下来的wikiXML格式,需要提取其正文内容。不过维基百科的文档解析有不少的成熟工具(例如gensimwikipedia extractor等),我直接使用开源工具wikipedia extractor完成正文的提取。

Wikipedia extractor的网址为: http://medialab.di.unipi.it/wiki/Wikipedia_Extractor

Wikipedia Extractor 是一个简单方便的Python脚本,下载好WikiExtractor.py后直接使用下面的命令运行即可。

WikiExtractor.py -cb 1200M -o extracted zhwiki-latest-pages-articles.xml.bz2

-cb 1200M表示以 1200M 为单位切分文件,-o 后面接出入文件,最后是输入文件。

3 简繁转换

中文wiki内容中大多数是繁体,这需要进行简繁转换。我使用了厦门大学NLP实验室开发的简繁转换工具,该工具使用简单方便效果也很不错。

  下载网址为:http://jf.cloudtranslation.cc/

下载单机版即可,在windos命令行窗口下使用下面命令行运行:

  jf -fj file1.txt file2.txt -lm lm_s2t.txt

其中file1.txt为繁体原文文件,file2.txt为输出转换结果的目标文件名,lm_s2t.txt为语言模型文件。

4 处理空括号

由于 Wikipedia Extractor 抽取正文时,会将有特殊标记的外文直接剔除,最后形成一些空括号,自己去掉了这些空括号。

5 训练词向量

将前面得到的中文语料使用jieba分词工具(https://github.com/fxsjy/jieba)进行了分词,然后使用word2vec工具进行了训练,使用参数如下:

-cbow 0 -size 50 -window 10 -negative 5 -hs 1 -sample 1e-3 -threads 24 -binary 0 -iter 10

训练得到简体中文词向量后,测试了与"蛋白质""艾滋病""青霉素" 相似的top10,结果如下:

 

 

最后给大家共享一下处理好的资源。

http://pan.baidu.com/s/1dFeNNK9

其中包括,

处理好的简体中文文本(未分词):zhwiki_2017_03.clean

训练好的简体中文词向量:zhwiki_2017_03.sg_50d.word2vec

转载于:https://www.cnblogs.com/robert-dlut/p/6586621.html


http://www.niftyadmin.cn/n/1196246.html

相关文章

目前最全的浏览器/CSS选择器兼容性总结(2009-8-10更新)

2009年2月24日,Safari 4.0 beta版正式发布,Safari从它的3.2版本开始就已经支持所有的CSS选择器(包括最新的CSS3)。不过为了方便大家的工作,下面提供了最新版本的CSS选择器浏览器支持情况,其中包括最新的CSS3和Safari 4.0 Beta的支…

Elasticsearch 修改内存配置

之前增加了多台服务器的日志采集,而且包含apache的访问日志和错误日志,导致日志量过大,ELK服务出现异常。首先是访问kibana出现错误:显示错误信息为:Elasticsearch is still initializing the kibana index.百度了一下…

Html5:生成个玫瑰线图案

这个是网友 Vincent 所写的Html5的一些图案。邀请了他写的利用最新html5 容器绘图功能创立的。呵呵,他很快就写了记录下来了。于是,我把他的源码和图案都放在这里。用来体现一些这些绘图功能。看起来也很不错。 在数学书上,玫瑰线的极坐标公式…

Js中的new操作符

创建构造函数的新实例的方式------new; 以此方式调用构造函数的时候会经历以下4个步骤: ①创建一个新对象; ②将构造函数的作用域赋给新对象(因此this就指向了这个新对象); ③执行构造函数中的代码&#xf…

H3CSE培训笔记本(IS-IS)

IS-IS基本概念引入OSPF是高效且常用的链路状态型协议。与OSPF相对应,另外一种链路状态型路由协议是IS-IS。IS-IS起源和发展IS-IS最初是由ISO为它的无连接网络协议设计的一种动态路由协议。IETF对IS-IS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI环境…

竖表变横表case语句

有一个表a1,表中记录是:user_no acct_month charge0001 200505 1.000001 200506 2.000001 200507 3.000002 200505 4.000002 200506 5.000002 200507 6.00我想显示成这种格式,sql如何写?user_no 5月金额 6…

js中的面向对象程序设计

面向对象的语言有一个标志,即拥有类的概念,抽象实例对象的公共属性与方法,基于类可以创建任意多个实例对象,一般具有封装、继承、多态的特性!但JS中对象与纯面向对象语言中的对象是不同的,ECMA标准定义JS中…

我们来一起说说HTTPS中间人***与证书校验

一、前言随着安全的普及,https通信应用越发广泛,但是由于对https不熟悉导致开发人员频繁错误的使用https,例如最常见的是未校验https证书从而导致“中间人***”,并且由于修复方案也一直是个坑,导致修复这个问题时踩各种…