Word2Vec
来源:互联网 发布:java设计模式书籍 编辑:程序博客网 时间:2024/05/18 03:56
Word2Vec
Word2Vec是将词表示为实数值向量的工具,并将对文本内容的处理转换为K维向量空间的向量运算。Word2Vec输出的词向量可以用来做NLP相关的工作,比如聚类、同义词、词性分析等。
1.向量空间上的相似度可以用来表示文本语义上的相似度。
2.词之间的关系可以直接从词向量之差中体现出来。
C(king)−C(queen)≈C(man)−C(woman),如已知 a 之于 b 犹如 c 之于 d。现在给出 a、b、c,看 C(a)−C(b)+C(c) 最接近的词是 d。
使用
生成词向量,输入的文件为分词后的数据文件。
./word2vec -train data.txt -output vectors.bin -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 12 -binary 1
-cbow 0 不使用cbow模型,默认为Skip-Gram模型。
-size 200 词向量维度
-window 5 训练的窗口大小为5,考虑一个词前五个和后五个词语
-hs 1 不使用NEG方法,使用HS方法。
-sample 1e-3 采样的阈值,如果一个词语在训练样本中出现的频率越大,那么就越会被采样。
-binary 1 结果二进制存储,为0是普通存储(普通存储的时候是可以打开看到词语和对应的向量的)
-alpha 设置学习速率,默认的为0.025
–min-count 设置最低频率,默认是5,如果一个词语在文档中出现的次数小于5,那么就会丢弃。
-classes 设置聚类个数。模型用得是k-means聚类算法。
计算词距离,word2vec计算的是余弦值,距离范围为0-1之间,值越大代表这两个词关联度越高,所以越排在上面的词与输入的词越紧密。
./distance vectors.bin
聚类,按类别排序
./word2vec -train data.txt -output classes.txt -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 12 -classes 500
sort classes.txt -k 2 -n > classes.sorted.txt
Word2VECJAVA使用
项目地址:https://github.com/NLPchina/Word2VEC_java
训练模型
Learn lean = new Learn() ;
lean.learnFile(new File("words.txt")) ;
lean.saveModel(new File("vector.mod")) ;
Word2Vec模型
词向量的训练
- word2vec
- word2vec
- word2vec
- Word2Vec
- word2vec
- Word2Vec
- Word2Vec
- word2vec
- word2vec
- word2vec
- word2vec
- word2vec
- word2vec
- word2vec
- word2vec
- Word2Vec
- word2vec
- Word2Vec
- Homework1
- 自动化测试软件UFT实验
- PostgreSQL (User defined Operator) UDO & Operator Optimization Information
- android sqlite的SqliteDataBase.insert()方法,以及如何在事务管理中使用
- Caffe matlab之基于Alex network的特征提取
- Word2Vec
- iOS8中使用CoreLocation定位
- 在linux系统中安装MySQL
- Eclipse操作技巧
- orafce extension for PostgreSQL, Oracle's compatibility functions and packages
- Manacher-字符串处理
- 命名管道
- excel选定行变色
- 比较靠谱的修改MySQL编码的方法