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. Maven学习--- 搭建多模块企业级项目

    我们先在eclipse中新建一个maven项目,pom.xml的文件如下: 搭建多模块项目,必须要有一个packaging为pom的根目录.创建好这个maven项目后,我们对着项目右键-->ne ...

  2. Vue-cli / webpack 加载静态js文件的方法

    一.html-webpack-plugin 编译 1.只需要在入口处定义一个chunks,如我们定义一个fuck模块 entry: { app: './src/main.js', fuck: ['./ ...

  3. mysql出现Too many connections的解决...

    最近写javaee项目的时候,mysql报了too many connections的错误,百度的内容有一些有问题,所以我重新写一下我的解决方法. mysql -u root -p 回车输入密码进入m ...

  4. Vue 的开始

    1 框架的 MVVM 模式 ViewModel是Vue.js的核心,它是一个Vue实例.Vue实例是作用于某一个HTML元素上的,这个元素可以是HTML的body元素,也可以是指定了id的某个元素. ...

  5. 【Android开发】之Android环境搭建及HelloWorld

    原文链接:http://android.eoe.cn/topic/android_sdk Android开发之旅:环境搭建及HelloWorld Android开发之旅:环境搭建及HelloWorld ...

  6. JAVA之堆内存和栈内存的差别

    欢迎转载.请附上出处: http://blog.csdn.net/as02446418/article/details/47007975 笔者近期在准备面试的时候又一次看了一些JAVA基础的知识,以下 ...

  7. HTML5学习笔记(十一):JavaScript基础

    JavaScript代码可以直接嵌在网页的任何地方,不过通常我们都把JavaScript代码放到<head>中: <head> <script> alert('He ...

  8. How To Download Youtube Videos Without any software

    https://www.quora.com/What-is-the-best-way-to-download-YouTube-videos-for-free There are various met ...

  9. javascript基础拾遗(十一)

    1.DOM操作 1)查找 //根据id查找 document.getElementById() //根据html标签查找 documnet.getElementByTagName() //根据样式cl ...

  10. Anaconda的使用和包的更新;conda 创建虚拟环境

    安装: 官网下好后,直接 sh * 会提示安装路径,选择No的话重新填入安装的路径就可以了: 添加到环境变量: echo 'export PATH="~/anaconda2/bin/$PAT ...