维基百科的语料库下载以及后续操作(一)2020年6月【包括opencc下载避雷,繁转简】

维基百科的语料库下载以及后续操作(一)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()

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值