中文语料上的word2vec训练

GOOGLE开源的word2vec能够把词映射到K维空间,每个词有独自的向量表示,从而得出词语词之间的距离(相似度)。但是其自带的基本语料text8是本身就十分适合于训练的(全部是英文单词,中间用空格隔开,没有多余的信息)语料,训练的结果自然很好。本文就是说明一下如何用word2vec处理中文语料。
想到的能使用训练集自然是维基百科的中文语料,里面包含大概23万篇文章,解压后有5G多。这种XML文件还是会有很多不必要的噪声,于是我们又要用到抽取其中内容的工具,意大利人用python写的WikiExtractor.py
下载后可以直接进行处理,命令:bzcat zhwiki-latest-pages-articles.xml.bz2 | python WikiExtractor.py -b1000M -o extracted >output.txt,(参考了licstar维基百科简体中文语料的获取)一开始出现了参数不足的问题,将语料解压后改用了:python WikiExtractor.pyzhwiki-latest-pages-articles.xml -b1000M -o extracted >output.txt,大概4小时运行结束。
但是这只是去噪的第一步,把文本内容抽取出来,接下来我们进行繁简转换,我用的UBUNTU14.04,可以方便的使用OPENCC,sudo apt-get install opencc进行安装,再用opencc -i wiki_00 -o wiki_jian -c zht2zhs.ini(参考了licstar维基百科简体中文语料的获取)就能成功的进行转换了,wiki_00是上一步内容提取生成的文件。wiki_jian是转换后的文件。
最后进行分词之前我们先转换一下编码:iconv -c -t UTF-8 wiki_jian.utf-8。然后用jieba进行分词,同时去标点符号,安装命令:pip install jieba,编写python文件jiebatest.py

#-*-coding:utf-8-*-
#coding:utf8
import jieba
fin = open('wiki_jian.utf-8','r')
fou = open('wiki_text','w')
line = fin.readline()
while line:
  newline = jieba.cut(line,cut_all=False)
  str_out = ' '.join(newline).encode('utf-8').replace(',','').replace('。','').replace('?','').replace('!','') \
            .replace('“','').replace('”','').replace(':','').replace('’','').replace('‘','').replace('-','') \
            .replace('(','').replace(')','').replace('《','').replace('》','').replace(';','').replace('.','') \
            .replace('、','').replace('_','').replace(',','').replace('?','').replace('!','')
  print str_out,
  print >> fou,str_out,
  line = fin.readline()
fin.close()
fou.close()

python jiebatest.py即可生成去噪后的文件wiki_text,在下载下来的word2vec中的trunk中使其替换原来的text8,./demo-word.sh完成训练,下面是一些结果图:
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值