前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用word2vec训练wiki中文语料

使用word2vec训练wiki中文语料

作者头像
sparkexpert
发布2018-01-09 16:02:56
2.3K0
发布2018-01-09 16:02:56
举报
文章被收录于专栏:大数据智能实战

实验环境:Ubuntu + eclipse + python3.5

首先(1)下载最新中文wiki语料库:

wget https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2

(2)由于下载之后,语料库上的编码格式会有不同,因此需要进行处理一下:借鉴了这篇文章。

http://www.crifan.com/summary_python_string_encoding_decoding_difference_and_comparation_python_2_x_str_unicode_vs_python_3_x_bytes_str/

这样处理后打开wiki.cn.text看有大部分的繁体字和少量英文,所以还需进一步处理

(3) 然后将繁体改为简体,本次实验采用了opencc工具。安装:

sudo apt-get install opencc

安装完后执行opencc -i wiki.cn.text -o wiki.cns.text -czht2zhs.ini即实现了繁体转简体并保存在wiki.cns.text中。

(4)接下来对文本分词处理,这里使用的是jieba分词,安装用命令sudo pip3 install jieba

然后运行:

python3 separate_words.py wiki.cns.textwiki.cns.text.sep

(5)接下来去除文本中的一些英文和其他非中文。对remove_words.py做类似的修改。其实为了方便该代码和运行,可以直接使用eclipse软件,使用Run as ->Run configurations , 然后再(x)=Arguments一栏里输入参数,也可以运行。

运行后打开发现还是有许多多余的空格,虽然对后面实验没影响,但是我觉得有必要把多余空格去掉,于是,改写原正则表达式 为:'[\u4e00-\u9fa5]+\s+?|\n'意即匹配所有汉字及后面的一个空格(非贪心匹配)以及所有换行符’\n。得到的分词结果大致如下:

其次,进入正式的训练,训练的结果如下:

最后,测试模型:

使用ipython notebook

Sudo pip3 install ipython

Sudo pip3 isntall notebook

终端输入Ipython notebook打开notebook。新建notebook并测试,结果如下:

可以看到效果还是不错的。当然最经典的国王-男人=女王-女人肯定也在情理之中。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年03月31日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档