【NLP】关于Word2Vec词向量与keras的Embedding层的学习总结

目录

1、Keras 嵌入层

2、在keras的嵌入层中学习词嵌入

2.1、one_hot

2.2、pad_sequences

2.3学习嵌入实例

3、使用预训练的词向量进行嵌入学习

1、Keras 嵌入层

Keras的嵌入层使用随机权重初始化,并将学习所有数据集中词的嵌入。

它是一个灵活的层,可以以各种方式使用,如:

1.它可以单独使用来学习一个字嵌入,以后可以在另一个模型中使用。

2.它可以用作深度学习模型的一部分,其中嵌入与模型本身一起被学习。

3.它可以用于加载预训练的词嵌入模型,是种迁移学习,将词嵌入模型转换为权重矩阵输入keras的Embedding层

keras.layers.Embedding(input_dim, output_dim, embeddings_initializer='uniform', embeddings_regularizer=None, activity_regularizer=None, embeddings_constraint=None, mask_zero=False, input_length=None) 

 

输入尺寸

尺寸为 (样本数, sequence_length(句子长度,句子的词长度需要人为统一)) 的 2D 张量。

输出尺寸

尺寸为 (样本数, sequence_length, output_dim(嵌入后的设定向量维度)) 的 3D 张量。

如果希望连接密集(dense)层直接到嵌入层,必须首先将y和z压缩到一行,形成一个(x,yz)的2D矩

2、在keras的嵌入层中学习词嵌入

keras embeding设置初始值有两种方式:随机初始化Embedding,使用weights参数指明embedding初始值

这里是随机初始化Embedding,对数据集中的word进行词嵌入学习

2.1、one_hot

将文本编码为大小为 n 的单词索引列表,将文本单词映射为数字。

2.2、pad_sequences

Keras需要输入具有相同的长度。keras只能接受长度相同的序列输入。因此句子具有不同的长度,这时需要使用pad_sequences()。该函数是将序列转化为经过填充以后的一个长度相同的新序列新序列。

keras.preprocessing.sequence.pad_sequences(sequences, 
	maxlen=None,
	dtype='int32',
	padding='pre',
	truncating='pre', 
	value=0.)

参数说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值