AI写诗

引言:自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分。
而古诗在也是具有非凡的意义,诗文巨细无遗、感慨细腻地展现出了我们先祖的贫困场景,它们告诉他我们先祖曾多次是怎样贫困的。我十分失望地感受到许多普通人不太懂贫困。虽然我们的贫困早已超过新时期,但有很多好朋友没认同感。他们会享用贫困,会时尚贫困,会爱护转瞬即逝的爱情段落。而今人很会贫困,宋代的著名诗人词作真为不会贫困。那些小说对于普通人的具体贫困具备极大的灵感涵义。举例来说,宋代诗文告诉他我们,我们的先祖常常提醒都留意与生态环境的人与自然共处,他们热衷大自然,如今人常常与大自然疏远渐远。亲友聚会小酌,入了酒店观众席里面常常再行把地板拉上,漠视屋外的一轮春风——这感叹自绝于大自然。我们看杜甫怎样饮酒。有一次他独自一人喝闷酒,但是他携同着一壶酒回到月底下,回到花间:“花间一壶酒,独酌无相亲。举杯邀明月,对影成三人。”那是多么典雅的贫困桥段,多么大力的追求,他与大自然的的关系多么亲近啊!再行荐一个范例,欧阳修有一首绝句:“漠漠轻阴晚自开,青天白日映楼台。曲江水满花千树,有底忙时不肯来。”韩愈写出这首诗时,准备洛阳当官。樱的一天,他大约了张籍、杜甫两人到洛阳北郊的韶关池去游春。下午天气状况尚阴,到了上午就阵雨了。此曲河水涨得很剩,亭台与党旗倒映在水底,海峡两岸繁花怒放。以前张籍前去相见,杜甫却没来。于是欧阳修写信给反问他:你有事情在整天,怎么不来喜爱如此迷人的斜阳?我想要杜甫不会问自己管理工作整天,走不开,这也是我们普通人不去游春经常用来推脱的为由。杜甫是整天,那欧阳修整天不整天呢?杜甫这一年任中书侍御史,是正五品的吏。欧阳修呢,礼部尚书,官至二品。二品选择性取出星期到韶关赏春,三品吏终究没有星期?可见这是借机。所以关键性不出整天不忙,而是能否爱护这样的良机。唐末著名诗人王行瑜有两句诗写得不错:“若待皆无事,应难更有花。”不但生物体的时节迅速就现在了,爱情的时节也是转瞬即逝的。人的一生中过得十分慢,爱情就是由一个个段落构成的,这些段落都是转瞬即逝,必需要抓住,才能细心时尚,细心磨碎。如果把每一个有意涵的段落都只能敲现在,整个爱情就变为无关紧要的一堆残骸。大家可以多读宋代诗文,像古人那样时尚爱情。那么我们今天就将利用tensorflow搭建RNN生成古诗:
首先我们导入需要使用的库:

import tensorflow as tf
import numpy as np
import pickle

我们需要读取已经做好处理的数据集,数据集的内容如下,即为一段字典,

使用如下代码可以读取其数据内容并将标签和数字分别赋值给不同变量:

with open('dictionary.pkl', 'rb') as fr:[char2id, id2char] = pickle.load(fr)

然后定义几个变量后面会用到:

batch_size = 1
hidden_size = 256
num_layer = 2
embedding_size = 256

然后定义X,Y占位符,以及学习率变量为常数

X = tf.placeholder(tf.int32, [batch_size, None])
Y = tf.placeholder(tf.int32, [batch_size, None])
learning_rate = tf.Variable(0.0, trainable=False)

然后使用RNN中的函数建立神经元,tf.nn.rnn_cell.MultiRNNCell([list RNNcell], state_is_tuple=True).这个函数里面主要这两个参数,第一个参数就是输入的RNN实例形成的列表,即要对应数据集的标签和汉字,所以上面定义的num_layer为2,第二个参数就是让状态是一个元组,官方推荐就是用True。

cell = tf.nn.rnn_cell.MultiRNNCell([tf.nn.rnn_cell.BasicLSTMCell(hidden_size, state_is_tuple=True) for i in range(num_layer)], state_is_tuple=True)
initial_state = cell.zero_state(batch_size, tf.float32)

那么此时建立的神经元cell对象即为加载数据的张量对象。initial_state对象为词向量的初始化即为初始为0。
下面建立矩阵和索引对象,下面我将在代码部分注解:
#建立Tf矩阵为长宽为如下,里面的初始值为-1到1之间

embeddings = tf.Variable(tf.random_uniform([len(char2id) + 1, embedding_size], -1.0, 1.0))
#tf.nn.embedding_lookup函数的用法主要是选取一个张量里面索引对应的元素即在embeddings中索引X
embedded = tf.nn.embedding_lookup(embeddings, X)

建立输入和输出:
#cell: RNNCell的一个实例.inputs: RNN输入.如果time_major == False(默认), 则是一个shape为[batch_size, max_time, input_size]的Tensor,或者这些元素的嵌套元组。
#outputs: RNN输出Tensor,time_major == False(默认),这将是shape为[batch_size, max_time, cell.output_size]的Tensor.shape=(1, ?, 256)
#last_states: 最终的状态.一般情况下last_states的形状为 [batch_size, cell.output_size ]
outputs, last_states = tf.nn.dynamic_rnn(cell, embedded, initial_state=initial_state)
下面建立网络层,激活函数等变量:

#改变向量的长和宽,用来建立网络层
outputs = tf.reshape(outputs, [-1, hidden_size])
#添加全连接层输入神经元数为outputs,输出位神经元数units
logits = tf.layers.dense(outputs, units=len(char2id) + 1)
#使用softmax激活函数
probs = tf.nn.softmax(logits)
#重塑目标为任意行
targets = tf.reshape(Y, [-1])
#定义损失函数值为均方差函数
loss = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logits, labels=targets))
params = tf.trainable_variables()
#梯度下降算法和优化器减少损失
grads, _ = tf.clip_by_global_norm(tf.gradients(loss, params), 5)
optimizer = tf.train.AdamOptimizer(learning_rate).apply_gradients(zip(grads, params))
下面开始建立初始化会话和模型保存:
sess = tf.Session()
sess.run(tf.global_variables_initializer())
saver = tf.train.Saver()
saver.restore(sess, tf.train.latest_checkpoint('./'))

下面建立一个函数用来随机输出预测结果:

def generate():states_ = sess.run(initial_state)gen = ''c = '['while c != ']':gen += c#建立一个矩阵,矩阵第一列为数据集里的所有汉字 x = np.zeros((batch_size, 1))x[:, 0] = char2id[c]#建立模型训练probs_, states_ = sess.run([probs, last_states], feed_dict={X: x, initial_state: states_})probs_ = np.squeeze(probs_)pos = int(np.searchsorted(np.cumsum(probs_), np.random.rand() * np.sum(probs_)))#c为预测出来的对应字典标号1,2等等c = id2char[pos]return gen[1:]

最终输出的古诗为:
群山折岳首天然,水驿朦胧鬓水边。翠色边来应锁寂,春深飞入御龙泉。
在这里插入图片描述
下面也可以用关键词作诗:

def generate_with_head(head):states_ = sess.run(initial_state)gen = ''c = '['i = 0while c != ']':gen += cx = np.zeros((batch_size, 1))x[:, 0] = char2id[c]probs_, states_ = sess.run([probs, last_states], feed_dict={X: x, initial_state: states_})probs_ = np.squeeze(probs_)pos = int(np.searchsorted(np.cumsum(probs_), np.random.rand() * np.sum(probs_)))if (c == '[' or c == '。' or c == ',') and i < len(head):c = head[i]i += 1else:c = id2char[pos]return gen[1:]

比如我们的开头关键词为“人工智能”,输出一下:

print(generate_with_head('人工智能'))

做出的诗为:
人间正冷冰花雪,工事将秋燕亦忙。智从官吏贫前辈,能思大叔乐荒凉。
在这里插入图片描述
欢迎大家关注公众号,后天回复“AI写诗”获取源码
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/44216.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LangChain:使用自然语言查询数据库

目录 前言 LangChain介绍 为什么选择LangChain LangChain的结构 代理 SQL Database Agent 数据库模式和资源 导入必要的库 连接到数据库&#xff1a; 设置 LLM、工具包和代理执行器&#xff1a; 使用自然语言查询数据库&#xff1a; 完整代码示例&#xff1a; 结论…

如何在ONLYOFFICE v7.3中创建一个联系表单

自从ONLYOFFICE7.3强势更新版本以来&#xff0c;我一直都在为大家做一些测试&#xff0c;测试它的新功能&#xff0c;今天呢&#xff0c;又给大家带来一次新的测试&#xff0c;这次主要测试ONLYOFFICE7.3版本后的创建新的表单&#xff0c;我们来测试一下效果怎么样。 ONLYOFFIC…

chatgpt赋能python:Python配置Geany教程

Python配置Geany教程 作为一名拥有10年python编程经验的工程师&#xff0c;我发现Geany是一款非常适合Python编程的编辑器&#xff0c;因为它简单易用、轻量级和可定制性极强。在这篇文章中&#xff0c;我将向大家介绍如何在Geany中配置Python环境&#xff0c;以便更好地进行P…

fastadmin插件开发

微信插件开发&#xff0c;集成到fastadmin&#xff0c;使用如下命令 php think addon -a chat_gpt -c create 查看后台 自动生成如下目录 install.sql数据库文件 CREATE TABLE IF NOT EXISTS __PREFIX__mydemo_list (id int(10) NOT NULL AUTO_INCREMENT COMMENT ID,pid int(…

chatgpt赋能python:Python群发微信消息:解决方案

Python群发微信消息&#xff1a;解决方案 肆无忌惮的群发微信消息&#xff0c;是否是你目前所需的解决方案&#xff1f;如果是&#xff0c;那么你来对地方了。 Python是一门十分强大的编程语言&#xff0c;广泛用于各种人工智能、计算机视觉、机器学习等领域。Python可以用于…

关于校园霸凌,刚刚发生(第四天的进展)

在前一天的沟通结束后&#xff0c;下午与校长确定了放学乘坐的公交车的时间&#xff0c;却没有想到2022年05月12日上午&#xff0c;藏龙岛派出所副所长&#xff0c;当时接警110出警的韩警官和陈校长三人一同再次到我家里来了一趟&#xff0c;这次谈了50分钟&#xff0c;对话仍然…

非文学翻译理论与实践_2019年北京语言大学翻译学专业考研经验分享

​ 2019年北京语言大学翻译学专业经验贴 本人毕业于普通二本&#xff0c;去年考的是川外翻译理论与实践复试差四分&#xff0c;二战报考的是北语翻译学初试分不高&#xff0c;考完后没有信心&#xff0c;似乎有一种强大的力量在召唤我不要灰心于是初试考完后没几天开始了翻译打…

《SEO的艺术(原书第2版)》——2.1 理解搜索引擎结果

2.1 理解搜索引擎结果 在搜索营销领域&#xff0c;搜索引擎返回的满足查询要求的网页称作搜索引擎结果页&#xff08;Search Engine Result Page, SERP&#xff09;。每个搜索引擎返回结果的格式略有不同&#xff0c;并且包含垂直搜索结果&#xff08;针对查询中某些触发器的特…

Jetpack全套

Jetpack全套 一.Jetpack介绍1.特性&#xff1a;2.分类&#xff1a; 二.应用架构三.LifeCycle:1.简介2.简单使用3.实战&#xff1a;Dialog内存泄漏4.Lifecycle的应用&#xff08;0&#xff09;activity/fragment上面案例都是&#xff08;1&#xff09;Service&#xff08;2&…

13.相机和图像——聚焦于对象实战,不断变化的焦距,景深_3

目录 聚焦于对象实战 聚焦于对象实战-解决方案 不断变化的焦距 景深 聚焦于对象实战 让我们试着应用这个方程来聚焦一个物体。这是我们的透镜和图像平面&#xff08;如图&#xff09;。 现在我们有一个物体点p&#xff08;如图1&#xff09;&#xff0c;在点p 处投影到图像…

空间几何 开源_开源为所有人提供了空间

空间几何 开源 “长大后&#xff0c;我有点像个元帅&#xff0c;” 2020年开源社区女性奖的获得者梅根伯德桑尼克&#xff08;Megan Byrd-Sanicki&#xff09;笑着说。 “我一直是团结同学的人。我们要玩游戏。来吧&#xff0c;大家&#xff0c;我会教你规则。” 我还要留心观望…

OSChina 周三乱弹 —— 女友站在女友和闺蜜合影的照片前

2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单&#xff08;2019&#xff09;请戳&#xff08;这里&#xff09; 【今日歌曲】 clouddyy &#xff1a;分享井上あずみ的单曲《君をのせて (动画电影《天空之城》片尾曲 / 映画「天空の城ラピュタ」EDテーマ)》…

OSChina 周五乱弹 —— 胸贴和红薯的命运双子证明

2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单&#xff08;2018&#xff09;请戳&#xff08;这里&#xff09; 【今日歌曲】 原来如此绿 &#xff1a;分享习谱予的单曲《对你有点失望》 《对你有点失望》- 习谱予 手机党少年们想听歌&#xff0c;请使劲…

爱情和心碎结伴而行

阅读是治疗的隐喻&#xff0c;使神经暂时抽离现实&#xff0c;让我觉着自己是生活的智者、活得轻松。而《心碎是爱情最美的样子》是我在火车昏黄的灯光下读完的&#xff0c;它和印象里的爱情故事完全不同。很诧异竟然会有一本书对失恋后头脑风暴里的一堆信息进行归纳整理。应该…

web前端期末大作业 :HTML+CSS+JavaScript+Bootstrap实现响应式网站潮酷音乐网站

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

敏捷项目管理Scrum连载系列之深入浅出了解Scrum中的Sprint

什么是冲刺? 什么是冲刺?老程带你深入浅出了解Scrum中的Sprint 冲刺是Scrum团队努力完成一定数量工作的短暂时间。Sprint是Scrum和敏捷方法论的核心,正确实现Sprint将帮助敏捷团队轻松地交付更好的软件。 “有了Scrum,产品就可以通过一系列称为sprint的迭代来构建,这些迭…

谷歌CEO皮猜致歉,被解雇的AI伦理研究员:根本没有认错

因为涉及黑人面部研究争议的谷歌AI专家离职事件&#xff0c;还在继续发酵。 本周三&#xff0c;谷歌CEO皮猜&#xff08;Sundar Pichai&#xff09;在内部邮件中&#xff0c;对全体员工进行了道歉&#xff0c;并承诺对离职事件展开调查。 不过&#xff0c;被解雇的前谷歌AI伦…

涉性侵人员就业被限制,中国版《梅根法案》何时到来?

文 | 刘文昭 最近&#xff0c;上海市出台了《关于建立涉性侵害违法犯罪人员从业限制制度的意见》&#xff0c;除了对教师、医生、教练、保育员等直接对未成年人负有特殊职责的工作人员进行审查外&#xff0c;还将保安、门卫、驾驶员等纳入适用对象。 近年来&#xff0c;性侵、…

毕业论文实验方法重复,如何降重?

还记得之前一个新闻&#xff0c;农业大学大四毕业学长种的用来写毕业论文的瓜被学弟养的小羊吃了&#xff0c;学长痛哭延毕&#xff1b;还有天体物理的学长观察了4年的小行星突然炸了&#xff0c;预期实验结果和数据全失效&#xff0c;这赤裸裸的论文惨案。幸好我们现在只是实验…

论文降重修改句子软件

论文降重修改句子软件是什么&#xff1f;今天小编来跟大家分享一下&#xff0c;很多人都听说过写论文。尤其是对于即将毕业的同学&#xff0c;很多都在积极准备写论文。这篇论文一定要检查合格才能投稿&#xff0c;后期才能答辩成功。万一纸张重量不合格&#xff0c;就要减少。…