“文本蕴含”(Textual Entailment)通常放在“自然语言推理”(Natural Language AI 词典:Inference">Inference, NLI)这个任务里讨论:给它两句话,一句叫前提(premise),一句叫假设(hypothesis),让它判断——只看前提,能不能断定假设成立。
一个请假的例子
前提:*小李昨晚吃了海鲜,今天早上全身起疹子。*
| 假设 | 判断 | 为什么 |
|---|---|---|
| 小李今天早上身上有疹子 | 蕴含(entailment) | 前提直接说了,成立 |
| 小李今天早上皮肤光滑 | 矛盾(contradiction) | 前提说起了疹子,两者不能同时为真 |
| 小李对海鲜过敏 | 中立(neutral) | 听着很合理,但前提里没写,推不出来 |
第三种情况最容易被忽略。人读到这里会自动脑补“吃海鲜→过敏→起疹子”,但 NLI 要求的是“仅凭这句话”。所以它和常识推理(commonsense reasoning)相邻,却不等同:做 NLI 需要一点常识才能理解“疹子”是皮肤上的事,但不能把前提里没说的信息当结论。
另一个容易忽略的点是方向性。“会议室里没有人”能推出“会议室里没有医生”,反过来推不出。蕴含是单向的,别当成等价。
和“语义相似”不是一回事
很多人第一反应是用相似度算 NLI,这经常出错:
- “他把车撞了”和“他出了事故”,字面很像吗?不太像,但蕴含成立。
- “他考了90分”和“他考了89分”,几乎一模一样,但两者矛盾。
相似度高只说明“说的是同一件事”,不代表“一个能推出另一个”。NLI 要的是逻辑上的支持关系,不是字面接近程度。
实际有什么用
NLI 常被当作一个“通用语义判断器”使用,因为判断两句话的关系比训练一堆专用模型便宜得多:
- 零样本分类:把标签写成句子——“这段文本能推出‘这条评论在抱怨物流’吗”,用 NLI 判断代替训练分类器。
- 幻觉与一致性核查:在检索增强生成(RAG)里,检查模型答案的每一句能否被检索到的原文蕴含,推不出就要打问号。摘要是否符合原文、客服话术是否合规,原理相同。
- 人工审核的预筛:合同条款比对、资料核对,先让机器标出“矛盾”和“中立”的句子对,人只看这些。
对普通职场人来说,它的价值在于给了一个明确的口径:“依据是什么”要能被指出来。写报告、写结论时,先自问一句“我这句话,能不能从手里这份材料推出来”,很多含糊其辞就露馅了。
如果你要选具体工具或接口,能力和限制以官方页面为准。
