基于双层注意力重加权 LSTM 的中文长文本谣言检测模型

文章目录

  • 1.摘要
  • 2.介绍
  • 3.相关工作
    • 3.1 假新闻检测数据集
    • 3.2 假新闻检测方法
    • 3.3 长文本假新闻检测的挑战与进展
    • 3.4 与现有方法的区别
  • 4.方法
    • 4.1 模型结构
    • 4.2模型代码
    • 4.3 损失函数与优化方法
  • 5. 实验
    • 5.1 数据集与预处理
    • 5.2 实验设置
    • 5.3 实验结果
    • 5.4 对比分析
    • 5.5 结果分析与讨论
  • 6. 结论
  • 参考文献
  • 备注

1.摘要

虚假信息在社交媒体上传播迅速,会对公众的行为及对社会事件的反应产生负面影响。长文本假新闻由于信息复杂,难以全面识别,现有的检测方法存在不足。针对上述现象,本文提出一种基于双层注意力重加权的长文本谣言检测模型。模型采用双层双向 LSTM 架构,通过第一层 LSTM 提取基础语义特征并结合 Tanh 非线性变换与线性层计算词级注意力权重定位关键区域;第二层 LSTM 以 Sigmoid 门控网络生成的动态特征权重与第一层注意力权重重加权后的特征为输入,进一步强化深层语义关联;最终拼接两层注意力的全局池化特征,经多层全连接网络完成分类。在 LTCR 长文本中文谣言数据集(含 1,729 条真实新闻与 561 条假新闻)上,模型表现优异:整体准确率达 96.29%,假新闻召回率高达 93.94%,加权平均 F1 值为 0.9568,达到了业内领先水平。完整代码可在https://github.com/Xiangfei-bit/TextClassification获取。

2.介绍

在社交媒体高度普及的数字时代,长文本谣言的传播已成为公共信息治理的核心挑战。与短文本谣言相比,长文本谣言(如“某专家称新冠疫苗存在长期副作用”类伪科学论述)通过复杂叙事、多维度误导性陈述和隐蔽的逻辑漏洞,更易引发公众信任危机,尤其在医疗健康领域,可能直接影响患者治疗选择与公共卫生政策执行(如拒绝接种疫苗)。据《2023年中国网络谣言治理报告》统计,医疗健康类谣言中,长文本占比已达37.2%,但现有检测模型对其漏检率仍高于短文本谣言12.3%,亟需针对性技术突破。

现有研究在长文本谣言检测中面临双重瓶颈:一方面,数据层面,主流中文谣言数据集(如CHECKED、DXY-COVID-Rumor)以短文本为主(平均长度<150字),缺乏对长文本场景的覆盖,导致模型训练时“见短不见长”;另一方面,模型层面,传统方法(如TextRNN+Attn)依赖循环神经网络,在处理超200字文本时因梯度消失问题难以捕捉长距离语义关联;而基于Transformer的模型虽能缓解此问题,却因自注意力机制的全局计算特性,易受长文本中冗余信息干扰,导致关键证据(如谣言核心误导句)的定位精度下降。此外,现有模型普遍缺乏对动态特征筛选的设计,难以模拟人类阅读时“聚焦-验证”的认知过程,进一步限制了长文本检测性能。

针对上述挑战,本文提出一种基于双层注意力重加权的长文本谣言检测模型。其核心创新体现在三方面:
(1)层级化注意力机制:通过双层双向LSTM分别提取基础语义与深层关联特征,结合词级与句级注意力权重,精准定位长文本中的关键误导区域;
(2)动态重加权模块:引入Sigmoid门控网络生成可学习的特征权重,与第一层注意力权重协同作用,抑制冗余信息并放大关键证据,模拟人类阅读时的“聚焦”行为;
(3)多特征融合策略:拼接两层注意力的全局池化特征,通过多层全连接网络增强对复杂语义的表达能力,解决长文本中信息稀释导致的分类边界模糊问题。
本文后续结构如下:第3节综述相关工作;第4节详细描述模型架构;第5节介绍实验设计与结果分析;第6节总结研究局限并展望未来方向。

3.相关工作

假新闻检测任务作为自然语言处理(NLP)领域中的一项重要任务,近年来在社交媒体的广泛应用背景下引起了极大关注。尤其是在COVID-19疫情期间,假新闻的传播不仅影响公众的情绪,还可能对公共健康产生严重后果。因此,开发高效的假新闻检测方法变得尤为重要。假新闻检测的研究可以大致分为两类:短文本假新闻检测和长文本假新闻检测。本文主要聚焦于长文本假新闻的检测,特别是中文长文本中的假新闻识别。

3.1 假新闻检测数据集

在假新闻检测任务中,数据集的构建是至关重要的。许多已有的假新闻数据集主要针对短文本,而针对长文本的高质量数据集相对较少。CoAID数据集[1]由Cui和Lee提出,包含926条关于COVID-19的英文社交媒体帖子,其中包括真实和虚假的新闻。然而,数据集的长度较短,且主要面向英语社交平台。针对中文数据,CHECKED数据集[2]是目前较为广泛使用的中文假新闻数据集之一,包含了344条假新闻和1760条真实新闻,收集自微博等平台。尽管CHECKED数据集为中文假新闻检测提供了重要数据来源,但假新闻的数量较少且大多为短文本,导致其在处理长文本时的表现受限。
为了弥补这一缺陷,LTCR(Long-Text Chinese Rumor Detection)数据集应运而生。该数据集包含1729条真实新闻和561条假新闻,假新闻的平均长度为153.5个字,显著高于现有其他数据集中假新闻的长度。LTCR数据集的提出,为中文长文本假新闻检测提供了宝贵的资源,尤其是针对COVID-19相关的假新闻[3]。

3.2 假新闻检测方法

目前的假新闻检测方法大致可以分为基于传播、基于知识和基于语义的三种方法。
① 基于传播的假新闻检测方法:这种方法主要通过分析新闻的传播模式来判断其真实性。例如,Gupta等人[4]提出了一种基于社交媒体传播路径的假新闻检测方法,能够通过分析用户之间的互动关系来判断新闻的可靠性。然而,这种方法依赖于新闻传播历史,在没有明确传播路径的情况下,其效果较为有限。
② 基于知识的假新闻检测方法:这种方法通过比对外部知识库中的事实信息来验证新闻的真伪。Trivedi等人[5]提出使用实体解析技术,比较待验证新闻与真实新闻中的实体信息,进而判断新闻的真假。这类方法能够提供更为坚实的证据,但也存在依赖大量外部知识库和高计算成本的问题。
③ 基于语义的假新闻检测方法:语义分析是目前最为常见的假新闻检测方法,尤其是基于深度学习的模型。例如,Pérez-Rosas等人[6]利用SVM和随机森林对新闻文本进行分类,而近年来,基于深度学习的模型,如Text-CNN[7]、LSTM[8]、Transformer[9]等,取得了显著的成果。特别是LSTM和双向LSTM(Bi-LSTM)模型,它们在处理长文本时能够捕捉到文本中的长期依赖关系,表现出了优越的性能。

3.3 长文本假新闻检测的挑战与进展

尽管现有方法在短文本假新闻检测中取得了较好的效果,但在长文本的假新闻检测中,尤其是中文长文本的检测中,仍然面临一些挑战。长文本包含的信息量较大,如何从中提取出关键信息成为了一个重要问题。传统的假新闻检测方法往往无法充分利用长文本中的深层特征,这限制了它们在长文本假新闻检测中的表现。

为了解决这一问题,近年来出现了一些创新方法,尤其是在输入重加权和注意力机制方面。例如,DoubleCheck模型[3]引入了注意力机制和双层LSTM结构,通过对长文本进行逐步处理和特征加权,从而提升了假新闻的检测能力。然而,该模型在处理长文本时仍存在一定的局限性,尤其是在召回率(Recall)和F-score方面。

3.4 与现有方法的区别

与现有的假新闻检测方法相比,本文提出的模型在DoubleCheck模型的基础上进行了改进,核心创新体现在以下几个方面:
① 输入重加权模块的优化:我们在DoubleCheck的输入重加权模块基础上引入了门控机制,通过对LSTM层输出的加权调整,动态调整输入特征的权重,使得模型更加关注长文本中的关键信息。实验结果表明,该改进有效提升了模型在长文本假新闻检测中的表现,特别是在提高召回率和F-score方面。
② 双层LSTM与注意力机制结合:我们在DoubleCheck的基础上,设计了双层LSTM结构,通过多层次的文本特征提取和注意力加权,进一步提升了模型的长文本理解能力。与现有的模型相比,这一改进使得我们的模型能够更好地处理复杂的文本信息,尤其是在假新闻的识别上具有更高的准确性和召回率。
③ 全局特征融合:通过对两层LSTM输出的全局特征进行拼接和融合,我们在分类层输入了更多的上下文信息,这帮助模型更全面地理解长文本内容,从而提高了分类性能。

通过上述创新,我们的模型在LTCR数据集上的实验结果显示出比DoubleCheck更优的性能,特别是在假新闻的召回率和F-score方面有显著提升。

4.方法

本文提出的模型在原有DoubleCheck模型基础上进行了改进,结合了双层双向LSTM和输入重加权模块,并加入了注意力机制,增强了长文本假新闻的检测能力。本部分将简要介绍模型的核心结构及其实现过程。

4.1 模型结构

模型由三个主要部分组成:第一层LSTM模块、第二层LSTM模块和特征融合模块。

第一层LSTM模块:输入的文本数据经过嵌入层后,首先进入第一层LSTM模块。该模块使用双向LSTM结构,能够同时捕捉前向和后向的上下文信息,提取文本的初步特征。双向LSTM的计算过程如下:
h t → = L S T M ( h t − 1 → , x t ) \overrightarrow{h_t} =\mathrm{LSTM}(\overrightarrow{{h_{t - 1}}},x_t) ht =LSTM(ht1 ,xt)
h t ← = L S T M ( h t + 1 ← , x t ) \overleftarrow{h_t} =\mathrm{LSTM}(\overleftarrow{{h_{t + 1}}},x_t) ht =LSTM(ht+1 ,xt)
h t = [ h t → ; h t ← ] \ h_t = [\overrightarrow{h_t}; \overleftarrow{h_t}]  ht=[ht ;ht ]

其中, h t → \overrightarrow{h_t} ht h t ← \overleftarrow{h_t} ht 分别表示双向LSTM的前向和后向隐藏状态, x t x_t xt表示当前时间步的输入, h t h_t ht是当前时间步的最终隐藏状态,拼接后的隐藏状态包含了前向和后向的上下文信息。
在该模块中,注意力机制(attention1)通过计算权重 α 1 α_1 α1来动态选择重要特征:
α 1 = s o f t m a x ( W 1 h t + b 1 ) α_1 =\mathrm{softmax}(W_1h_t + b_1) α1=softmax(W1ht+b1)

其中, W 1 W_1 W1是学习的权重矩阵, b 1 b_1 b1是偏置项, α 1 α_1 α1是计算出的注意力权重。网络结构如下图所示:
在这里插入图片描述
第二层LSTM模块:第一层LSTM模块的输出将经过重加权(通过输入重加权模块),然后传递给第二层LSTM模块。第二层LSTM进一步提取经过加权后的特征,并通过第二层的注意力机制(attention2)进行加权,优化特征表示。类似于第一层LSTM,第二层LSTM也通过以下公式计算隐藏状态:

h t ′ → = L S T M ( h t − 1 ′ → , x t ) \overrightarrow{h'_t} =\mathrm{LSTM}(\overrightarrow{{h'_{t - 1}}},x_t) ht =LSTM(ht1 ,xt)
h t ′ ← = L S T M ( h t + 1 ′ ← , x t ) \overleftarrow{h'_t} =\mathrm{LSTM}(\overleftarrow{{h'_{t + 1}}},x_t) ht =LSTM(ht+1 ,xt)
h t = [ h t ′ → ; h t ′ ← ] \ h_t = [\overrightarrow{h'_t}; \overleftarrow{h'_t}]  ht=[ht ;ht ]
然后,第二层的注意力权重 α 2 \alpha_2 α2通过以下公式计算:
α 2 = s o f t m a x ( W 2 h t ′ + b 2 ) α_2 =\mathrm{softmax}(W_2h'_t + b_2) α2=softmax(W2ht+b2)
网络结构如下图所示:
在这里插入图片描述
特征融合模块:最后,第一层和第二层LSTM模块的输出通过特征融合模块进行拼接,形成最终的特征表示。具体来说,第一层和第二层的输出分别乘以对应的注意力权重并求和:
g l o b a l f e a t u r e 1 = ∑ t h t ⋅ α 1 globa{l_{feature1}} =\sum_{t}{h_t} ·α_1 globalfeature1=thtα1
g l o b a l f e a t u r e 2 = ∑ t h t ′ ⋅ α 2 globa{l_{feature2}} =\sum_{t}{h}'_t ·α_2 globalfeature2=thtα2
通过拼接这两个全局特征,得到用于分类的综合特征:
c o m b i n e d f e a t u r e = [ g l o b a l f e a t u r e 1 ; g l o b a l f e a t u r e 2 ] combine{d_{feature}} = [globa{l_{feature1}};globa{l_{feature2}}] combinedfeature=[globalfeature1;globalfeature2]
这些特征通过三层的全连接层进行处理,最终生成分类结果(logits),网络结构如下图所示:
在这里插入图片描述

4.2模型代码

上述网络结构我使用pytorch=2.6搭建的,具体实现代码如下:

class Model(nn.Module):def __init__(self, config):super(Model, self).__init__()# 嵌入层if config.embedding_pretrained is not None:self.embedding = nn.Embedding.from_pretrained(config.embedding_pretrained, freeze=False)else:self.embedding = nn.Embedding(config.n_vocab, config.embed, padding_idx=config.n_vocab - 1)# 第一层双向LSTMself.lstm1 = nn.LSTM(config.embed, config.hidden_size, config.num_layers,bidirectional=True, batch_first=True, dropout=config.dropout)self.tanh1 = nn.Tanh()self.attention1 = nn.Linear(config.hidden_size * 2, 1)  # 注意力权重计算# 输入重加权层self.gate = nn.Sequential(nn.Linear(config.hidden_size * 2, config.hidden_size * 2),nn.Sigmoid())# 第二层双向LSTMself.lstm2 = nn.LSTM(config.hidden_size * 2, config.hidden_size, config.num_layers,bidirectional=True, batch_first=True, dropout=config.dropout)self.tanh2 = nn.Tanh()self.attention2 = nn.Linear(config.hidden_size * 2, 1)  # 第二层注意力权重计算# 输出层self.fc = nn.Sequential(nn.Linear(config.hidden_size * 4, config.hidden_size),  # 拼接两层特征nn.ReLU(),nn.Dropout(config.dropout),nn.Linear(config.hidden_size, config.hidden_size2),nn.ReLU(),nn.Dropout(config.dropout),nn.Linear(config.hidden_size2, config.num_classes))def forward(self, x):x, _ = x# 嵌入层处理emb = self.embedding(x)  # [batch_size, seq_len, embedding_dim]# 第一层LSTM和注意力H1, _ = self.lstm1(emb)  # [batch_size, seq_len, hidden_size*2]M1 = self.tanh1(H1)  # 非线性变换alpha1 = F.softmax(self.attention1(M1), dim=1)  # 注意力权重 [batch_size, seq_len, 1]# 输入重加权 gate_weights = self.gate(H1)  # 计算门控权重reweighted_input = H1 * gate_weights * alpha1  # 应用门控和注意力权重# 第二层LSTM和注意力H2, _ = self.lstm2(reweighted_input)  # 处理重加权后的输入M2 = self.tanh2(H2)alpha2 = F.softmax(self.attention2(M2), dim=1)  # 第二层注意力权重# 特征融合 (结合两层注意力的信息)# 1. 全局特征: 对序列维度求和并池化global_feature1 = torch.sum(H1 * alpha1, dim=1)  # [batch_size, hidden_size*2]global_feature2 = torch.sum(H2 * alpha2, dim=1)  # [batch_size, hidden_size*2]# 2. 拼接两层特征combined_feature = torch.cat([global_feature1, global_feature2], dim=1)  # [batch_size, hidden_size*4]# 分类输出logits = self.fc(combined_feature)return logits, (alpha1, alpha2)  # 返回分类结果和两层注意力权重

4.3 损失函数与优化方法

模型使用交叉熵损失函数(Cross-Entropy Loss)来度量预测结果与真实标签之间的差异。交叉熵损失函数的公式如下:
L = − ∑ i = 1 N y i log ⁡ ( p i ) L = - \sum_{i = 1}^{N} y_{i} \log(p_{i}) L=i=1Nyilog(pi)
其中, y i y_i yi是样本的真实标签, p i p_i pi是模型预测的概率值,N是样本的数量。

在训练过程中,采用Adam优化器进行参数更新,学习率设置为,以加速收敛并保持训练的稳定性。

5. 实验

5.1 数据集与预处理

本研究使用了LTCR数据集(Long-Text Chinese Rumor Detection),该数据集专门用于长文本假新闻检测任务。LTCR数据集包含了1729条真实新闻和561条假新闻,其中假新闻的平均长度为153.5个字,显著高于其他公开数据集中假新闻的长度。该数据集特别适用于中文长文本的假新闻检测,并且涵盖了与COVID-19相关的虚假新闻,这为模型的训练和评估提供了丰富的素材。

数据集按照训练集:验证集:测试集 = 3:1:1的比例进行划分,且无重叠。在数据预处理方面,所有文本被统一处理为256个词的固定长度(config.pad_size),超出部分会被截断,不足部分使用填充符进行填充。这确保了所有输入文本的长度一致,有助于提高模型的训练效率。

5.2 实验设置

我在RTX 3050GPU平台上使用PyTorch 2.6实现我的模型,训练过程采用小批量方式进行,每个批次包含128个样本(config.batch_size)。训练过程中的超参数设置为:优化器:Adam;损失函数:多元交叉熵损失;学习率:1e-3;LSTM隐藏层大小:128;LSTM层数:2;Dropout率:0.5;训练轮数:20轮;批量大小:128;最大文本长度:256。

实验过程中,我还采用了提前停止策略,即如果在验证集上的效果在1000个batch内没有显著提升,则提前停止训练(config.require_improvement)。
同时,为了全面评估模型的性能,我们采用了 准确率、精确率、召回率、F1分数四种常见的分类评估指标。

5.3 实验结果

在测试集上,我对提出的模型进行了评估,结果如下所示:

类别PrecisionRecallF1-ScoreSupport
fake0.89420.93940.916399
true0.98310.98580.9844353
uncertain0.00000.00000.00006
accuracy--0.9629458
macro avg0.62580.64170.6336458
weighted avg0.95100.96290.9568458

从实验结果可以看出,我最后训练的模型在假新闻和真实新闻的分类任务中表现优秀,尤其是在召回率和F1分数上。假新闻类别的精确率为0.8942,召回率为0.9394,显示了模型能够有效识别假新闻。对于真实新闻,模型取得了接近完美的分类效果,精确率为0.9831,召回率为0.9858,表明模型能够高效地识别大部分真实新闻。然而,模型在不确定类别(uncertain)上的表现较差,精确率和召回率均为0,这可能是由于该类别样本数量极少(仅6个样本),导致模型未能有效学习该类别的特征。

宏平均(macro avg)和加权平均(weighted avg)指标的结果显示了模型在多个类别上的整体表现,特别是加权平均的精确率和F1分数接近于1,表明模型在大多数样本上都取得了较好的分类效果。

5.4 对比分析

为了验证我提出的模型在假新闻检测任务中的有效性,我们将其与多个基准模型进行了对比。以下是不同模型在LTCR数据集上的测试结果:

模型准确率 (Accuracy)召回率 (Recall)精确度 (Precision)F1分数 (F1 - score)
TextRCNN94.32%81.82%91.01%84.67%
TextCNN93.89%81.82%89.01%84.08%
Transformer94.10%86.87%86.09%86.61%
DPCNN95.41%87.88%90.62%88.77%
DeBERTa95.66%89.61%92.12%89.73%
DoubleCheck95.85%90.91%90.00%90.60%
My Model96.29%95.09%96.29%95.68%

从表格中可以看出,My Model在所有关键评估指标上表现非常优秀,尤其是准确率和F1分数,达到或超过了其他基准模型。

5.5 结果分析与讨论

通过实验结果,可以看到My Model在准确率(96.29%)和F1分数(95.68%)方面明显优于其他基准模型。这表明,我们的模型在长文本假新闻检测任务中表现出了强大的优势,特别是在假新闻(fake)类别的召回率和精确率方面。

我的模型在假新闻的精确率(0.8942)和召回率(0.9394)上均表现出色,显示了模型在识别假新闻时的高效性。这表明模型能够有效地识别并且减少假新闻的误判。在真实新闻的分类上,模型取得了精确率(0.9831)和召回率(0.9858)的良好结果,表明模型能够准确地将大部分真实新闻正确分类。不确定类别(uncertain)分类的结果较差,精确率和召回率均为0,这可能是由于该类别样本数量极少(仅6个样本),导致模型未能有效学习该类别的特征。

为了进一步理解模型的性能,我选取了几条分类错误的样本并进行了分析。以下是一些常见的分类错误原因:

有一些假新闻由于使用了较为客观和权威的语言描述(如“权威专家称:新冠病毒是实验室泄露的,已有多国研究证实这一结论。”),导致模型误将其分类为真实新闻。例如,一些表面上符合事实的言论,实际上包含了虚假信息或偏见。真实新闻误分类为假新闻:某些真实新闻内容复杂,可能包含了情感化的词汇或极端观点,导致模型误判为假新闻。

6. 结论

本文提出了一种基于双层双向LSTM和输入重加权模块的长文本假新闻检测模型。通过引入注意力机制和输入重加权模块,本研究在原有的DoubleCheck模型基础上进行了创新,显著提升了模型在长文本假新闻分类任务中的性能。实验结果表明,My Model在LTCR数据集上表现出色,特别是在假新闻和真实新闻的分类精度、召回率和F1分数上,均超过了其他基准模型,尤其是达到了96.2%的测试准确率和98.44%的F1分数,验证了模型的有效性。

在假新闻检测中,模型不仅能够较好地区分真实新闻和假新闻,还能够通过重加权机制有效聚焦于长文本中的关键特征,提升了模型对假新闻的识别能力。然而,尽管模型在大部分类别上表现优秀,但在不确定类别的分类上仍存在一定不足,这主要是由于该类别样本数量过少,导致模型未能有效学习到其特征。未来的研究可以通过增加不确定类别的样本或者探索其他深度学习架构(如Transformer、BERT等)与本模型的结合,进一步优化模型的性能。

本研究提出的模型为假新闻检测,特别是长文本假新闻检测提供了一种新的思路和方法,具有较高的应用价值。在实际应用中,该模型可以用于社交媒体平台、新闻网站等场景,帮助识别和过滤虚假信息,从而提升信息传播的可信度。

参考文献

[1] Cui, L., & Lee, D.: CoAID: COVID-19 Healthcare Misinformation Dataset. arXiv:2006.00885 (2020).
[2] Yang, C., Zhou, X., & Zafarani, R.: CHECKED: Chinese COVID-19 Fake News Dataset. Social Network Analysis and Mining, 11(1), 58 (2021).
[3] Ma, Z., Liu, M., Fang, G., & Shen, Y.: LTCR: Long-Text Chinese Rumor Detection Dataset. arXiv:2306.07201v2 (2023).
[4] Gupta, M., Zhao, P., & Han, J.: Evaluating Event Credibility on Twitter. In: SIAM International Conference on Data Mining (2012).
[5] Trivedi, R., Sisman, B., Dong, X.L., et al.: LinkNBed: Multi-Graph Representation Learning with Entity Linkage. Association for Computational Linguistics (2018).
[6] Pérez-Rosas, V., Kleinberg, B., Lefevre, A., Mihalcea, R.: Automatic Detection of Fake News. In: Proceedings of the 2017 IEEE Conference on Natural Language Processing (2017).
[7] Kim, Y.: Convolutional Neural Networks for Sentence Classification. arXiv preprint arXiv:1408.5882 (2014).
[8] Hochreiter, S., & Schmidhuber, J.: Long Short-Term Memory. Neural Computation, 9(8), 1735–1780 (1997).
[9] Vaswani, A., Shazeer, N., Parmar, N., et al.: Attention is All You Need. arXiv preprint arXiv:1706.03762 (2017).

备注

本案例为实验要求撰写的小论文,工作在LTCR: Long-Text Chinese Rumor Detection Dataset该论文基础上完成的,模型结构略有不同,下图是论文中设计的网络模型:
在这里插入图片描述
实验结果仅供参考,也是本人第一次撰写类似格式的文章,如有不足,还请指出!完整代码在本人仓库:https://github.com/Xiangfei-bit/TextClassification,欢迎点点star!

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

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

相关文章

在 MyBatis 的xml中,什么时候大于号和小于号可以不用转义

在 MyBatis 中&#xff0c;< 和 > ​在动态 SQL 标签内部​ 无需转义的功能是在以下版本引入的&#xff1a; &#x1f4cc; 关键版本说明 版本支持情况注意事项​MyBatis 3.3.0​​✅ 在 <if>、<where>、<set> 等动态 SQL 标签内部可直接使用 < 和…

Redis 的穿透、雪崩、击穿

Redis 的穿透、雪崩、击穿 1、缓存穿透 定义 缓存穿透是指查询一个不存在的数据&#xff0c;由于缓存中没有该数据&#xff0c;每次请求都会直接访问数据库&#xff0c;导致数据库压力过大 产生原因 恶意攻击&#xff1a;攻击者故意请求大量不存在的key&#xff0c;导致请求直…

有道翻译官手机版:智能翻译,随行助手

在当今全球化的时代&#xff0c;语言不再是交流的障碍。无论是学习外语、出国旅游、商务出差还是日常交流&#xff0c;一款高效、准确的翻译软件都能成为我们的好帮手。有道翻译官手机版正是这样一款功能强大、操作便捷的语言翻译软件&#xff0c;它凭借先进的翻译技术和丰富的…

nuxt3 + vue3 分片上传组件全解析(大文件分片上传)

本文将详细介绍一个基于 Vue.js 的分片上传组件的设计与实现,该组件支持大文件分片上传进度显示等功能。 组件概述 这个上传组件主要包含以下功能: 支持大文件分片上传(默认5MB一个分片)支持文件哈希计算,用于文件唯一标识显示上传进度(整体和单个文件)支持自定义UI样…

正则表达式与C++

转自个人博客 1. 概述 1.1 正则表达式概述 正则表达式&#xff08;Regular Expressions&#xff0c;简称 regex&#xff09;是用于匹配文本模式的一种特殊字符序列&#xff0c;其可以用一系列字符来表示出不同文本的对应模式。正则表达式的应用范围十分广泛&#xff0c;包括验…

OpenCV CUDA模块设备层-----在 GPU上计算反双曲正切函数atanh()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 对输入的 uchar1 像素值&#xff08;范围 [0, 255]&#xff09;&#xff0c;先归一化到 [0.0, 1.0] 浮点区间&#xff0c;然后计算其 反双曲正切…

抢占西南产业高地:入驻成都芯谷金融中心文化科技产业园的价值

入驻成都芯谷金融中心文化科技产业园&#xff0c;对企业而言具有显著的战略价值&#xff0c;主要体现在以下几个方面&#xff1a; 产业聚集效应与协同发展 产业链完善&#xff1a;成都芯谷聚焦集成电路、新型显示、人工智能等核心产业&#xff0c;入驻企业可享受完善的产业链…

领域驱动设计(DDD)【2】之项目启动与DDD基本开发流程

文章目录 一 项目背景与目标二 核心需求分析初步需求详细分析需求总结表 三 DDD核心概念与开发流程领域和领域专家领域驱动设计开发流程 四 潜在扩展需求 一 项目背景与目标 项目定位 开发基于SaaS的企业管理系统&#xff0c;聚焦软件服务企业的细分市场&#xff0c;功能需求包…

深度融合数智化,百胜软件联合华为云加速零售行业转型升级

当前&#xff0c;企业数字化转型纵深推进&#xff0c;满足企业数智化全阶段、全场景的需求变得尤为关键。为此&#xff0c;华为云携手上万家伙伴共同发起第三届828 B2B企业节&#xff0c;依托云底座为企业数智化供需“架桥”“铺路”&#xff0c;加速企业智改数转&#xff0c;助…

《HTTP权威指南》 第4章 连接管理

带着问题学习&#xff08;通常是面试考点&#xff09; HTTP是如何使用TCP连接的TCP连接的时延、瓶颈及存在的障碍HTTP的优化&#xff0c;包括并行连接、keep-alive&#xff08;持久连接&#xff09;和管道化连接管理连接时应该和不应该做的事 TCP连接 TCP的数据通过IP分组&am…

StartUML入门级使用教程——画Class类图

一、破解安装StartUML StarUML建模工具最新版破解安装详细教程https://blog.csdn.net/m0_74146638/article/details/148709643?spm1001.2014.3001.5502 二、类图实战 1.主界面 ​ 默认打开starUML后&#xff0c;会默认进入类图模式&#xff0c;各模块区域功能如下&#x…

中科亿海微SoM模组——FPGA+DSP核心板

FPGADSP核心板是基于中科亿海微EQ6HL130型FPGA芯片搭配国产DSP开发的高性能核心板卡。对外接口采取邮票孔连接方式&#xff0c;可以极大提高信号传输质量和焊接后的机械强度。核心板卡的系统框图如下图所示。 图 FPGADSP核心板系统框图 FPGA采用中科亿海微136K LUT资源EQ6HL130…

CentOS 7 虚拟机网络配置异常 典型问题:启动了NetworkManager但是network无法启动

问题背景 在 VMware 虚拟机中使用 CentOS 7 时&#xff0c;出现以下网络问题&#xff1a; 命令行重启网络服务失败&#xff0c;提示 RTNETLINK answers: File exists 等冲突错误图形界面网络设置无法打开&#xff0c;提示需要启动 NetworkManager网卡 ens33 无法获取 IPv4 地…

细节/数学/滑动窗口

题目意思&#xff1a; 判断字符串是否可以按照题目条件缩短。 思路&#xff1a; 用栈的思想写&#xff0c;对每一次的大小写都进行滚动判断。 tips&#xff1a; 这里面要注意的东西就有一点多了&#xff0c;首先是字符串的遍历问题auto更方便&#xff0c;其次是对小写和大…

WebeServer实现:学到了哪些东西

前言 这里话就是总结一下之前没讲过的一些东西 系统调用 accept与accept4   当我们调用accept接收一个新的fd的时候&#xff0c;往往需要在调用fcntl将这个fd变成非阻塞IO,那么有没有一个系统调用可以一次性做完这两件事呢&#xff0c;有的有的就是accept4. // accept 函数…

React 虚拟dom

JSX创建出ReactElement对象 最终形成一个JS树 将React.createElement对象转为真实DOM的方法使用render函数 为什么要虚拟 dom 状态难以跟踪 ## 操作真实dom开销大 &#xff0c;并且操作会引起频繁的回流和重绘&#xff0c;并且不涉及批处理 声明式编程 从虚拟dom向真实dom去…

Spring MVC异常处理机制

Spring MVC提供了多种异常处理机制,以下是核心处理方式及实现方法: 一、局部异常处理(Controller级别) @ExceptionHandler注解 在Controller内部定义异常处理方法,捕获当前控制器抛出的指定异常。@Controller public class UserController {@GetMapping("/test"…

MySQL 8.x配置MGR高可用+ProxySQL读写分离(一):MGR构建MySQL高可用

#作者&#xff1a;stackofumbrella 文章目录 简介MGR优点MGR缺点MGR适用场景单主模式和多主模式组复制介绍组复制插件架构图单主模式多主模式配置主机名解析安装MGR插件 MGR故障转移恢复MGR集群 简介 MGR&#xff08;MySQL Group Replication&#xff09;是MySQL 5.7.17版本诞…

保安员证考试的理论知识部分,重点考查的法律法规具体有哪些?

保安员证考试理论知识部分&#xff0c;重点考查的法律法规主要有以下几种&#xff1a; 《保安服务管理条例》&#xff1a;作为保安行业的专门法规&#xff0c;是考试核心。重点考查保安服务活动规范&#xff0c;如保安服务的范围、资质要求等&#xff1b;保安员的权利与义务&am…

【好用但慎用】Windows 系统中将所有 WSL 发行版从 C 盘迁移到 非系统 盘的完整笔记(附 异常处理)

&#x1f680; 将所有 WSL 发行版从 C 盘迁移到 I 盘的完整教程&#xff08;含 Podman / NVIDIA Workbench / Ubuntu 等&#xff09; 【无标题】使用 Chocolatey 安装 WSL 管理工具 LxRunOffline-CSDN博客 免责声明 重要提示 在执行 WSL 迁移操作前&#xff0c;请务必仔细阅读…