当前位置:   article > 正文

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

zhwiki-latest

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

改成如下即可(PS:我是用的Geany运行)

import imp
import sys
imp.reload(sys)
  • 1
  • 2
  • 3

其他的具体代码除了第三步讲到的opencc就没有需要更改的了。(PS:我会在第四部分写全代码,不要怕)

(三)opencc避雷,这真的是一个大坑,
首先这个第三方库是真的太好了夸一波,因为wiki的语料库太大了,整理下来的txt文件是大约1.5G,记事本根本打不开,现有的繁简体在线转换和Word转换都不行。
但是这个库的下载真的是大坑,我试了得有半天,终于找到啦一个能用的命令行。
如下所示

pip install opencc-python-reimplemented==0.1.4
  • 1

我从接触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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(四)全部代码如下
一定记得要把所有需要的第三方库都自己安装好
除了上面第二部分修改的,第三部分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()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/633039
推荐阅读
相关标签
  

闽ICP备14008679号