深度学习与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
随机推荐
- MySql 触发器的新增、修改、删除的创建
MySql 触发器与SQL server 触发器不同: SQL Server 使用 inserted.deleted 代表被触发的数据. MySQL NEW代表触发后的新数据行,Old代表当前触发 ...
- Python 爬虫基础Selenium
https://blog.csdn.net/weixin_36279318/article/details/79475388
- python学习——读取染色体长度(四:获取最长染色体的编号)
# 读取fasta # 解析每条序列的长度 chr_len = {'chr1':10,'chr2':20,'chr3':30,'chr4':40,'chr5':15} # 求和 total_len = ...
- egg.js与mysql的结合使用,以及部署事项
最近使用egg.js写了一个小项目练手,主要用来封装接口以及代理接口.进入正题: egg搭建以及各项配置 可以详见官方文档:https://eggjs.org,这里简单描述一下: 1.直接使用脚手架快 ...
- DDctf 新得
滴这道题当时做的时候只做到了看到index.php的源码 当时给了一个博客的提示猜到是swp的那个 但是没有想到是里面的 文件就没有做了,然后在看了wp过后就明白了 访问博客我文章里面的文章里面的pr ...
- Doctype知识点总结
DOCTYPE是document type (文档类型) 的缩写.<!DOCTYPE >声明位于文档的最前面,处于标签之前,它不是html标签.主要作用是告诉浏览器的解析器使用哪种HTML ...
- 使用Builder模式创建复杂可选参数对象
在新建对象时,若需要对大量可选参数进行赋值,最常见的做法是JavaBeans模式,即调用一个无参构造方法创建对象,然后调用setter方法来设置每个必要的参数,以及每个相关的可选参数.代码示例如下: ...
- Jsp监听器
监听器: 监听器就是对内置对象的状态或者属性变化进行监听,并且做出反应的特殊的servlet,在web.xml文件中对监听器进行的配置. 内置对象有两种状态变化:产生.销毁,就是当产生内置对象的时候能 ...
- [Alpha阶段]事后分析博客
目录 Alpha阶段事后分析博客 设想和目标 计划 资源 变更管理 设计/实现 测试/发布 团队的角色,管理,合作 总结 讨论照片 Alpha阶段事后分析博客 作业要求:Alpha阶段事后分析 设想和 ...
- springboot 注册dao层 service 层
可以使用三种注解来引入DAO层的接口到spring容器中.1.@Mapper,写在每一个DAO层接口上,如下: 2.@MapperScan和@ComponentScan两者之一.前者的意义是将指定包中 ...