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的更多相关文章

  1. Gensim进阶教程:训练word2vec与doc2vec模型

    本篇博客是Gensim的进阶教程,主要介绍用于词向量建模的word2vec模型和用于长文本向量建模的doc2vec模型在Gensim中的实现. Word2vec Word2vec并不是一个模型--它其 ...

  2. [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 ...

  3. AI佳作解读系列(四)——数据增强篇

    前言 在深度学习的应用过程中,数据的重要性不言而喻.继上篇介绍了数据合成(个人认为其在某种程度上可被看成一种数据增强方法)这个主题后,本篇聚焦于数据增强来介绍几篇杰作! (1)NanoNets : H ...

  4. 通过Visualizing Representations来理解Deep Learning、Neural network、以及输入样本自身的高维空间结构

    catalogue . 引言 . Neural Networks Transform Space - 神经网络内部的空间结构 . Understand the data itself by visua ...

  5. google tensorflow bert代码分析

    参考网上博客阅读了bert的代码,记个笔记.代码是 bert_modeling.py 参考的博客地址: https://blog.csdn.net/weixin_39470744/article/de ...

  6. 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 ...

  7. 【paddle学习】词向量

    http://spaces.ac.cn/archives/4122/   关于词向量讲的很好 上边的形式表明,这是一个以2x6的one hot矩阵的为输入.中间层节点数为3的全连接神经网络层,但你看右 ...

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

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

  9. AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Adversarial Networks 笔记

    AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Adversarial Networks 笔记 这 ...

随机推荐

  1. lamp环境配置

     一.配置虚拟域名   1.为了模拟DNS,在本地hosts文件中设置一下  2.模拟三个项目  3.在apache中配置虚拟主机 去到apache的sites-available目录里复制三次def ...

  2. KMP 算法详解

    之前模模糊糊的理解了KMP,结果由于并不是完全弄清楚而导致自己在一道题目上疯狂的T,似乎是next函数写的有问题,于是痛心疾首的回来写一篇报告,警示自己 对KMP来说,匹配串的next数组是重中之重, ...

  3. 使用commons-net做FTP功能的异常 java.lang.ClassNotFoundException: org.apache.oro.text.regex.Malformed

    最近使用Apache的commons-net.jar做FTP上传下载功能,点击“上传”的时候报错,如下: java.lang.ClassNotFoundException: org.apache.or ...

  4. Processing-基础小坑-

    x 坑A:) 新建一个"Walker"项目,Walker.pde,必须在Walker文件夹下... 刚开始以为如果一个文件需要引用另外一个文件中的类,只要把这两个文件放一个文件夹下 ...

  5. 【每日一题】 UVA - 1599 Ideal Path 字典序最短路

    题解:给一个1e5个点2e5条边,每个边有一个值,让你输出一条从1到n边的路径使得:条数最短的前提下字典序最小. 题解:bfs一次找最短路(因为权值都是1,不用dijkstra),再bfs一次存一下路 ...

  6. 一道hive SQL面试题

    一.hive中实现方法 基表: 组表: gt   gid gname 1001 g1 1002 g2 1003 g3 create table g( gid int, gname string )ro ...

  7. express 写一个简单的web app

    之前写过一个简单的web app, 能够完成注册登录,展示列表,CURD 但是版本好像旧了,今天想写一个简单的API 供移动端调用 1.下载最新的node https://nodejs.org/zh- ...

  8. centos7安装Apache

    1.下载安装包wget http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.37.tar.gz 2.解压tar zxvf httpd-2.4.37.ta ...

  9. 内存不够怎么办? 1.5.1 关于隔离 1.5.2 分段(Segmention) 1.5.3 分页(Paging)

    小结: 1. 内存不够怎么办?1.5.1 关于隔离1.5.2 分段(Segmention)1.5.3 分页(Paging) <程序员的自我修养——链接.装载与库>

  10. #include<stdio.h> #include "stdio.h"

    https://baike.baidu.com/item/#include <stdio.h> #include <stdio.h> 编辑 #include<stdio. ...