IDAEO知識庫km.idaeo.ai

本文屬於主題館「健康的真實」 →

查一個藥要踩過幾個坑:九個會產生「看起來正常的輸出」的失敗,每個都附可重跑的驗證

查一個藥要踩過幾個坑:九個會產生「看起來正常的輸出」的失敗,每個都附可重跑的驗證

這個系列的每一篇,都是在同一批公開資料上查出來的:政府的藥品許可證資料集、文獻檢索的公開介面、試驗登錄庫的結果欄位。過程中我們踩到九個坑,它們的共同特徵是**不會報錯**——查詢照樣回傳、程式照樣結束、數字照樣印出來,只是答案是錯的(例如用成分名查藥證品名欄回 0 筆,同一份資料的主成分欄卻有 17 張)[F1]。本文把九個坑逐一寫出來,每一個都附上可以自己重跑的驗證方式,以及一組正控制(應該要成功的案例)與負控制(應該要失敗的案例)。最後附一句 should-FAIL:拿一個資料夾名稱裡的日期當論文編號去查,它查得到,而且是一篇真的論文[F16];換一個超出編號範圍的數字才會回 0[F17]。

檔案室裡,一人站在一格打開卻空無一物的抽屜前皺眉;身後與四周,整面牆的其他抽屜微開著縫,裡頭都塞滿了卷宗。
查詢結果是 0 筆,不代表那個東西不存在——它可能就放在別的抽屜裡。

一、最危險的不是報錯,是「看起來正常的輸出」

如果一個查詢丟出例外,你會停下來檢查。但下面九種失敗全都不會丟出例外:

  • 查詢送出去了,回傳 200,回了 0 筆——而正確答案不是 0。
  • 查詢回了 5 筆,每一筆都是真的論文——但沒有一篇跟你的問題有關。
  • 逐字比對兩段文字,回傳「不相同」——而它們在人眼裡一模一樣。
  • 一張許可證的有效日期還沒到——但它已經被註銷了。

這一類失敗的共同結構是:檢查的對象存在,但檢查的問題問錯了。 所以本文每一個坑都配一組控制:一個應該成功的案例(正控制),一個應該失敗的案例(負控制)。如果負控制沒有失敗,那你的檢查本身就是壞的。

以下每一個坑,都是在寫這個系列的過程中真的撞到的。

二、第一類:查詢式沒錯,但你查的是錯的欄位

淺色木製輸送帶送來一疊文件,落入等候的雙手中;文件本身製作精良,但上頭描繪的卻是古代陶器、草藥束與舊式解剖圖,與桌上的現代器材完全無關。
依相關性排序的檢索永遠會回傳結果,只是排在前面的可能完全文不對題。

坑 1:用成分名查藥證,會得到 0 筆

症狀:想查「台灣有哪些含 semaglutide 的藥」,用成分名去搜品名,回傳 0 筆。看起來像「台灣沒有這個成分」。

驗證方式:下載主管機關的全部藥品許可證資料集,把中文品名與英文品名兩欄接起來搜尋 `semaglutide`(不分大小寫),再單獨搜主成分略述欄。

實查結果:品名欄 0 筆,主成分略述欄 17 張許可證1。

正控制:改用英文品名 `MOUNJARO` 搜品名欄,回傳 18 張——證明搜尋邏輯本身是好的2。 負控制:搜一個不存在的字串 `zzzzpatide`,品名欄與主成分欄都是 0——證明它會回 0,不是永遠回 03。

教訓:回傳 0 的時候,先問「這個欄位存不存這種資訊」,再問「是不是真的沒有」。 品名欄不索引成分,這不是資料錯,是欄位設計。

坑 2:排序型檢索沒有「查無」這個答案

症狀:用中文詞去查英文文獻庫,回傳好幾筆,每一筆都是真論文,看起來像有相關研究。

驗證方式:在文獻檢索的公開介面用 `瘦瘦針` 當查詢字串。

實查結果(實查日快照):回傳 5 筆,前五篇的標題分別是關於統一新羅時代的醫學進展、背俞穴的針刺方法、宋代對膿瘍的認知與治療、中世紀東亞的生命與身體,以及醫方知識的傳承4。沒有一篇跟這類藥有關——它們是被「瘦」與「針」這兩個字元配對到的。

負控制:改查一個亂數字串,回傳 0 筆5。這一步很重要:它證明了那 5 筆不是機器壞掉隨便回的,而是引擎真的認為那 5 筆最相關。

教訓:「有回傳」與「有命中」是兩件事。 任何以相關性排序的檢索,都會把「最像的」當成答案交出來;它沒有「查無」這個選項可以選,除非完全比對不到任何 token。跨語言查詢尤其危險,因為假陽性率會高到看不出來。

三、第二類:過濾條件安靜地砍掉了你要找的東西

一隻手拿著細網篩懸在寬淺的碗上,篩網上留著八顆淡色小石;碗底陰影裡,卻堆著一大片篩落下去的石頭,光線幾乎照不到。
篩子只給你看留下來的那幾顆,掉下去的那一大堆,它不會告訴你。

坑 3:用研究型別過濾,會整批砍掉綜述類證據

症狀:為了「只看隨機對照試驗」,在查詢式加上研究型別過濾。結果變乾淨了,看起來很專業。

驗證方式:同一個主題查詢,比較加不加 `PUB_TYPE:"Randomized Controlled Trial"` 的結果數。

實查結果(實查日快照):不加過濾 209 筆,加了之後剩 8 筆6。被砍掉的包括一篇系統性回顧與統合分析,以及一篇同一議題的期刊評論——用編號單獨測,兩篇加上該過濾後都變成 0 筆7。

注意這裡有一個反直覺的結果,而且它被我們自己的測試改寫過兩次:我們原本預期主要的樞紐試驗都會被這個過濾砍掉,實測第一輪發現有一篇停藥試驗沒有被砍掉,仍留在結果裡6;但再往下測,另一篇同為第三期的關鍵試驗確實被砍掉了18。

原因在於型別標記本身就不一致。同樣是第三期隨機分派試驗,一篇被標上了「隨機對照試驗」這個型別,另一篇沒有——後者被標的是「第三期臨床試驗」「比較性研究」「等效性試驗」等等18。加上型別過濾之後,沒有那個標記的就整篇消失。

所以正確的敘述有三層:型別過濾一定會砍掉整合多個試驗的綜述類證據7;它也可能砍掉個別的樞紐試驗,取決於該篇被標了什麼18;而且被砍掉的那一篇,你在結果清單裡看不到任何痕跡。

這一條是我們原本的假設先被自己的測試推翻、再被第二次測試部分還原後改寫的。

正控制:不加過濾時,前面提到的那篇系統性回顧與那篇期刊評論各自都查得到(各 1 筆)7;兩篇第三期試驗不加過濾時也各查得到 1 筆18。四篇都在,差別只在加了過濾之後誰還留著。

教訓:過濾條件不會告訴你它砍掉了什麼。 加過濾之前,先記下不加過濾的筆數;差額就是你放棄的東西。

坑 4:用資料庫來源過濾,會讓整篇文獻消失

症狀:習慣在查詢式加上「限 PubMed 來源」,因為那樣比較「正規」。

驗證方式:用一份沒有 PMID、只有 PMC 編號的文獻來測。本系列引用的 STEP 1 體組成分析就是這種——它以學會年會摘要的形式發表,只有 PMC 編號。

實查結果:不加來源過濾,查得到 1 筆;加上 `SRC:MED` 之後,變成 0 筆8。

正控制:換一篇同時有 PMID 與 PMC 編號的文獻,加上同樣的來源過濾仍然查得到 1 筆8——證明過濾語法沒寫錯。

教訓:沒有 PMID 的東西不等於不存在。 會議摘要、部分期刊的補充材料、預印本都可能落在這個縫裡。若你的文獻檢索一律加來源過濾,你永遠不會知道自己漏了什麼。

四、第三類:「有這個欄位」不等於「有這個東西」

坑 5:查得到適應症,不等於查得到仿單

症狀:從公開資料查到了適應症全文,於是以為「仿單查到了」。

驗證方式:把資料集的表頭列印出來,數欄位。

實查結果:共 28 欄,其中沒有任何一欄是警語、禁忌、交互作用、副作用或不良反應9。

教訓:適應症欄是仿單的一小塊,不是仿單。 一份只有適應症的整理,若寫成「依據仿單」,讀者會以為裡面包含了安全性資訊。這個系列的每一篇都把這件事寫出來。

同一類的一個小陷阱:資料集的下載網址結尾是 `csv`,但實際下載回來的檔案,`file` 指令判定為 Zip 壓縮檔10。副檔名與內容不一致,直接用 CSV 讀取器開會失敗——而失敗訊息通常是編碼錯誤,會把人引導到錯的方向。

坑 6:判斷藥證是否有效,不能只看有效日期

(這一坑放在這裡,因為它也是「欄位在說謊」的一種。)

症狀:用「有效日期是否已過」來判斷一張許可證還有沒有效,看起來天經地義。

驗證方式:在資料集裡找出「註銷狀態欄是空的、但註銷日期或註銷理由有值」的紀錄,數數量。

實查結果:這樣的許可證有 343 張11。

正控制:其中兩張的中文品名是易週糖注射劑 3 毫克與 4.5 毫克。它們的有效日期是 2027/09/23(還沒到),但註銷日期是 2026/03/18、註銷理由是「自請註銷」,而註銷狀態欄是空的11。只看有效日期,會判斷成仍然有效。

教訓:正確的判斷方式是「註銷狀態、註銷日期、註銷理由三個欄位任一有值,即視為已退場」。 這一條直接決定了整個系列第一篇的清單對不對。

五、第四類:字面比對比你以為的脆弱

兩張手寫的索引卡並排放在深色布上,乍看一模一樣;從左側斜射而來的光線,卻照出其中一張紙的纖維走向與另一張截然不同。
兩個看起來相同的字,背後可能是不同的字碼——眼睛看不出來,機器一比對就露餡。

坑 7:自由文字欄位用精確比對,必然漏數

症狀:想數「有幾張許可證的適應症是這一句」,於是用完全相同比對。

驗證方式:取出成分為 orlistat 的現行指示藥品,列出所有相異的適應症字串。

實查結果:共 15 張。用出現次數最多的那一句去做精確比對,只命中 8 張,漏掉 7 張12。差異包括「十八歲」與「18歲」、「大於等於」與「≧」、半形括號與全形括號、句號與逗號、以及單位前面多打的一個空格。

「有幾種寫法」這個數字本身取決於計數口徑,同一批 15 張有三個都正確的答案(本系列凡引用此數字一律標明口徑)12:

計數口徑相異寫法數
原始字串,不做任何處理8 種
先做 NFKC 正規化6 種
NFKC 後再去掉全部空白字元5 種

三個數字不衝突,它們數的是不同東西。正規化幫得上忙,但不會把問題消掉:即使做到最寬鬆的第三種口徑,仍有 5 種寫法,因為「十八歲」與「18歲」、頓號與逗號這類差異不是正規化能消掉的12。引用這類數字時,只寫數字不寫口徑,等於沒寫。

教訓:自由文字欄位不受統一寫法的約束。 要數這種欄位,只能先枚舉全部相異值,再人工歸類;不能先假設「應該只有一種寫法」。

坑 8:政府檔裡有肉眼看不見的字

症狀:把仿單原文複製到自己的稿子裡,再寫程式逐字比對,結果回報「不相同」。肉眼看兩邊一模一樣。

原因:原始檔使用了 Unicode 的「中日韓相容表意文字」區(U+F900 到 U+FAFF)。這些字元與一般寫法外觀相同、編碼不同。

驗證方式:掃描整份資料集,統計落在該區間的字元。

實查結果(實查日快照):全檔 72,013 個資料列中,有 748 列含有這類字元,總計出現 8,380 次,共 85 種不同字元;出現最多的是「療」。單看兩張許可證的適應症欄,猛健樂那一張有 13 個、週纖達那一張有 39 個13。

正控制:對同一段文字做 NFKC 正規化之後再掃,落在該區間的字元數變成 013。 負控制:掃許可證字號那一欄(全部是 ASCII 與常用漢字),落在該區間的字元數是 013——證明掃描器不是把所有漢字都當成相容字。

這個負控制救了我們一次。 在準備這篇稿子的過程中,同一段掃描程式被重寫了一次,範圍上界寫成了外觀相同的一般漢字,結果掃描結果變成「全部 72,013 列都含相容字、85 種變成 685 種」。這個坑會反咬寫檢查的人——如果沒有負控制,那組明顯不合理的數字會被當成新發現寫進文章。

教訓:宣稱「逐字相同」時,必須說明比對前做了哪一種正規化。 本系列的做法是:兩邊都先做 NFKC 再逐字元比對;引用時只把相容區的字元換成一般寫法,其餘全形半形、括號種類、標點差異一律照原檔保留。

六、第五類:同一個東西,有兩個以上都正確的數字

三把刻度不同的木尺並排量著同一段短木條,起始邊都對齊在一起;但三把尺上的刻度落點各自不同——三把尺都做得很準。
同一段長度,三種量法都對,數字卻不一樣——問題不在誰量錯了,在用的是哪一把尺。

坑 9:母體數與主要終點,都可能有多個合法版本

實例一:同一份資料,母體筆數有三個版本。 同一份藥品許可證資料,用不同的計數方式會得到不同的數字(皆為實查日快照):資料列數 72,013、相異許可證字號數 66,459;而某個第三方查詢工具的說明文字寫的是另一個數字 71,83614。三個都不是錯的——它們數的東西不同(列、許可證、該工具建立索引當天的快照)。

實例二:同一個試驗、同一個主要終點,論文與登錄庫的數字不一樣。 本系列引用的一個停藥試驗,論文摘要寫的主要終點是安慰劑組 +14.0%、用藥組 −5.5%;試驗登錄庫同一個終點欄位寫的是 14.8% 與 −6.7%15。差異的原因就寫在登錄庫的族群說明裡:那一筆的分析排除受試者停掉試驗用藥之後的資料,論文摘要用的是不排除的算法15。

教訓:「我對過原文」這句話沒有資訊量,除非你說出對的是哪一份、哪一種算法。 引用數字時要一併寫下計數單位與分析設定,否則下一個人拿另一個同樣正確的數字來,就會變成無法收斂的爭論。

七、一句 should-FAIL:只驗「編號存在」,會 100% 全綠

最後一件事,是關於檢查本身。

一個常見的品管做法是「檢查每個引用的論文編號是否查得到」。這個檢查有一個致命的性質:它幾乎永遠會過。

驗證方式:拿一個跟文獻完全無關的數字當論文編號去查。我們用的是一個工作資料夾名稱裡的日期:`20260819`。

實查結果:查得到。那是一篇 1946 年發表在心臟科期刊上的論文,標題是「One hundred positive hypoxemia tests」16。

負控制:換一個超出編號範圍的數字 `999999999`,回傳 0 筆17——證明這個查詢確實會回 0,只是很難回 0。

教訓:「編號存在」是一個幾乎沒有鑑別力的檢查。 真正要驗的是三件事:(一)這個編號配的論文,講的是不是你說的那件事;(二)你引的那個數字,是不是真的出現在摘要或登錄庫的結果欄位裡;(三)讀者點進去,是不是真的看得到。第三點特別容易被忽略——本系列引用的多數樞紐試驗都有付費牆,所以每一篇都額外附一條開放取用版本或試驗登錄庫結果頁的路徑。

八、把九個坑收成一張表,以及這套方法的邊界

#坑一句話驗證負控制長什麼樣
1成分名查不到藥證同時查品名欄與主成分欄,比對筆數用不存在的字串,兩欄都要回 0
2排序型檢索沒有「查無」看回傳內容,不看回傳筆數用亂數字串,要回 0
3型別過濾砍掉綜述記下加過濾前後的筆數差被砍掉的那筆,單獨查要能查到
4來源過濾讓整篇消失用一筆沒有 PMID 的資料測用有 PMID 的那筆測,要留下
5有適應症不等於有仿單把表頭列出來數欄位找警語欄,要找不到
6自由文字精確比對必漏先枚舉所有相異值最常見那句的命中數要小於總數
7同一個數字有多個版本寫下計數單位與分析設定換一種算法,數字要跟著變
8看不見的相容字兩邊都先 NFKC 再比對掃純 ASCII 欄位,要回 0
9只看有效日期會判錯三個註銷欄任一有值即視為退場找有效日期未到但已註銷的實例

這套方法的邊界,也要寫清楚。

它只處理「查得對不對」,不處理「證據強不強」。 一個數字查對了、來源標對了,不代表那個研究設計得好,也不代表它適用於你。

它需要一手來源可公開取得。 本系列能這樣做,是因為藥品許可證資料、文獻檢索介面與試驗登錄庫都有公開的查詢方式。碰到沒有公開一手來源的主題,這套流程走不完,那時候誠實的做法是寫「截至實查日未查到」,並附上查詢式與正控制,而不是補一個看起來像真的的答案。

它防不了「問錯問題」。 所有的控制都只能檢查你問的那個問題,答案對不對;它不會告訴你這個問題本身值不值得問。

本文為資料查證方法的整理,所有實查結果皆為實查日的快照,不構成醫療建議。

本文屬「GLP-1 證據系列」,系列的證據基礎在 瘦瘦針在台灣的法定底帳:哪些藥證還有效、哪些早就退場、名字又錯在哪,該篇並列出全系列十篇。

引用來源逐條

正文每一個 `[F<n>]` 標記,都對應下面一條定義。每條依序寫出:主張、來源逐字原文、查詢網址、依據層級、查核日期。

  • [F1]|以 semaglutide 搜藥品許可證資料的中文品名+英文品名欄回傳 0 張,搜主成分略述欄回傳 17 張|(實查輸出)semaglutide: 品名欄命中=0 主成分欄命中=17|全部藥品許可證資料集;比對方式:許可證字號去重後,對「中文品名+英文品名」與「主成分略述」分別做小寫子字串比對|editorial(我們的計數,方法如左)|2026-08-26
  • [F2]|正控制:以 MOUNJARO 搜英文品名欄回傳 18 張|(實查輸出)正控制 MOUNJARO in 英文品名 = 18|同 F1|editorial|2026-08-26
  • [F3]|負控制:以 zzzzpatide 搜品名欄與主成分欄皆回傳 0 張|(實查輸出)負控制 zzzzpatide 品名欄 = 0 主成分欄 = 0|同 F1|editorial|2026-08-26
  • [F4]|以「瘦瘦針」查 Europe PMC,實查日回傳 5 筆,前五篇為古代東亞醫學史相關論文|(實查輸出)hitCount(當日快照)= 5/37257929 How Did the Clinical Medicine Progress during the Unified Silla Era/36316824 Anatomical structures and needling method of the back-shu points BL18, BL20, and BL22/38768993 The Perception and Treatment of People about Abscesses in the Song Period/31092803 An Exploration into Life, Body, Materials, Culture of Mediaeval East Asia/29724986 Knowledge Transmission of Medical Prescription and the Role of the Literati Officials|https://www.ebi.ac.uk/europepmc/webservices/rest/search?format=json&pageSize=5&query=%E7%98%A6%E7%98%A6%E9%87%9D|editorial(實查日快照;筆數會變動)|2026-08-26
  • [F5]|負控制:以亂數字串 zzqqxxvvnonsense 查詢,回傳 0 筆|(實查輸出)hitCount(當日快照)= 0|https://www.ebi.ac.uk/europepmc/webservices/rest/search?format=json&pageSize=5&query=zzqqxxvvnonsense|editorial|2026-08-26
  • [F6]|同一主題查詢加上研究型別過濾,實查日筆數自 209 降為 8;該主題的主要停藥試驗在加過濾後仍留在結果內|(實查輸出)不加過濾 hitCount= 209/加 PUB_TYPE 過濾 hitCount= 8,結果清單含 38078870|https://www.ebi.ac.uk/europepmc/webservices/rest/search?format=json&query=tirzepatide%20AND%20withdrawal%20AND%20%22weight%20regain%22(與加上 %20AND%20PUB_TYPE:%22Randomized%20Controlled%20Trial%22 的版本比較)|editorial(實查日快照)|2026-08-26
  • [F7]|一篇系統性回顧(PMID 42534203)與一篇期刊評論(PMID 42043833)在加上研究型別過濾後皆為 0 筆,不加過濾時各為 1 筆|(實查輸出)EXT_ID:42534203 無過濾 hitCount= 1/加RCT過濾 hitCount= 0;EXT_ID:42043833 無過濾 hitCount= 1/加RCT過濾 hitCount= 0|https://www.ebi.ac.uk/europepmc/webservices/rest/search?format=json&query=EXT_ID:42534203%20AND%20SRC:MED(與加上型別過濾的版本比較)|editorial(實查日快照)|2026-08-26
  • [F8]|PMC8089287 不加來源過濾回傳 1 筆,加上 SRC:MED 回傳 0 筆;正控制 PMC9542252 加上 SRC:MED 仍回傳 1 筆|(實查輸出)A. PMCID:PMC8089287(無過濾)hitCount= 1/B. PMCID:PMC8089287 AND SRC:MED hitCount= 0/C. PMCID:PMC9542252 AND SRC:MED hitCount= 1|https://www.ebi.ac.uk/europepmc/webservices/rest/search?format=json&query=PMCID:PMC8089287(與加上 %20AND%20SRC:MED 的版本比較)|editorial|2026-08-26
  • [F9]|藥品許可證資料集共 28 欄,無警語、禁忌、交互作用、副作用或不良反應欄位|許可證字號、註銷狀態、註銷日期、註銷理由、有效日期、發證日期、許可證種類、舊證字號、通關簽審文件編號、中文品名、英文品名、適應症、劑型、包裝、藥品類別、管制藥品分類級別、主成分略述、申請商名稱、申請商地址、申請商統一編號、製造商名稱、製造廠廠址、製造廠公司地址、製造廠國別、製程、異動日期、用法用量、包裝與國際條碼|同上資料集 CSV 表頭列|official_text|2026-08-26
  • [F10]|資料集下載網址結尾為 csv,但下載內容經 file 判定為 Zip 壓縮檔|(實查輸出)exp36.txt: Zip archive data, at least v2.0 to extract, compression method=deflate|https://data.fda.gov.tw/data/opendata/export/36/csv|editorial(實查日快照)|2026-08-26
  • [F11]|註銷狀態欄為空、但註銷日期或註銷理由有值者共 343 張;實例為易週糖注射劑 3 毫克與 4.5 毫克,有效日期 2027/09/23、註銷日期 2026/03/18、註銷理由「自請註銷」、註銷狀態欄為空|(實查輸出)註銷狀態空、但註銷日期或理由有值 = 343 張/衛部菌疫輸字第001199號 易週糖注射劑3毫克/0.5毫升 狀態= '' 日期= '2026/03/18' 理由= '自請註銷' 有效= 2027/09/23/衛部菌疫輸字第001200號 易週糖注射劑4.5毫克/0.5毫升 狀態= '' 日期= '2026/03/18' 理由= '自請註銷' 有效= 2027/09/23|同上資料集,許可證字號去重後統計|official_text(欄位值)+editorial(統計)|2026-08-26
  • [F12]|orlistat 現行指示藥品 15 張,適應症相異寫法數依計數口徑有三個值:原始字串 8 種、NFKC 後 6 種、NFKC 再去全部空白後 5 種;以最常見那句精確比對僅命中 8 張|(實查輸出)有效指示藥張數= 15/A 原始字串相異數= 8/B NFKC 後相異數= 6/C NFKC+去所有空白後相異數= 5/用最常見那句做精確比對 → 命中 8 / 15 張(漏 7)/負控制:以不存在的成分名 zzzlistat 查主成分略述欄 = 0 張|同上資料集;條件:主成分略述含 orlistat、藥品類別含「指示」、註銷三欄皆空|official_text(欄位值)+editorial(統計)|2026-08-26
  • [F13]|相容表意文字統計(實查日快照):72,013 個資料列中 748 列含此區字元,共出現 8,380 次、85 種;猛健樂 028463 適應症 13 個、週纖達 001225 適應症 39 個;NFKC 後為 0;許可證字號欄為 0|(實查輸出)ROW-LEVEL: rows=72013, rows_with_compat=748, occurrences=8380, distinct=85/衛部藥輸字第028463號 適應症 compat count = 13/衛部菌疫輸字第001225號 適應症 compat count = 39/NEG CONTROL 許可證字號欄 compat = 0/POS CONTROL: NFKC 後 028463 適應症 compat = 0/(同一支掃描程式把區間上界誤寫成外觀相同的一般漢字時的輸出,即文中所述被負控制擋下的那一次)ROW-LEVEL 含相容字列數= 72013 次數= 997958 字種= 685|同上資料集;掃描範圍 U+F900–U+FAFF,以明確碼位比較|editorial(我們的統計,方法如左)|2026-08-26
  • [F14]|同一份資料的母體筆數有三個版本(皆為實查日快照):資料列 72,013、相異許可證字號 66,459、第三方查詢工具說明文字所載 71,836|(實查輸出)RAW_ROWS= 72013 UNIQUE_LICENSE= 66459/(第三方工具說明)衛福部食藥署 全部藥品許可證 search (data.gov.tw 9122, 71,836 件)|同上資料集,與第三方查詢工具的說明文字|editorial(實查日快照)|2026-08-26
  • [F18]|同為第三期隨機分派試驗,出版型別標記不一致:一篇含「Randomized Controlled Trial」故加過濾後留下,另一篇不含該標記故加過濾後為 0。本條引用的是 Europe PMC/PubMed 的書目 metadata 欄位(pubTypeList)與檢索回傳筆數,不是 ClinicalTrials.gov 試驗登錄庫欄位,也不是這兩篇論文的研究結果|(實查輸出)EXT_ID:38078870 pubTypeList=Clinical Trial, Phase III/Research Support, Non-U.S. Gov't/research-article/Multicenter Study/Randomized Controlled Trial/Journal Article;加過濾 hitCount=1。EXT_ID:40353578 pubTypeList=Clinical Trial, Phase III/Comparative Study/Equivalence Trial/Multicenter Study/Journal Article(無 RCT 標記);加過濾 hitCount=0,不加過濾 hitCount=1|https://www.ebi.ac.uk/europepmc/webservices/rest/search?format=json&resultType=core&query=EXT_ID:40353578%20AND%20SRC:MED(與加上 %20AND%20PUB_TYPE:%22Randomized%20Controlled%20Trial%22 的版本比較)|editorial(我們對檢索系統書目 metadata 的實查輸出)|2026-08-26
  • [F15]|同一試驗同一主要終點,論文摘要為 14.0%/−5.5%,試驗登錄庫為 14.8%/−6.7%,差異來自登錄庫該筆排除停藥後資料|論文摘要:The mean percent weight change from week 36 to week 88 was -5.5% with tirzepatide vs 14.0% with placebo/登錄庫族群說明:All randomized participants who received at least one dose of the study drug, had randomization and at least one post-randomization values for this outcome, excluding data after discontinuation of the study drug.|https://www.ebi.ac.uk/europepmc/webservices/rest/search?format=json&query=EXT_ID:38078870%20AND%20SRC:MED 與 https://clinicaltrials.gov/api/v2/studies/NCT04660643|peer_reviewed(論文值)+registry(登錄庫值)|2026-08-26
  • [F16]|以 20260819 當論文編號查詢,查得到一篇 1946 年的論文。本條要證明的是檢索器的行為(一個無關數字也會命中真論文),引用的是檢索回傳的題名與年份這兩個書目欄位,不是該 1946 年論文的研究結果|(實查輸出)title: One hundred positive hypoxemia tests./journal: Acta cardiologica | year: 1946|https://www.ebi.ac.uk/europepmc/webservices/rest/search?format=json&query=EXT_ID:20260819%20AND%20SRC:MED|editorial(我們的檢索輸出;書目欄位本身可在 Europe PMC/PubMed 核到)|2026-08-26
  • [F17]|負控制:以 999999999 當論文編號查詢,回傳 0 筆|(實查輸出)EXT_ID:999999999 hitCount= 0|https://www.ebi.ac.uk/europepmc/webservices/rest/search?format=json&query=EXT_ID:999999999%20AND%20SRC:MED|editorial|2026-08-26

FAQ

為什麼查詢回傳 0 筆不能當成「沒有」?
因為 0 有兩種來源:真的沒有,或你查的欄位不存這種資訊。實例是用成分名 `semaglutide` 去查藥品許可證資料的品名欄,回傳 0 筆;但同一份資料的主成分略述欄有 17 張[F1]。要分辨這兩種 0,需要一個正控制(換一個確定存在的字串去查,要查得到)[F2],以及一個負控制(用不存在的字串去查,兩欄都要回 0)[F3]。
用中文詞查英文文獻庫會發生什麼事?
會拿到「真的論文、但完全無關」的結果。以「瘦瘦針」查詢,實查日回傳 5 筆,主題分別是古代東亞的醫學史與針刺方法,沒有一篇與這類藥有關[F4]——它們是被「瘦」與「針」兩個字元配對到的。用亂數字串當負控制查詢,回傳的是 0 筆[F5],證明引擎確實會回 0,那 5 筆是它真的認為最相關。
加「只看隨機對照試驗」的過濾條件有什麼問題?
它會安靜地砍掉一部分證據,而且被砍掉的不只是綜述類,正確的說法有三層。第一層:它一定會砍掉整合多個試驗的綜述類證據——實測同一個主題查詢,不加過濾 209 筆、加了剩 8 筆[F6],被砍掉的包含一篇系統性回顧與統合分析[F7]。第二層:它**也可能**砍掉個別的樞紐試驗,取決於那一篇被標了什麼型別。同樣是第三期隨機分派試驗,PMID 38078870 被標上「Randomized Controlled Trial」,加過濾後仍在(1 筆);PMID 40353578 沒有這個標記,只被標成「第三期臨床試驗」「比較性研究」「等效性試驗」「多中心研究」,加過濾後就變成 0 筆(不加過濾是 1 筆)[F18]。第三層:被砍掉的那一篇,你在結果清單裡看不到任何痕跡——結果只會變少,不會告訴你少了誰。
為什麼有的文獻加了「限 PubMed」就查不到?
因為它沒有 PMID。本系列引用的一份體組成分析以學會年會摘要形式發表,只有 PMC 編號;不加來源過濾查得到 1 筆,加上限 PubMed 之後變成 0 筆[F8]。用一篇同時有兩種編號的文獻做正控制,加同樣的過濾仍然查得到[F8],證明語法沒寫錯。
什麼是「看不見的相容字」?
是 Unicode 中日韓相容表意文字區(U+F900 到 U+FAFF)的字元,與一般寫法外觀相同、編碼不同。實查日的統計是:全檔 72,013 個資料列中有 748 列含這類字元,總計 8,380 次、85 種[F13]。不做正規化的話,正確的引文也會被判成不符。
逐字比對要怎麼做才不會誤判?
兩邊都先做 NFKC 正規化,再逐字元比對。同時要有負控制:拿一段刻意改過一個字的文字去比,必須被判成不同。若負控制沒有失敗,代表比對器本身壞了——本文第五類那個坑就是這樣抓到的(掃描器被改壞時,同一份資料的統計從 748 列暴增成全部 72,013 列,是負控制擋下來的)[F13]。
怎麼判斷一張藥品許可證還有沒有效?
不能只看有效日期。資料中有 343 張許可證的註銷狀態欄是空的,但註銷日期或註銷理由有值[F11]。實例是兩張有效日期為 2027/09/23、但已於 2026/03/18 自請註銷的許可證[F11]。正確的判斷是註銷狀態、註銷日期、註銷理由三欄任一有值,即視為已退場。
檢查「論文編號查得到」有用嗎?
幾乎沒有鑑別力。我們拿一個工作資料夾名稱裡的日期 `20260819` 當論文編號去查,查得到,而且是一篇 1946 年的真論文[F16];換一個超出編號範圍的數字 `999999999` 才會回 0 筆[F17]。要驗的是編號對應的論文講的是不是那件事、你引的數字是否真的在摘要或登錄庫欄位裡,以及讀者是不是真的點得進去。

引用本文

林編輯・《查一個藥要踩過幾個坑:九個會產生「看起來正常的輸出」的失敗,每個都附可重跑的驗證》・IDAEO 知識庫・2026-08-26・https://km.idaeo.ai/post/health/how-to-read-drug-evidence

更新 2026-08-26T13:09:21.253Z · server-rendered · four-language · IDAEO 知識庫