Windows下运行C语言版Word2Vec训练词向量
来源:互联网 发布:华师网络教育平台 编辑:程序博客网 时间:2024/05/19 17:23
在Word2vec模型中,算法可以通过无监督的方法为每个词计算出一个d维的向量,即将每个词映射为d维的空间中的一个点,d维空间中点之间的距离(即每个词对应的d维向量的距离)可反映词之间的相似性。
dav/word2vec是一个经典的利用多线程训练词向量的代码,非常地好用且非常地高效。然而该代码是用Linux C语言写的,而且代码的调度使用的是shell。在Windows上安装Cygwin即可运行该代码。
1.下载Cygwin,安装包可在官网下载,也可加QQ群426491390从群文件中下载。
2.在Cygwin中安装gcc、make、wget、unzip命令。例如,安装make命令的方法如下图所示:
3.下载并解压dav/word2vec代码,代码也可从QQ群426491390从群文件中下载。
4.打开Cygwin,进入dav/word2vec所在文件夹(windows目录在Cygwin的/cygdrive目录下),实行命令:
cd scriptssh demo-word.sh
这时候发现报错了,这是因为word2vec中的src/makefile将word2vec.c编译成了类似word2vec而并非word2vec.exe,同样,scripts/demo-word.sh中执行的是bin/word2vec而不是word2vec.exe,因此要对src/makefile和scripts/demo-word.sh都进行一些修改,QQ群426491390群文件中的dev/word2vec版本已经修改过这俩文件。
将src/makefile修改为:
SCRIPTS_DIR=../scriptsBIN_DIR=../binCC = gcc#The -Ofast might not work with older versions of gcc; in that case, use -O2CFLAGS = -lm -pthread -O2 -Wall -funroll-loops -Wno-unused-resultall: word2vec word2phrase distance word-analogy compute-accuracyword2vec : word2vec.c $(CC) word2vec.c -o ${BIN_DIR}/word2vec.exe $(CFLAGS)word2phrase : word2phrase.c $(CC) word2phrase.c -o ${BIN_DIR}/word2phrase.exe $(CFLAGS)distance : distance.c $(CC) distance.c -o ${BIN_DIR}/distance.exe $(CFLAGS)word-analogy : word-analogy.c $(CC) word-analogy.c -o ${BIN_DIR}/word-analogy.exe $(CFLAGS)compute-accuracy : compute-accuracy.c $(CC) compute-accuracy.c -o ${BIN_DIR}/compute-accuracy.exe $(CFLAGS) chmod +x ${SCRIPTS_DIR}/*.shclean: pushd ${BIN_DIR} && rm -rf word2vec.exe word2phrase.exe distance.exe word-analogy.exe compute-accuracy.exe; popd
将scripts/demo-word.sh修改为:
#!/bin/bashDATA_DIR=../dataBIN_DIR=../binSRC_DIR=../srcTEXT_DATA=$DATA_DIR/text8ZIPPED_TEXT_DATA="${TEXT_DATA}.zip"VECTOR_DATA=$DATA_DIR/text8-vector.binpushd ${SRC_DIR} && make; popdif [ ! -e $VECTOR_DATA ]; then if [ ! -e $TEXT_DATA ]; then if [ ! -e $ZIPPED_TEXT_DATA ]; then wget http://mattmahoney.net/dc/text8.zip -O $ZIPPED_TEXT_DATA fi unzip $ZIPPED_TEXT_DATA mv text8 $TEXT_DATA fi echo ----------------------------------------------------------------------------------------------------- echo -- Training vectors... time $BIN_DIR/word2vec.exe -train $TEXT_DATA -output $VECTOR_DATA -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 12 -binary 1fiecho -----------------------------------------------------------------------------------------------------echo -- distance...$BIN_DIR/distance.exe $DATA_DIR/$VECTOR_DATA
用cd scripts
进入scripts文件夹,再次运行:
sh demo-word.sh
回车后开始训练:
训练完成后会自动运行近义词查询程序:
为什么示例中与small最相似的近义词是large?因为Word2vec计算出的近义词倾向于用法的相似性,而非真正语义的相似性。
更多与Word2vec相关的知识可加QQ群426491390讨论。
- Windows下运行C语言版Word2Vec训练词向量
- Windows下使用Word2vec继续词向量训练
- Windows下使用Word2vec继续词向量训练
- Windows下使用Word2vec继续词向量训练
- Windows下使用Word2vec继续词向量训练
- Windows下使用Word2vec继续词向量训练
- windows下使用Word2vec进行词向量训练
- word2vec 词向量训练
- Windows系统下使用维基百科中文语料训练Word2Vec词向量
- 利用Word2Vec训练词向量过程
- 使用预训练的word2vec词向量
- 使用预训练的word2vec词向量
- word2vec词向量训练及中文文本相似度计算
- word2vec (四) 动手训练一个词向量空间
- word2vec词向量训练及中文文本相似度计算
- 用Word2vec训练中文wiki,构造词向量并做词聚类
- 基于python的gensim word2vec训练词向量
- word2vec词向量训练及gensim的使用
- Token ,Cookie和Session的区别
- zxing安卓项目学习1——CaptureActivity之onCreate——BeepManager
- [Leetcode] 391. Perfect Rectangle 解题报告
- Second Minimum Node In a Binary Tree问题及解法
- 将应用的log4j换成logback
- Windows下运行C语言版Word2Vec训练词向量
- Activiti进阶(十)——分配个人任务的三种方式
- 刚做了一个开源工具:使用UI来管理Linux和Unix机器--SSHConnector
- 669. Trim a Binary Search Tree
- 实现发送post和get请求
- linux下配置ip地址四种方法
- java基本数据类型的相互转换
- Dubbo框架
- Java-Java中的线程池原理分析及使用