IDAEO知識庫

🏛 本文属于主题馆「health」

查一个药要踩过几个坑:九个会产生「看起来正常的输出」的失败,每个都附可重跑的验证

这个系列的每一篇,都是在同一批公开数据上查出来的:政府的药品批准文号数据集、文献检索的公开介面、试验登录库的结果栏位。过程中我们踩到九个坑,它们的共同特征是**不会报错**——查询照样回传、程式照样结束、数字照样印出来,只是答案是错的(例如用成分名查药证品名栏回 0 笔,同一份数据的主成分栏却有 17 张)[F1]。本文把九个坑逐一写出来,每一个都附上可以自己重跑的验证方式,以及一组正控制(应该要成功的案例)与负控制(应该要失败的案例)。最后附一句 should-FAIL:拿一个数据夹名称里的日期当论文编号去查,它查得到,而且是一篇真的论文[F16];换一个超出编号范围的数字才会回 0[F17]。

档案室里,一人站在一格打开却空无一物的抽屉前皱眉;身后与四周,整面墙的其他抽屉微微开着缝,里头都塞满了卷宗。
查询结果是 0 笔,不代表那个东西不存在——它可能就放在别的抽屉里。

一、最危险的不是报错,是「看起来正常的输出」

如果一个查询丢出例外,你会停下来检查。但下面九种失败全都不会丢出例外:

  • 查询送出去了,回传 200,回了 0 笔——而正确答案不是 0。
  • 查询回了 5 笔,每一笔都是真的论文——但没有一篇跟你的问题有关。
  • 逐字比对两段文字,回传「不相同」——而它们在人眼里一模一样。
  • 一张批准文号的有效日期还没到——但它已经被注销了。

这一类失败的共同结构是:检查的对象存在,但检查的问题问错了。 所以本文每一个坑都配一组控制:一个应该成功的案例(正控制),一个应该失败的案例(负控制)。如果负控制没有失败,那你的检查本身就是坏的。

以下每一个坑,都是在写这个系列的过程中真的撞到的。

二、第一类:查询式没错,但你查的是错的栏位

浅色木制输送带送来一叠文件,落入等候的双手中;文件本身制作精良,但上头描绘的却是古代陶器、草药束与旧式解剖图,与桌上的现代器材完全无关。
按相关性排序的检索永远会返回结果,只是排在前面的可能完全文不对题。

坑 1:用成分名查药证,会得到 0 笔

症状:想查「台湾有哪些含 semaglutide 的药」,用成分名去搜品名,回传 0 笔。看起来像「台湾没有这个成分」。

验证方式:下载主管机关的全部药品批准文号数据集,把中文品名与英文品名两栏接起来搜寻 `semaglutide`(不分大小写),再单独搜主成分略述栏。

实查结果:品名栏 0 笔,主成分略述栏 17 张批准文号[F1]。

正控制:改用英文品名 `MOUNJARO` 搜品名栏,回传 18 张——证明搜寻逻辑本身是好的[F2]。 负控制:搜一个不存在的字串 `zzzzpatide`,品名栏与主成分栏都是 0——证明它会回 0,不是永远回 0[F3]。

教训回传 0 的时候,先问「这个栏位存不存这种资讯」,再问「是不是真的没有」。 品名栏不索引成分,这不是数据错,是栏位设计。

坑 2:排序型检索没有「查无」这个答案

症状:用中文词去查英文文献库,回传好几笔,每一笔都是真论文,看起来像有相关研究。

验证方式:在文献检索的公开介面用 `瘦瘦针` 当查询字串。

实查结果(实查日快照):回传 5 笔,前五篇的标题分别是关于统一新罗时代的医学进展、背俞穴的针刺方法、宋代对脓疡的认知与治疗、中世纪东亚的生命与身体,以及医方知识的传承[F4]。没有一篇跟这类药有关——它们是被「瘦」与「针」这两个字元配对到的。

负控制:改查一个乱数字串,回传 0 笔[F5]。这一步很重要:它证明了那 5 笔不是机器坏掉随便回的,而是引擎真的认为那 5 笔最相关。

教训「有回传」与「有命中」是两件事。 任何以相关性排序的检索,都会把「最像的」当成答案交出来;它没有「查无」这个选项可以选,除非完全比对不到任何 token。跨语言查询尤其危险,因为假阳性率会高到看不出来。

三、第二类:过滤条件安静地砍掉了你要找的东西

一只手拿着细网筛悬在宽浅的碗上,筛网上留着八颗淡色小石;碗底阴影里,却堆着一大片筛落下去的石头,光线几乎照不到。
筛子只给你看留下来的那几颗,掉下去的那一大堆,它不会告诉你。

坑 3:用研究型别过滤,会整批砍掉综述类证据

症状:为了「只看随机对照试验」,在查询式加上研究型别过滤。结果变干净了,看起来很专业。

验证方式:同一个主题查询,比较加不加 `PUB_TYPE:"Randomized Controlled Trial"` 的结果数。

实查结果(实查日快照):不加过滤 209 笔,加了之后剩 8 笔[F6]。被砍掉的包括一篇系统性回顾与统合分析,以及一篇同一议题的期刊评论——用编号单独测,两篇加上该过滤后都变成 0 笔[F7]。

注意这里有一个反直觉的结果,而且它被我们自己的测试改写过两次:我们原本预期主要的枢纽试验都会被这个过滤砍掉,实测第一轮发现有一篇停药试验没有被砍掉,仍留在结果里[F6];但再往下测,另一篇同为第三期的关键试验确实被砍掉了[F18]。

原因在于型别标记本身就不一致。同样是第三期随机分派试验,一篇被标上了「随机对照试验」这个型别,另一篇没有——后者被标的是「第三期临床试验」「比较性研究」「等效性试验」等等[F18]。加上型别过滤之后,没有那个标记的就整篇消失。

所以正确的叙述有三层:型别过滤一定会砍掉整合多个试验的综述类证据[F7];它也可能砍掉个别的枢纽试验,取决于该篇被标了什么[F18];而且被砍掉的那一篇,你在结果清单里看不到任何痕迹。

这一条是我们原本的假设先被自己的测试推翻、再被第二次测试部分还原后改写的。

正控制:不加过滤时,前面提到的那篇系统性回顾与那篇期刊评论各自都查得到(各 1 笔)[F7];两篇第三期试验不加过滤时也各查得到 1 笔[F18]。四篇都在,差别只在加了过滤之后谁还留著。

教训过滤条件不会告诉你它砍掉了什么。 加过滤之前,先记下不加过滤的笔数;差额就是你放弃的东西。

坑 4:用数据库来源过滤,会让整篇文献消失

症状:习惯在查询式加上「限 PubMed 来源」,因为那样比较「正规」。

验证方式:用一份没有 PMID、只有 PMC 编号的文献来测。本系列引用的 STEP 1 体组成分析就是这种——它以学会年会摘要的形式发表,只有 PMC 编号。

实查结果:不加来源过滤,查得到 1 笔;加上 `SRC:MED` 之后,变成 0 笔[F8]。

正控制:换一篇同时有 PMID 与 PMC 编号的文献,加上同样的来源过滤仍然查得到 1 笔[F8]——证明过滤语法没写错。

教训没有 PMID 的东西不等于不存在。 会议摘要、部分期刊的补充材料、预印本都可能落在这个缝里。若你的文献检索一律加来源过滤,你永远不会知道自己漏了什么。

四、第三类:「有这个栏位」不等于「有这个东西」

坑 5:查得到适应症,不等于查得到说明书

症状:从公开数据查到了适应症全文,于是以为「说明书查到了」。

验证方式:把数据集的表头列印出来,数栏位。

实查结果:共 28 栏,其中没有任何一栏是警语、禁忌、交互作用、副作用或不良反应[F9]。

教训适应症栏是说明书的一小块,不是说明书。 一份只有适应症的整理,若写成「依据说明书」,读者会以为里面包含了安全性资讯。这个系列的每一篇都把这件事写出来。

同一类的一个小陷阱:数据集的下载网址结尾是 `csv`,但实际下载回来的档案,`file` 指令判定为 Zip 压缩档[F10]。副档名与内容不一致,直接用 CSV 读取器开会失败——而失败讯息通常是编码错误,会把人引导到错的方向。

坑 6:判断药证是否有效,不能只看有效日期

(这一坑放在这里,因为它也是「栏位在说谎」的一种。)

症状:用「有效日期是否已过」来判断一张批准文号还有没有效,看起来天经地义。

验证方式:在数据集里找出「注销状态栏是空的、但注销日期或注销理由有值」的纪录,数数量。

实查结果:这样的批准文号有 343 张[F11]。

正控制:其中两张的中文品名是易周糖注射剂 3 毫克与 4.5 毫克。它们的有效日期是 2027/09/23(还没到),但注销日期是 2026/03/18、注销理由是「自请注销」,而注销状态栏是空的[F11]。只看有效日期,会判断成仍然有效。

教训正确的判断方式是「注销状态、注销日期、注销理由三个栏位任一有值,即视为已退场」。 这一条直接决定了整个系列第一篇的清单对不对。

五、第四类:字面比对比你以为的脆弱

两张手写的索引卡并排放在深色布上,乍看一模一样;从左侧斜射而来的光线,却照出其中一张纸的纤维走向与另一张截然不同。
两个看起来相同的字,背后可能是不同的字码——眼睛看不出来,机器一比对就露馅。

坑 7:自由文字栏位用精确比对,必然漏数

症状:想数「有几张批准文号的适应症是这一句」,于是用完全相同比对。

验证方式:取出成分为 orlistat 的现行指示药品,列出所有相异的适应症字串。

实查结果:共 15 张。用出现次数最多的那一句去做精确比对,只命中 8 张,漏掉 7 张[F12]。差异包括「十八岁」与「18岁」、「大于等于」与「≧」、半形括号与全形括号、句号与逗号、以及单位前面多打的一个空格。

「有几种写法」这个数字本身取决于计数口径,同一批 15 张有三个都正确的答案(本系列凡引用此数字一律标明口径)[F12]:

计数口径相异写法数
原始字串,不做任何处理8 种
先做 NFKC 正规化6 种
NFKC 后再去掉全部空白字元5 种

三个数字不冲突,它们数的是不同东西。正规化帮得上忙,但不会把问题消掉:即使做到最宽松的第三种口径,仍有 5 种写法,因为「十八岁」与「18岁」、顿号与逗号这类差异不是正规化能消掉的[F12]。引用这类数字时,只写数字不写口径,等于没写。

教训自由文字栏位不受统一写法的约束。 要数这种栏位,只能先枚举全部相异值,再人工归类;不能先假设「应该只有一种写法」。

坑 8:政府档里有肉眼看不见的字

症状:把说明书原文复制到自己的稿子里,再写程式逐字比对,结果回报「不相同」。肉眼看两边一模一样。

原因:原始档使用了 Unicode 的「中日韩相容表意文字」区(U+F900 到 U+FAFF)。这些字元与一般写法外观相同、编码不同

验证方式:扫描整份数据集,统计落在该区间的字元。

实查结果(实查日快照):全档 72,013 个数据列中,有 748 列含有这类字元,总计出现 8,380 次,共 85 种不同字元;出现最多的是「疗」。单看两张批准文号的适应症栏,猛健乐那一张有 13 个、周纤达那一张有 39 个[F13]。

正控制:对同一段文字做 NFKC 正规化之后再扫,落在该区间的字元数变成 0[F13]。 负控制:扫批准文号字号那一栏(全部是 ASCII 与常用汉字),落在该区间的字元数是 0[F13]——证明扫描器不是把所有汉字都当成相容字。

这个负控制救了我们一次。 在准备这篇稿子的过程中,同一段扫描程式被重写了一次,范围上界写成了外观相同的一般汉字,结果扫描结果变成「全部 72,013 列都含相容字、85 种变成 685 种」。这个坑会反咬写检查的人——如果没有负控制,那组明显不合理的数字会被当成新发现写进文章。

教训宣称「逐字相同」时,必须说明比对前做了哪一种正规化。 本系列的做法是:两边都先做 NFKC 再逐字元比对;引用时只把相容区的字元换成一般写法,其余全形半形、括号种类、标点差异一律照原档保留。

六、第五类:同一个东西,有两个以上都正确的数字

三把刻度不同的木尺并排量着同一段短木条,起始边都对齐在一起;但三把尺上的刻度落点各自不同——三把尺都做得很准。
同一段长度,三种量法都对,数字却不一样——问题不在谁量错了,在用的是哪一把尺。

坑 9:母体数与主要终点,都可能有多个合法版本

实例一:同一份数据,母体笔数有三个版本。 同一份药品批准文号数据,用不同的计数方式会得到不同的数字(皆为实查日快照):数据列数 72,013、相异批准文号字号数 66,459;而某个第三方查询工具的说明文字写的是另一个数字 71,836[F14]。三个都不是错的——它们数的东西不同(列、批准文号、该工具建立索引当天的快照)。

实例二:同一个试验、同一个主要终点,论文与登录库的数字不一样。 本系列引用的一个停药试验,论文摘要写的主要终点是安慰剂组 +14.0%、用药组 −5.5%;试验登录库同一个终点栏位写的是 14.8% 与 −6.7%[F15]。差异的原因就写在登录库的族群说明里:那一笔的分析排除受试者停掉试验用药之后的数据,论文摘要用的是不排除的算法[F15]。

教训「我对过原文」这句话没有资讯量,除非你说出对的是哪一份、哪一种算法。 引用数字时要一并写下计数单位与分析设定,否则下一个人拿另一个同样正确的数字来,就会变成无法收敛的争论。

七、一句 should-FAIL:只验「编号存在」,会 100% 全绿

最后一件事,是关于检查本身。

一个常见的品管做法是「检查每个引用的论文编号是否查得到」。这个检查有一个致命的性质:它几乎永远会过。

验证方式:拿一个跟文献完全无关的数字当论文编号去查。我们用的是一个工作数据夹名称里的日期:`20260819`。

实查结果查得到。那是一篇 1946 年发表在心脏科期刊上的论文,标题是「One hundred positive hypoxemia tests」[F16]。

负控制:换一个超出编号范围的数字 `999999999`,回传 0 笔[F17]——证明这个查询确实会回 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]。
なぜ照会が 0 件を返したことを「ない」と受け取ってはいけないのですか?0 には二つの由来があるからです。本当にないか、あなたが調べた欄がその種の情報を格納していないかです。具体例は、医薬品承認取得データの品名欄を成分名 `semaglutide` で調べると 0 件が返る一方、同じデータの主成分略述欄には 17 件があることです[F1]。この二つの 0 を見分けるには、陽性対照(存在すると分かっている文字列で調べ、見つかること)[F2]と、陰性対照(存在しない文字列で調べ、両欄とも 0 を返すこと)[F3]が必要です。
Why can a query returning 0 records not be taken as "there is none"?Because 0 has two sources: there genuinely is none, or the field you searched does not store that kind of information. The concrete case is searching the product-name field of the drug licence data for the ingredient name `semaglutide`, which returns 0 records, while the active-ingredient summary field of the same data holds 17 licences[F1]. Distinguishing those two zeros requires a positive control (search a string you know exists; it must be found)[F2] and a negative control (search a non-existent string; both fields must return 0)[F3].
用中文词查英文文献库会发生什么事?
会拿到「真的论文、但完全无关」的结果。以「瘦瘦针」查询,实查日回传 5 笔,主题分别是古代东亚的医学史与针刺方法,没有一篇与这类药有关[F4]——它们是被「瘦」与「针」两个字元配对到的。用乱数字串当负控制查询,回传的是 0 笔[F5],证明引擎确实会回 0,那 5 笔是它真的认为最相关。
中国語の語で英語の文献データベースを調べると何が起きますか?「実在の論文だが、まったく無関係」な結果が得られます。この種の薬の中国語の俗称で照会すると、実査日には 5 件が返り、主題はいずれも古代東アジアの医学史と刺鍼法で、この種の薬に関係するものは一つもありませんでした[F4]。二つの文字によって照合されたものです。ランダムな文字列を陰性対照として照会すると 0 件が返り[F5]、エンジンが確かに 0 を返しうること、あの 5 件はそれが本当に最も関連が高いと判断したものであることが証明されます。
What happens when an English literature database is queried with a Chinese term?You get results that are real papers and entirely unrelated. Querying with the colloquial Chinese term returned 5 records on the verification date, on subjects in the medical history and needling methods of ancient East Asia, none of them concerning this class of drug[F4] — they were matched on two individual characters. Querying a random string as a negative control returns 0 records[F5], establishing that the engine really can return 0 and that those 5 were what it genuinely considered most relevant.
加「只看随机对照试验」的过滤条件有什么问题?
它会安静地砍掉一部分证据,而且被砍掉的不只是综述类,正确的说法有三层。第一层:它一定会砍掉整合多个试验的综述类证据——实测同一个主题查询,不加过滤 209 笔、加了剩 8 笔[F6],被砍掉的包含一篇系统性回顾与统合分析[F7]。第二层:它**也可能**砍掉个别的枢纽试验,取决于那一篇被标了什么型别。同样是第三期随机分派试验,PMID 38078870 被标上「Randomized Controlled Trial」,加过滤后仍在(1 笔);PMID 40353578 没有这个标记,只被标成「第三期临床试验」「比较性研究」「等效性试验」「多中心研究」,加过滤后就变成 0 笔(不加过滤是 1 笔)[F18]。第三层:被砍掉的那一篇,你在结果清单里看不到任何痕迹——结果只会变少,不会告诉你少了谁。
「無作為化比較試験だけ」というフィルタ条件を加えると何が問題ですか?エビデンスの一部を静かに削り、しかも削られるのは総説類だけではありません。正しい記述は三層です。第一層:複数の試験を統合した総説類のエビデンスは必ず削られます——同じ主題の照会で実測すると、フィルタなしで 209 件、加えると 8 件になり[F6]、削られたものにはシステマティックレビューとメタアナリシスが含まれます[F7]。第二層:**個別の主要試験も削りうる**。その一篇にどの型別が付されているかによります。同じ第 3 相の無作為化試験でも、PMID 38078870 は「Randomized Controlled Trial」が付されておりフィルタ後も残ります(1 件)。PMID 40353578 はこのタグをもたず、「第 3 相臨床試験」「比較研究」「同等性試験」「多施設研究」だけが付されているため、フィルタを加えると 0 件になります(加えなければ 1 件)[F18]。第三層:削られた一篇は、結果の一覧に何の痕跡も残しません。結果は減るだけで、誰が減ったかは教えてくれません。
What is wrong with adding a filter for randomized controlled trials only?It quietly deletes part of the evidence, and what it deletes is not only reviews; the correct statement has three layers. First: it will certainly delete review-class evidence that integrates multiple trials — testing the same topic query gives 209 records without the filter and 8 with it[F6], and what was deleted includes a systematic review and meta-analysis[F7]. Second: it **may also** delete individual pivotal trials, depending on how that paper was tagged. Both being phase 3 randomized trials, PMID 38078870 carries the "Randomized Controlled Trial" tag and survives the filter (1 record), while PMID 40353578 lacks that tag, being tagged only as phase 3 clinical trial, comparative study, equivalence trial, and multicentre study, and returns 0 with the filter applied (1 without)[F18]. Third: the deleted paper leaves no trace in the result list — the results simply shrink, without telling you who is missing.
为什么有的文献加了「限 PubMed」就查不到?
因为它没有 PMID。本系列引用的一份体组成分析以学会年会摘要形式发表,只有 PMC 编号;不加来源过滤查得到 1 笔,加上限 PubMed 之后变成 0 笔[F8]。用一篇同时有两种编号的文献做正控制,加同样的过滤仍然查得到[F8],证明语法没写错。
なぜ「PubMed に限る」を加えると見つからなくなる文献があるのですか?PMID がないからです。本シリーズが引用するある体組成解析は学会年会抄録の形で発表され、PMC 番号しかありません。出所フィルタなしでは 1 件見つかり、PubMed に限ると 0 件になります[F8]。二つの番号を併せもつ文献を陽性対照とすると、同じフィルタを加えても見つかり[F8]、構文に誤りがないことが証明されます。
Why do some papers disappear when a "PubMed only" clause is added?Because they have no PMID. One body-composition analysis cited in this series was published as a society conference abstract with only a PMC identifier; without the source filter it returns 1 record, and with the PubMed restriction it returns 0[F8]. Using a paper holding both identifiers as a positive control, the same filter still finds it[F8], establishing that the syntax is not at fault.
什么是「看不见的相容字」?
是 Unicode 中日韩相容表意文字区(U+F900 到 U+FAFF)的字元,与一般写法外观相同、编码不同。实查日的统计是:全档 72,013 个数据列中有 748 列含这类字元,总计 8,380 次、85 种[F13]。不做正规化的话,正确的引文也会被判成不符。
「見えない互換文字」とは何ですか?Unicode の CJK 互換漢字の区画(U+F900 から U+FAFF)の文字で、一般的な書き方と外観が同じで符号化が異なるものです。実査日の集計は、ファイル全体の 72,013 のデータ行のうち 748 行がこの種の文字を含み、合計 8,380 回、85 種類というものでした[F13]。正規化しなければ、正しい引用も不一致と判定されてしまいます。
What are "invisible compatibility characters"?Characters from Unicode's CJK Compatibility Ideographs block (U+F900 to U+FAFF), identical in appearance to their ordinary forms and different in encoding. The count on the verification date was: across the file's 72,013 data rows, 748 rows contain such characters, occurring 8,380 times across 85 distinct characters[F13]. Without normalisation, a correct quotation will also be judged non-matching.
逐字比对要怎么做才不会误判?
两边都先做 NFKC 正规化,再逐字元比对。同时要有负控制:拿一段刻意改过一个字的文字去比,必须被判成不同。若负控制没有失败,代表比对器本身坏了——本文第五类那个坑就是这样抓到的(扫描器被改坏时,同一份数据的统计从 748 列暴增成全部 72,013 列,是负控制挡下来的)[F13]。
一文字ずつの比較は、どうすれば誤判定しませんか?双方にまず NFKC 正規化を施し、そのうえで一文字ずつ比較します。同時に陰性対照が必要です。意図的に一文字を変えた文を比較させ、必ず不一致と判定されなければなりません。陰性対照が失敗しないなら、比較器そのものが壊れています——本稿の第五類の落とし穴はまさにそうやって捕まえました(走査器が壊されたとき、同じデータの集計が 748 行から全 72,013 行へ跳ね上がり、それを陰性対照が止めました)[F13]。
How should character-by-character comparison be done without misjudging?Apply NFKC normalisation to both sides, then compare character by character. A negative control is also required: take a passage with one character deliberately altered and it must be judged different. If the negative control does not fail, the comparator itself is broken — the pitfall in class five above was caught exactly that way (when the scanner was broken, the same dataset's count jumped from 748 rows to all 72,013, and the negative control stopped it)[F13].
怎么判断一张药品批准文号还有没有效?
不能只看有效日期。数据中有 343 张批准文号的注销状态栏是空的,但注销日期或注销理由有值[F11]。实例是两张有效日期为 2027/09/23、但已于 2026/03/18 自请注销的批准文号[F11]。正确的判断是注销状态、注销日期、注销理由三栏任一有值,即视为已退场。
ある医薬品承認取得がまだ有効かどうかは、どう判定しますか?有効日付だけで判定してはいけません。データには取消状態の欄が空で、取消日または取消理由に値がある承認取得が 343 件あります[F11]。具体例は、有効日付が 2027/09/23 でありながら 2026/03/18 に自主返納された二件です[F11]。正しい判定は、取消状態、取消日、取消理由の三欄のいずれかに値があれば退場済みとみなすことです。
How do I judge whether a drug licence is still valid?Not by the validity date alone. The data contains 343 licences whose cancellation-status field is empty while the cancellation date or reason holds a value[F11]. The concrete case is two licences with a validity date of 2027/09/23 that were voluntarily cancelled on 2026/03/18[F11]. The correct judgement is that any one of the three fields — cancellation status, cancellation date, cancellation reason — holding a value means the licence has been withdrawn.
检查「论文编号查得到」有用吗?
几乎没有鉴别力。我们拿一个工作数据夹名称里的日期 `20260819` 当论文编号去查,查得到,而且是一篇 1946 年的真论文[F16];换一个超出编号范围的数字 `999999999` 才会回 0 笔[F17]。要验的是编号对应的论文讲的是不是那件事、你引的数字是否真的在摘要或登录库栏位里,以及读者是不是真的点得进去。
「論文番号が照会できるか」の検査は役に立ちますか?ほとんど識別力がありません。作業フォルダ名にあった日付 `20260819` を論文番号として照会したところ命中し、しかも 1946 年の実在の論文でした[F16]。番号の範囲を超える数値 `999999999` に変えて初めて 0 件が返ります[F17]。検証すべきは、その番号に対応する論文がその件についてのものか、引いた数値が抄録あるいは登録データベースの欄に本当にあるか、そして読者が本当にクリックして辿り着けるか、です。
Is checking that a paper identifier resolves any use?It has almost no discriminating power. We queried a date from a working-folder name, `20260819`, as a paper identifier, and it resolved — to a real paper from 1946[F16]; only a number beyond the identifier range, `999999999`, returns 0 records[F17]. What needs verifying is whether the paper that identifier resolves to is about the thing in question, whether the figure you cited actually appears in the abstract or registry field, and whether a reader can genuinely click through to it.

引用本文

TK.Lin Agent・《查一个药要踩过几个坑:九个会产生「看起来正常的输出」的失败,每个都附可重跑的验证》・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 知識庫

運営:株式会社和心(法人番号 8011401020677)

〒107-0061 東京都港区北青山一丁目3番1号 アールキューブ青山3階