用户登录
用户注册

分享至

深度学习词向量 word2vector

  • 作者: 萝莉也狠美
  • 来源: 51数据库
  • 2020-04-15

深度学习词向量 word2vector

如何通过词向量技术来计算2个文档的相似度

展开全部 最近正好组内做了一个文档相似度的分享。

决定回答一发。

首先,如果不局限于NN的方法,可以用BOW+tf-idf+LSI/LDA的体系搞定,也就是俗称的01或one hot representation。

其次,如果楼主指定了必须用流行的NN,俗称word-embedding的方法,当然首推word2vec(虽然不算是DNN)。

然后得到了word2vec的词向量后,可以通过简单加权/tag加权/tf-idf加权等方式得到文档向量。

这算是一种方法。

当然,加权之前一般应该先干掉stop word,词聚类处理一下。

还有,doc2vec中的paragraph vector也属于直接得到doc向量的方法。

特点就是修改了word2vec中的cbow和skip-gram模型。

依据论文《Distributed Representations of Sentences and Documents》(ICML 2014)。

还有一种根据句法树加权的方式,是ICML2011提出的,见论文《Parsing Natural Scenes and Natural Language with Recursive Neural Networks》,后续也有多个改编的版本。

当然,得到词向量的方式不局限于word2vec,RNNLM和glove也能得到传说中高质量的词向量。

ICML2015的论文《From Word Embeddings To Document Distances, Kusner, Washington University》新提出一种计算doc相似度的方式,大致思路是将词之间的余弦距离作为ground distance,词频作为权重,在权重的约束条件下,求WMD的线性规划最优解。

最后,kaggle101中的一个word2vec题目的tutorial里作者如是说:他试了一下简单加权和各种加权,不管如何处理,效果还不如01,归其原因作者认为加权的方式丢失了最重要的句子结构信息(也可以说是词序信息),而doc2vec的方法则保存了这种信息。

在刚刚结束的ACL2015上,似乎很多人提到了glove的方法,其思想是挖掘词共现信息的内在含义,据说是基于全局统计的方法(LSI为代表)与基于局部预测的方法(word2vec为代表)的折衷,而且输出的词向量在词聚类任务上干掉了word2vec的结果,也可以看看。

《GloVe: Global Vectors forWord Representation》

gensim 中的word2vector 有预训练好的model吗?

:将one-hot向量转换成低维词向量的这一层(虽然大家都不称之为一层,但在我看来就是一层),因为word2vec的输入是one-hot。

one-hot可看成是1*N(N是词总数)的矩阵,与这个系数矩阵(N*M, M是word2vec词向量维数)相乘之后就可以得到1*M的向量,这个向量就是这个词对应的词向量了。

那么对于那个N*M的矩阵,每一行就对应了每个单词的词向量。

接下来就是进入神经网络,然后通过训练不断更新这个矩阵。

WORD文档里怎么打出向量符号?

展开全部 1、使用Word中使用“插入公式”功能编辑数学公式。

位置:“插入公式”功能在“插入”选项卡下的“符号”菜单中。

如图点击“公式”按钮。

2、如果点击了下拉菜单,则选择“插入新公式”选项。

3、可以看到,当点击了“公式”后,进入到了公式编辑的状态。

4、首先插入简介图片中的第一个向量。

在公式编辑状态下,选择如图“标注符号”里的“右箭头在上”。

5、然后点击如图的黑色虚线方框(以下简称方框),使方框处于选中状态。

6、输入“abc”,得到如下效果。

向量符号 本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!1806年,瑞士人阿尔冈以表示一个有向线段或向量(vectors)。

麦比乌斯(1827年)则 以AB表示一起点为A而终点为B的向量,这用法为相当广泛的数学家所接受。

实际上,现在亦偶然用这表示方法。

与他同时代的哈密顿、吉布斯等人则以一小写希腊字母表示向量,现今还有这用法。

1896年,沃依洛特区分了「极向量」及「 轴向量」;1912年,兰格文以表示极向量,其后於字母上加箭嘴以表示向量的方法逐渐流行, 尤其在手写稿中。

一些作者为了方便印刷,以粗黑体小写字母a,b等表示向量。

这两种符号一直沿用至今。

向量符号 1806年,瑞士人阿尔冈以表示一个有向线段或向量(vectors)。

麦比乌斯(1827年)则 以AB表示一起点为A而终点为B的向量,这用法为相当广泛的数学家所接受。

实际上,现在亦偶然用这表示方法。

与他同时代的哈密顿、吉布斯等人则以一小写希腊字母表示向量,现今还有这用法。

1896年,沃依洛特区分了「极向量」及「 轴向量」;1912年,兰格文以表示极向量,其后於字母上加箭嘴以表示向量的方法逐渐流行, 尤其在手写稿中。

一些作者为了方便印刷,以粗黑体小写字母a,b等表示向量。

这两种符号一直沿用至今。

1853年,柯西把向径记作,而它于坐标轴上的分量则分别记作,及,且记=++ 。

但早于1797年,韦塞尔已把向量以x+ηy+ez形式表达,其 中η2=-1,e2=-1。

1878年,格拉斯曼给前二者之工作,以p=v1e1+v2e2+vee3 表示一具有坐标x,y及z的点,其中e1,e2及e3 分别为三个坐标轴方向的单位长度。

此外,哈密顿则把向量记作ρ=iz+jy+kz,其中i,j,k为两两垂直的单位向量( unit vector),因而有i.j=-j.i=k,j.k=-k.j=i,k.i=-i.k=j 。

这记法后来与上述向量之记法相结合:印刷时把i,j,k 印成小写粗黑体字母,手写时於字母上加箭嘴,并把系数( 坐标)写于前面,即ρ=xi+yj+zk 或(右图) ,这就是现今之用法。

输入符号 向量符号是在英文字母的上方加一个箭头符号。

用域功能也可以很容易实现这个要求。

在大括号中输入域代码“eq \o(→,a)”,其中,箭头符号可以使用“插入→符号”的方法来实现。

如果我们这时点击右键菜单中的“切换域代码”命令的话,您会发现,得到的结果只是箭头与字母重叠在一起,并不是我们希望的结果。

那么,如何使箭头向上移动呢? 选中域代码中的箭头,点击右键,然后在弹出菜单中点击“字体”命令,打开“字体”对话框。

点击“字符间距”选项卡,然后点击“位置”下拉列表,选择“提升”,并用其后的“磅值”微调按钮设置提升值为“5磅。

确定后就可以使箭头符号向上移动5磅的位置,这样,就可以移动到字符的上方了。

现在,再选中域代码,然后点击“切换域代码”命令,就可以得到预期的效果了。

如果您觉得这样子操作比较麻烦的话[1] ,还可以直接在域符号中输入代码“eq \o (\s\up5(→),a)”,这样,同样可以实现将箭头向上提升5磅的效果。

转载请注明出处51数据库 » 深度学习词向量 word2vector

软件
前端设计
程序设计
Java相关