当前位置: 首页 > news >正文

基于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.lryc.cn/news/408827.html

相关文章:

  • js-vue中多个按钮状态选中类似于复选框与单选框实现
  • ObservableCollection新增数据前判断数据是否存在
  • DBus快速入门
  • SQL Server 设置端口号:详细步骤与注意事项
  • Python面试题:结合Python技术,如何使用NetworkX进行复杂网络分析
  • 【C#/C++】C#调C++的接口,给C++传结构体数组
  • ctfshow SSTI注入 web369--web372
  • Llama + Dify,在你的电脑搭建一套AI工作流
  • 洛谷 P9854 [CCC 2008 J1] Body Mass Index
  • Redis面试三道题目
  • redis的使用场景-分布式锁
  • 知识库系统全解析:2024年最佳9款
  • 猫头虎分享:Numpy知识点一文带你详细学习np.random.randn()
  • QT 关于QTableWidget的常规使用
  • PyCharm 常用 的插件
  • 理解 HTTP 请求中 Query 和 Body 的异同
  • 【AI大模型】 企业级向量数据库的选择与实战
  • LangChain开发框架并学会对大型预训练模型进行微调(fine-tuning)
  • VMware安装(有的时候启动就蓝屏建议换VM版本)
  • AV1技术学习:Quantization
  • vllm部署记录
  • HTML前端 盒模型及常见的布局 流式布局 弹性布局 网格布局
  • 网络安全 DVWA通关指南 DVWA Command Injection(命令注入)
  • VUE3学习第三篇:报错记录
  • CentOS怎么关闭自动锁屏?
  • vscode 环境
  • 浏览器自动化测试工具selenium——爬虫操作记录
  • 微信小程序配置访问服务器失败所发现的问题及解决方案
  • javaEE(1)
  • 极简Springboot+Mybatis-Plus+Vue零基础萌新都看得懂的分页查询(富含前后端项目案例)