[中文语音识别后文本加标点] 维基百科数据下载和解析(xml-txt)
维基百科的中文语料库质量高、领域广泛而且开放,其每月会将所有条目打包供大家下载使用,可以点击: https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2 直接下载最新版(也可以访问:https://dumps.wikimedia.org/zhwiki/ 获取历史版本)。
1、维基百科数据下载 (分享了一份百度网盘:链接:https://pan.baidu.com/s/1LgJvdhvJLScDZnwBSyIHwA 密码:wzgc)
wget https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2
2、将下载的维基百科xml转换为txt
这里主要有两种方法:
一种是使用gensim.corpora提供的接口(from gensim.corpora import WikiCorpus),这个有一个问题:会把标点过滤掉,不适合做文本加标点的任务,可用于训练word2vector。
另一种方法:使用wikiextractor 。
下面详细介绍两种方法的使用。
(1)from gensim.corpora import WikiCorpus (处理完的数据没有标点符号,并且比较干净)
import logging
import os.path
import sys
from optparse import OptionParser
from gensim.corpora import WikiCorpusdef parse_corpus(infile, outfile):'''parse the corpus of the infile into the outfile'''space = ' 'i = 0with open(outfile, 'w', encoding='utf-8') as fout:wiki = WikiCorpus(infile, lemmatize=False, dictionary={}) # gensim中的维基百科处理类WikiCorpusfor text in wiki.get_texts():fout.write(space.join(text) + '\n')i += 1if i % 10000 == 0:logger.info('Saved ' + str(i) + ' articles')if __name__ == '__main__':program = os.path.basename(sys.argv[0])logging.basicConfig(level = logging.INFO, format = '%(asctime)s - %(levelname)s - %(message)s')logger = logging.getLogger(program) # logging.getLogger(logger_name)logger.info('running ' + program + ': parse the chinese corpus')# parse the parametersparser = OptionParser()parser.add_option('-i','--input',dest='infile',default='zhwiki-latest-pages-articles.xml.bz2',help='input: Wiki corpus')parser.add_option('-o','--output',dest='outfile',default='corpus.zhwiki.txt',help='output: Wiki corpus')(options,args) = parser.parse_args()infile = options.infileoutfile = options.outfiletry:parse_corpus(infile, outfile)logger.info('Finished Saved ' + str(i) + 'articles')except Exception as err:logger.info(err)# python parse_zhwiki_corpus.py -i zhwiki-latest-pages-articles.xml.bz2 -o corpus.zhwiki.txt
(2)wikiextractor (处理完的数据含有比较符号,比较脏)
git clone https://github.com/attardi/wikiextractor
python wikiextractor/WikiExtractor.py zhwiki-latest-pages-articles.xml.bz2 -o wiki.txt
数据如下:
需要需要一个脚本进行合并: ( 输出到一个txt文件(corpus.zhwiki.txt) )
import os, sys# 解析完的维基百科数据路径
wiki_path = './wiki.txt/'# 获取路径下面的所有文件
wiki_list = os.listdir(wiki_path)
# 或者文件下面的所有txt文件
for per_file in wiki_list:if per_file == '.DS_Store':continue# 文件路径file_path = os.path.join( wiki_path, per_file )txt_list = os.listdir(file_path)# 或者每一个txt for per_txt in txt_list:if per_txt == '.DS_Store':continue# 每一个txt文件的路径txt_path = os.path.join( wiki_path, per_file, per_txt ) # cat file0.txt >> file.txt 将file0.txt追加到file.txt的末尾 cms = 'cat {} >> corpus.zhwiki.txt'.format( txt_path )print (cms)os.system( cms )
总结:
上面的流程走完,在数据方面就完成很大一部分任务了,后面需要做的有:
(1)将繁体中文转为简体中文
(2)去除英文和空格
(3)选取合适的句子,对句子进行分词
(4)生成训练的数据:1、句子截取;2、提取词向量:训练word2vector模型; 3、标点映射标签。
[中文语音识别后文本加标点] 维基百科数据下载和解析(xml-txt)相关推荐
- 利用中文维基百科数据进行词语相似度word2vec实验
使用维基百科数据利用word2vec简历词向量, 通过对词向量之间的距离的比对,查找出与给出词语相似度较高的单词进行返回 1.使用维基百科官方给出的文档处理程序处理从维基百科上下载的压缩包文件成原始t ...
- WikiTaxinbsp;离线中英文维基百科数据…
维基百科 (Wikipedia) 对很多人来说绝对是一个知识的宝库!维基百科拥有海量权威的资料供我们查询,也许我们每个人都梦想着把维基百科下载下来实现离线查询.甚至装在U盘里,以方便随时随地查询.对于 ...
- Mac升级后,词典只有维基百科解决办法,并附汉英英汉词典链接
mac升级后,词典目录里只有维基百科,如何解决? 打开词典,选择文件-打开词典文件夹 目录应为:~/Library/Dictionaries,注意是home目录下的/Library/Dictionar ...
- [转]维基百科数据导入
本文来自:http://app.cnzer.cn/html-83146-1.html 两篇文章分别总结了各自的wikipedia数据导入过程,来不及学习,故先转载: (一)wmdumper.jar f ...
- python 维基百科爬虫_如何使用Python提取维基百科数据
python 维基百科爬虫 这是本教程的可视版: 我需要指出的是,我们不会手动抓取Wikipedia页面, Wikipedia模块已经为我们完成了艰巨的工作. 让我们安装它: pip3 install ...
- 维基百科:数据库下载
维基百科提供所有完整内容的电子文件(称为"数据库转储文件")给有兴趣的用户.这些数据可以被重复使用,当作镜像站点,或是个人使用,或是数据备份,或是分析.所有维基百科文章都在知识共享 ...
- 使用JWPL处理维基百科数据-使用eclipse
环境配置 eclipse+jdk 建议不要下载最新版本,十分容易不兼容,后患无穷 eclipse官网下载又慢又卡,清华镜像:https://mirrors.tuna.tsinghua.edu.cn/e ...
- 文本信息检索(维基百科)
文本信息检索是针对文本的信息检索技术.在技术社区中,文本信息检索常常被等同于信息检索技术本身. 相对视频.音频检索而言,文本信息检索是发展较快也较成熟的,其他模态的信息检索技术,往往也要仰赖文本信息检 ...
- eeglab中文教程系列(1)-加载、显示数据
目录 准备工作 1.安装eeglab 2.准备测试数据 具体操作 1.加载数据 2.观察事件值(event values) 3.查看数据信息 4.浏览EEG通道数据(并可视化) 5.电压刻度调整 6. ...
- 修改texworks安装时的中文路径后,对texworks注册表数据值的修改方式
前一个月我LaTeX\LaTeXLATEX遇到了问题,使用最基本的section环境都会出问题,黑体中文字符全部变成□.当然至今也没有解决,如果有好心人知道解决方案可以告诉我(我会把我遇到的问题放到 ...
最新文章
- Swift2.0语言教程之函数嵌套调用形式
- python爬虫实例(urllibBeautifulSoup)
- alert时java还时js_js 加alert后才能执行方法
- jquery中ajax完整例子get,jq的ajax方法,jquery中ajax完整例子
- yii 使用 有赞sdk_有赞 App 动态化配置中心实践
- 怎样构建深度学习模型?六步走,时刻小心过拟合 | 入门指南
- Scheme学习系列二:调用C代码
- php切图工具,前端切图常见技巧
- AS找回被删除的文件
- 联通光纤猫虚拟服务器设置,联通光猫连接无线路由器怎么设置?
- 【树形DP+DFS】Gym 100962J - Jimi Hendrix
- 设置android模拟器屏幕自动旋转
- java分别用链表和数组实现栈
- 全网最全斗音短视频新老账号起号技巧
- 两种web crawler方案
- XJOI_3541_开根号
- 输入码(外码),国标码,区位码,机内码,字型码的概念与关系
- Android音乐App桌面图标制作以及启动页面开发(简易音乐 一)
- 智慧民航新业态崭露头角,图扑数字孪生入局民航飞联网
- Mind,Diagram,Design
热门文章
- 数据模型篇:一、大数据领域建模概述
- 2012“第四届云计算中国峰会”倒计时
- uwp浏览器java源码_uwp开发:webview模拟安卓浏览器
- 为什么亚马逊无货源是国际电商新时代
- 百度地图点击地图获取地址
- java更改图片小于32kb_echarts上传图表图片到Java 后台保存出来是空白图片?
- 小刘同学的第五十五篇博文
- PCB安规设计是怎样的?怎样设计高压电源的安规?ECM设计间距是怎样的,CAF设计间距要求是怎样的?电源的PCB间距设计指南,安规标准有哪些?380V电源安规设计
- DirectX11 With Windows SDK--00 目录
- 什么是 Office Open XML 文件格式