【相关问题解答2】bert中文文本摘要代码:结果输出为一些重复的标点符号和数字

news2024/12/23 1:18:37

【相关问题解答2】bert中文文本摘要代码

  • 写在最前面
  • 问题1:tokenizer.py中encode函数,不能使用lower操作
    • 关于提问
    • 问题描述1
    • 一些建议1
    • 问题更新2:结果输出为一些重复的标点符号和数字
    • 一些建议2
      • 1. 数据检查和预处理
      • 2. 模型和训练配置
      • 3. 过拟合和欠拟合
      • 4. 检查训练过程
      • 5. 进行实验和记录
  • 问题2:结果输出为一些重复的标点符号和数字
    • 问题描述
    • 一些建议
      • 1. 检查模型输入
      • 2. 检查预训练模型和权重
      • 3. 检查模型配置
      • 4. 调试代码
      • 5. 代码和数据问题
      • 6. 运行示例数据
      • 7. 查找错误信息


请添加图片描述

🌈你好呀!我是 是Yu欸
🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~
🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长!

前些天发现了一个人工智能学习网站,内容深入浅出、易于理解。如果对人工智能感兴趣,不妨点击查看。

写在最前面

感谢大家的支持和关注。

最近好多人咨询之前博客【bert中文文本摘要代码】的相关代码报错问题,由于报错有一定的相似性,因此这里统一进行答复

之前的相关博客链接,感兴趣的uu可以点击跳转:
bert中文文本摘要代码(1)
bert中文文本摘要代码(2)
bert中文文本摘要代码(3)
【相关问题解答1】bert中文文本摘要代码:import时无法找到包时,几个潜在的原因和解决方法
【相关问题解答2】bert中文文本摘要代码:结果输出为一些重复的标点符号和数字

问题1:tokenizer.py中encode函数,不能使用lower操作

关于提问

题外话:这样清晰的提问真的爱了,描述的特别清晰,也方便根据我的一点经验给出一写些可供参考的想法建议

有些uu提问,让我回想起之前自己请教大佬hh
我的视角like:其实特别想给出点建议,但是有点“抽象”,描述的问题不具体
再加上可能我也没学到位,所以很难给出对应的问题解决方案,有点爱莫能助

让我想起了之前写的一篇博客笔记,感兴趣的uu可以看看:开发中遇到问题如何更好地提问

问题描述1

您好,我想请教一个问题,在tokenizer.py中,关于encode函数这里,将first_text先转为小写是为什么,我在调试时发现first_text类型为int,不能使用lower操作,请问应该怎么操作能行得通,还是我其他地方出了问题?

encode函数

    @classmethod
    def encode(cls, first_text, second_text=None, max_length=512):
        first_text = first_text.lower()
        first_text = unicodedata.normalize('NFD', first_text)

        first_token_ids = [cls.word2idx.get(t, cls.unk_id) for t in first_text]
        first_token_ids.insert(0, cls.cls_id)
        first_token_ids.append(cls.sep_id)

        if second_text:
            second_text = second_text.lower()
            second_text = unicodedata.normalize('NFD', second_text)

            second_token_ids = [cls.word2idx.get(t, cls.unk_id) for t in second_text]
            second_token_ids.append(cls.sep_id)
        else:
            second_token_ids = []

一些建议1

encode函数中遇到的问题可能是因为,您的使用场景和函数预期的输入类型不匹配。

encode函数设计的目的是对文本进行编码。函数中使用first_text.lower()是为了将输入文本统一转换为小写,这样做的目的是为了减少单词的变体数量,从而增强模型对不同形式的相同单词的识别能力。同时,使用unicodedata.normalize('NFD', first_text)是为了将文本规范化,这有助于统一字符的表示(例如,去除重音符号等)。

如果在您的调试过程中发现first_text的类型为int而不是预期的字符串类型,这很可能是因为在调用encode方法前,传入的参数类型不正确。要解决这个问题,请检查以下几个方面:

  1. 调用encode函数的位置: 确保在调用此函数之前,传入的first_textsecond_text参数确实是字符串类型的文本。如果您在使用过程中某个地方传入了整数(int),请仔细检查为什么会出现这种情况。

  2. 数据处理流程: 回顾和检查整个数据处理流程,确认在传入encode函数之前,所有的文本数据都正确地以字符串形式处理和传递。这可能涉及到对数据源和预处理步骤的审核。

  3. 参数检查: 为了提高代码的健壮性,您可以在encode函数的开头添加参数类型检查的代码。如果发现参数类型不符,可以抛出异常或转换类型。例如:

    if not isinstance(first_text, str):
        raise ValueError(f"Expected first_text to be a str, got {type(first_text)} instead.")
    

通过这些步骤,应该能够识别出问题所在,并确保encode函数能够接收正确类型的文本数据进行处理。
如果在检查和调整后仍然遇到问题,请仔细检查调用encode函数的上下文,确保没有其他地方错误地修改了数据类型。

问题更新2:结果输出为一些重复的标点符号和数字

我是在test.py中遇到的上述问题,后来我尝试使用str将其变为字符串类型,能够顺利运行了,但是test的结果很糟糕,形式为:“摘要:,,,,,,,”,就基本都是标点符号,不只是逗号还有句号问好等,甚至出现好几行的“的”,并没有出现摘要表情包,不知道是不是我的训练出了问题,训练结果的损失值也比较大,可能是参数调的不对,还请您提点我一下

一些建议2

看来已经解决了之前遇到的运行错误,但现在的问题是模型的测试结果不理想,主要输出是重复的标点符号和“的”字,没有生成有效的摘要。

这种情况通常指向几个潜在的问题,包括模型训练不足、数据处理不当或参数配置不适当。以下是一些改进模型表现和调试的建议:

1. 数据检查和预处理

  • 数据质量:确保训练数据质量高,数据中的文本摘要对应关系准确无误。数据的噪声和错误会直接影响模型的学习。
  • 数据预处理:确保文本数据的预处理步骤正确执行,包括但不限于分词、去除无关字符、文本规范化等。不恰当的预处理会导致模型无法学习到有效的信息。

2. 模型和训练配置

  • 参数调优:可能需要调整模型的学习率、批处理大小、训练周期数等参数。过大或过小的学习率都可能导致训练结果不佳。
  • 模型结构:确认模型结构是否适合您的任务。对于文本摘要任务,可能需要特定的注意力机制或更深的网络结构来捕捉长距离依赖关系。
  • 损失函数:检查使用的损失函数是否适合文本摘要任务,以及是否正确实现和应用。

3. 过拟合和欠拟合

  • 过拟合:如果训练数据很少,模型可能会过拟合,即只学习到训练数据上的特定模式,而无法泛化到未见过的数据。尝试增加数据量,或使用正则化技术如dropout。
  • 欠拟合:如果模型太简单或训练不足,可能会欠拟合,表现为训练和测试性能都不佳。增加模型复杂度或延长训练时间可能有所帮助。

4. 检查训练过程

  • 损失值监控:密切监控训练和验证损失值,以判断模型是否在学习。如果损失值减少很慢或不减少,可能需要调整学习率或其他参数。
  • 早期停止:如果验证损失开始增加,即出现过拟合,考虑使用早期停止来终止训练过程。

5. 进行实验和记录

  • 实验记录:记录每次实验的配置、训练过程和结果,以便比较不同配置的效果,找出最佳实践。
  • 逐步调整:一次只调整一个参数,这样可以更清楚地看到每个变更对模型性能的影响。

如果在调整以上方面后模型性能仍未改善,可能需要回到数据集和任务定义上来,重新审视数据集的质量和适用性,或考虑是否需要更多的数据或不同类型的数据来改进模型。

如果还有问题,欢迎继续交流探讨 ~

问题2:结果输出为一些重复的标点符号和数字

问题描述

题外话:如果方便的话,除了报错截图,还可以私信,把输出复制给我
(因为有些之前也没遇到过,方便百度、问gpt哈哈)

请教一下bert中文文本摘要的代码,我copy运行出来了,但是它是这样的

(venv) (base) Ps C:\UserslgiuyiminglDesktoplpython object\4-5.Bert-seg2seg> python ,\predict.py
Load Model config from file: /saved_models\config.json
Load Model weights from file: ./saved_models\pytorch_model.bin
,,,,1 1 ,,

在这里插入图片描述

一些建议

出现这种情况可能有几个原因,导致在运行BERT中文文本摘要代码时只得到了一些重复的标点符号和数字。

这里提供几个可能的解决方案和检查点,希望能帮助解决问题。

1. 检查模型输入

  • 确保输入数据格式正确,且已经按照模型要求进行了适当的预处理。例如,文本是否已经正确分词,是否添加了必要的特殊标记(如CLS、SEP等)。
  • 确认输入的文本不是空的或仅包含标点符号。

2. 检查预训练模型和权重

  • 确认您加载的预训练模型和权重文件是完整的,没有损坏,且与您的任务相匹配。损坏的模型文件或不匹配的模型权重可能导致输出异常。
  • 如果可能,尝试重新下载或使用不同的预训练模型进行测试。

3. 检查模型配置

  • 查看config.json文件,确认模型配置(比如词汇表大小、隐藏层维度等)是否与预训练模型一致。
  • 确认模型配置是否适合您的特定任务,比如文本摘要。

4. 调试代码

  • predict.py中添加打印语句,以便在模型推理过程中观察输入数据、模型输出以及任何中间变量的状态。这可以帮助您确定问题发生的具体位置。
  • 检查是否有任何数据处理或模型输出处理的步骤被错误实现或遗漏。

5. 代码和数据问题

  • 如果您是从网络上复制的代码,可能存在代码的版本不兼容或依赖库版本问题。确认您的环境与原代码的环境设置相匹配。
  • 确认输入数据的质量。如果输入数据不适合模型或存在问题,可能会导致输出结果异常。

6. 运行示例数据

  • 尝试使用原作者提供的示例数据或已知能正常工作的数据运行模型,以确定问题是出在数据还是代码上。

7. 查找错误信息

  • 如果程序产生了任何错误信息或警告,请仔细阅读这些信息,它们可能会提供问题的线索。

如果还有问题,欢迎继续交流探讨 ~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Anzo Capital昂首资本基础知识分享:货币对有几组

基础知识大分享,今天Anzo Capital昂首资本分享:外汇市场中的货币对有几组,都是哪些货币对?首先,货币对分为三组: 第一组:主要货币对 包括七种金融工具,占外汇市场所有交易业务的70%以上。 美…

大数据疑难问题2024

问题一: 集群部署一主一备,初始化操作没有问题,有两个namenode,再次重启显示只有node01有namenode 原因:Journalde服务需要在启动启动hdfs和yarn前再次启动 再次启动步骤: 1.启动3台节点的zookeeper,在3…

Thymeleaf 基本使用

01、Thymeleaf 官网地址:Thymeleafhttps://www.thymeleaf.org/ 简介 Thymeleaf是一种服务器端Java模板引擎,用于将数据渲染为HTML、XML、JavaScript等格式,并在Web浏览器中呈现给用户。 具体来说,Thymeleaf充当着视图层的角色&…

代码随想录day19(1)二叉树:对称二叉树(leetcode101)

题目要求:判断一棵二叉树是否轴对称 思路:如果二叉树是对称二叉树,说明此二叉树是可以左右翻转的,所以判断的时候我们同时遍历两棵子树,比较两棵子树的内、外侧是否相等,比较的时候我们实际上比较的是左孩…

Leedcode刷题——5 DFS+回溯

注&#xff1a;以下代码均为c 1. 电话号码的字母组合 思路&#xff1a; 例如&#xff1a;”23“ //1. 我自己写的 vector<string> letterCombinations(string digits) {if(digits "")return {};vector<string> state {""};string s;vecto…

读取txt文件并统计每行最长的单词以及长度

读取txt文件并统计每行最长的单词以及长度 题目 在 D:\\documant.txt 文本中,文件中有若干行英文文本,每行英文文本中有若干个单词&#xff0c;每个单词不会跨行出现每行至多包含100个字符,要求编写一个程序,处理文件,分析各行中的单词,找到每行中的最长单词&#xff0c;分别…

cmd 输入pip 提示不是内部或外部命令,也不是可运行的程序 或批处理文件。

解决办法&#xff1a; 把pthon的安装路径加入到环境变量中&#xff0c;重新打开cmd运行即可 比如&#xff1a;C:\Users\huanhuan\AppData\Local\Programs\Python\Python311\Scripts

测试环境搭建整套大数据系统(十:测试环境minio单节点部署)

一&#xff1a;部署minio 创建安装目录。 mkdir -p /data/server/minio/{bin,data,config,log}bin&#xff1a;二进制文件目录data&#xff1a;数据存储目录config&#xff1a;配置文件目录log&#xff1a;日志文件路径下载二进制安装包到bin目录&#xff0c;或者提前下载好拷…

edm邮件是什么意思:与普通邮件有何不同?

edm邮件是什么意思&#xff1f;如何优化邮件内容以提高转化率&#xff1f; edm邮件因其独特的营销价值而备受关注。那么&#xff0c;edm邮件究竟是什么意思呢&#xff1f;它与普通邮件又有哪些不同呢&#xff1f;下面&#xff0c;AokSend就来为大家介绍一下。 edm邮件的概念与…

KMP算法——解决字符串匹配问题

一般来说在你没学过KMP算法前&#xff0c;你解决字符串匹配问题会采用BF算法——BF算法&#xff0c;即暴力(Brute Force)算法&#xff0c;是普通的模式匹配算法&#xff0c;BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配&#xff0c;若相等&#xff0c;…

这三个长辈必备的手机模式,你给他们设置了吗?

您是否曾听家里长辈说过手机图标字体太小看起来很吃力&#xff1f;是否曾担心家里长辈在手机上误安装恶意软件&#xff1f;是否曾因为各种骚扰和推销电话而感到困扰&#xff1f;现在&#xff0c;这些问题不再是难题&#xff0c;因为有了华为手机的长辈关怀功能——一键开启放大…

运维打工人,兼职跑外卖的第二个周末

北京&#xff0c;晴&#xff0c;西南风1级。 前序 今天天气还行&#xff0c;赶紧起来&#xff0c;把衣服都洗洗&#xff0c;准备准备&#xff0c;去田老师吃饭早饭了。 一个甜饼、一个茶叶蛋、3元自助粥花费7.5。5个5挺吉利的。 跑外卖的意义 两个字减肥&#xff0c;记录刚入…

HCIP --- BGP 综合实验

目录 实验拓扑图&#xff1a; 实验要求&#xff1a; 实验步骤&#xff1a; 1.划分IP地址 R1的配置 R2的配置 R3的配置 R4的配置 R5的配置 R6的配置 R7的配置 R8的配置 2.检测查询IP地址 3.OSPF 建邻 4.查询OSPF 建邻是否成功 5.AS 2 内部BGP 建邻 a. AS 2 内部 IBG…

淘宝扭蛋机小程序:探索未知的惊喜之旅

你是否曾在商场里被那闪闪发光的扭蛋机吸引&#xff0c;却因为种种原因无法下手&#xff1f;现在&#xff0c;淘宝扭蛋机小程序带给你全新的扭蛋体验&#xff0c;让你随时随地都能感受到那份未知的惊喜。 淘宝扭蛋机小程序是一款集娱乐与购物于一体的全新应用。它汇聚了众多热…

(开源项目)OpenHarmony、社区共建Sample合入要求

1.新增Sample功能不能重复于当前已有Sample的功能&#xff1b; 2.新增Sample的工程推荐使用ArkTS语言编写&#xff1b; 3.新增Sample的工程推荐使用Stage模型编写&#xff1b; 4.新增Sample的工程中需要包含UI自动化用例&#xff08;ohosTest工程模块&#xff09;&#xff0…

Windows11安装NodeJS18并配置环境变量

从官网下载&#xff0c;或者从百度网盘下载 解压下载的zip包&#xff1a; 重命名为nodejs&#xff1a; 在nodejs中添加cache和global两个目录&#xff1a; 将nodejs和nodejs\global添加到环境变量&#xff1a; 打开终端&#xff0c;输入&#xff1a; node -v接着配置…

AI新工具(20240312) Midjourney官方发布角色一致性功能;免费且开源的简历制作工具;精确克隆语调、控制声音风格

1: Midjourney角色一致性功能 使人物画像在多方面高度一致成为可能。 Midjourney的角色一致性功能的使用方法如下&#xff1a; ⭐在你的输入指令后面加上 --cref URL&#xff0c;其中URL是你选择的角色图像的链接。 ⭐你可以通过 --cw 参数来调整参照的强度&#xff0c;范围…

基于Spring Boot的校园管理系统 ,计算机毕业设计(带源码+论文)

源码获取地址&#xff1a; 码呢-一个专注于技术分享的博客平台一个专注于技术分享的博客平台,大家以共同学习,乐于分享,拥抱开源的价值观进行学习交流http://www.xmbiao.cn/resource-details/1767745870094217218

高频:spring知识

1、bean的生命周期&#xff1f; 主要阶段 初始化 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh 信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext67424e82: startup date []; root of context hi…

品牌升级 | 图扑物联正式启用新LOGO

为进一步提升品牌形象&#xff0c;提高品牌影响力&#xff0c;2024年&#xff0c;我们迎来了一次重要的品牌升级——LOGO迭代。此次升级&#xff0c;在传承与创新中既保留了公司的核心精神&#xff0c;又融入了新的视觉语言&#xff0c;不仅代表了公司的新形象、新面貌&#xf…