【深度学习】写诗机器人tensorflow实现

代码地址:https://github.com/hjptriplebee/Chinese_poem_generator, 欢迎fork, star机器人命名MC胖虎,目前只是最简单粗暴的方法,使用tensorflow完成,有些像人工智障,符合胖虎的人物设定,看一些效果:LSTM的原理网上资料很多,不了解的可以看这里:http://www.jianshu.com/p/9dc9f41f
摘要由CSDN通过智能技术生成

代码地址:https://github.com/hjptriplebee/Chinese_poem_generator, 欢迎fork, star

机器人命名MC胖虎,目前只是最简单粗暴的方法,使用tensorflow完成,有些像人工智障,符合胖虎的人物设定,看一些效果:


LSTM的原理网上资料很多,不了解的可以看这里:http://www.jianshu.com/p/9dc9f41f0b29

本文以讲解写诗机器人实现为主,不会讲太多理论和tensorflow使用方法,好下面开始。

训练数据预处理

采用3w首唐诗作为训练数据,在github上dataset文件夹下可以看到,唐诗格式为”题目:诗句“,如下所示:


我们首先通过”:“将题目和内容分离,然后做数据清洗过滤一些不好的训练样本,包含特殊符号、字数太少或太多的都要去除,最后在诗的前后分别加上开始和结束符号,用来告诉LSTM这是开头和结尾,这里用方括号表示。

poems = []
file = open(filename, "r")
for line in file:  #every line is a poem
    #print(line)
    title, poem = line.strip().split(":")  #get title and poem
    poem = poem.replace(' ','')
    if '_' in poem or '《' in poem or '[' in poem or '(' in poem or '(' in poem:
        continue
    if len(poem) < 10 or len(poem) > 128:  #filter poem
        continue
    poem = '[' + poem + ']' #add start and end signs
    poems.append(poem)
然后统计每个字出现的次数,并删除出现次数较少的生僻字

#counting words
allWords = {}
for poem in poems:
    for word in poem:
        if word not in allWords:
            a
  • 24
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 54
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值