深度学习第九天_循环神经网络

循环神经网络RNN基础

  1. 文本的tokenization

    (1)概念和工具的介绍
    
    		tokenization就是通常所说的分词,分出的每一个词语我们把它成文token
    
    		常见的分词工具有很多,比如:
    		- jieba分词:https://github.com/fxsjy/jieba
    		- 清华大学的分词工具THULAC:https://github.com/thunlp/THULAC-Python
    
    (2)中英文分词的方法
    
    		a.把句子转化为词语
    			比如:我爱深度学习可以分为[我,爱,深度学习]
    		b.把句子转化为单个字
    			比如:我爱深度学习的token是[我,爱,深,度,学,习]
    
  2. N-garm表示方法

    N-garm是一组一组的词语,其中的N表示能够被一起使用的词的数量,考虑到了句子中词语的顺序。
    
    例如:
    	text = "深度学习(英语:deep )是机器学习的分支,是一种以人工神经网络为架构,对数据进行表征学习的算法"
    	cuted = jieba.lcut(text) 
    		#lcut方法生成一个列表
    	print([cuted[i:i+2] for i in range(len(cuted)-1)])
    	 	# cuted[i:i+2]、len(cuted)-i表示分成i+1个单词为一组
    
    	[['深度', '学习'], ['学习', '('], ['(', '英语'], ['英语', ':'], [':', 'deep'], ['deep', ' '],
    	[' ', ')'], [')', '是'], ['是', '机			器'], ['机器', '学习'], ['学习', '的'], ['的', '分支'], 
    	['分支', ','], [',', '是'], ['是', '一种'], ['一种', '以'], ['以', '人工神经网络'], 
    	['人工神经网络', '为'], ['为', '架构'], ['架构', ','], [',', '对'], ['对', '数据'], ['数据', '进行'],
    	['进行', '表征'], ['表征', '学习'], ['学习', '的'], ['的', '算法']]
    
    在深度学习比如RNN中会自带N-gram方法
    
  3. 向量化

    因为文本不能够直接被模型计算,所以需要将其转化为向量
    把文本转化为向量有两种方法:
    	a.转化为one-hot编码
    	b.转化为word embedding
    
    (1)one-hot 编码
    
    		使用稀疏的向量表示文本,占用空间多
    
    (2)word embedding
    		
    		word embedding是深度学习中表示文本常用的一种方法,和one-hot编码不同,word embedding使用了浮点型的稠密矩阵来表示token。
    		
    		根据词典的大小,我们的向量通常使用不同的维度,例如100,256,300等,其中向量中的每一个值是一个超参数,其初始值是随机生成的,之后会在训练的过程中进行学习而获得。
    
    		如果我们文本中有20000个词语,如果使用one-hot编码,那么我们会有20000*20000的矩阵,其中大多数的位置都为0,但是如果我们使用word embedding来表示的话,只需要20000*维度,比如20000*300
    		
    (3)word embedding API
    		
    		torch.nn.Embedding(num_embeddings,embedding_dim)
    		
    		参数介绍:
    			a.num_embeddings:词典的大小
    			b.embedding_dim:embedding的维度
    
    		使用方法:
    			embedding = nn.Embedding(vocab_size,300)  #实例化
    			input_embeded = embedding(input)			      #进行embedding的操作
    
    (4)数据的形状变化
    		
    		假设每个batch中的每个句子有10个词语,经过形状为[20,4]的Word embedding之后,原来的句子会变成[batch_size,10,4]的形状。
    		
    		增加了一个维度,这个维度是embedding的dim
    

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值