1. 文本相似度计算-文本向量化

2. 文本相似度计算-距离的度量

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

4. 文本相似度计算-CNN-DSSM算法

1. 前言

之前介绍了DSSM算法,它主要是用了DNN的结构来对数据进行降维度,本文用CNN的结构对数据进行降维。

2. CNN-DSSM

CNN-DSSM在DSSM的基础上改进了数据的预处理和深度

2.1 CNN-DSSM架构

CNN-DSSM的架构图如下:

输入:\(Query\)是代表用户输入,\(document\)是数据库中的文档。

  • word-n-gram层:是对输入做了一个获取上下文信息的窗口,图中是word-trigram,取连续的3个单词。
  • Letter-trigram:是把上层的三个单词通过3个字母的形式映射到3w维,然后把3个单词连接起来成9w维的空间。
  • Convolutional layer:是通过Letter-trigram层乘上卷积矩阵获得,是普通的卷积操作。
  • Max-pooling:是把卷积结果经过池化操作。
  • Semantic layer:是语义层,是池化层经过全连接得到的。

获得128维的语义后就可以计算文本之间的相似度了,计算相似度的过程和DNN-DSSM的过程是一样的。可以发现CNN-DSSM和DNN-DSSM基本流程是差不多的,就是用卷积和池化的操作代替了DNN的操作。

2.2 优缺点

  • 优点:CNN-DSSM 通过卷积层提取了滑动窗口下的上下文信息,又通过池化层提取了全局的上下文信息,上下文信息得到较为有效的保留。

  • 缺点:CNN-DSSM 滑动窗口(卷积核)大小的限制,导致无法捕获该上下文信息,对于间隔较远的上下文信息,难以有效保留。

3. 总结

CNN-DSSM的结构可分为数据预处理(把文本向量化),在经过深度神经网络,压缩矩阵,最后拿压缩后的矩阵进行相似度计算。和DNN-DSSM相比主要的变化在深度神经网络这一层的处理方式,举一反三那肯定也还有通过RNN来处理数据的过程,RNN-DSSM后面会载讲解。

4. 文本相似度计算-CNN-DSSM算法的更多相关文章

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

    1. 文本相似度计算-文本向量化 2. 文本相似度计算-距离的度量 3. 文本相似度计算-DSSM算法 4. 文本相似度计算-CNN-DSSM算法 1. 前言 最近在学习文本相似度的计算,前面两篇文章 ...

  2. 转:Python 文本挖掘:使用gensim进行文本相似度计算

    Python使用gensim进行文本相似度计算 转于:http://rzcoding.blog.163.com/blog/static/2222810172013101895642665/ 在文本处理 ...

  3. python 文本相似度计算

    参考:python文本相似度计算 原始语料格式:一个文件,一篇文章. #!/usr/bin/env python # -*- coding: UTF-8 -*- import jieba from g ...

  4. Finding Similar Items 文本相似度计算的算法——机器学习、词向量空间cosine、NLTK、diff、Levenshtein距离

    http://infolab.stanford.edu/~ullman/mmds/ch3.pdf 汇总于此 还有这本书 http://www-nlp.stanford.edu/IR-book/ 里面有 ...

  5. word2vec词向量训练及中文文本类似度计算

    本文是讲述怎样使用word2vec的基础教程.文章比較基础,希望对你有所帮助! 官网C语言下载地址:http://word2vec.googlecode.com/svn/trunk/ 官网Python ...

  6. 文本相似度 — TF-IDF和BM25算法

    1,$TF-IDF$算法 $TF$是指归一化后的词频,$IDF$是指逆文档频率.给定一个文档集合$D$,有$d_1, d_2, d_3, ......, d_n \in D$.文档集合总共包含$m$个 ...

  7. 文本相似度算法——空间向量模型的余弦算法和TF-IDF

    1.信息检索中的重要发明TF-IDF TF-IDF是一种统计方法,TF-IDF的主要思想是,如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分 ...

  8. java算法(1)---余弦相似度计算字符串相似率

    余弦相似度计算字符串相似率 功能需求:最近在做通过爬虫技术去爬取各大相关网站的新闻,储存到公司数据中.这里面就有一个技术点,就是如何保证你已爬取的新闻,再有相似的新闻 或者一样的新闻,那就不存储到数据 ...

  9. NLP点滴——文本相似度

    [TOC] 前言 在自然语言处理过程中,经常会涉及到如何度量两个文本之间的相似性,我们都知道文本是一种高维的语义空间,如何对其进行抽象分解,从而能够站在数学角度去量化其相似性.而有了文本之间相似性的度 ...

随机推荐

  1. ROS学习(六)—— 理解ROS节点

    一.准备工作 下载一个轻量级的模拟器 sudo apt-get install ros-kinetic-ros-tutorials 二.图概念的理解 1.Nodes:一个节点就是一个可执行文件,用来与 ...

  2. sql中union 和 union all的区别

    最近发现一个视图出奇的慢,在生产环境还好,由于服务器配置较高,没有察觉出来.但是做了一次修改后在开发版 和测试版就直接查询不出结果了.就连select count(1) from 都运行2个小时没有结 ...

  3. Aborted connection 1055898 to db: 'xxx' user: 'yyy' host: 'xxx.xxx.xxx.xxx' (Got timeout reading communication packets)

    mysql错误日志中,发现大量以下类似信息:(mysql 5.7.18) [Note] Aborted connection 1055898 to db: 'xxx' user: 'yyy' host ...

  4. windows(64位)下使用curl命令

    Curl命令可以通过命令行的方式,执行Http请求.在Elasticsearch中有使用的场景,因此这里研究下如何在windows下执行curl命令. 工具下载 在官网处下载工具包:http://cu ...

  5. systemd自启动java程序

    一.背景条件 1. Linux系统是Debian 8 2. Java程序是test.jar,安装路径是/home/test/test.jar 二.编写java的启动脚本 startTest.sh #! ...

  6. debian搭建本地镜像源

    1. 安装apt-mirror apt-get install apt-mirror 2. 配置apt-mirror vim /etc/apt/mirror.list 2.1 下载目录什么的基础配置建 ...

  7. [转]OkHttp3 最有营养的初级教程

    一.前言 自从Android4.4开始,google已经开始将源码中的HttpURLConnection替换为OkHttp,而在Android6.0之后的SDK中google更是移除了对于HttpCl ...

  8. 转 阿里Dubbo疯狂更新,关Spring Cloud什么事?

    原文地址: http://www.ityouknow.com/springcloud/2017/11/20/dubbo-update-again.html阿里Dubbo疯狂更新,关Spring Clo ...

  9. 使用OkHttpClient处理json请求处理的方式

    今天遇到一个问题,重构老系统时,前端传递的参数是一个json,controller层可以用@ResponseBody来接收. 因为新系统用的是spring cloud这一套,调用其他服务使用的是fei ...

  10. 解决Maven->update project 恢复为默认jdk1.5以及One or more constraints have not been satisfied问题

    使用maven架构创建dynamic web 项目之后,默认指定的jdk 和compilerVersion都非常古老,而且即便你手动更新了版本之后,每次update project都会复位,非常不爽. ...