鏈接不等于多份證據(jù),新聞核驗(yàn)看板怎樣合并來(lái)源)
同一篇通稿被十個(gè)網(wǎng)站轉(zhuǎn)載頁(yè)面若只數(shù)鏈接會(huì)顯示“10 個(gè)獨(dú)立來(lái)源”可信指數(shù)也被虛高。新聞核驗(yàn)真正要統(tǒng)計(jì)的是相互獨(dú)立的證據(jù)源以及這些來(lái)源分別支持或反駁了哪條陳述。新聞可信度看板已經(jīng)展示可信指數(shù)、獨(dú)立來(lái)源和待核事實(shí)場(chǎng)景頁(yè)也區(qū)分官方發(fā)布、現(xiàn)場(chǎng)媒體和社交平臺(tái)。我將頁(yè)面數(shù)據(jù)拆成陳述、來(lái)源和證據(jù)三層使“來(lái)源數(shù)量”不再等于 URL 數(shù)量。一條新聞可以包含多條待核陳述整篇新聞只有一個(gè)真假值會(huì)丟失細(xì)節(jié)。同一報(bào)道中的時(shí)間可能已經(jīng)證實(shí)傷亡數(shù)字仍在變化地點(diǎn)描述也可能有誤。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表示內(nèi)容最初來(lái)源。轉(zhuǎn)載站點(diǎn)可以擁有不同Source.id和網(wǎng)址但只要追溯到同一篇原稿它們就在獨(dú)立性統(tǒng)計(jì)中歸為一組。URL 先規(guī)范化再判斷轉(zhuǎn)載關(guān)系常見(jiàn)鏈接帶有追蹤參數(shù)和錨點(diǎn)。若不清理同一頁(yè)面就可能被當(dāng)成多個(gè)來(lái)源。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 不能可靠識(shí)別所有轉(zhuǎn)載。真實(shí)服務(wù)還需要內(nèi)容指紋、引用鏈和人工確認(rèn)本地界面先允許錄入originId把獨(dú)立性規(guī)則放在模型中而不是寫(xiě)死為域名數(shù)量。每條陳述獨(dú)立計(jì)算狀態(tài)來(lái)源可信度不能替代證據(jù)關(guān)系。官方來(lái)源可能只確認(rèn)事件發(fā)生沒(méi)有確認(rèn)傳播最廣的數(shù)字。狀態(tài)計(jì)算只看與當(dāng)前陳述關(guān)聯(lián)的證據(jù)。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}}這里設(shè)定“兩份獨(dú)立支持且無(wú)反證”為本地演示規(guī)則不代表新聞事實(shí)核驗(yàn)的通用結(jié)論。界面應(yīng)把依據(jù)數(shù)量和沖突狀態(tài)展示出來(lái)讓讀者知道評(píng)分如何形成。看板評(píng)分保留待核數(shù)量總分是導(dǎo)航信息不能覆蓋明細(xì)。我根據(jù)已支持、存在爭(zhēng)議和證據(jù)不足的陳述生成簡(jiǎn)單分?jǐn)?shù)同時(shí)返回待核數(shù)量。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}}頁(yè)面上的“可信指數(shù) 82”“獨(dú)立來(lái)源 7”“待核事實(shí) 3”就可以從同一份BoardSummary讀取。點(diǎn)擊待核數(shù)量時(shí)列表過(guò)濾到status ! supported不用另外維護(hù)一套待辦數(shù)組。晚到證據(jù)不覆蓋人工結(jié)論證據(jù)抓取可能異步完成。自動(dòng)評(píng)估結(jié)果到達(dá)時(shí)如果用戶已經(jīng)人工標(biāo)記陳述需要保留人工版本。模型可以增加decisionSource和修訂號(hào)。exportinterfaceClaimDecision{claimId:stringstatus:ClaimStatus decisionSource:automatic|manualrevision:number}exportfunctionapplyAutomaticDecision(current:ClaimDecision,next:ClaimDecision):ClaimDecision{if(current.decisionSourcemanual){returncurrent}returnnext.revisioncurrent.revision?next:current}報(bào)告頁(yè)可以繼續(xù)使用環(huán)形綜合評(píng)分但“值得關(guān)注”區(qū)域應(yīng)由爭(zhēng)議項(xiàng)和待核項(xiàng)生成而不是固定文案。當(dāng)前項(xiàng)目使用本地演示數(shù)據(jù)不會(huì)自動(dòng)判斷現(xiàn)實(shí)新聞?wù)鎮(zhèn)?。后續(xù)接入抓取或檢索服務(wù)時(shí)外部能力只負(fù)責(zé)產(chǎn)生來(lái)源與證據(jù)來(lái)源歸并、陳述狀態(tài)、人工覆蓋和頁(yè)面選擇仍留在本地業(yè)務(wù)層。即使一下子導(dǎo)入幾十個(gè)鏈接看板統(tǒng)計(jì)的也會(huì)是證據(jù)鏈而不是鏈接數(shù)量。