赞
踩
维基百科的语料库下载以及后续操作(一)2020年6月
写在前面的话:
我并不是专业的,都是逼的
这里都是我自己踩的坑,一点点找到的解答方法,
如果你有更好地方法,请一定要留言
(一)下载维基语料库
https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2
打开连接会很慢,我是用迅雷接管了之后下的(PS:买的会员)
放在D盘合适位置就好,下载好的文件名默认就是“zhwiki-latest-pages-articles.xml.bz2”
(二)下载之后需要对其进行提取txt文件,并且进行繁体字转化,以及去除一些帮助页面和重定向的页面,处理程序为:参考了站内一位大神——残月飞雪的代码,但是因为我的python是3.7以上的版本,稍微修改了一些地方就可以正常使用了。真的超级感谢!
这里是原文链接:
https://blog.csdn.net/majinlei121/article/details/83183603?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase
需要把这一块进行修改
import sys
reload(sys)
sys.setdefaultencoding('utf8')
改成如下即可(PS:我是用的Geany运行)
import imp
import sys
imp.reload(sys)
其他的具体代码除了第三步讲到的opencc就没有需要更改的了。(PS:我会在第四部分写全代码,不要怕)
(三)opencc避雷,这真的是一个大坑,
首先这个第三方库是真的太好了夸一波,因为wiki的语料库太大了,整理下来的txt文件是大约1.5G,记事本根本打不开,现有的繁简体在线转换和Word转换都不行。
但是这个库的下载真的是大坑,我试了得有半天,终于找到啦一个能用的命令行。
如下所示
pip install opencc-python-reimplemented==0.1.4
我从接触python开始就不是正常学的,很匆忙一些基础的知识掌握的都不是很好,这是我的CMD显示pip安装成功的提示,我也用三两句代码实现了简繁转换,如下所示
这是我找的一个代码测试看opencc能不能用,结果是肯定的。
from opencc import OpenCC
cc = OpenCC('s2t')
# convert from Simplified Chinese to Traditional Chinese(可以看一下自己下载的包里面会有这个s2t.json文件,代表简体转繁体,t2s代表繁体到简体)
to_convert = '开放中文转换'
converted = cc.convert(to_convert)
print(converted)
(四)全部代码如下
一定记得要把所有需要的第三方库都自己安装好
除了上面第二部分修改的,第三部分opencc也进行一些修改,我是Geany运行的,可以实现。
# -*- coding: utf-8 -*- #!/usr/bin/env python #import sys #reload(sys) #import importlib #importlib.reload(sys) import imp import sys imp.reload(sys) #sys.setdefaultencoding('utf8') from gensim.corpora.wikicorpus import extract_pages,filter_wiki import bz2file####记得安装呀!!! import re from opencc import OpenCC####修改过 from tqdm import tqdm import codecs wiki = extract_pages(bz2file.open('./zhwiki-latest-pages-articles.xml.bz2')) cc = OpenCC('t2s')###修改过 def wiki_replace(d): s = d[1] s = re.sub(':*{\|[\s\S]*?\|}', '', s) s = re.sub('<gallery>[\s\S]*?</gallery>', '', s) s = re.sub('(.){{([^{}\n]*?\|[^{}\n]*?)}}', '\\1[[\\2]]', s) s = filter_wiki(s) s = re.sub('\* *\n|\'{2,}', '', s) s = re.sub('\n+', '\n', s) s = re.sub('\n[:;]|\n +', '\n', s) s = re.sub('\n==', '\n\n==', s) s = u'【' + d[0] + u'】\n' + s return cc.convert(s).strip()####修改过 i = 0 f = codecs.open('00000wiki.txt', 'w', encoding='utf-8')####自己改名字就好了!叫狗蛋都行 w = tqdm(wiki, desc=u'已获取0篇文章') for d in w: if not re.findall('^[a-zA-Z]+:', d[0]) and d[0] and not re.findall(u'^#', d[1]): s = wiki_replace(d) f.write(s+'\n\n\n') i += 1 if i % 100 == 0: w.set_description(u'已获取%s篇文章'%i) f.close()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。