基于bert的自动对对联系统

目录

概述

演示效果

核心逻辑

使用方式

1.裁剪数据集

根据自己的需要选择

2.用couplet数据集训练模型

模型存储在model文件夹中

3.将模型转换为ONNX格式

4.打开index.html就可以在前端使用此自动对对联系统了。


本文所涉及所有资源均在传知代码平台可获取。

概述

这个生成器利用预训练的BERT模型,通过微调来生成中国对联。对联是一种中文传统文化形式,通常由上下联组成,具有一定的韵律和意境。

演示效果

在这里可以插入动图展示您的程序运行效果

核心逻辑

在这里可以粘贴您的核心代码逻辑:

# start
class CoupletDataset(Dataset):
    def __init__(self, data_path, tokenizer):
        self.data_path = data_path
        self.tokenizer = tokenizer
        self.inputs, self.labels = self.load_dataset()    def load_dataset(self):
        with open(self.data_path + '/in_cut.txt', 'r', encoding='utf-8') as fin, \
             open(self.data_path + '/out_cut.txt', 'r', encoding='utf-8') as fout:
            inputs = [line.strip() for line in fin.readlines()]
            labels = [line.strip() for line in fout.readlines()]
        return inputs, labels    def __len__(self):
        return len(self.inputs)    def __getitem__(self, index):
        input_text = self.inputs[index]
        label_text = self.labels[index]        input_tokens = tokenizer.tokenize(input_text)
        label_tokens = tokenizer.tokenize(label_text)        # 拼接成BERT模型需要的输入格式
        input_tokens = ['[CLS]'] + input_tokens + ['[SEP]']
        label_tokens = label_tokens + ['[SEP]']        # 将token转换为对应的id
        input_ids = tokenizer.convert_tokens_to_ids(input_tokens)
        label_ids = tokenizer.convert_tokens_to_ids(label_tokens)        # 确保input_ids和label_ids的长度一致
        max_length = max(len(input_ids), len(label_ids))
        input_ids.extend([0] * (max_length - len(input_ids)))
        label_ids.extend([0] * (max_length - len(label_ids)))        # 将input_ids和label_ids转换为tensor
        input_ids = torch.tensor(input_ids).unsqueeze(0).to(device)  # 增加batch维度
        label_ids = torch.tensor(label_ids).unsqueeze(0).to(device)  # 增加batch维度        return input_ids, label_ids

使用方式

1.裁剪数据集

修改lines_to_read = 1000

选择你想要的数据集大小,这里采用了1000条对联

原始数据集有70万条对联,根据需求还有电脑性能选择

根据自己的需要选择

2.用couplet数据集训练模型

在终端中输入命令 python bert.py,训练模型并监控损失变化。训练完成后会生成损失图像,并将模型保存在 model 文件夹中。

最终出来loss损失图像

模型存储在model文件夹中

3.将模型转换为ONNX格式

使用命令 python app.py 将存储的模型转换为ONNX格式,以便在前端调用。

4.打开index.html就可以在前端使用此自动对对联系统了。

在输入框中输入上联。

感觉不错,点击我,立即使用

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

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

相关文章

学习c语言第十八天(指针笔试题)

一维数组 字符数组 char*p"abcdef" p里面放的是a元素的地址 二维数组 指针笔试题 第一题 2 5 第二题 第三题 第四题 第五题 第六题 10 5 第七题 at 第八题 POINT ER ST EW

迪文屏使用记录

项目中要使用到迪文屏,奈何该屏资料太琐碎,找的人头皮发麻,遂进行相关整理。 屏幕:2.4寸电容屏 型号:DWG32240C024_03WTC 软件:DGUS_V7.647 1.竖屏横显 打开软件左下方的配置文件生成工具&#…

AI绘画【stable diffusion 1.5 Lora模型】摄影级真人写真,逼真大片!唯美!看完被震撼了!

前言 今天是鲜花摄像方面推荐的第四款SD 1.5 Lora模型,也是近日鲜花方面最后一款推荐的模型——**NAL_花海与车_摄影系列。**该款模型灵感来自于一张坐在车里的艺术照,lora主要作用于添加了花植物之类的填充效果,还有车内的坐姿,…

网络安全等级保护:上下文中的API安全性

网络安全等级保护:什么是API安全? 上下文中的API安全性 应用程序编程接口安全性位于多个安全学科的交叉点,如图所示。其中最重要的是以下三个领域: 1.信息安全(InfoSec)涉及在信息的整个生命周期中保护信…

智能城市管理系统设计思路详解:集成InfluxDB、Grafana和MQTTx协议(代码示例)

引言 随着城市化进程的加快,城市管理面临越来越多的挑战。智能城市管理系统的出现,为城市的基础设施管理、资源优化和数据分析提供了现代化的解决方案。本文将详细介绍一个基于开源技术的智能城市管理系统,涵盖系统功能、技术实现、环境搭建…

【C++】选择结构- 嵌套if语句

嵌套if语句的语法格式&#xff1a; if(条件1) { if(条件1满足后判断是否满足此条件) {条件2满足后执行的操作} else {条件2不满足执行的操作} } 下面是一个实例 #include<iostream> using namespace std;int main4() {/*提示用户输入一个高考分数&#xff0c;根据分…

市面上的开放式耳机为什么很少?开放式耳机推荐分享

市面上开放式耳机少是有不少原因的。 首先&#xff0c;开放式耳机在隔音和防漏音方面存在挑战。对于很多用户来说&#xff0c;在公共场合使用耳机时&#xff0c;不希望声音外泄影响他人&#xff0c;也不希望外界声音过多干扰自己。而开放式耳机在这两点上较难做到平衡&#xf…

基于Spring boot + Vue的加油站系统

项目名称&#xff1a;加油站系统 作者的B站地址&#xff1a;程序员云翼的个人空间-程序员云翼个人主页-哔哩哔哩视频 csdn地址&#xff1a;程序员云翼-CSDN博客 1.项目技术栈&#xff1a; 前后端分离的项目 后端&#xff1a;Springboot MybatisPlus 前端&#xff1a;Vue…

【网络协议】HTTP协议详解

文章目录 一、概念 二、简史 三、特点 四、工作流程 五、使用Wireshark抓TCP、http包 六、头域 6.1、请求信息&#xff1a; 6.2、请求方法 6.3、响应消息 6.4、响应头域 6.5、HTTP常见的请求头 6.6、HTTP常见的响应头 七、解决HTTP无状态的问题 7.1、通过Cookies保存状态信息 7…

Redis 缓存中间件

目录 概念 安装redis redis基本命令 给redis添加密码 基础数据类型 string类型 list列表类型 set创建&#xff08;一个键对应一个值&#xff09; set 创建数据 get 获取数据 keys * 展示所有的键 exists 判断键值是否存在 type 查看数据的类型 del 删除键 rename…

springboot集团门户网站--论文源码调试讲解

第2章 开发环境与技术 开发集团门户网站需要搭建编程的环境&#xff0c;也需要通过调查&#xff0c;对各个相关技术进行分析&#xff0c;选取适合本系统开发的技术与工具。 2.1 MySQL数据库 MySQL是一种具有安全系数、安全系数、混合开发性、高效化等特征的轻量关联数据库智…

sqli-labs(6-10)关通关讲解

sqli-labs(6-10)关通关讲解 Less-6 方法一&#xff1a;手工注入 1.判断闭合 http://localhost/sqli-labs/Less-6/?id1" //报错 http://localhost/sqli-labs/Less-6/?id1" -- //正常 http://localhost/sqli-labs/Less-6/?id1" and 11 -- http://localhos…

Python批量移除Word文档水印

Word文档被广泛用于各种正式与非正式的沟通场合。有时候这些文档中可能包含着不再需要的水印&#xff0c;比如早期的草稿标记、保密声明或是仅供预览的信息等。这些水印的存在可能会干扰文档的阅读体验&#xff0c;甚至在某些情况下导致信息传达的不准确或产生误解。移除Word文…

Canva收购Leonardo.ai,增强生成式AI技术能力

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

数据中台建设之数据汇聚与数据交换

目录 一、数据汇聚 1.1 概述 1.2 汇聚数据类型 1.2.1 结构化数据 1.2.2 半结构化数据 1.2.3 非结构化数据 1.3 汇聚数据模式 1.3.1 概述 1.3.2 离线 1.3.3 实时 1.4 汇聚数据方法 1.4.1 概述 1.4.2 ETL 1.4.3 ELT 1.5 汇聚数据工具 1.5.1 概述 1.5.2 Flink CDC…

AI多模态模型架构之输出映射器:Output Projector

〔探索AI的无限可能&#xff0c;微信关注“AIGCmagic”公众号&#xff0c;让AIGC科技点亮生活〕 本文作者&#xff1a;AIGCmagic社区 刘一手 前言 AI多模态大模型发展至今&#xff0c;每年都有非常优秀的工作产出&#xff0c;按照当前模型设计思路&#xff0c;多模态大模型的…

KVM虚拟化平台

一、概述 KVM 自 Linux 2.6.20 版本后就直接整合到 Linux 内核&#xff0c;它依托 CPU 虚拟化指令集(如InteI-VT、AMD-V)实现高性能的虚拟化支持。由于与 Linux 内核高度整合&#xff0c;因此在性能、安全性、兼容性、稳定性上都有很好的表现。 二、KVM原理简介 广义的 KVM 实…

【CN】Argo 持续集成和交付(二)

7.25.通知 概述 Argo CD 通知持续监控 Argo CD 应用程序&#xff0c;并提供一种灵活的方式来通知用户应用程序状态的重要变化。使用灵活的触发器和模板机制&#xff0c;可以配置何时发送通知以及通知内容。Argo CD 通知包含有用的触发器和模板目录。因此&#xff0c;可以直接…

linux网络配置与管理

目录 前言 查看网络配置 查看网络接口地址&#xff1a;&#xff08;ifconfig&#xff09; 查看DNS地址&#xff08;cat /etc/resolv.conf&#xff09; 查看网关地址&#xff08;ip route&#xff09; 启用&#xff0c;禁用网卡&#xff08;ifup、ifdown&#xff09; 查看…

day17(nginx反向代理)

反向代理 安装nginx 1.26.1 平滑升级 负载均衡 1.nginx 反向代理配置 反向代理&#xff1a;⽤户直接访问反向代理服务器就可以获得⽬标服务器 &#xff08;后端服务器&#xff09;的资源。 反向代理效果&#xff1a;当访问200主机&#xff08;web1&#xff09;&#xff0c;&a…