多个链接不等于多份证据,新闻核验看板怎样合并来源
同一篇通稿被十个网站转载页面若只数链接会显示“10 个独立来源”可信指数也被虚高。新闻核验真正要统计的是相互独立的证据源以及这些来源分别支持或反驳了哪条陈述。新闻可信度看板已经展示可信指数、独立来源和待核事实场景页也区分官方发布、现场媒体和社交平台。我将页面数据拆成陈述、来源和证据三层使“来源数量”不再等于 URL 数量。一条新闻可以包含多条待核陈述整篇新闻只有一个真假值会丢失细节。同一报道中的时间可能已经证实伤亡数字仍在变化地点描述也可能有误。exporttypeClaimStatusunverified|supported|disputed|insufficientexporttypeEvidenceStancesupport|contradict|contextexportinterfaceClaim{id:stringtext:stringstatus:ClaimStatus updatedAt:number}exportinterfaceSource{id:stringpublisher:stringcanonicalUrl:stringoriginId:stringpublishedAt:numbersourceType:official|media|eyewitness|social}exportinterfaceEvidence{id:stringclaimId:stringsourceId:stringstance:EvidenceStance excerpt:stringcapturedAt:number}originId表示内容最初来源。转载站点可以拥有不同Source.id和网址但只要追溯到同一篇原稿它们就在独立性统计中归为一组。URL 先规范化再判断转载关系常见链接带有追踪参数和锚点。若不清理同一页面就可能被当成多个来源。exportfunctioncanonicalize(raw:string):string{try{consturlnewURL(raw)constremovable[utm_source,utm_medium,utm_campaign,from,share]removable.forEach((key:string)url.searchParams.delete(key))url.hashurl.hostnameurl.hostname.toLocaleLowerCase()if(url.pathname.length1url.pathname.endsWith(/)){url.pathnameurl.pathname.slice(0,-1)}returnurl.toString()}catch(_){returnraw.trim()}}exportfunctionuniqueOrigins(sources:Source[]):Source[]{constmapnewMapstring,Source()sources.forEach((source:Source){constkeysource.originId.length0?source.originId:canonicalize(source.canonicalUrl)constpreviousmap.get(key)if(!previous||source.publishedAtprevious.publishedAt){map.set(key,source)}})returnArray.from(map.values())}仅靠 URL 不能可靠识别所有转载。真实服务还需要内容指纹、引用链和人工确认本地界面先允许录入originId把独立性规则放在模型中而不是写死为域名数量。每条陈述独立计算状态来源可信度不能替代证据关系。官方来源可能只确认事件发生没有确认传播最广的数字。状态计算只看与当前陈述关联的证据。exportinterfaceClaimAssessment{claimId:stringstatus:ClaimStatus independentSupport:numberindependentContradiction:number}exportfunctionassessClaim(claim:Claim,evidence:Evidence[],sources:Source[]):ClaimAssessment{constsourceMapnewMap(sources.map((source:Source)[source.id,source]))constrelatedevidence.filter((item:Evidence)item.claimIdclaim.id)constsupportnewSetstring()constcontradictionnewSetstring()related.forEach((item:Evidence){constsourcesourceMap.get(item.sourceId)if(!source||item.stancecontext)returnconstoriginsource.originId||canonicalize(source.canonicalUrl)if(item.stancesupport)support.add(origin)if(item.stancecontradict)contradiction.add(origin)})letstatus:ClaimStatusunverifiedif(support.size2contradiction.size0)statussupportedelseif(contradiction.size0)statusdisputedelseif(support.size1)statusinsufficientreturn{claimId:claim.id,status,independentSupport:support.size,independentContradiction:contradiction.size}}这里设定“两份独立支持且无反证”为本地演示规则不代表新闻事实核验的通用结论。界面应把依据数量和冲突状态展示出来让读者知道评分如何形成。看板评分保留待核数量总分是导航信息不能覆盖明细。我根据已支持、存在争议和证据不足的陈述生成简单分数同时返回待核数量。exportinterfaceBoardSummary{score:numberindependentSources:numberpendingClaims:numberassessments:ClaimAssessment[]}exportfunctionsummarizeBoard(claims:Claim[],evidence:Evidence[],sources:Source[]):BoardSummary{constassessmentsclaims.map((claim:Claim)assessClaim(claim,evidence,sources))constrawassessments.reduce((sum:number,item:ClaimAssessment){if(item.statussupported)returnsum100if(item.statusinsufficient)returnsum55if(item.statusdisputed)returnsum25returnsum40},0)constscoreassessments.length0?0:Math.round(raw/assessments.length)constpendingClaimsassessments.filter((item:ClaimAssessment)item.status!supported).lengthreturn{score,independentSources:uniqueOrigins(sources).length,pendingClaims,assessments}}页面上的“可信指数 82”“独立来源 7”“待核事实 3”就可以从同一份BoardSummary读取。点击待核数量时列表过滤到status ! supported不用另外维护一套待办数组。晚到证据不覆盖人工结论证据抓取可能异步完成。自动评估结果到达时如果用户已经人工标记陈述需要保留人工版本。模型可以增加decisionSource和修订号。exportinterfaceClaimDecision{claimId:stringstatus:ClaimStatus decisionSource:automatic|manualrevision:number}exportfunctionapplyAutomaticDecision(current:ClaimDecision,next:ClaimDecision):ClaimDecision{if(current.decisionSourcemanual){returncurrent}returnnext.revisioncurrent.revision?next:current}报告页可以继续使用环形综合评分但“值得关注”区域应由争议项和待核项生成而不是固定文案。当前项目使用本地演示数据不会自动判断现实新闻真伪。后续接入抓取或检索服务时外部能力只负责产生来源与证据来源归并、陈述状态、人工覆盖和页面选择仍留在本地业务层。即使一下子导入几十个链接看板统计的也会是证据链而不是链接数量。

相关新闻

2026年视频号AI配音软件怎么选?

2026年视频号AI配音软件怎么选?

如果你在中国大陆做微信视频号,想找一款适合手机使用的AI配音软件,常见需求其实很明确:把视频文案转换成旁白,减少反复录音的时间。视频号内容从知识分享、生活经验到产品介绍、职场内容都有。不同场景对配音的要求并不一样&#…

2026/11/11 8:45:53 阅读更多 →
2026 人才盘点全流程拆解,从方案设计到报告应用实操

2026 人才盘点全流程拆解,从方案设计到报告应用实操

一、别让年度盘点变成走过场人才盘点做到第三年,很多HR会陷入一种尴尬:表格收了一堆,数据存了几个G,真正用在晋升、调岗、培养上的却寥寥无几。问题往往不在盘点本身,而在流程衔接的断裂。2026年的人才盘点&#xff0c…

2026/10/25 14:07:39 阅读更多 →
Zammad 0Day漏洞AI攻击实战检测、应急处置与全网防御指南

Zammad 0Day漏洞AI攻击实战检测、应急处置与全网防御指南

2026年9月,荷兰顶级漏洞披露机构DIVD遭遇首例公开披露的纯AI Agent自主链式0Day攻击,攻击者依托Agentic AI自动化链路,组合利用Zammad两个未公开零日漏洞,实现无登录RCE、低权限Root提权,成功入侵专注网络安全漏洞挖掘…

2026/10/25 13:17:39 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/10 23:32:01 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/10 23:32:03 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/11 2:31:33 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/10 16:14:15 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/10 12:51:50 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/10 23:32:10 阅读更多 →

日新闻

周新闻

月新闻