(四)使用LSTM做文本生成

这里使用一部 90 多万字小说《琉璃美人煞》为例,使用 LSTM 方法做一次文本生成。

从一句预测下一句

Input data:  '玑庸懒外表下的,是一颗琉璃般清澈冰冷的心,前世种种因果,让她今世不懂情感。对修仙'
Target data: '庸懒外表下的,是一颗琉璃般清澈冰冷的心,前世种种因果,让她今世不懂情感。对修仙的'
Input data: '人来说,有心者,凡间即天庭。那么,有心者,是不是可以琉璃亦血肉?天下闻名的簪花大'
Target data: '来说,有心者,凡间即天庭。那么,有心者,是不是可以琉璃亦血肉?天下闻名的簪花大会'
Input data: '前夕,璇玑被选为摘花人,与父亲和师兄钟敏言下山狩猎妖魔,并结识了离泽官弟子禹司凤'
Target data: '夕,璇玑被选为摘花人,与父亲和师兄钟敏言下山狩猎妖魔,并结识了离泽官弟子禹司凤。'

Input data 是 X,Target data 是 Y。

在 LSTM 的参数中,设定 return_sequences=True 让每个状态向量都参与到对下一个字的预测任务中来。

在下图中的每一个 h 向量上面都接上一个 Dense Layer,做输出,所以就可以预测出和输入序列长度相同的目标序列。

从一句预测下一字

Input data:  '玑庸懒外表下的,是一颗琉璃般清澈冰冷的心,前世种种因果,让她今世不懂情感。对修仙'
Target data: '的'
Input data: '人来说,有心者,凡间即天庭。那么,有心者,是不是可以琉璃亦血肉?天下闻名的簪花大'
Target data: '会'
Input data: '前夕,璇玑被选为摘花人,与父亲和师兄钟敏言下山狩猎妖魔,并结识了离泽官弟子禹司凤'
Target data: '。'

Input data 是 X,Target data 是 Y。

在 LSTM 的参数中,设定 return_sequences=False 只让最后一个状态量 ht 参与到对下一个字的预测任务中来。

在下图中的 ht 向量上面都接上一个 Dense Layer,做输出,所以就可以预测出长度为 1 的目标序列。

image-20210116192358926


   转载规则


《(四)使用LSTM做文本生成》 Harbor Zeng 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
(五)Seq2Seq 做机器翻译 (五)Seq2Seq 做机器翻译
Seq2Seq 模型 Seq2Seq 模型,分为两个部分:Encoder 和 Decoder,每个部分都是基于 LSTM。 机器翻译的训练过程 Encoder 的最后一个单元的最终状态参数 h\bold hh 和 c\bold cc 作为 Decoder LSTM 第一个单元的起始状态参数。 h\bold hh 和 c\bold cc 里面包含了输入的英语句子 “go away” 的所有特征信
2021-01-16
下一篇 
(三)长短期记忆-LSTM为什么比RNN更好 (三)长短期记忆-LSTM为什么比RNN更好
LSTM 是在 1997 年被提出来的。 LSTM 结构 LSTM 的结构比 RNN 要复杂,其中包含 4 个参数矩阵(相比于 RNN 只有一个参数矩阵),可从训练数据中反向传播而得到更新学习。 传送带 LSTM 中有一个传送带,可以将过去的信息 Ct−1C_{t-1}Ct−1​ 直接传递给未来的 CtC_tCt​ 四个参数矩阵 遗忘门 遗忘门(forget gate)WfW_fWf​
2021-01-14
  目录