首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >基于char-rnn和tensorflow生成周杰伦歌词

基于char-rnn和tensorflow生成周杰伦歌词

作者头像
机器学习AI算法工程
发布2019-10-28 15:54:31
发布2019-10-28 15:54:31
9320
举报
本着学习tensorflow和RNN的目的,前些天发现了char-rnn

https://github.com/karpathy/char-rnn

这个有趣的项目,具体就是基于字符预测下一个字符,比日说已知hello的前四个字母hell,那我们就可以据此预测下一个字符很可能是o,因为是字符char级别的,并没有单词或句子层次上的特征提取,相对而言比较简单易学。

因为原作者的代码是基于torch写的,为了熟悉tensorflow,我就仔细地研究了一下具体代码,然后改写成基于tf的代码,基于tensorflow的char-rnn-tensorflow,

https://github.com/sherjilozair/char-rnn-tensorflow

恕我直言,有以下三点比较膈应:

  1. 代码写的不够直观简洁
  2. 另外因为最新tensorflow的部分api有所变化
  3. 中英文之间有一些差异,看能否成功移植到处理中文上

于是打算基于以上两个项目,自己重写!

基本原理

拿中文举例来说,每个字与每个字并不是统计上独立的,比如说如果不爱就不要再伤害 长度为10的序列,如果我们知道,下一个字有可能是,如果知道前两个字如果,第三个字就是的可能性大些,依次类推,如果知道前9个字如果不爱就不要再伤,那么最后一个就有可能是字。用图直观的表示如下。

总的来说,这是一个seq2seq的模型,训练数据用的是周杰伦01年到11年所有歌的歌词,训练数据和代码可以从这里下载

关注微信公众号 datayx 然后回复 周杰伦 即可获取。

训练

python3 train_text.py

预测(生成文字)

python3 generate_text.py

可视化

在当前目录下运行tensorboard --logdir=logs可以可视化:

结果展示

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-10-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习AI算法工程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本原理
  • 训练
  • 预测(生成文字)
  • 可视化
  • 结果展示
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档