wordvector to sentence vector
wordvector已经通过word2vec训练出来了,可是如何通过WV得到SV(Sentence Vector)?
思路1:
直接将句子的向量叠加取平均:效果很不好,每个词没有考虑权重,获取的向量会平均的靠近每一个词
思路2:
方法同上,可是使用关键词算法,对不同的词给与不同的权重:还没有测试,可是我一直对于短文本,关键词的常见算法很不放心。比如TF-IDF的权重,本身也只是一个假设,并不是真的意义上可以说明这个词很关键,并量化。只有到其他方法都不行,我才会考虑这个方法。
思路3:
使用gensim的doc2vec,也是参照了Mikolov2014年的文章“Distributed Representations of Sentences and Documents”.
花了一个早上学会了使用这个包,可是这个的实现实在是很难用,有关的使用案例又非常少,而且我也没有足够的时间去学习这篇文章,最后测试的结果并不好,所以此方法暂且按下不表。
思路4:
知乎上知友提供了一个思路,是一个浙大数学系的人在BAT工作的时候,他们探讨并最后确定实践的方案,据说效果非常好。
链接稍后附上,原理是:
我们word2vec训练出来的模型,构成了一个比如10000词的词典,而在词袋模型中,我们通常是用一个词是否出现、或者出现几次,构成一个稀疏矩阵。
如果一个句子是:我 爱 北京 天安门
在word2vec训练下,与‘我’相似的的TOPN个词,分别有相似度对应,把这几个词的相似度,放到这个稀疏矩阵对应的位置上。相当于,我们从word2vec训练后,得到的信息A,把这个信息放到稀疏矩阵里。
这个思路其实非常巧妙,实现也容易。实现之后,对于520个问题的相似度(采用余弦相似度)匹配,发现TOP250对,都是非常准确的。相似度基本在0.3以上(相似度1为完全相同)的基本是很相似的问句。 (因为做了one hot映射,所以相似度-不同的词数的曲线,会前几个骤减,)
到了这部,我们已经可以结合word2vec和one-hot映射得到句子向量,并根据句子向量得到相似度,可是我们依然无法解决长短句难以相似的问题。
首先,一个很长的句子,如果包含了大量的信息,明显是无法直接和短句子进行相似度匹配的,所以我们需要对特征进行提取。
改进思路:加入句法分析,使用分析得到的标签提取关键词,如果这样提取的效果不好,最后还是得尝试使用关键词算法。
wordvector to sentence vector的更多相关文章
- Gensim进阶教程:训练word2vec与doc2vec模型
本篇博客是Gensim的进阶教程,主要介绍用于词向量建模的word2vec模型和用于长文本向量建模的doc2vec模型在Gensim中的实现. Word2vec Word2vec并不是一个模型--它其 ...
- [leetcode-557-Reverse Words in a String III]
Given a string, you need to reverse the order of characters in each word within a sentence whilestil ...
- AI佳作解读系列(四)——数据增强篇
前言 在深度学习的应用过程中,数据的重要性不言而喻.继上篇介绍了数据合成(个人认为其在某种程度上可被看成一种数据增强方法)这个主题后,本篇聚焦于数据增强来介绍几篇杰作! (1)NanoNets : H ...
- 通过Visualizing Representations来理解Deep Learning、Neural network、以及输入样本自身的高维空间结构
catalogue . 引言 . Neural Networks Transform Space - 神经网络内部的空间结构 . Understand the data itself by visua ...
- google tensorflow bert代码分析
参考网上博客阅读了bert的代码,记个笔记.代码是 bert_modeling.py 参考的博客地址: https://blog.csdn.net/weixin_39470744/article/de ...
- 26 THINGS I LEARNED IN THE DEEP LEARNING SUMMER SCHOOL
26 THINGS I LEARNED IN THE DEEP LEARNING SUMMER SCHOOL In the beginning of August I got the chance t ...
- 【paddle学习】词向量
http://spaces.ac.cn/archives/4122/ 关于词向量讲的很好 上边的形式表明,这是一个以2x6的one hot矩阵的为输入.中间层节点数为3的全连接神经网络层,但你看右 ...
- 2017年计算语义相似度最新论文,击败了siamese lstm,非监督学习
Page 1Published as a conference paper at ICLR 2017AS IMPLE BUT T OUGH - TO -B EAT B ASELINE FOR S EN ...
- AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Adversarial Networks 笔记
AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Adversarial Networks 笔记 这 ...
随机推荐
- RabbitMQ 学习
参考:https://www.rabbitmq.com/getstarted.html 先在本地安装RabbitMQ 组件(需要安装Erlang组件),启动服务. 激活 RabbitMQ's Mana ...
- mysql的安装和配置
1.mydql的安装 重装wind7系统之后,mysql软件自动卸载了.现在学习需要使用mysql,还是要安装mysql.我首先通过下载安装包的方式安装,按照教程,但是出现缺失.dll文件,我下载安装 ...
- win怎么设置最快捷的下滑关机
win怎么设置最快捷的下滑关机 1.在C:\Windows\System32下找到SlideToShutDown.exe文件发送一份到桌面快捷方式 2.右键此快捷方式--属性--更换图表--更换一个自 ...
- Please check logcat output for more details
Please check logcat output for more details 小米第一次可以安装,后面就不行了,研究发现 手机里面有同名的apk,直接elipse重命名 就可以了. 小米us ...
- [No0000119]什么是柳比歇夫的时间事件记录法
上图是我过去一年来做的时间事件记录中的某几天的记录文字.从接触到这种方法以来,也就是2009年的7月31日到今天,我已经作了一年多时间的记录.那么什么是时间事件记录?很简单,就像那两幅图片上所展示的, ...
- NLP任务:给定一句话,找出这句话中你想要的关键词,包括起始结束索引
在实际的nlp实际任务中,你有一大堆的人工标注的关键词,来新的一句话,找出这句话中的关键词,以便你以后使用,那如何来做呢? 1)用到正则的 finditer()方法,返回你匹配的关键词的迭代对象,包含 ...
- 如何使用IcoMoon字体图标
如何使用IcoMoon字体图标 一,字体图标工具: 1.登录字体图标网站:https://icomoon.io/app/#/select 2.Svg在线编辑工具:https://c.runoob.co ...
- [DPI][suricata] suricata 配置使用
前文: [DPI] suricata-4.0.3 安装部署 至此, 我们已经拥有了suricata可以运行的环境了. 接下来,我们来研究一下它的功能, 首先,分析一下配置文件: /suricata/e ...
- day4_函数简单介绍
一.函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pasc ...
- HTML中select的option设置selected="selected"无效的解决方案
今天遇到了一个奇葩问题,写HTML时有个select控件,通过设置option的selected="selected"居然无效,但是在其他浏览器是可以的,问了一下Google大神, ...