谣言检测新范式:图卷积+注意力+多任务融合传播结构
简介这是一份面向深度学习与自然语言处理学习者的多任务谣言检测项目源于2022届本科毕业论文的后续优化代码已从原版升级为BERT图卷积结合自注意力的方案同时处理谣言识别和立场分类两个关联任务适合毕业设计、期末大作业或入门图神经网络应用时参考。项目以BERT作为统一编码器分别提取词向量和句向量再接入BiGCN或Self-Attention层完成双任务输出数据集经过重新整理从杂乱的JSON改为分目录存储附带PHEME等公开谣言语料及预处理逻辑可直接训练与评估。压缩包共75个文件包括25个Python脚本网络构建、训练入口、工具函数、12个Jupyter Notebook实验过程与可视化、15个JSON配置/标签文件、17个文本说明和4个Markdown文档总计18.67MB目录按模型与任务划分层次清晰。已有367人学习下载适合需要快速复现论文实验、对比BiGCN与自注意力机制效果或基于BERT做谣言检测改进的读者。1. 谣言检测不是文本分类为什么图卷积加注意力能同时抓内容和传播把谣言检测当成文本分类来做是大多数人第一次翻车的起点。同样是“某地发生某件事”的一句话转发语境、传播速度和评论区的质询完全不同单看正文几乎分不出真假。基于注意力机制和图卷积神经网络的多任务谣言检测做的事情是把一条帖子的“案发现场”——谁转发了、谁质疑了、传播树长什么样——和内容本身一起送进模型图卷积负责聚合传播结构注意力负责在不同的信息粒度之间挑重点多任务头同时输出谣言判别、立场分析和回复意图。这篇笔记会从数据建模写到关键代码再给出能照着调的避坑清单适合已经跑过基础文本分类、想进一步做内容安全与舆情分析的工程师。2. 把谣言事件变成图传播结构、节点特征与邻接矩阵的构建2.1 一条谣言的“案发现场”是一棵传播树一份以事件为单位的谣言数据集最核心的单元不是单条帖子而是“源帖 以它为根的所有转发和回复”。根节点是原始信息子节点是转评再往下是转发的转发这样形成一棵多叉树。树上的每个节点都带有文本、发布者、时间戳等属性树本身则记录了信息从出现到扩散的完整路径。谣言与普通信息的传播结构存在统计差异谣言更容易被转发但更容易在回复中被质疑。这些差异藏在树的形状里例如谣言树的“质疑回复”分支长在早期还是晚期、树是不是在一小时内快速长高。这意味着传播树本身就是一个强信号只看正文会丢掉它。大多数数据集中传播树的深度集中在 2 到 5 层少数爆款事件能到 8 层以上这种结构差异本身就是可以学习的特征。所以建模的第一步是把一个事件组织成有向图节点是帖子或用户边是转发/回复关系。常见做法是用 networkx 存树再用 PyG 的 Data 对象把它转成图神经网络能吃的格式。我一般不会把整个社交网络全图画进来因为全图又大又稀疏转发关系被大量噪音淹没谣言检测用传播子树更可控。2.2 从原始数据到图样本的最小处理流程把一条条的帖子记录组织成传播树核心只做三件事找到根节点、建立父子边、剪掉孤立节点。下面这段代码是常见的最小实现可以直接套在 CSV 或 JSONL 形态的数据上。import networkx as nx def build_rumor_tree(posts): posts: list[dict]每个 dict 至少包含 id, parent_id, user_id, text, timestamp, label parent_id 为 None 或 的帖子是源帖根节点 tree nx.DiGraph() posts_by_id {p[id]: p for p in posts} # 先建所有节点避免边先于节点出现 for p in posts: tree.add_node( p[id], userp[user_id], textp[text], tsp[timestamp], labelp.get(label, 0), ) # 再连父子边delay 留作边上的时序特征 for p in posts: parent p.get(parent_id) if parent and parent in posts_by_id: delay p[timestamp] - posts_by_id[parent][timestamp] tree.add_edge(parent, p[id], delaymax(float(delay), 0.0)) # 只保留根节点能到达的节点丢掉脏数据带来的孤立分支 roots [n for n, d in tree.in_degree() if d 0] if not roots: raise ValueError(no root node found) reachable nx.descendants(tree, roots[0]) | {roots[0]} return tree.subgraph(reachable).copy()这里有个顺序上的讲究必须先全部 add_node 再 add_edge否则会出现“父节点还没加入就先连边”的报错或静默丢边。delay 这一项是后面边特征的基础转得越快谣言扩散早期的特征越明显很多模型会把 delay 的倒数或负指数当作边权重。前提是数据里的 timestamp 必须是统一单位且已经对齐过的数值型时间戳字符串时间要先转换。建成 networkx 的有向图之后再转成 PyG 的 Data 对象才算真正进入训练管线import torch from torch_geometric.utils import from_networkx, to_undirected def tree_to_pyg(tree, feature_rows): # 注意feature_rows 的行顺序必须与 list(tree.nodes()) 一致 data from_networkx(tree) data.x torch.tensor(feature_rows, dtypetorch.float) # GCN 通常按无向图聚合谣言传播虽是有向的 # 但无向化之后能同时利用“谁转了我”和“我转了谁”两跳信息 data.edge_index to_undirected(data.edge_index) # 事件级标签取根节点的 label批处理时一个图对应一个标签 roots [n for n, d in tree.in_degree() if d 0] data.y torch.tensor([tree.nodes[roots[0]].get(label, 0)], dtypetorch.long) return datafrom_networkx 生成 edge_index 时按节点遍历顺序因此 feature_rows 必须与 tree.nodes() 的次序对齐这是最常见的低级错误之一。无向化不是可选项GCN 的拉普拉斯聚合依赖无向对称归一化直接用原始有向边矩阵也可以跑但效果通常差一截原因是对称归一化在有向图上的度数计算会畸变。2.3 节点特征和边权重哪些特征真有用节点特征直接决定模型上限这个阶段偷懒后面换再大的网络也补不回来。我会把特征分成三组文本特征、用户特征、时序特征。特征组常见成员处理方式说明文本特征预训练句向量、关键词命中、情感极性句向量做池化后归一化内容本身的强先验用户特征粉丝数、关注数、注册时长、历史被质疑比例取对数后归一化到 0~1粉丝数偏度极大必须压缩时序特征转发延迟、转发频率、活跃时段delay 取倒数或 log 1delay早期快速扩散是谣言关键信号文本向量最少用的是 768 维句向量配合用户特征拼接喂给第一层 GCN。如果机器配置有限用 TF-IDF 再加 64 维词向量平均也能跑但泛化会差。用户特征里最有用的往往不是粉丝数而是“历史发布内容的被质疑比例”因为它直接刻画了账号的可信度不过这个特征很多数据集里没有常见做法是省略并接受一点性能损失。边权重不是必须的GCN 默认按二值邻接矩阵算归一化就够用。如果一定要加时序权重我会用w 1.0 / (1.0 np.log(1.0 delay))这样几小时到几天的延迟差异被压缩不会被极端值带偏。还有一种常见误用是把所有事件拼成一张大图来训练。这样做等于让不同事件的节点互相传播信息事件边界被抹掉。正确做法是每个事件单独成图mini-batch 内多图并行。事件之间的共性由共享的 GCN 权重去学习而不是靠跨事件连边。3. 模型主体拆解GCN、多头注意力与多任务头的协作方式3.1 图卷积不是堆层数局部聚合与过平滑GCN 做谣言检测的直觉是这样的一条帖子该不该信不只取决于它自己说了什么还取决于转发它的是些什么人、回复里有多大比例在质疑。GCN 用一层卷积完成“把邻居的表征加权聚合到自己身上”也就是把“被谁转发”这件事编码到节点向量里。用一行公式来表达H σ(D^-1/2 A D^-1/2 H W)。A 是加了自环的邻接矩阵D 是它的度矩阵H 是当前层节点表征W 是可学习的权重。所谓图卷积在这里其实是对每个邻居做“对称归一化的加权平均”层数越多一个节点能看到的邻居范围越远。但这里有个很常见的误区GCN 不是越深越好。传播树虽然有深度但谣言相关的有效信息往往在 1 到 3 跳之内就足够堆到 4 层以上会出现过平滑——所有节点表征趋于一致事件级池化后变成一团均值向量F1 不升反降。做谣言检测我一般固定 2 到 3 层而不是像 CV 那样去增大网络深度。3.2 注意力机制在谣言检测里到底在“注意”什么注意力在这个任务里有三个常见落点容易混淆节点级、路径级、任务级。节点级注意力给一棵传播树里的每个转发算一个权重因为不是每条转发都同等重要——跟风转发和实名质疑的语义权重完全不同。路径级注意力放在从根到目标节点的一条传播链上可以理解成“沿着这条链哪些环节加深或动摇了可信度”。任务级注意力则是多任务之间的信息共享方式让谣言判别、立场判断各自取用不同的特征子空间。在复现这套方案时最容易看错的地方是“基于注意力机制”到底加在哪一层。通常的做法是在 GCN 编码完节点表征之后加一个节点级加性注意力再做事件级池化。也有人先做注意力再加 GCN相当于先给根节点的邻居做加权采样。两种方式都有人用前者对谣言判别更稳定后者对早停更敏感我建议先用前者跑通再尝试换位。3.3 核心代码走读共享图编码器与多任务头下面是一个能直接跑通的最小模型用两层 GCN 做共享编码器一个线性注意力做节点加权最后分三个任务头。复刻时只需要把数据特征维度换成你自己的 in_dim。import torch import torch.nn as nn import torch.nn.functional as F from torch_geometric.nn import GCNConv, global_add_pool class RumorGCN(nn.Module): 共享图编码器 节点级注意力 三个任务头 in_dim: 文本向量维度 用户/时序特征维度 hidden_dim: 图卷积隐层维度128~256 足够 def __init__(self, in_dim, hidden_dim): super().__init__() # 两层图卷积。传播树 3 跳内有效信息最多层数不宜超过 3 self.conv1 GCNConv(in_dim, hidden_dim) self.conv2 GCNConv(hidden_dim, hidden_dim) self.dropout nn.Dropout(0.3) # 节点级加性注意力对每个节点输出一个标量权重 self.attn nn.Linear(hidden_dim, 1) # 三个任务头输出类别数按标注协议决定 self.rumor_head nn.Linear(hidden_dim, 2) # 谣言/非谣言 self.stance_head nn.Linear(hidden_dim, 3) # 支持/否定/中性 self.intent_head nn.Linear(hidden_dim, 4) # 回复意图 def forward(self, x, edge_index, batch): h F.relu(self.conv1(x, edge_index)) h self.dropout(h) h F.relu(self.conv2(h, edge_index)) # 注意力得分经过 sigmoid 后作为乘法权重。 # 严格版本应按每个事件做 softmax这里用 sigmoid 近似训练更稳 alpha torch.sigmoid(self.attn(h)) # 加权求和得到事件级表征 emb global_add_pool(alpha * h, batch) return self.rumor_head(emb), self.stance_head(emb), self.intent_head(emb)参数上说几点。hidden_dim 用 128 已经能在大多数公开数据上跑到不错的 F1256 在数据量大时略优但训练时间接近翻倍。dropout 对 GCN 尤其重要因为图数据过拟合时指标会在两个 epoch 内突然掉盘。为什么没有按事件做 softmax 注意力而是用 sigmoid按事件 softmax 需要对每个 graph 单独 maskbatch 里图大小不一实现更绕实际任务里 sigmoid 加权配合 global_add_pool 效果差距很小先跑通更重要。3.4 多任务训练的三个基座损失权重、任务顺序、梯度平衡多任务不是把三个 loss 简单相加就完事。我常用的损失是各任务交叉熵的加权和loss (weights[rumor] * F.cross_entropy(rumor_logits, label_rumor) weights[stance] * F.cross_entropy(stance_logits, label_stance) weights[intent] * F.cross_entropy(intent_logits, label_intent))损失权重建议先固定成 0.5 / 0.3 / 0.2 跑几轮观察各任务收敛速度。有一个容易忽略的点谣言判别是主任务它的梯度应该主导共享编码器的更新如果立场任务的样本更均衡、梯度更大共享层会被带偏。这时可以把谣言任务的权重调高或者在反向传播时对 stance 的梯度乘一个 0.3 左右的缩放而不是一味增加权重。任务顺序上常见的做法是三个任务共享同一个 batch 同步更新而不是轮流训练。同步更新时建议对总 loss 做一次梯度裁剪norm 设为 5.0防止某个任务出现大梯度把共享层的分布冲坏。多任务真正的收益在于共享层学到“文本 传播结构”的通用表示立场和意图任务相当于给共享层提供了正则化这正是它比单任务谣言分类稳的原因。4. 数据组织与训练配置协议、损失函数和超参表4.1 数据集目录结构与标注协议解压这套压缩包之后典型的数据组织方式是“事件目录 标签文件”。不同的数据源会改目录名但结构基本一致。data/ ├── events/ │ ├── event_0001/ │ │ ├── source.json # 源帖字段文本、用户、时间、事件id │ │ └── replies.jsonl # 转评记录每行一条含 parent_id │ ├── event_0002/ │ │ └── ... └── labels.json # 事件级标注谣言/非谣言/未经证实source.json 里通常有 text、user_id、timestamp、event_idreplies.jsonl 每行是一个转发或回复靠 parent_id 指向父帖子。labels.json 则按 event_id 给出事件级标签有些数据集还会给出帖子级立场标签这是多任务能落地的前提。多任务的“多”具体是哪几个任务决定了代码里任务头的数量和标签映射。我见过最稳定的组合是谣言判别二分类或三分类 立场分类支持/否定/中性 回复意图分类质疑/求证/情绪化评论等。如果你的数据只有前两个标签第三个任务头可以去掉或者用无监督的文本聚类打伪标签再参与训练伪标签任务建议设很小的权重否则会把噪声灌回共享层。读取数据时有一个值得注意的坑jsonl 文件的 parent_id 是字符串很多数据里 “None” 被写成字符串而不是空值直接做 parent 判断会把所有帖子都当成普通节点根节点缺失。常见做法是先把 parent_id 统一转成 str 再判断“None”、空串、null 三种形态都看作根。4.2 按事件划分训练集为什么随机切分是错的同一个事件的转发帖共享传播树、共享话题和情绪倾向如果按帖子随机切分模型在训练时已经见过测试集里同一棵树的很多节点泄露远比想象严重。正确的做法是按事件event_id分组切分保证同一个事件的全部帖子要么在训练集要么在测试集。from sklearn.model_selection import GroupShuffleSplit # samples 是全部事件样本event_ids 与 labels 长度一致 event_ids [s[event_id] for s in samples] labels [s[label] for s in samples] gss GroupShuffleSplit(n_splits1, test_size0.2, random_state42) train_idx, test_idx next(gss.split(samples, labels, groupsevent_ids))这里 GroupShuffleSplit 的 groups 参数是关键它保证同一个 group 不会被拆到两个集合。验证集用同样的方式从 train_idx 里再切一次groups 传 event_ids[train_idx]验证集也不能和训练集共享事件。提示验证集不能和训练集共享事件否则早停会一直停在虚高的点上换到全新事件时效果立刻打回原形。如果不按事件划分你会在测试集上看到漂亮的 90% 准确率这是图模型最容易骗人的地方。我见过太多人拿着这种虚高结果上线然后被完全没见过的传播树结构打败。4.3 训练参数表从 batch size 到早停阈值图数据训练参数和普通 CV 差别不小关键是每个 batch 内图的大小不同没法按固定 sequence length 来估计显存。以下是基于这套框架的个人默认值按数据量调整即可。参数建议值说明batch_size16 ~ 32按事件每个样本是一整棵传播树树大的时候显存压力大learning_rate5e-4 ~ 1e-3Adam 配合 warmup 5% 更稳GCN 层数2 ~ 3超过 3 层过平滑风险显著hidden_dim128 ~ 256数据小用 128追求上限用 256dropout0.3 ~ 0.5图数据必须有一层 dropout 在 GCN 之间损失权重0.5 / 0.3 / 0.2主任务谣言判别权重最高早停 patience8 ~ 10epoch依据验证集宏 F1不是 loss梯度裁剪max_norm5.0防止多头任务某分支梯度冲崩训练循环本身很直接用 PyG 的 mini-batch 加载器一个 epoch 内按事件迭代。关键点是从第 2 个 epoch 开始看验证集宏 F1而不是看加权 loss——多任务加权 loss 下降不代表谣言主任务在变好。5. 避坑指南图谣言检测复现中反复出现的五个问题5.1 新事件没有传播图冷启动直接失效现象模型跑完测试集指标不错一接到新事件在只有少量转发甚至零转发的阶段输出的置信度完全不可信。原因整个模型建立在传播树上图卷积没有图可用。部署阶段的新事件不会像数据集一样自带完整传播树冷启动是图模型最容易被高估的地方。解决对早期事件回退到纯文本注意力基线等传播树深度超过 2 层再切回 GCN 模型。常见做法是部署两条路径冷启动用轻量文本模型热启动用图模型用事件报告时间做条件切换。我在生产环境里把max_depth 2作为切换阈值再往前宁可用低一点召回率的文本模型也不让 GCN 在图上硬算出一个毫无依据的置信度。5.2 过平滑GCN 层数一多所有节点表征趋同现象把层数从 3 调到 5验证集 F1 掉了 4~5 个点节点 embedding 的方差明显变小所有节点的表征看起来都差不多。原因GCN 的拉普拉斯平滑本质上让每个节点反复聚合邻居层数越多越接近全图均值。传播树本身深度不大但“深”和“有效”是两回事。解决控制层数在 3 层以内或加残差连接h h conv(h)。如果确实想保留深度把 GCN 换成 JK-Net 的结构每一层的输出都拼起来再进分类层而不是只在最后一层输出。对谣言检测来说第一层的“内容直接邻居”和第二层的“子树结构”已经覆盖了绝大多数有效信息。5.3 类别不平衡谣言样本占比太低现象测试集准确率很高但谣言类别的召回率只有 20%模型把所有样本都判成非谣言。原因谣言在真实数据里占比常常不到 10%普通交叉熵会被多数类主导。解决先用加权交叉熵做基线不行就换 focal loss常用参数是alpha0.25, gamma2。也可以在采样时按事件标签做平衡采样保证每个 batch 里至少有一部分谣言样本。主任务评价必须盯着谣言类的 F1而不是整体准确率否则调参方向会被带偏。5.4 切分泄漏同一事件的兄弟帖子被拆进训练和测试现象离线 F1 高达 0.92线上新事件只有 0.7。最典型的是改了一版模型后离线涨点上线反而跌回滚之后离线又涨。原因随机切分把同一棵传播树的节点泄漏进了测试集共享层学到的“记忆”在离线评估里被当成泛化能力。解决用 GroupShuffleSplit 按事件分组这是底线。更好的做法是模拟线上冷启动按事件时间排序用前 80% 时间的事件做训练、后 20% 做测试这样评估结果才接近真实部署场景。时间切分会牺牲一点训练数据量但换来的指标可信度完全值得。5.5 显存与内存爆炸单棵树规模过大现象某个事件有上万个转发节点GPU 显存直接 OOMCPU 内存也被邻接矩阵撑满。原因一个 batch 里塞了几棵大树邻接矩阵非零元过多PyG 的 mini-batch 会把所有图拼装成大稀疏矩阵边数爆炸。解决限制最大深度对超过阈值的传播树做随机子采样或者用动态 batch size按总边数而不是样本数来填充。经验法则是每个 batch 的总边数控制在 5 万以内超过就减半 batch树深度超过 6 层的分支可以直接截断因为深层转发对谣言判别的边际贡献很小。6. 评估指标、降级策略和我的一个复现习惯6.1 别只盯着 Accuracy谣言检测的指标三件套谣言检测天然类别失衡accuracy 是陷阱。离线评估我只看三个数宏 F1对所有类别算 F1 再平均、谣言类别的召回率、以及 AUC。宏 F1 对每个类一视同仁类别失衡时比准确率诚实得多谣言召回率决定了系统能不能在真实场景中拦截到足够多的谣言AUC 则用来判断置信度排序质量当作后续人工复核队列的依据。三个指标一起看才能判断模型是真的变强还是只是把阈值调对了位置。6.2 冷启动降级图不可用时回退到文本注意力基线我在生产环境里通常部署两套模型。传播树到达一定规模前走纯文本注意力基线树成形后再切换图模型。这个切换要在事件级别判断而不是帖子级别。回退到的文本模型不必重新写把上面模型里的 GCN 编码器去掉保留注意力池化层就变成一个合法的文本基线它本身就是多任务框架的退化版本共享层和任务头都能复用。做这个降级的意义在于谣言检测系统最怕的不是效果差而是不知道什么时候该信自己的输出。6.3 固定随机种子并保存每个 epoch 的 checkpoint有一个教训我记了很久。有一次我在调整注意力权重怎么调验证集都在 0.81 上下波动换回旧代码也复现不了前两天跑出的 0.85。查了两天最后发现是当初没固定随机种子dropout 加 GCN 初始化的波动让两次训练相差了 4 个点。从那以后我每个训练脚本第一行就是固定 seed并且每个 epoch 都保存 checkpoint按 epoch 命名。同样的代码、同样的参数不能稳定复现的模型没法谈后续调优把种子和 checkpoint 这个习惯固定下来等于给自己买了后悔药。做谣言检测最难的不是把模型调到某个指标而是搞清楚模型在什么数据上有效、在什么条件下失效。传播树的优势在新事件早期并不成立这一点想清楚了训练、上线、降级方案才不会被离线的漂亮数字骗过去。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

YOLO数据集制作与模型训练全流程详解:从标注到调优

YOLO数据集制作与模型训练全流程详解:从标注到调优

很多人第一次接触目标检测,都是从YOLO开始的。但真正动手做项目的时候才会发现,跑通官方自带的推理Demo只是第一步,最磨人的其实是数据集制作这一关。我当时第一次做自己的检测任务时,光是在“标注完图片之后怎么变成YOLO认识的格…

2026/10/18 12:53:39 阅读更多 →
MCU上直接生成PDF:嵌入式C库实现与内存优化

MCU上直接生成PDF:嵌入式C库实现与内存优化

简介:面向MCU嵌入式开发者的PDFlib移植包,解决单片机等资源受限环境下生成PDF文档的难点。该库针对小内存、低算力平台做了裁剪优化,可配合FatFS文件系统直接保存文件,适用于工业自动化实时报告、医疗设备诊断结果、物联网终端数据…

2026/10/18 12:53:39 阅读更多 →
VsCode 配置 Latex 编译环境并指定输出目录:用 TaoToken 统一管理 API 调用

VsCode 配置 Latex 编译环境并指定输出目录:用 TaoToken 统一管理 API 调用

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:53:39 阅读更多 →

最新新闻

hostapd-2.10源码解析:从编译到二次开发实战指南

hostapd-2.10源码解析:从编译到二次开发实战指南

简介:hostapd-2.10源码包面向Linux无线开发与嵌入式网络工程师,用于在Linux系统上以软件方式创建和管理WiFi热点,替代硬件AP实现主机模式接入点。包内共655个文件,以363个C源文件和235个头文件为核心,覆盖nl80211驱动、…

2026/10/18 15:50:15 阅读更多 →
LISREL验证性因素分析完整指南:从模型识别到拟合判读

LISREL验证性因素分析完整指南:从模型识别到拟合判读

简介:一份面向社会科学、心理学及教育学研究者与学生的LISREL软件验证性因素分析教学PPT,系统讲解结构方程模型中验证性因素分析的核心逻辑与实操要点。资源从“准确Vs简洁”的数据处理两难切入,说明如何输入相关矩阵、设定理论模型、输出再生…

2026/10/18 15:50:15 阅读更多 →
通义千问Qwen3本地部署实战:MoE架构、硬件选型与性能调优

通义千问Qwen3本地部署实战:MoE架构、硬件选型与性能调优

前几天有个朋友来问我,说他拿到一台旧工作站,想跑一个新出的开源模型,问我到底值不值得折腾。我第一反应是问他:你要跑的模型是哪个?他回答说在想跑通义千问 Qwen3 系列。我说那就很值得,Qwen3 这一代把 Mo…

2026/10/18 15:50:15 阅读更多 →
AI原生应用人机共创成功案例:用TaoToken统一Key打通多模型协作链路

AI原生应用人机共创成功案例:用TaoToken统一Key打通多模型协作链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 15:50:15 阅读更多 →
翁恺C语言习题集刷题指南:环境搭建、题型拆解与避坑要点

翁恺C语言习题集刷题指南:环境搭建、题型拆解与避坑要点

简介:浙江大学翁恺教授C语言课程习题与源码合集,专门面向C语言初学者、备考计算机等级考试或自学编程的读者,覆盖从基础语法到典型算法的多层次练习。资源共4个文件,包含txt题解文档、Python辅助脚本、inscode在线交互文件和html页…

2026/10/18 15:50:15 阅读更多 →
红色党建风工作总结PPT模板:从空白页到成稿的工程化流程

红色党建风工作总结PPT模板:从空白页到成稿的工程化流程

简介:这是一套面向党政部门的工作总结PPT模板,整体采用红色党建风格,视觉庄重且富有感染力,适合年终总结、阶段汇报、主题教育展示等场合。模板内置完整汇报逻辑,共分为工作目标与背景、工作成果与亮点、挑战与解决方案…

2026/10/18 15:49:14 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →