posts - 496,comments - 227,trackbacks - 0
http://www.cnblogs.com/hebin/p/3507609.html

一直听说word2vec在处理词与词的相似度的问题上效果十分好,最近自己也上手跑了跑google开源的代码()。

1、语料

首先准备数据:采用网上博客上推荐的全网新闻数据(sogouca),大小为2.1g。 

从ftp上下载数据包sogouca.tar.gz:
1 wget ftp://ftp.labs.sogou.com/data/sogouca/sogouca.tar.gz --ftp-user=hebin_hit@foxmail.com --ftp-password=4fqlsydncrdxvndi -r

解压数据包:

1 gzip -d sogouca.tar.gz 2 tar -xvf sogouca.tar

再将生成的txt文件归并到sogouca.txt中,取出其中包含content的行并转码,得到语料corpus.txt,大小为2.7g。

1 cat *.txt > sogouca.txt 2 cat sogouca.txt | iconv -f gbk -t utf-8 -c | grep "" > corpus.txt

2、分词

ansj对corpus.txt进行分词,得到分词结果resultbig.txt,大小为3.1g。

分词工具ansj参见 
在分词工具seg_tool目录下先编译再执行得到分词结果resultbig.txt,内含426221个词,次数总计572308385个。
 分词结果:
  
3、用word2vec工具训练词向量
1 nohup ./word2vec -train resultbig.txt -output vectors.bin -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 12 -binary 1 &

vectors.bin是word2vec处理resultbig.txt后生成的词的向量文件,在实验室的服务器上训练了1个半小时。

4、分析
4.1 计算相似的词:
1 ./distance vectors.bin

 ./distance可以看成计算词与词之间的距离,把词看成向量空间上的一个点,distance看成向量空间上点与点的距离。

下面是一些例子: 

4.2 潜在的语言学规律

在对demo-analogy.sh修改后得到下面几个例子:
法国的首都是巴黎,英国的首都是伦敦, vector("法国") - vector("巴黎) vector("英国") --> vector("伦敦")"

4.3 聚类

将经过分词后的语料resultbig.txt中的词聚类并按照类别排序:

1 nohup ./word2vec -train resultbig.txt -output classes.txt -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 12 -classes 500  & 2 sort classes.txt -k 2 -n > classes_sorted_sogouca.txt  

例如:

4.4 短语分析

先利用经过分词的语料resultbig.txt中得出包含词和短语的文件sogouca_phrase.txt,再训练该文件中词与短语的向量表示。

1 ./word2phrase -train resultbig.txt -output sogouca_phrase.txt -threshold 500 -debug 2 2 ./word2vec -train sogouca_phrase.txt -output vectors_sogouca_phrase.bin -cbow 0 -size 300 -window 10 -negative 0 -hs 1 -sample 1e-3 -threads 12 -binary 1

下面是几个计算相似度的例子:

5、参考链接

1. word2vec:tool for computing continuous distributed representations of words,

2. 用中文把玩google开源的deep-learning项目word2vec,

3. 利用word2vec对关键词进行聚类,

6、后续准备仔细阅读的文献:

[1] tomas mikolov, kai chen, greg corrado, and jeffrey dean. . in proceedings of workshop at iclr, 2013.
[2] tomas mikolov, ilya sutskever, kai chen, greg corrado, and jeffrey dean. . in proceedings of nips, 2013.
[3] tomas mikolov, wen-tau yih, and geoffrey zweig. . in proceedings of naacl hlt, 2013.

[4] collobert r, weston j, bottou l, et al. . the journal of machine learning research, 2011, 12: 2493-2537.

 

posted on 2016-01-13 13:49 simone 阅读(1301) 评论(0)  编辑  收藏

只有注册用户后才能发表评论。


网站导航:
              
 
"));
网站地图