做word2vec实验主要是论文需要用到词向量,至于word2vec内在的数学原理啥的真的一窍不通,为了处理维基百科的语料,光是安装gensim的准备工作都搞了好久,后来发现了一个简易的安装方法才知道自己是走了多少冤枉路啊。不感慨了,主要还是做个笔记,网上的内容很多,好的帖子也有,记下来还是方便查找。
这个实验主要是按照这篇帖子的步骤走的我爱自然语言处理-中英文维基百科语料上的Word2Vec实验
这里面全是维基的一下数据集,各种类型的,我用的是:enwiki-latest-pages-articles.xml.bz2
数据集特别大,压缩后的有12个G,解压的话将近60G,但是后面处理时不需要解压。
我是将所有脚本和数据集都存储在一个文件夹中,方便操作:
截图7数据集的处理包括两个阶段:
(1)将xml格式的wiki数据转换成text格式,通过下面这个process_wiki.py脚本实现,process_wiki是自己命名的,所有换成别的也可以:
截图1这里利用了gensim里的维基百科处理类WikiCorpus,通过get_texts将维基里的每篇文章转换位1行text文本,并且去掉了标点符号等内容。
我在执行process_wiki.py脚本脚本时报错了:
截图2一直在纠结这个问题要怎么改正,问了别人也没解决,后来想想执行下一步看看吧,没想到竟然可以。
执行"python process_wiki.py enwiki-latest-pages-articles.xml.bz2 wiki.en.text":
截图3执行成功了,但是有警告,可能是安装gensim时的警告影响的,因为之前安装gensim的时候,import的时候虽然成功了但是存在一个警告,但是不影响大局。大概跑了三个小时五十分钟,我的机器配置是4核8G内存。
截图4(2)将text文件生成词向量,脚本train_word2vec_model.py如下:
截图5执行python train_word2vec_model.py wiki.en.text wiki.en.text.model wiki.en.text.vector命令:
截图6一个星期之后,提示有个接口过期了,瞬间那个心累啊
8然后更新了接口之后,又跑了5天的样子,终于成功了,得到了一个gensim中默认格式的word2vec model和一个原始c版本word2vec的vector格式的模型: wiki.en.text.vector
9(3)在ipython中,通过gensim来加载和测试这个模型
9试了好几次一直说栈下溢,问了参考帖子的楼主也没有得到解决,但是加载wiki.en.text.model文件却可以成功,也没有存在大文件无法训练的情况:
10 11
网友评论