深度学习与NLP简单应用
在深度学习中,文本分类的主要原型:Text label,坐边是输入端“X”,右边是输出端“Y”。行业baseline:用BoW(bag of words)表示sentences(如何将文本表达成一个数字的形式),然后用LR或者SVM做回归。
中英文做自然语言处理主要区别,中文需要分词(启发式Heuristic, 机器学习、统计方法HMM、CRF))
深度学习:从端到端的方式,以不掺和人为的计算,从X到Y暴力粗暴的学习。通过很隐层(包含大量线性和非线性的计算)试图模拟数据的内在结构。
新手推荐用kreas,它下面有两个底层,一个是theano,一个是tensorflow,可以自由转换backend也就是说可以让它跑在theano底下,也可以跑在tensorflow底下,它把其他几个深度学习框架综合起来成一种。
关于自然语言相关的库,gensim https://radimrehurek.com/gensim/
一、 Auto-Encoder自编码器
应用场景:无标签的时候需要使用;就算有标签的情况下一本书的内涵太多太大,你希望降维,使得其在后面模型处理中能够接受;
自编码是自己学习自己,通过encoder压缩成一个中继量,目的是希望这个中继量可以通过下一把完全反向的encoder,返回成原本的Input。这里面没有用到任何的label,而是照片2本身和照片2本身,中间加了两个对立漏斗形的神经网络。最后我们可以取中间那个更小的中继量代替原来的图片(因为它可以decoder回原来的图片)。
实现了不用人为提取特征向量。
只能达到局部最优点,无法达到全局最优点。
距离的计算,文本上常用列文斯坦距离,从A变B需要多少步。或者把整个文本表达为矩阵向量,词向量的距离可以用cosine距离等。
二、 CNN4Text(卷积+text)
卷积神经网络,用简单的例子解释,就是手机上的修图软件,拍的照片给个滤镜,照片是不是就长得不一样了,cnn就是用很多滤镜给我原始的图片,进行照耀,照完之后会得到在不同滤镜下的显示形式,这些显示形式也许就暗含这些图片的一些特征。 通过滤镜扫过之后得到新的featureMap我们称为convolved feature。滤镜是怎么得到的呢,是人为初始化一个滤镜,通过之后无数次的学习来更新这个滤镜值,使得这个滤镜值是最好的能提取出fetureMap的滤镜。(加号老师讲)右下图,左边是模糊,右边是边缘化。
如何迁移到文字处理?
1.把每个单词处理成一个横向的向量,就把句子拓展成了类似图片的表达式,
2.把sentence变成1维的,
案例
三、 RNN(带记忆)
Rnn的目的是让有sequential关系的信息得到考虑,St是基于这一个时间点的input和上一个时间点的记忆,然后St再乘以output weight V得到最终输出。
如果Rnn的长度不能记忆几天前的S的话,它的上下文处理能力还是为0,因为它还是不知道你的上下文前提是什么,因此需要LSTM。
四、 LSTM(带记忆)
通过各种运算符号和规则使得整个神经网络里面每个神经网络都能记得一点东西,又会及时的忘记一些东西,使得我记忆的距离能够变得够长。(RNN是一个叠加的过程,下一个永远基于上一个,就会变得非常大和慢)
长效记忆网络,把记忆长效的保留下来。
LSTM中最重要的就是Cell State(记忆纽带) S,它一路向下,贯穿整个时间线,代表了记忆的纽带。它会被XOR(遗忘层处理)和AND(记忆处理)运算符搞一搞来更新记忆,通过这两个运算来知道要记得什么和忘掉什么。
而控制信息的增加和减少的,就是靠这些阀门:Gate,阀门就是输出一个1和0之间的值,1代表把这一趟的信息记着,0代表这一趟的信息可以忘记了。有些记忆比较久的还需不需要留着。
最后得到记忆纽带Ct
五、 案例
可以用在不同的维度上:
维度1:下一个字母是什么?
维度2:下一个单词是什么?
维度3:下一个句子是什么?
维度4:下一个图片、音符是什么?
LSTM案例
深度学习与NLP简单应用的更多相关文章
- 转载:深度学习在NLP中的应用
之前研究的CRF算法,在中文分词,词性标注,语义分析中应用非常广泛.但是分词技术只是NLP的一个基础部分,在人机对话,机器翻译中,深度学习将大显身手.这篇文章,将展示深度学习的强大之处,区别于之前用符 ...
- 回望2017,基于深度学习的NLP研究大盘点
回望2017,基于深度学习的NLP研究大盘点 雷锋网 百家号01-0110:31 雷锋网 AI 科技评论按:本文是一篇发布于 tryolabs 的文章,作者 Javier Couto 针对 2017 ...
- 斯坦福深度学习与nlp第四讲词窗口分类和神经网络
http://www.52nlp.cn/%E6%96%AF%E5%9D%A6%E7%A6%8F%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E4%B8%8Enlp%E7%A ...
- 深度学习解决NLP问题:语义相似度计算
在NLP领域,语义相似度的计算一直是个难题:搜索场景下query和Doc的语义相似度.feeds场景下Doc和Doc的语义相似度.机器翻译场景下A句子和B句子的语义相似度等等.本文通过介绍DSSM.C ...
- Sony深度学习框架 - Neural Network Console - 教程(1)- 原来深度学习可以如此简单
“什么情况!?居然不是黑色背景+白色文字的命令行.对,今天要介绍的是一个拥有白嫩的用户界面的深度学习框架.” 人工智能.神经网络.深度学习,这些概念近年已经涌入每个人的生活中,我想很多人早就按捺不住想 ...
- 深度学习之NLP维基百科数据模型
知识点 """ 1) from gensim.model import Word2Vec import jieba 2) opencc :将繁体字转换为简体字 转换命令: ...
- 关于深度学习之TensorFlow简单实例
1.对TensorFlow的基本操作 import tensorflow as tf import os os.environ[" a=tf.constant(2) b=tf.constan ...
- NLP 第10章 基于深度学习的NLP 算法
- DSSM 深度学习解决 NLP 问题:语义相似度计算
https://cloud.tencent.com/developer/article/1005600
随机推荐
- Linux基础学习:文件与目录管理
目录与路径 目录的相关操作 几个特殊的目录: . :表示当前目录 .. :表示上一层目录 - :表示前一个工作目录 ~ :表示当前用户所在的主文件夹 ~account :表示account用户所在的主 ...
- App Inventor2项目部署到本地
介绍App Inventor App Inventor 原是Google实验室(Google Lab)的一个子计划,该项目是一个完全在线开发的Android编程环境,抛弃复杂的程式代码而使用积木式的堆 ...
- JDK8中HashMap
引用别人的一句话: JDK1.6,JDK1.7中,HashMap采用位桶+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里.但是当位于一个桶中的元素较多,即hash值相等的元素较多 ...
- Django中使用极验Geetest滑动验证码
一,环境部署 1.创建一个django测试项目 此处省略... 二,文档部署 1.下载安装python对应的SDK 使用命令从Github导入完整项目:git clone https://github ...
- Playfair 加密
题目真的好长但是意思很简单 89.加密 (15分)C时间限制:3 毫秒 | C内存限制:3000 Kb题目内容:一种Playfair密码变种加密方法如下:首先选择一个密钥单词(称为pair)(字母不重 ...
- vagrant三网详解(团队/个人开发必看) 转
vagrant三网详解(团队/个人开发必看) Vagrant 中一共有三种网络配置,下面我们将会详解三种网络配置各自优缺点. 一.端口映射(Forwarded port) 顾名思义是指把宿主计算机 ...
- mysql时间比较
' and ZXBZ ='Y' AND SQRQ >= '2017-04-28 00:00:00' AND SQRQ <= '2017-04-28 23:59:59'; ;
- Java中newInstance()和new()区别
前言: 最近在看springIOC和AOP是看见代码中很实用newInstance来实例化一个对象,之前对newInstance和new实例化对象的区别很模糊,特意在这里记录一下 一.newInsta ...
- DAY23、面向对象特性
一.复习1.类: 对象属性的查找顺序:先找自身再找类 类的名称空间:直接写在类中 对象的名称空间:写在__init__方法中,通过self.属性形成名称空间中的名字 类的方法:在类中用@classme ...
- MCMC算法解析
MCMC算法的核心思想是我们已知一个概率密度函数,需要从这个概率分布中采样,来分析这个分布的一些统计特性,然而这个这个函数非常之复杂,怎么去采样?这时,就可以借助MCMC的思想. 它与变分自编码不同在 ...