transformers和bert实现微博情感分类模型提升

项目源码获取方式见文章末尾! 600多个深度学习项目资料,快来加入社群一起学习吧。

《------往期经典推荐------》

项目名称
1.【LSTM模型实现光伏发电功率的预测】
2.【卫星图像道路检测DeepLabV3Plus模型】
3.【GAN模型实现二次元头像生成】
4.【CNN模型实现mnist手写数字识别】
5.【fasterRCNN模型实现飞机类目标检测】
6.【CNN-LSTM住宅用电量预测】
7.【VGG16模型实现新冠肺炎图片多分类】
8.【AlexNet模型实现鸟类识别】
9.【DIN模型实现推荐算法】
10.【FiBiNET模型实现推荐算法】
11.【钢板表面缺陷检测基于HRNET模型】


1. 项目简介

本项目旨在构建一个基于BERT(Bidirectional Encoder Representations from Transformers)模型的中文情感分类系统,能够自动分析社交媒体上的文本内容并预测其情感倾向。随着社交媒体的普及,用户生成的大量文本数据中蕴含着丰富的情感信息,因此能够有效地挖掘和分析这些情感数据对于市场分析、用户反馈管理以及公共情感动态监测等领域具有重要意义。BERT模型是目前最为广泛使用的自然语言处理模型之一,依赖于强大的Transformer结构,可以充分利用上下文信息,理解语言的复杂语义关系,从而在各类文本分类任务中表现出色。本项目通过对微博数据集进行处理和标注,应用BERT模型实现对不同情感(积极、中立、消极)进行分类预测。在具体实现中,项目使用了预训练的BERT基础模型作为文本表示学习的核心,结合PyTorch深度学习框架来搭建模型,并使用数据清洗、分词处理、模型训练、评估等完整流程,旨在为中文情感分类提供一个高效的解决方案,提升文本情感分类的准确率和泛化能力。最终,该模型可以用于实时情感分析、品牌口碑监控以及社交媒体情感热点检测等实际应用场景。

2.技术创新点摘要

本项目在中文情感分类的实现过程中,采用了一系列创新性技术手段和模型设计,使其能够在处理中文文本时更高效、更精准地进行情感分析。首先,该项目基于BERT模型进行文本情感分类,通过BERT的双向编码器(Bidirectional Encoder)来捕捉文本中上下文之间的依赖关系,从而更准确地理解情感信息。相比传统的单向LSTM或GRU模型,BERT能够同时关注句子前后文的所有词汇关系,因而在情感分类任务中表现优异。项目中引入了BertForSequenceClassification类,并在其基础上通过自定义数据集和数据加载方式,确保了模型在训练过程中能够处理不同长度的文本输入并防止信息丢失。

其次,项目使用了多种预处理策略来提升数据质量,包括中文分词、去除停用词等,这些处理步骤能够在保证文本完整性的同时去除无关信息,从而减少模型的计算负担并提升分类效果。创新点之一是利用了自定义的情感标签映射策略,将原始的情感标签(-1、0、1)重新映射为新的类别标签(1、0、2),这种方式可以更好地处理情感极性的差异性,有效区分消极情感、积极情感和中性情感。

另外,本项目采用了AdamW优化器,并结合了学习率调度器(get_linear_schedule_with_warmup)进行动态学习率调整,从而在模型训练中能够有效避免过拟合与梯度爆炸问题。同时,通过梯度裁剪(torch.nn.utils.clip_grad_norm_)控制梯度范数,进一步稳定了训练过程。最后,项目在模型训练和评估中使用了自定义的WeiboDataset数据集类,配合DataLoader进行高效的数据加载和批量处理,并使用了多种性能指标(如交叉熵损失和准确率)对模型表现进行了全面评估,为整个系统的实用性和拓展性提供了强有力的支撑。

在这里插入图片描述

3. 数据集与预处理

本项目的数据集来源于微博平台中的情感分类数据,数据集中的文本样本均为中文语句,包含了大量的网络用语、口语化表达及各种情感符号,具有高度非结构化、短文本、情感极性多变等特点。数据集共包含超过10万条标注样本,每条样本包含“微博中文内容”和“情感倾向”两个主要字段,其中“情感倾向”字段用来表示该文本的情感标签,分为“积极(1)”、“中立(0)”和“消极(-1)”三种情感类别。

在数据预处理阶段,首先进行缺失值处理,对于“微博中文内容”列中存在的缺失值样本进行删除,确保输入文本的完整性和有效性。接着,应用中文分词工具Jieba对文本进行分词处理,将原始的连续文本拆分为更具语义性的词汇单元,并基于停用词表去除无关词汇,从而降低模型的噪音干扰。去停用词步骤能显著减少诸如“的”、“是”、“了”等常见字词对情感分类任务的影响。

此外,为了将原始情感标签映射为更适合模型训练的数值标签,本项目采用了自定义标签映射策略,将“消极”标记为1、“中立”标记为0、“积极”标记为2,进而便于模型处理不同情感极性的区分。经过上述步骤处理后,生成了新的文本表示列“tokens”,作为模型输入的特征列。

最后,模型还采用了BERT分词器对分词后的文本进行进一步编码,将每条文本转换为固定长度的向量表示,并生成了相应的注意力掩码,用于处理不同长度文本的填充,从而提升了模型处理不同文本长度的鲁棒性和效率。整个数据预处理流程保证了文本特征的完整性,增强了模型的泛化能力。

4. 模型架构

  1. 模型结构的逻辑

本项目采用了基于预训练BERT模型(Bidirectional Encoder Representations from Transformers)的情感分类模型。具体地,模型结构为BertForSequenceClassification,在BERT的基础结构上添加了一个线性分类层,用于对输入文本进行情感分类。

  • BERT模型结构:BERT使用了多层Transformer结构,每层包含两个主要子模块:多头自注意力机制(Multi-Head Self-Attention)和前馈神经网络(Feed-Forward Neural Network),可以捕捉上下文中任意两个单词之间的依赖关系。其输入为一组嵌入向量,输出为每个词的上下文表示。BERT的输入表示公式如下:
  • Input Embedding = Token Embedding + Position Embedding + Segment Embedding \text{Input Embedding} = \text{Token Embedding} + \text{Position Embedding} + \text{Segment Embedding} Input Embedding=Token Embedding+Position Embedding+Segment Embedding
  • BERT模型中使用的多头自注意力机制可以表示为:
  • Attention ( Q , K , V ) = softmax ( Q K T d k ) V \text{Attention}(Q, K, V) = \text{softmax} \left( \frac{QK^T}{\sqrt{d_k}} \right) V Attention(Q,K,V)=softmax(dk QKT)V
  • 其中,Q,K,V 分别表示查询(Query)、键(Key)、值(Value)矩阵,dk 为键向量的维度。
  • 情感分类层:在BERT的[CLS]标记输出向量上添加一个线性层(Linear Layer),其计算公式为:
  • logits = W ⋅ h [ C L S ] + b \text{logits} = W \cdot h_{[CLS]} + b logits=Wh[CLS]+b
  • 其中,h[CLS] 为BERT的输出中[CLS]标记对应的隐藏层向量表示,W 和 b 分别为线性层的权重和偏置。最终,模型通过softmax函数生成三个类别的概率分布,用于预测情感倾向:
  • Probability = softmax ( logits ) \text{Probability} = \text{softmax}(\text{logits}) Probability=softmax(logits)
  1. 模型的整体训练流程

模型的训练流程主要包括数据加载、前向传播、损失计算、反向传播、梯度更新和模型评估几个步骤。

  • 数据加载:利用自定义的WeiboDataset类和DataLoader对数据进行批量加载,将输入文本转化为模型能够接受的张量(input_ids和attention_mask)。
  • 前向传播:将每个批次的数据(input_ids和attention_mask)输入到BERT模型中,BERT通过其多层Transformer结构计算文本的上下文表示,并输出隐藏状态。然后将[CLS]标记对应的隐藏状态传递给线性分类层,生成情感分类的logits。
  • 损失计算:模型采用交叉熵损失函数(Cross Entropy Loss)来度量模型预测的logits和真实标签之间的误差。交叉熵损失函数定义如下:
  • Loss = − 1 N ∑ i = 1 N ∑ j = 1 C y i j ⋅ log ⁡ ( p i j ) \text{Loss} = -\frac{1}{N} \sum_{i=1}^{N} \sum_{j=1}^{C} y_{ij} \cdot \log(p_{ij}) Loss=N1i=1Nj=1Cyijlog(pij)
  • 其中,N 为样本数量,C 为类别数,yij 为样本 i 在类别 j 上的真实标签,pij 为模型对样本 i 属于类别 j 的预测概率。
  • 反向传播与优化:利用AdamW优化器和学习率调度器get_linear_schedule_with_warmup进行梯度更新,并在每次梯度更新后通过梯度裁剪(torch.nn.utils.clip_grad_norm_)控制梯度的范数,防止梯度爆炸和模型过拟合。
  • 模型评估:训练完成后,利用准确率(Accuracy)作为主要评估指标进行模型性能衡量。准确率的计算公式为:
  • Accuracy = Number of Correct Predictions Total Number of Predictions \text{Accuracy} = \frac{\text{Number of Correct Predictions}}{\text{Total Number of Predictions}} Accuracy=Total Number of PredictionsNumber of Correct Predictions
  • 在测试集上,模型根据输入的文本特征预测情感类别,并通过对比真实标签计算最终的分类准确率。

模型训练与评估流程总结:模型训练包含三个主要阶段:数据预处理、模型训练和模型评估。每个epoch中,模型在训练集上进行多次前向传播与反向传播更新参数,然后在验证集上评估性能,记录每个epoch的损失和准确率。训练结束后,模型在测试集上进行最终评估,并输出测试准确率作为整体性能指标。

5. 核心代码详细讲解

  1. 数据预处理模块
读取CSV文件,读取前1000行,并选择指定的两列:'微博中文内容'和'情感倾向'
df = pd.read_csv(r'./nCoV_100k_train.labled.csv', usecols=['微博中文内容', '情感倾向'])
  • 这段代码通过pandasread_csv函数读取了包含情感分类数据的CSV文件,并只选择了两列数据:微博中文内容(表示微博文本内容)和情感倾向(表示情感标签)。这种选择列的方式能显著提升数据加载速度,并节省内存开销。
检查'微博中文内容'列中是否有缺失值,并统计缺失值的数量
content_missing = df['微博中文内容'].isna().sum()
print(f"微博中文内容列中缺失值的数量: {content_missing}")
  • 检查数据中是否存在缺失值的行,通过isna()函数判断每个文本是否为NaN(空值),然后使用sum()函数对所有行进行汇总。此步骤能够有效过滤掉无效数据,确保数据的完整性。
删除包含缺失值的行,inplace=True表示直接在原DataFrame上进行修改
df.dropna(inplace=True)
  • 该行代码删除了数据集中所有包含缺失值的行。inplace=True表示直接修改原DataFrame对象,而不是返回一个新的DataFrame,从而节省了额外的内存。
定义数据预处理函数,用于分词和去除停用词def preprocess_text(text):
    words = jieba.lcut(text)  使用jieba进行中文分词
    words = [word for word in words if word not in stop_words]  去除停用词return ' '.join(words)  返回处理后的字符串
  • preprocess_text函数是一个文本预处理的核心函数:首先,使用jieba.lcut()对输入的文本进行分词操作(将整段文本切分为更小的词汇单元)。接着,利用列表推导式过滤掉在stop_words(停用词集合)中的词汇(例如“的”、“是”等无实际语义的词汇)。最后,函数将剩余词汇重新组合成一个字符串格式,作为分词后的结果。
对'微博中文内容'列应用预处理函数,将分词后的结果存入新列'tokens'
df['tokens'] = df['微博中文内容'].apply(preprocess_text)
  • 使用apply方法将preprocess_text函数应用到微博中文内容列的每一个文本中,并将处理后的结果存储到新的列tokens中。这样能够为后续的特征输入准备更规范的分词文本。
定义情感倾向的标签映射,将原始标签映射为新的数值标签
label_map = {0: 0, -1: 1, 1: 2}
df['label'] = df['情感倾向'].map(label_map)  将'情感倾向'列映射为新的'label'列
  • 定义了一个标签映射字典label_map,并使用map()函数将情感倾向列中的原始标签(0、-1、1)映射为新的数值标签(0、1、2)。这样可以更方便地进行多类别分类模型的训练和评估。
  1. 模型架构构建
初始化BERT的分词器
tokenizer = BertTokenizer.from_pretrained(model_directory)
  • 初始化BERT分词器(BertTokenizer),从预定义的模型目录(bert-base-chinese)中加载预训练的BERT分词器。这是模型输入预处理的关键步骤,能够将自然语言文本转换为BERT模型能够接受的张量格式(ID序列)。
定义自定义数据集类WeiboDatasetclass WeiboDataset(Dataset):def init(self, texts, labels, tokenizer, max_len=128):
        self.texts = texts
        self.labels = labels
        self.tokenizer = tokenizer
        self.max_len = max_len
def getitem(self, idx):
        text = str(self.texts[idx])  将文本转换为字符串格式
        label = self.labels[idx]     获取对应的标签使用分词器将文本编码为BERT输入格式
        encoding = self.tokenizer.encode_plus(
            text,
            add_special_tokens=True,       添加特殊标记 [CLS] 和 [SEP]
            max_length=self.max_len,       设置最大长度
            padding='max_length',          使用最大长度进行填充
            truncation=True,               截断长文本
            return_attention_mask=True,    返回attention_mask
            return_tensors='pt'            返回PyTorch张量
        )return {'input_ids': encoding['input_ids'].flatten(),  [max_len]'attention_mask': encoding['attention_mask'].flatten(),  [max_len]'labels': torch.tensor(label, dtype=torch.long)  标签转为张量格式
        }
  • 该自定义数据集类WeiboDataset用于将原始的文本数据和标签转换为BERT可接受的输入格式。通过调用tokenizer.encode_plus()对每条文本进行编码,返回的input_ids(词ID序列)和attention_mask(注意力掩码)是模型的核心输入张量。
加载预训练的BERT模型,并在其顶部添加一个线性分类器
model = BertForSequenceClassification.from_pretrained(model_directory, num_labels=3)
  • 加载预训练的BERT模型(bert-base-chinese),并在其基础上添加一个线性分类器,用于处理三类情感标签(num_labels=3)。该模型的最后一层线性层直接对BERT生成的[CLS]向量进行分类,输出三类情感标签的概率分布。
  1. 模型训练与评估
定义优化器和学习率调度器
optimizer = AdamW(model.parameters(), lr=2e-5, correct_bias=False)
scheduler = get_linear_schedule_with_warmup(
    optimizer,
    num_warmup_steps=0,
    num_training_steps=total_steps
)
  • AdamW优化器在权重衰减策略上比传统的Adam更优,能够更好地防止模型过拟合。学习率调度器(get_linear_schedule_with_warmup)可以在训练过程中动态调整学习率,防止学习率过高或过低导致模型训练震荡。

6. 模型优缺点评价

优点:
  1. 预训练模型优势:本项目基于BERT模型进行情感分类,BERT具备强大的语言理解能力,能够利用双向Transformer结构捕捉文本中复杂的上下文关系。这使得模型在处理长文本及多变的语义表达时表现优异,具有很高的准确率和鲁棒性。
  2. 数据预处理与特征工程优化:项目中采用了中文分词、去停用词等预处理手段,使模型能够专注于更有意义的词汇,提高了特征输入的有效性。此外,利用自定义标签映射策略使得情感极性区分更加精细,降低了模型的分类难度。
  3. 动态学习率调度和梯度裁剪:在训练过程中,使用了AdamW优化器并结合学习率调度策略,能够有效防止模型训练中的过拟合问题;而梯度裁剪则防止了梯度爆炸,提高了训练过程的稳定性。
缺点:
  1. 计算资源消耗大:BERT模型参数量巨大,对显存和计算资源要求较高,在模型训练和推理时都需要强大的硬件支持,这可能导致小型企业或个人用户难以部署该模型。
  2. 缺乏特定领域的细粒度调优:BERT作为通用语言模型,虽然具有较好的泛化能力,但在特定领域(如微博文本的口语化表达、网络用语等)仍可能存在误判,模型对某些情感符号的处理不够准确。
  3. 数据依赖性强:模型需要大量标注数据进行微调才能发挥最佳性能,如果标注数据质量不高,可能导致模型表现不稳定。
改进方向:
  1. 模型结构优化:可以尝试使用更轻量级的中文预训练模型(如ALBERT、TinyBERT),在降低计算资源消耗的同时保持较高的分类效果。
  2. 超参数调整:优化超参数(如学习率、batch size、权重衰减系数等),结合网格搜索或贝叶斯优化技术,寻找最优组合提升模型性能。
  3. 数据增强策略:引入更多的文本数据增强方法(如同义词替换、随机插入/删除等),丰富训练数据,从而提升模型的泛化能力。

↓↓↓更多热门推荐:
基于YOLOv8-deepsort算法的智能车辆目标检测车辆跟踪和车辆计数

更多项目资料(数据集、代码、教程)请点击下方↓↓↓

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Apache Zookeeper】

一、简介 1、场景 如何让⼀个应⽤中多个独⽴的程序协同⼯作是⼀件⾮常困难的事情。开发这样的应⽤,很容易让很多开发⼈员陷⼊如何使多个程序协同⼯作的逻辑中,最后导致没有时间更好地思考和实现他们⾃⼰的应⽤程序逻辑;又或者开发⼈员对协同…

了解lwip

lwIP是一个小型的开源的TCP/IP协议栈(精简版的TCP/IP协议),博客借用了其他博客的内容在此声明。 TCP/IP协议栈结构 应用层:HTTP,MQTT,NTP、FTP....... 传输层:TCP协议(用于不可靠设备可靠传输)&#xff…

基于Springboot+微信小程序的房产交易租赁服务平台设计与实现 (含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 该系统…

《Linux运维总结:基于ARM64+X86_64架构CPU使用docker-compose一键离线部署redis 6.2.14容器版哨兵集群》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:《Linux运维篇:Linux系统运维指南》 一、部署背景 由于业务系统的特殊性,我们需要面向不通的客户安装我们的业务系统&…

【计算机网络 - 基础问题】每日 3 题(五十九)

✍个人博客:https://blog.csdn.net/Newin2020?typeblog 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞…

Dolphins 简介——一种新颖的多模态语言模型

背景问题 现在的自动驾驶系统在处理复杂的多变的现实驾驶场景时,往往缺乏人类驾驶员的全面理解,及时学习和适应能力以及错误纠正能力,为了实现能够像人类一样理解和响应复杂现实世界场景的完全自主车辆(AV)一直是一个重要目标。Dolphins 是一…

LabVIEW汽车状态监测系统

LabVIEW汽车状态监测系统通过模拟车辆运行状态,有效地辅助工程师进行故障预测和维护计划优化,从而提高汽车的可靠性和安全性。 项目背景: 现代汽车工业面临着日益增长的安全要求和客户对于车辆性能的高期望。汽车状态监测系统旨在实时监控汽…

面试经典 150 题.P26. 删除有序数组中的重复项(003)

本题来自:力扣-面试经典 150 题 面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台https://leetcode.cn/studyplan/top-interview-150/ 题解: class Solution {public int removeDuplicates(int[] nums) …

FPGA时序分析和约束学习笔记(3、Timequest时序路径详解和优化)

FPGA时序分析和约束学习笔记(3、Timequest时序路径详解和优化) Timequest中Data Path分析 Data Arrival Path clock path:时钟信号到达源寄存器时钟端口的时间 data path:数据从源寄存器Q端口出发到达目标寄存器D端口的时间 D…

浮动+flex布局

一.浮动 1.介绍 2.效果 <style> .one{ width: 100px; height: 100px; background-color: red; float: left; } .two{ width: 200px; height: 200px; background-color: blue; float: right; } </style> </head> <body> <div class"one&quo…

yandex企业邮箱:烽火域名邮箱有哪些优势?

yandex企业邮箱申请教程&#xff1f;如何用yandex免费域名邮箱&#xff1f; yandex企业邮箱作为一款备受推崇的企业邮箱服务&#xff0c;凭借其独特的优势&#xff0c;成为了众多企业的首选。烽火将深入探讨yandex企业邮箱的优势&#xff0c;特别是与烽火域名邮箱相比&#xf…

Python CGI编程-上传和下载文件file

文件上传&#xff1a;form表单需要设置enctype属性为 multipart/form-data&#xff0c;请求的网址是&#xff1a;http://localhost/post.html点击上传&#xff0c;页面跳转到&#xff1a;http://localhost/cgi-bin/hello.py上传的文件存在了/temp路径下文件下载&#xff0c;文件…

NVR小程序接入平台/设备EasyNVR多个NVR同时管理视频监控新选择

在数字化转型的浪潮中&#xff0c;视频监控作为安防领域的核心组成部分&#xff0c;正经历着前所未有的技术革新。随着技术的不断进步和应用场景的不断拓展&#xff0c;视频监控系统的兼容性、稳定性以及安全性成为了用户关注的焦点。NVR小程序接入平台/设备EasyNVR&#xff0c…

优质网站建设公司哪家好?2024网站建设公司推荐

选择一个好的优质网站建设公司可以从以下几点考虑—— 1、价位 选择网站建设公司首先是看网站建设公司的报价预算&#xff0c;就像你买衣服一样&#xff0c;虽然都是一模一样的&#xff0c;但是质量还是会有一定的差距的毕竟一分钱一分货。不过根据不同的公司肯定会有不一样的…

C++初阶(七)--类和对象(4)

目录 ​编辑 一、再谈构造函数 1.构造函数体赋值 2.初始化列表 二、类型转换 1.隐式类型转换 2.explicit关键字 3.类类型之间的对象隐式转换 三、static成员函数 1.概念 2.特性 3.面试题&#xff1a; 四、友元函数 1.基本介绍 2.回顾&#xff1a; 3.友元类&am…

【机器学习】音乐与AI的交响:机器学习在音乐产业中的应用

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀目录 &#x1f50d;1. 引言&#x1f4d2;2. 机器学习在音乐创作中的革新&#x1f341;AI作曲家的诞生与作品展示&#x1f342;机器学习在音乐…

基于安卓Android的健康饮食系统APP(源码+文档+部署+讲解)

&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 会持续一直更新下去 有问必答 一键收藏关注不迷路 源码获取&#xff1a;https://pan.baidu.com/s/1aRpOv3f2sdtVYOogQjb8jg?pwdjf1d 提取码: jf1d &#…

docker基础篇(尚硅谷)

学习链接 docker1️⃣基础篇&#xff08;零基小白&#xff09; - 语雀文档 (即本篇) Docker与微服务实战&#xff08;基础篇&#xff09; Docker与微服务实战&#xff08;高级篇&#xff09;- 【上】 Docker与微服务实战&#xff08;高级篇&#xff09;- 【下】 文章目录 学习…

iQOO手机怎样将屏幕投射到MacBook?可以同步音频吗?

众所周知&#xff0c;苹果品牌的设备自己有AirPlay的投屏功能&#xff0c;iPhone要投屏到MacBook只要连接同一网络&#xff0c;然后开启AirPlay就可以投屏。但其他品牌的手机没有AirPlay&#xff0c;怎么将手机屏幕投射到MacBook呢&#xff1f; 安卓系统的手机可以使用无线投屏…

【C++】踏上C++学习之旅(四):细说“内联函数“的那些事

文章目录 前言1. "内联函数"被创造出来的意义2. 内联函数的概念2.1 内联函数在代码中的体现2.2 普通函数和内联函数的汇编代码 3. 内联函数的特性&#xff08;重点&#xff09;4. 总结 前言 本章来聊一聊C的创作者"本贾尼"大佬&#xff0c;为什么要创作出…