如何用python训练语料库_使用中文维基百科语料库训练一个word2vec模型并使用说明...

​本篇主要介绍如何通过中文维基百科语料库来训练一个word2vec模型。相关资料下载:一、语料库的下载我下载是20190401文件,1.5G左右是一个压缩包,下载的时候需要注意文件的名称。二、语料库文章的提取下载完成之后,解压缩得到的是一个xml文件,里面包含了许多的文章,也有许多的日志信息。所以,我们只需要提取xml文件里面的文章就可以了。我们通过WikiExtractor来提取xml文件中的文...
摘要由CSDN通过智能技术生成

​本篇主要介绍如何通过中文维基百科语料库来训练一个word2vec模型。

相关资料下载:

一、语料库的下载

我下载是20190401文件,1.5G左右是一个压缩包,下载的时候需要注意文件的名称。

二、语料库文章的提取

下载完成之后,解压缩得到的是一个xml文件,里面包含了许多的文章,也有许多的日志信息。所以,我们只需要提取xml文件里面的文章就可以了。我们通过WikiExtractor来提取xml文件中的文章,它是一个意大利人写的一个Python脚本专门用来提取维基百科语料库中的文章,将每个文件分割的大小为500M,它是一个通过cmd命令来设置一些参数提取文章,提取步骤如下:

a、WikiExtractor的安装

将整个WikiExtractor项目clone或者下载到本地,打开cmd窗口,

python WikiExtractor.py -b 500M -o zhwiki zhwiki-20190401-pages-articles-multistream.xml.bz2

使用WikiExtractor提取文章,会在指定目录下产生一个AA的文件夹,里面会包含很多的文件。

c、中文简体和繁体的转换

因为维基百科语料库中的文章内容里面的简体和繁体是混乱的,所以我们需要将所有的繁体字转换成为简体。这里我们利用OpenCC来进行转换。

OpenCC的使用教程请参考下篇:OpenCC中文简体和繁体互转

d、正则表达式提取文章内容并进行分词

使用WikiExtractor提取的文章,会包含许多的,所以我们需要将这些不相关的内容通过正则表达式来去除。然后再通过jieba对文章进行分词,在分词的时候还需要将一些没有实际意义的词进行去除,所以在分词的之后加了一个停用词的去除。将分割之后的文章保存到文件中,每一行表示一篇文章,每个词之间使用空格进行分隔。

import logging,jieba,os,re

def get_stopwords():

logging.basicConfig(format='%(asctime)s:%(levelname)s:%(message)s',level=logging.INFO)

#加载停用词表

stopword_set = set()

with open("../stop_words/stopwords.txt",'r',encoding="utf-8") as stopwords:

for stopword in stopwords:

stopword_set.add(stopword.strip("\n"))

return stopword_set

'''

使用正则表达式解析文本

'''

def parse_zhwiki(read_file_path,save_file_path):

#过滤掉

regex_str = "[^$]|[^$]"

file = open(read_file_path,"r",encoding="utf-8")

#写文件

output = open(save_file_path,"w+",encoding="utf-8")

content_line = file.readline()

#获取停用词表

stopwords = get_stopwords()

#定义一个字符串变量,表示一篇文章的分词结果

article_contents = "

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值