word2vec实验经验总结

时间:2021-04-22 06:21:55

最近进行的项目,前期要求利用word2vec做相关的向量化处理,于是作为小白从头开始学习word2vec的基本原理,然后开始实验练手。在这里po一些学习和实验过程中的资料、注意点和经验点。

  1. 基本原理篇
    原理上读了Mikolov 2013年的 Efficient Estimation of Word Representations in Vector Space,里面提出两种模型CBOW和Skip-gram,具体实现方法和原理我还没有看代码,有空的时候会review一下。

    看公众号上推送了一篇关于词向量的非常好的综述:
    https://blog.acolyer.org/2016/04/21/the-amazing-power-of-word-vectors/

  2. 准备工作篇
    因为后期要用到linux下的python环境,之前偷懒一直没有给ubuntu装python环境,这次借机会好好装了一次。
    我是ubuntu16.04,因为ubuntu系统都会预装python环境,所以原来的版本是python2.7。我选择直接装一个集大成的Anaconda。在这里遇到一个小问题阻碍了我很久,导致重装了好几次- -
    情况是,用官网的安装包解压安装好Anaconda以后,虽然python –version可以显示正确的python版本号(我装的是3.5.2),但是直接python命令或用python命令运行程序都会报错说少一个package。
    所以在这里要注意了!因为新装的python版本和系统预装的python版本不一致,命令行中的python实际上运行的仍然是系统预装的2.7版本!一定一定要去 /usr/bin 下面把原来指向旧版本的软链接mv掉,然后为我们新装的3.5版本建立软链接到python。完成后再次命令行运行python~问题解决!

  3. Wiki数据集处理
    实验过程基本参考52nlp上的步骤:
    https://blog.acolyer.org/2016/04/21/the-amazing-power-of-word-vectors/
    在这里数据我用的是老师给的应该是近期下载的wiki百科中文和英文数据集,其中英文下好已经达到11G+。
    首先处理中文语料,我用的是wikiextractor.py。具体参照这里的方法:
    http://blog.csdn.net/u010920224/article/details/27976031
    这个过程比较顺利也比较快的。
    下面遇到困难的是繁简转换部分。因为想用大家都说好的工具opencc,去github上各种下载源码、安装包,安装各种依赖库,但是装好就是不能用,会缺少配置文件、json文件等等。最后用了最简单的方法直接命令行里 >>pip install opencc ,一分钟装完 两分钟完成繁简转换~非常利落。所以据说是高版本的opencc不行,只能用比较低的版本完成这步?
    英文语料的提取过程真的耗时非常非常久了,在实验室的服务器上跑了5000+min,可能是服务器过载?不过终于是顺利跑完了~

  4. word2vec模型训练
     实践中。。。