基于seq2seq的中国对联自动配对技术实践

2023-10-07 10:10

本文主要是介绍基于seq2seq的中国对联自动配对技术实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Sequence to Sequence模型这种基于编码--解码的模型已经被谷歌成功应用于机器翻译上。而理论上任意的序列到序列的有监督问题都可以用这种模型。如上一篇文章写的古诗生成。包括这一篇实践性的对联配对。

对对联生成过程中,需要使用LSTM来实现,然后需要设置其编码与解码的相关参数。如下所示:

# 创建基本的LSTM单元
cells = [tf.contrib.rnn.DropoutWrapper(tf.contrib.rnn.BasicLSTMCell(embedding_dim), output_keep_prob=keep_prob) for i in range(3)]stacked_lstm = tf.contrib.rnn.MultiRNNCell(cells)with tf.variable_scope('decoders') as scope:# feed_previous=False, for trainingdecode_outputs, decode_state = tf.contrib.legacy_seq2seq.embedding_rnn_seq2seq(encode_input,decode_input,stacked_lstm,num_encoder_symbols=input_vocab_size,num_decoder_symbols=output_vocab_size,embedding_size=embedding_dim)scope.reuse_variables()decode_outputs_test, decode_state_test = tf.contrib.legacy_seq2seq.embedding_rnn_seq2seq(encode_input,decode_input,stacked_lstm,num_encoder_symbols=input_vocab_size,num_decoder_symbols=output_vocab_size,embedding_size=embedding_dim,feed_previous=True)loss_weights = [tf.ones_like(l, dtype=tf.float32) for l in labels]
loss = tf.contrib.legacy_seq2seq.sequence_loss(decode_outputs, labels, loss_weights, output_vocab_size)optimizer = tf.train.AdamOptimizer(0.001)
train_op = optimizer.minimize(loss)


(2) 测试例子如下:其中挂号内为原有的配对。

测试例子:
悼念先严三周年▁▁▁(痛表后生一片心▁▁▁) -> 诗留人间百年诗▁▁▁
百岁人歌长寿酒▁▁▁(万载花开太平春▁▁▁) -> 千秋再爱自长春▁▁▁
黄花酿酒三杯醉▁▁▁(绣阁增辉两烛燃▁▁▁) -> 碧水池霜百岁人▁▁▁
艳阳照大厦春华竞发▁(甘露洒人间瑞气勃生▁) -> 看日开新地壮天更高▁
延龄人种神仙草▁▁▁(纪竹新开甲子花▁▁▁) -> 蜜月欣逢百岁图▁▁▁


测试例子:
白发朱颜喜登上寿▁▁(丰衣足食乐享晚年▁▁) -> 丰山足食享享高秋▁▁
体健神恰晚景好▁▁▁(书声墨韵老来红▁▁▁) -> 天明萱草喜无鸯▁▁▁
大好良辰春光明媚▁▁(重开令甲上寿期颐▁▁) -> 文明盛世喜此如山▁▁
宝马迎来云外客▁▁▁(香车送出月中仙▁▁▁) -> 金牛犁栋喜雄风▁▁▁
莲子杯中金各酒▁▁▁(桃花盏上玉台诗▁▁▁) -> 桃香嫩柳柳丝凰▁▁▁

测试例子:
赏灯极乐繁华地▁▁▁(秉灯同游不夜天▁▁▁) -> 养手同来幸福花▁▁▁
寒笳送走人间腊▁▁▁(晓角吹回雪里春▁▁▁) -> 夜雨梅花蝶萝香▁▁▁
知识鼓满青春风帆▁▁(劳动展开爱情羽翼▁▁) -> 赤策文章浩气清风▁▁
贮在玉壶由人造▁▁▁(结成晶块夺天工▁▁▁) -> 誓知甘作口子余▁▁▁
灰飞薛管声谐凤▁▁▁(玉种蓝田兆梦熊▁▁▁) -> 何洁堪媳荐良仑▁▁▁

针对这两种测试,也验证了人工智能是否真的会创作。利用这种seq2seq写出的古诗或者对联,的确会出现训练集合外的句子,非常有意思,完全是创作的味道。不过呢,目前的仅仅还是测试例子,对语义上有些地方,特别是里面的思想和语义理解还有待深入。这可能需要更多的知识、常识、典故等的配合。

这篇关于基于seq2seq的中国对联自动配对技术实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/157641

相关文章

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

pytorch自动求梯度autograd的实现

《pytorch自动求梯度autograd的实现》autograd是一个自动微分引擎,它可以自动计算张量的梯度,本文主要介绍了pytorch自动求梯度autograd的实现,具有一定的参考价值,感兴趣... autograd是pytorch构建神经网络的核心。在 PyTorch 中,结合以下代码例子,当你

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片