美文网首页
英文维基百科语料上的Word2Vec实验

英文维基百科语料上的Word2Vec实验

作者: freedomzll | 来源:发表于2017-04-20 14:52 被阅读674次

    做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

    相关文章

      网友评论

          本文标题:英文维基百科语料上的Word2Vec实验

          本文链接:https://www.haomeiwen.com/subject/smuczttx.html