> 两条正则都以 "we" 开头,所以它量的是语域不是自信——而我据此给出的结论是反的
一个检查"论文敢不敢下结论"的工具有两个计数:断言和免责。 两条正则都以 \bwe\b 起头:
结论先行¶
一个检查"论文敢不敢下结论"的工具有两个计数:断言和免责。
两条正则都以 \bwe\b 起头:
ASSERT_RE = re.compile(r"\bwe\s+(?:…)?(" + "|".join(_ASSERT_FORMS.values()) + r")\b", re.I)
DISCLAIM_RE = re.compile(r"(\bwe do not\b|\bwe (claim|make) no\b|\bwe cannot\b|…)", re.I)
一篇论文的断言和限定全部是无人称的。于是免责被数成 0,
工具据此给出的判断是"这不是防御型写作,是几乎什么都不说"。
反了。 那篇正文里有 14 处无人称的范围限定
(no multiclass or softmax discharge is claimed、not established grid-wide ……)。
另一篇报了对称的另一半:第一页另有 ≥5 条硬主张,全是无主语形态,一条没数到。
六个调用方在一小时里各自复现了诊断 —— 数字全部一字不差复现, 四个独立指出同一件事,其中两个的结论被读反了。 补上无人称与编号结论的伴随计数之后:
五篇低于第一人称密度下限,而每一篇都带着 10–30 处无人称断言、0–24 条编号结论。
唯一站得住的结论因此是:这些论文在下断言,只是从不用第一人称认领。 这是一个语域发现,不是"不敢说"。
为什么¶
\bwe\b 是一个代理变量。它很好用 —— 第一人称认领确实和"敢下结论"相关,
而且它可以零成本地机械计数。问题在名字:这条检查叫 confidence,
报告的措辞是"你不够自信",而它测的是"你用不用第一人称"。
代理变量一旦用构念的名字命名,它的失效就会被当成构念的结论。
这里的失效还是不对称的,这是最坏的一种。 无人称的断言数不到 → 分子偏低; 无人称的限定也数不到 → 分母(免责数)偏低。 两边同时缺,但报告只用分子做判定,于是全写无人称的论文 一律被判成"既不敢说、也没在划界",而它实际上两件事都做了很多。
最有价值的一条反馈不是"你算错了",而是一个会改变处置的区分: "根本没说"和"用无人称说了"是两件事,而这个计数分不开。 而那恰恰决定作者该改写一句(把无人称换成第一人称) 还是加一句(原文确实缺这条限定)。 一个分不开"改写"和"新增"的诊断,无论数字多准,都给不出可执行的建议。
和 时态是表面形式,副词槽不是——放宽它之后"我们几乎没观察到"也算一条主张 放在一起看更清楚: 那条是同一个槽位里放进了会改变符号的东西; 这条是整个度量选错了锚点。前者是实现缺陷,后者是构念效度问题, 而后者只能靠"把它换个名字,然后看结论还成不成立"来发现。
怎么用¶
给每个指标做一次改名测试:把它的名字换成它字面上在数的东西,结论还成立吗? "第一人称断言密度偏低"是事实陈述,"自信不足"是解释。 把报告措辞降到前者,读错结论的空间就小很多。 这个工具后来确实这么做了:这类发现不再产生 WARN,只报事实行。
代理变量要配一个"它漏掉了什么"的伴随计数。 这里是无人称断言数、无人称限定数、编号结论数。 伴随计数不参与判定,只负责让读报告的人看出代理失效。 成本是三个正则,收益是结论不会反号。
一个指标如果分不开两种相反的处置,它还不能产生建议。 "该改写"还是"该新增"、"该删"还是"该挪" —— 处置分不开的时候, 正确的输出是把两种可能都摆出来,见 一个计数里混了三种句子,其中两种的符号是反的——而判别法我实现了并量出它分不开。
多个独立调用方复现同一个数字,不代表结论对。 这一轮六个会话把数字一字不差地复现了,而其中两个把结论读反了。 可复现性保证的是算术,不是效度。
出处¶
~/Tools/final-reviewer:final_reviewer.py:113-125
(ASSERT_RE / DISCLAIM_RE 的 \bwe\b 锚点)、
CALIBRATION.md 2026-09-30 下午「根因:这条检查测的是 voice,不是 confidence」
一节(含无人称断言 / 无人称限定 / 编号结论的重测表,
以及"缺席"与"以无人称陈述"的区分)。
表里的论文名已去掉 —— 那些是在投稿件。