参考:http://techblog.youdao.com/?p=915#LinkTarget_699
word2vector是一个把词转换成词向量的一个程序,能够把词映射到K维向量空间,甚至词与词之间 的向量操作还能和语义相对应。如果换个思路,把词当做feature,那么word2vec就可以把feature映射到K维向量空间,

一、什么是 word2vec?

采用的模型有 CBOW(Continuous Bag-Of-Words,即连续的词袋模型)和 Skip-Gram 两种

word2vec 通过训练,可以把对文本内容的处理简化为 K 维向量空间中的向量 运算,而向量空间上的相似度可以用来表示文本语义上的相似度。

。因此,word2vec 输出的词向量可以被用来做很多 NLP 相关的工作,比如聚类、找同义词、词性分 析等等

二、快速入门

简单介绍cmake makefile.txt → makefile make的关系

首先编写一个与平台无关的CMakelist.txt文本文件,这个文本文件是为了制定整个编译流程,然后通过cmake path(makelist.txt所在位置,在这个目录下就是 dian .) 生成本地化的Makefile文件 ,最后make 编译文件

总的来说就是

  1. 编写cmakelist.txt(跨平台的文件来制定整个编译流程)
  2. cmake .生成本地化的makefile
  3. make 编译 word2vec 工具

然后你想运行***脚本就sh ***.sh

demo-word.sh 中的代码如下,

主要工作为:

1) 编译(make)

2) 下载训练数据 text8,如果不存在。text8 中为一些空格隔开的英文单 词,但不含标点符号,一共有 1600 多万个单词。

3) 训练,大概一个小时左右,取决于机器配置

4) 调用 distance,查找最近的词

上github下载之后,打开文件夹你能看到很多.sh的脚本

这时候除了开心就是开心

因为运行脚本就ok了

首先敲入 make   (由于有makefile文件直接这样就可以了 更何况没有makelist.txt cmake 也没有用)

简单介绍cmake makefile.txt → makefile make的关系

首先编写一个与平台无关的CMakelist.txt文本文件,这个文本文件是为了制定整个编译流程,然后通过cmake path(makelist.txt所在位置,在这个目录下就是 dian .) 生成本地化的Makefile文件 ,最后make 编译文件

总的来说就是

  1. 编写cmakelist.txt(跨平台的文件来制定整个编译流程)
  2. cmake .生成本地化的makefile
  3. make

然后你想运行***脚本就sh ***.sh

比如说我想知道一个词与谁的距离最近

这个脚本里的内容首先会检查你有没有test8这个训练语料

如果没有它会自动下载,

下载之后就开始训练了

之后你可以输入三个单词

paris france berlin(分开的)

之后你会看到Germany出现在第一个位置

如果你不想运行脚本你也可以直接执行可执行的程序 比如:你可以在vectors.txt看到test8中的词转成了50维的词向量

nohup ./word2vec -train text8 -output vectors.txt -cbow 1 -size 50 -window 8 -negative 25 -hs 0 -sample 1e-4 -threads 20 -iter 1 > test.log 2>&1 &

总之一句话,认真看脚本。。。。

word2vector 使用方法 计算语义相似度的更多相关文章

  1. 2017年计算语义相似度最新论文,击败了siamese lstm,非监督学习

    Page 1Published as a conference paper at ICLR 2017AS IMPLE BUT T OUGH - TO -B EAT B ASELINE FOR S EN ...

  2. 深度学习解决NLP问题:语义相似度计算

    在NLP领域,语义相似度的计算一直是个难题:搜索场景下query和Doc的语义相似度.feeds场景下Doc和Doc的语义相似度.机器翻译场景下A句子和B句子的语义相似度等等.本文通过介绍DSSM.C ...

  3. DSSM算法-计算文本相似度

    转载请注明出处: http://blog.csdn.net/u013074302/article/details/76422551 导语 在NLP领域,语义相似度的计算一直是个难题:搜索场景下quer ...

  4. NLP 语义相似度计算 整理总结

    更新中 最近更新时间: 2019-12-02 16:11:11 写在前面: 本人是喜欢这个方向的学生一枚,写文的目的意在记录自己所学,梳理自己的思路,同时share给在这个方向上一起努力的同学.写得不 ...

  5. 用BERT做语义相似度匹配任务:计算相似度的方式

    1. 自然地使用[CLS] 2. cosine similairity 3. 长短文本的区别 4. sentence/word embedding 5. siamese network 方式 1. 自 ...

  6. 基于熵的方法计算query与docs相似度

    一.简单总结 其实相似度计算方法也是老生常谈,比如常用的有: 1.常规方法 a.编辑距离 b.Jaccard c.余弦距离 d.曼哈顿距离 e.欧氏距离 f.皮尔逊相关系数 2.语义方法 a.LSA ...

  7. BERT实现QA中的问句语义相似度计算

    1. BERT 语义相似度 BERT的全称是Bidirectional Encoder Representation from Transformers,是Google2018年提出的预训练模型,即双 ...

  8. 孪生网络(Siamese Network)在句子语义相似度计算中的应用

    1,概述 在NLP中孪生网络基本是用来计算句子间的语义相似度的.其结构如下 在计算句子语义相似度的时候,都是以句子对的形式输入到网络中,孪生网络就是定义两个网络结构分别来表征句子对中的句子,然后通过曼 ...

  9. 使用并行的方法计算斐波那契数列 (Fibonacci)

    更新:我的同事Terry告诉我有一种矩阵运算的方式计算斐波那契数列,更适于并行.他还提供了利用TBB的parallel_reduce模板计算斐波那契数列的代码(在TBB示例代码的基础上修改得来,比原始 ...

随机推荐

  1. Linux时间管理涉及数据结构和传统低分辨率时钟的实现

    上篇文章大致描述了Linux时间管理的基本情况,看了一些大牛们的博客感觉自己写的内容很匮乏,但是没办法,只能通过这种方式提升自己……闲话不说,本节介绍下时间管理下重要的数据结构 设备相关数据结构 // ...

  2. python常见模块之序列化(json与pickle以及shelve)

    什么是序列化? 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flatte ...

  3. redis之django-redis

    自定义连接池 这种方式跟普通py文件操作redis一样,代码如下: views.py import redis from django.shortcuts import render,HttpResp ...

  4. Python作用域-->闭包函数-->装饰器

    1.作用域: 在python中,作用域分为两种:全局作用域和局部作用域. 全局作用域是定义在文件级别的变量,函数名.而局部作用域,则是定义函数内部. 关于作用域,我要理解两点:a.在全局不能访问到局部 ...

  5. 如何查看windows某个目录下所有文件/文件夹的大小?

    如何查看windows某个目录下所有文件/文件夹的大小? TreeSize Free绿色汉化版是一款硬盘空间管理工具,用树形描述出来,能够显示文件大小和实际占用空间数及浪费的空间等信息,让你做出相应的 ...

  6. HBase存储架构

    以下的介绍是基于Apache Hbase 0.94版本: 从HBase的架构图上可以看出,HBase中的存储包括HMaster.HRegionServer.HRegion.Store.MemStore ...

  7. HDU1176:免费馅饼(dp,数字三角形的应用)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1176 这题就是数字三角行的变形,可惜对于我这个渣渣来说就是没发现,区别是他可以保持在三个点,他左边的点,右 ...

  8. Linux系统——文件系统与LVM 逻辑

    格式化命令 mkfs. mkswap mkfs格式化数据磁盘 # mkfs -t ext4 /dev/sdb1 # mkfs.ext4 /dev/sdb1 -t 指定格式化文件类型 -b 指定bloc ...

  9. 数据结构 练习21-trie的原理分析和应用

    前言 今天具体分析一下trie树,包括:原理分析,应用场合,复杂度分析,与hash的比较,源码展现.大部分内容来自互联网,文中会注明出处. 原理分析 主要是hash树的变种,先看下图: 每一个点存储一 ...

  10. EntityFramework 6 开篇

    本系列文章主要来讲解理解以及怎样使用EntityFramework,写这个系列主要是因为部门里面准备来使用EF,为了让大家一起来学习,我每天发布1-2篇文章让大家一块参与学习.之前一直写在有道云笔记里 ...