rword2vec开源算法包实现word2vec词向量生成

传送门:wordVectors开源算法包实现word2vec词向量生成

R语言中rword2vec包和wordVectors包均能实现word2vec词向量生成,目前尚未研究两者之间的优劣(但从算法包的description来看,建议用rword2vec)

rword2vec包是R与Google的word2vec接口,rword2vec将文本语料库作为输入,将单词向量作为输出。它首先根据训练文本数据构建词汇表,然后学习单词的矢量表示

#安装rword2vec
library('devtools')
install_github('mukul13 / rword2vec')

#训练word2vec模型
#layer1_size 词向量维数
#train_file 训练数据
#binary,output format,1-binary,0-txt
#cbow,skip-gram(0) or continuous bag of words(1)(cbow模型快一些,skip-gram模型效果好一些)
#alpha:学习速率
#output_file 结果输出文件即每个词的向量
#window 训练窗口大小,5表示每个词考虑前5个词与后5个词
#sample 词语出现频率的下限,0.00001 to 0.01(如果一个词在训练样本中出现的频率越大,那么就越会被采样)
#min_count 设置最低频率为5,如果一个词语在文档中出现的次数小于该阈值,则舍弃该词
#classes 词聚类簇个数,k-means聚类
#num_threads 线程数
model<-word2vec(layer1_size=50,train_file='corpus.txt',save_vocab_file='vocab.txt',binary=1,cbow=0,alpha=0,output_file='tian.bin',window=5,sample=0.00001,min_count=6,num_threads=2)

#distance得到最接近的单词,file_name必须是二进制文件
dist<-distance(file_name='tian.bin',search_word='原告',num=10)

#在词向量空间中进行类比
ana=word_analogy(file_name="tian.bin",search_words="paris france berlin",num=10)

#训练word2phrase模型(将单词转化为短语,phrase.txt中短语由词和_组成)
#可以使用这个phrase.txt训练word2vec模型
word2phrase(train_file='corpus.txt',output_file='phrase.txt')

#单词个数统计
word_count<-read.table('vocab.txt')

#bin to txt
bin_to_txt("tian.bin","tian.txt")
data<-as.data.frame(read.table("tian.txt",skip=1))

猜你喜欢

转载自blog.csdn.net/qq_38984677/article/details/81234558
今日推荐