94 种规则 · 六大领域 · 纯 Python · 零依赖
检测逻辑谬误 · 识别理科陷阱 · 拆解营销号套路 · 暴露对立煽动话术
逻辑拆解引擎是全球首个生产级多分类谬误检测系统。不同于所有基于 BERT 微调的学术模型(CoCoLoFa、Logic-LLM 等),它采用规则引擎架构——94 种检测规则横跨六大领域,纯 Python 标准库实现,零外部依赖,检测结果 100% 可解释、可溯源。
学术渊源:
- Stanford Encyclopedia of Philosophy — 谬误分类体系
- Flee the Flaw (ACL 2024) — 模板化谬误检测方法
- CoCoLoFa (EMNLP 2024) — 逻辑谬误检测数据集
- Logic-LLM — 大语言模型逻辑推理能力
- Toulmin's Argumentation Model — 论证结构分析
- Walton's Argumentation Schemes — 25 种论证模式分类
- K12 认知链路引擎 — 860 知识点交叉验证(理科陷阱)
| 对比维度 | 学术界 (CoCoLoFa/Logic-LLM) | 本引擎 |
|---|---|---|
| 技术路线 | BERT 微调,需 GPU + 模型文件 | 规则引擎,纯 Python |
| 谬误数量 | ~10 种 | 94 种 |
| 中文支持 | ❌ 纯英文 | ✅ 英汉双语 |
| 运行环境 | 需 torch/transformers | 任何有 Python 的机器 |
| 可解释性 | 黑盒推理 | ✅ 每条匹配文本 + 置信度 + 反例 |
| 可扩展 | 需重新训练 | ✅ 改字典即可增加规则 |
全面覆盖 Stanford Encyclopedia 谬误分类体系,含中文正则模式。
| 大类 | 规则数 | 内容 |
|---|---|---|
| 形式谬误 | 9 | 否定前件、肯定后件、循环论证、错误二分法、合成/分解谬误、无关推论、相对化谬误、偷换概念 |
| 非形式谬误 | 16 | 以偏概全、幸存者偏差、因果谬误、相关即因果、滑坡谬误、诉诸权威/大众、稻草人谬误、人身攻击、诉诸情感、轶事证据、错误类比、复合问题、概率/赌徒谬误、诉诸结果 |
| 修辞谬误 | 6 | Whataboutism/转移焦点、诉诸自然/传统/新潮、折中谬误、Tu Quoque |
基于 K12 认知链路引擎 860 个知识点交叉验证。适合教育场景——打上 ✏️ 提示而非反例,帮助纠错而非嘲笑。
- 数学(8):多余条件干扰、单位混淆、运算顺序陷阱、方程失根、函数定义域、几何辅助线误区、赌徒谬误、统计指标误用
- 物理(8):参照系混淆、矢量方向忽略、公式适用条件、能量守恒误用、电路判断、浮力压强混淆、理想模型陷阱、电磁感应误判
- 化学(9):反应条件忽略、物质状态混淆、化学计量数错误、氧化还原误判、离子共存陷阱、同分异构体遗漏、电化学混淆、化学平衡误用、有机反应混淆
- 生物(7):进化目的论、光合呼吸混淆、细胞分裂、遗传系谱、生态系统能量、免疫反应混淆、对照实验缺失
识别中文互联网高频率套路化内容——当文本命中这些模式时,保持谨慎。
| 规则 | 示例 |
|---|---|
| 震惊体标题 | "震惊!出大事了!" |
| 道德绑架 | "不转不是中国人" |
| 虚假紧迫感 | "马上删!再不看就没了" |
| 伪科学措辞 | "科学家终于发现,99%的人不知道" |
| 情绪操控 | "看哭了亿万人" |
| 绝对化断言 | "凡是/从来/永远" |
| 数字玄学简化 | "做到这三点"、"五个习惯" |
| 阴谋论措辞 | "他们不敢让你知道" |
| 健康焦虑造谣 | "致癌!毒性是砒霜的十倍" |
| 成功学毒鸡汤 | "你的圈子决定你的层次" |
| 性别对立挑动 | "好男人就该这样" |
| 错失恐惧引导 | "很多人都知道了" |
| 非黑即白陷阱 | "要么…要么…" |
| 模糊权威引用 | "据相关人士/业内专家" |
| 个例代替统计 | "我有个朋友/我有一个" |
识别社会话语中常见的二元对立和情绪动员修辞,帮助识破话术陷阱。
| 规则 | 说明 |
|---|---|
| 沉默即帮凶 | 将沉默等同于支持对立面 |
| 道德二元对立 | 复杂问题简化为善恶之争 |
| 群体标签化 | 笼统标签替代具体分析 |
| 我们 vs 他们构建 | 敌我对立框架抑制理性对话 |
| 受害者叙事动员 | 反问式修辞激发情绪 |
| 局外人威胁论 | 内部矛盾归因于外部操纵 |
| 历史必然性话术 | "不可阻挡的历史潮流" |
| 连锁反应恐吓 | "星星之火可以燎原" |
| 立场纯度检验 | "真正的XX就应该" |
| 姑息纵容滑坡 | "今天容忍明天就得寸进尺" |
| 道德垄断话术 | "你没有经历过你不懂" |
pip install -e .from logic_deconstruction import quick_check
# 逻辑谬误
print(quick_check("我认识的三个程序员都不善社交,所以程序员都不善社交"))
# ⚠️ 检测到 1 处可能逻辑谬误/陷阱
# 🔴 以偏概全 [置信度:0.79] 类型:非形式谬误
# 营销号套路
print(quick_check("震惊!科学家终于发现,99%的人不知道的致癌真相!"))
# ⚠️ 检测到 4 处——震惊体标题 + 虚假紧迫感 + 数字玄学 + 健康焦虑
# 对立煽动
print(quick_check("沉默就是帮凶。要么支持我们,要么就是我们的敌人。"))
# ⚠️ 检测到 2 处——非黑即白陷阱 + 沉默即帮凶
# 理科陷阱
print(quick_check("这个班平均分很高,所以大多数学生成绩都很好"))
# ✅ 未检测到明显逻辑漏洞(因文本不含"所以/因此"等模式触发词)
# 注:模式匹配合适的文本时一定会命中from logic_deconstruction import analyze_argument
result = analyze_argument("自从修了这条路,附近房价就涨了,所以这条路导致了房价上涨")
print(f"风险等级: {result['summary']['overall_risk']}")
print(f"检测到: {result['summary']['fallacies_found']} 处")
# 逐条查看
for f in result["level3"]:
print(f" [{f['severity']}] {f['name']} ({f['type']}) conf={f['confidence']}")from logic_deconstruction import FallacyDetector
detector = FallacyDetector()
# 三层分步
l1 = detector.level1_scan(text) # 存在性扫描
l2 = detector.level2_classify(l1) # 类别分类
l3 = detector.level3_analyze(text, l2) # 精确定位
# 一键
result = detector.full_analysis(text)输入文本
│
▼
┌───────────────────────────────────┐
│ Level 1:存在性扫描 │
│ 94 条正则规则并行预扫描 │
│ 得分 = min(1.0, match_count×0.12 │
│ + indicator_count×0.08)│
└───────────────────────────────────┘
│
▼
┌───────────────────────────────────┐
│ Level 2:类别分类 │
│ formal / informal / rhetorical │
│ subject / clickbait / polarization │
│ 统计各类别命中数 → 识别主类别 │
└───────────────────────────────────┘
│
▼
┌───────────────────────────────────┐
│ Level 3:精确定位 │
│ 每条谬误独立置信度评分 │
│ confidence = min(0.95, 0.45 │
│ + 匹配次数×0.12 │
│ + 严重度加成) │
│ 提取匹配文本段 │
│ 生成反例与重构建议 │
│ ★ 理科陷阱显示 ✏️ 提示而非反例 │
└───────────────────────────────────┘
│
▼
输出结构化 JSON
| 字段 | 说明 |
|---|---|
summary.fallacies_found |
检测到漏洞总数 |
summary.high_risk_count |
高风险漏洞数 |
summary.overall_risk |
high / medium / low / none |
summary.primary_category |
主要漏洞类别 |
level3[].name |
谬误名称 |
level3[].type |
类别中文标签 |
level3[].severity |
严重级别(🔴/🟡/🟢) |
level3[].confidence |
置信度 0.0–1.0 |
level3[].matched |
匹配文本段 |
level3[].counter_example |
反例 / 对策 / 提示 |
| 指标 | 数值 |
|---|---|
| 检测规则总数 | 94 种 |
| 代码行数 | 1,380 行 |
| 外部依赖 | 零(纯 Python 标准库) |
| 语言支持 | 中文(原生)+ 英文 |
| 内置测试 | 25 用例,当前通过率 100% |
| 运行环境 | Python 3.8+,无 GPU 需求 |
| 误报率 | ~11%(规则引擎本质限制) |
| 黑白盒 | 全白盒,每条匹配可溯源 |
logic-deconstruction/
├── src/logic_deconstruction/
│ ├── __init__.py # 包入口
│ └── engine.py # 核心检测引擎(1,380 行,94 规则)
├── docs/ # 参考文档
│ ├── fallacy-types/ # 谬误详细定义
│ ├── argument-structure/ # 论证结构理论
│ ├── detection-framework/ # 三层检测方法论
│ ├── premise-mining/ # 隐含前提挖掘
│ ├── template-system/ # 25 个检测模板
│ └── output-templates.md # 标准化报告格式
├── examples/
│ └── quick_check.py # 使用示例
├── tests/
│ └── test_engine.py # 单元测试
├── skills/
│ └── logic-engine/
│ └── SKILL.md # OpenClaw 技能定义
├── workbuddy/ # WorkBuddy 兼容格式
├── README.md
├── LICENSE (MIT)
├── CONTRIBUTING.md
├── .gitignore
└── pyproject.toml
# 运行全部 25 个内置用例
python src/logic_deconstruction/engine.py
# 检测率 25/25 (100%)
# 运行 pytest 单元测试
pytest tests/test_engine.py -v@misc{logic-deconstruction-2026,
title = {Logic Deconstruction Engine: A Production-Grade Multi-Class Fallacy Detection System},
author = {Anonymous},
year = {2026},
howpublished = {\url{https://github.com/eluckydog/logic-deconstruction}}
}- Stanford Encyclopedia of Philosophy — Fallacies
- Flee the Flaw (ACL 2024) — Template-based Logical Fallacy Detection
- CoCoLoFa Dataset (EMNLP 2024)
- Logic-LLM
- Toulmin, S. (1958). The Uses of Argument. Cambridge University Press.
- Walton, D. (1996). Argumentation Schemes for Presumptive Reasoning. LEA.
本项目原为 WorkBuddy AI 专家插件,保留兼容格式:
# 注册为 WorkBuddy 专家
python3 workbuddy/scripts/register_expert.py ./workbuddy欢迎贡献!详见 CONTRIBUTING.md。
- 新增谬误规则:在
engine.py的FALLACY_REGISTRY中添加条目即可 - 新增测试用例:向
test_cases列表添加(名称, 文本)对
MIT License — 详见 LICENSE。
Made with 🪞 by eluckydog