LSTM/GRU tensorflow及keras实现

LSTM/GRU在文本分类、情感分析及语言建模等方面有很大的用处,本文主要对这两种方法的tensorflow和keras实现进行分析


1.LSTM/GRU的tensorflow实现

a.文本处理

一般来说, 需要先把句子划分为词语(对于英文来说,直接将句子划分为单词的列表即可;对于中文,需要对句子进行分词,本文的讲述以英文为例)

from tensorflow.contrib import learn
maxlen = 100 #句子中保留词语的长度为100,需进行padding或者clipping、
vocab_processor = learn.preprocessing.VocabularyProcessor(maxlen)
pretrain = vocab_processor.fit(vocab) #vocab指词表
X_indexes = np.array(list(vocab_processor.transform(list_sentences_train))) #list_sentences_train指词列表
X_test_indexes = np.array(list(vocab_processor.transform(list_sentences_test)))

b.word embbedding初始化

word embbedding初始化的方法有2种:直接随机初始化和采用预训练的词向量模型

(1). 直接初始化

labels = tf.placeholder(tf.float32, [None, class_num])
input_data = tf.placeholder(tf.int64, [None, maxlen])

embbedding_vecs = tf.Variable(tf.random_normal([word_count, embbedding_size], -1, 1), name="word_embbedings")
x = tf.nn.embedding_lookup(params=embbedding_vecs, ids=input_data)

(2). 预训练的词向量模型初始化

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值