Word2Vec中文语料实战
虽然Word2Vec在NLP领域很火,但网上关于Word2Vec中文语料训练的入门级资料比较少,所以本人整理了一份,希望对感兴趣的朋友有所帮助!本文使用的语料由作者亲自收集,代码由作者亲自编写,亲测有效!
如有问题可联系作者:QQ:771966081 微信:Bryce_cvprml
1、环境配置
本人使用的是MacBook + Python2.7.11
首先,安装NLP工具包gensim,这里包含了今天的主角:Word2Vec
pip install --upgrade gensim
其次,安装中文分词工具包jieba
pip install jieba
2、语料库说明
从网上下载TXT版的《倚天屠龙记》,作为基本语料,还需要作进一步处理
3、详细实验步骤
3.1 文件编解码(非必需)
满心欢喜地打开“倚天屠龙记.txt”,竟然是这样的,难道是火星文?瞬间满脸黑线,一脸懵逼。弱弱地问一句,有人能看懂吗,膜拜一下。
很显然,这是由编解码不一致引起的问题,即写文件时的编码类型和读文件时的解码类型不同。但本人没有安装可以自定义解码方式的文本编辑器,所以只好小米加步枪,直接上代码:
其实很简单,从原始文件“倚天屠龙记.txt”里逐行读取文本内容,先解码再编码,然后输出到新的文件“倚天屠龙记_uft8.txt”里。新的文件长这个样子,是不是一下子能看懂了,很开心有木有^_^
3.2 中文分词
接下来,还要分词、去掉标点符号。废话不多说,直接上代码。其实也很简单,从“倚天屠龙记_uft8.txt”里逐行读取文本,先分词,再去掉标点符号,最后保存到文件“倚天屠龙记_segmented.txt”。分词用到了jieba,本文删除标点符号的方式有点粗暴,不许笑出声来!(细心的读者可能会问,为什么这里不直接给出代码而只是代码截图呢,哈哈。。。因为这里直接贴上代码格式会很乱,为了使代码看起来清晰,只好这样了)
分词后的结果如下,内心里一阵狂喜对不对?!
3.3 模型训练
3.4 模型测试
到了最激动人心的时刻,这里打印出了测试代码和结果,看起来还真有点意思啊!赵敏和自己的相似度为1;赵敏和周芷若的相似度0.98277,比较接近;赵敏和韦一笑的相似度为0.80652,远不如赵敏和周芷若相似;最后,查找与张三丰最相似的词,直觉上来看,排前6的都有一定道理,灭绝师太和他都是一代掌门,也是宗师,最相似;排到2到6的都是他的徒弟和徒孙。
4、参考文献
1)中文分词工具包jieba:http://www.oschina.net/p/jieba/?fromerr=s7MN6pKB
2)NLP工具包gensim:https://radimrehurek.com/gensim/models/word2vec.html