基于LSTM的许嵩风格歌词生成
发布时间:2020-12-18 15:31
文本生成是人工智能和自然语言处理领域中一项热门研究的课题,作为一种在自然语言文本生成方面广泛应用的网络,长短期记忆网络(Long Short-Term Memory,LSTM)可以解决在训练传统循环神经网络(Recurrent Neural Network,RNN)时可能遇到的梯度消失问题。对于间隙长度的相对不敏感性是LSTM相对于RNN,隐马尔可夫模型和其他序列学习方法在许多应用中的优势。本文通过采用带门结构的LSTM生成许嵩风格歌词的模型,使机器具有初步模拟人类创作歌词的能力。实验结果表明,LSTM具有良好的歌词文本自动生成效果。
【文章来源】:网络安全技术与应用. 2020年08期
【文章页数】:4 页
【部分图文】:
char-rnn模型示例3实验
年第08期安全模型、算法与编程||51||图3char-rnn模型示例3实验3.1数据源本实验所用的数据集为百度文库上搜索到的许嵩歌词大全[9],此数据集中包含了许嵩自出道以来148首较流行歌曲的歌词,总共7643行歌词文本。其部分数据集展示如图4所示。3.2实验环境本实验采用Tensorflow作为主要框架,numpy进行基本数据处理,所用优化器为AdamOptimizer。需要注意的是,下载下来的txt数据集默认是ANSI编码,需要通过“另存为”转为UTF-8编码,否则会编码错误。图4VAE_lyrics_UTF8.txt数据集部分示例3.3实现代码主要类和函数(1)classHParam()此类用来对超参数进行设置,如batch_size、学习率、AdamOptimizer中的衰减率、衰减步数、神经网络层数等,这些参数的选择十分重要。模型设置的参数如表1所示。表1HParam()中超参数的设置参数值单次训练所选取的样本数32学习速度0.01衰减步数1000衰减率0.9神经网络层数3单个序列长度20状态向量维度100(2)classDataGenerator()此类中的__init__()方法对文本中的汉字进行拆分并进行序号编码,char2id()方法把字转换成数字编码,id2char()方法把数字编码转换成汉字,save_metadata()将汉字与数字编码的映射关系存储下来,next_batch()根据self.batch_size生成下一批训练数据。(3)classModel()此类定义了模型的输入、结构、优化器等核心结构内容。其中,withtf.name_scope()语法用于在tensorboard中可视化查看模型结构。神经单元调用了rnn_cell.BasicLSTMCell(),多层神经元调用了rnn_cell.MultiRNN
【参考文献】:
期刊论文
[1]基于神经网络的集句诗自动生成[J]. 梁健楠,孙茂松,矣晓沅,杨成,陈慧敏,刘正皓. 中文信息学报. 2019(03)
[2]一种宋词自动生成的遗传算法及其机器实现[J]. 周昌乐,游维,丁晓君. 软件学报. 2010(03)
本文编号:2924233
【文章来源】:网络安全技术与应用. 2020年08期
【文章页数】:4 页
【部分图文】:
char-rnn模型示例3实验
年第08期安全模型、算法与编程||51||图3char-rnn模型示例3实验3.1数据源本实验所用的数据集为百度文库上搜索到的许嵩歌词大全[9],此数据集中包含了许嵩自出道以来148首较流行歌曲的歌词,总共7643行歌词文本。其部分数据集展示如图4所示。3.2实验环境本实验采用Tensorflow作为主要框架,numpy进行基本数据处理,所用优化器为AdamOptimizer。需要注意的是,下载下来的txt数据集默认是ANSI编码,需要通过“另存为”转为UTF-8编码,否则会编码错误。图4VAE_lyrics_UTF8.txt数据集部分示例3.3实现代码主要类和函数(1)classHParam()此类用来对超参数进行设置,如batch_size、学习率、AdamOptimizer中的衰减率、衰减步数、神经网络层数等,这些参数的选择十分重要。模型设置的参数如表1所示。表1HParam()中超参数的设置参数值单次训练所选取的样本数32学习速度0.01衰减步数1000衰减率0.9神经网络层数3单个序列长度20状态向量维度100(2)classDataGenerator()此类中的__init__()方法对文本中的汉字进行拆分并进行序号编码,char2id()方法把字转换成数字编码,id2char()方法把数字编码转换成汉字,save_metadata()将汉字与数字编码的映射关系存储下来,next_batch()根据self.batch_size生成下一批训练数据。(3)classModel()此类定义了模型的输入、结构、优化器等核心结构内容。其中,withtf.name_scope()语法用于在tensorboard中可视化查看模型结构。神经单元调用了rnn_cell.BasicLSTMCell(),多层神经元调用了rnn_cell.MultiRNN
【参考文献】:
期刊论文
[1]基于神经网络的集句诗自动生成[J]. 梁健楠,孙茂松,矣晓沅,杨成,陈慧敏,刘正皓. 中文信息学报. 2019(03)
[2]一种宋词自动生成的遗传算法及其机器实现[J]. 周昌乐,游维,丁晓君. 软件学报. 2010(03)
本文编号:2924233
本文链接:https://www.wllwen.com/wenyilunwen/musictheory/2924233.html