mcpField
H
humanize

humanize

github.com/aperivue文档处理355118 次安装1 天前更新
代码仓库

关于 humanize

humanize 用于扫描学术文本中的 AI 写作模式,并在不改变原意的前提下改写标记段落,面向论文作者和审阅者。它还明确检查引文、数字及句式变化是否保真。

主要功能

  1. 01扫描 27 种 AI 写作模式
  2. 02报告模式次数与所在位置
  3. 03按需改写标记段落
  4. 04检查引文与数字保留情况
  5. 05验证句式变化及模式

适用场景

  1. 01检查学术论文中的 AI 写作模式
  2. 02修改审稿回复信
  3. 03检查改写是否造成引文或数字偏差

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aperivue/medsci-skills --skill humanize

安装后在 Claude Code 中输入/humanize确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

skill.yml
references/
ai_patterns.md
scripts/
check_rewrite_fidelity.py
check_sentence_variety.py
tests/
test_rewrite_fidelity.sh
tests/fixtures/
fidelity_assign_after_ineq.md
fidelity_assign_after_same.md
fidelity_assign_after_swap.md
fidelity_assign_before.md
fidelity_cite_after_keyswap.md
fidelity_cite_after_locator.md
fidelity_cite_after_moved.md
fidelity_cite_after_same.md
fidelity_cite_before.md
fidelity_reorder_after.md
fidelity_reorder_before.md
fidelity_swap_after.md
fidelity_swap_before.md
rewrite_after_bounded.md
rewrite_after_numdrift.md
rewrite_after_wholesale.md
rewrite_before.md
rewrite_direction_after_flip.md
rewrite_direction_after_minus.md
rewrite_direction_after_same.md
rewrite_direction_before.md
variety_long_within_bound.md
variety_mixed.md
variety_overlong.md
variety_uniform.md

详细介绍

Humanize Skill

此技能仅用于移除 AI 写作模式;不进行通用文字编辑、评估科学质量、检查期刊格式或翻译。

每次会话开始时,在扫描之前读取 ${CLAUDE_SKILL_DIR}/references/ai_patterns.md:全部 27 种模式的定义、注意词汇、示例、检测 grep、各模式的修正方法,以及按章节划分的优先级,都只在该文件中。


工作流

阶段 1:扫描

扫描用户提供的章节,检查全部 27 种模式。对于审稿意见回复信和投稿附信,优先检查模式 22–24。对于完整稿件,遵循 ai_patterns.md(章节专用应用指南)中的章节优先级。对于发现的每种模式,记录其编号和名称、出现次数、确切原文,以及所在位置(段落编号或行范围)。

输出:模式频率表

## AI Pattern Scan Report

Section: {section name}
Word count: {N}

| # | Pattern | Count | Severity | Example from text |
|---|---------|-------|----------|-------------------|
| 1 | Significance inflation | 3 | HIGH | "...pivotal role in diagnostic imaging..." |
| ... | ... | ... | ... | ... |

Patterns not detected: 2, 4, 9, 14, 15

Total AI pattern instances: {N}
AI pattern density: {N per 1000 words}
阶段 2:报告
  • 每种模式的严重程度:高(>3 次)、中(1–3 次)、低(0 次,未发现)。
  • 密度:全部 27 种模式的总实例数除以每 1000 词。目标:< 2.0。

**关卡:**提交报告,并询问用户要修正哪些模式。默认修正所有高和中等级别的模式。

阶段 3:修正

根据 ai_patterns.md 中针对每种模式的修正方法,重写标记的段落,并遵循以下规则:

  1. 保持技术准确性。 所有数字、统计量、p 值、置信区间和临床事实必须保持不变。
  2. 保留引文。 不得添加、删除或移动任何引文。
  3. 保持资深放射科医生为同行顶级期刊撰稿时所用的正式学术语体。 不得让文字变得随意或口语化。
  4. 保留领域专用术语。 “Convolutional neural network”、“apparent diffusion coefficient”、“Fleiss' kappa”等术语保持原样。
  5. 不得引入新论断、删除现有论断或改变句意——只改写,不重新阐释。如果无法在不改变句意的情况下修正某段内容,则保留原文并标记出来供用户处理。
  6. 自然时使用主动语态:“We analyzed”优于“Analysis was performed.”
  7. 变换句式。 将简短的陈述句(8–12 词)与较长的句子(25–35 词)交替使用。去 AI 化处理往往会拉平节奏——缩短长句,并扩充短句,使其趋于中等长度,这本身就是一种特征。 scripts/check_sentence_variety.py 会在阶段 4 检查此规则。
  8. 减少对照和分裂句结构(模式 27,M2 启发式)。 对每个“X,而非 Y”、“不是 X,而是 Y”或“X,而非 Y”句式,应用否定形式测试:删去否定部分,并将分句改写为肯定形式。如果有事实因此消失,说明对比具有实际作用——予以保留;如果没有事实消失,说明对比只是修饰——删去。应根据稿件整体的使用频率作判断,而非逐句判断,并保留两三处以作强调。将分裂句(“What … is …”“It is … that …”)改写为普通的主谓语序(“What matters is X” → “X matters”)。 scripts/check_rhetorical_density.py(位于 /self-review)会在阶段 4 测量这一点。

**输出:**以差异格式或修订模式显示修改,并呈现重写后的文本。

阶段 4:验证

保留改写前的文本。 在原地编辑之前,将原文复制到保真度检查可以读取的位置(cp manuscript.md /tmp/pre_humanize.md)。没有这份文本,阶段 4 只能重新扫描模式,无法判断改写是否保留了数字和引文。

运行两项确定性检查,然后使用同一组 27 个模式重新扫描改写后的文本。

python3 "${CLAUDE_SKILL_DIR}/scripts/check_rewrite_fidelity.py" \
    --before /tmp/pre_humanize.md --after manuscript.md \
    --out qc/rewrite_fidelity.json --strict
python3 "${CLAUDE_SKILL_DIR}/scripts/check_sentence_variety.py" \
    --manuscript manuscript.md --out qc/sentence_variety.json

NUMBER_DRIFT、NUMBER_REASSIGNED、CITATION_DROP 或 CITATION_MOVED 表示改写破坏了某项不变量——还原该段,重新改写,并告知用户。EDIT_FOOTPRINT_HIGH 仅供参考:模式 6 和 18 按设计会替换整个段落,因此,对内容扩充后的草稿进行正确处理,也可能导致超过 60% 的词语发生变化。阅读差异,确认作者的论点仍然保留,不要仅凭百分比就认定存在问题。

已知限制: 保真度检查不会检查新增或删除的否定词、以文字形式写出的数字、变更的单位,或与非百分比数字相邻的方向词。检查正常通过并不代表这些内容没有问题;请阅读差异加以核实。

输出:验证报告

## Verification Report

| Metric | Before | After |
|--------|--------|-------|
| Total instances | 23 | 4 |
| Density (per 1000 words) | 8.2 | 1.4 |
| HIGH severity patterns | 3 | 0 |
| MEDIUM severity patterns | 5 | 2 |

Remaining issues:
- Pattern 17 (hedging): 2 instances remain -- appropriate for the evidence level.

Verdict: PASS (density < 2.0)

如果密度仍高于 2.0,则再运行一轮修复与验证(最多 3 轮)。由其他技能调用时,返回验证报告,以便调用方检查通过或失败状态。


27 个检测模式

全部 27 个模式均定义在 references/ai_patterns.md 中。以下两项须严格按所述规则处理:

#模式检查内容修复方法
13过度使用 em dash每 1000 个词中超过 2 个 em dash(/self-review 的古典风格检查会在稿件正文中 em dash 超过 25 个时判定失败)使用括号或重组句子。将 — X — 插入语转换为 (X) 后,运行括号范围安全扫描(python3 "${CLAUDE_SKILL_DIR}/../self-review/scripts/check_paren_spans.py"):批量转换可能会将句子边界两侧的两个无关破折号配成一对,把整句话(或“第六,……”这样的限制说明)括在一对括号内——括号配对完整但内容有误,因此平衡检查无法发现。逐句处理;切勿跨越 . 进行匹配
21AI 使用披露套话(正文)稿件正文中的“## 人工智能使用披露”、“未使用生成式 AI 创作……”按目标期刊的要求(期刊配置文件中的 Disclosure location)放置:某些期刊要求放在方法或致谢部分,其他期刊则只要求放在投稿信、标题页或投稿表格中。不要删除期刊要求放在正文中的披露内容

模式 22–24 仅适用于审稿意见回复信和致编辑的投稿信,不适用于稿件正文。这些模式在 ai_patterns.md 中统一定义(回复信模式);撰写指南请参阅 revise 技能的 references/r2r_voice.md。


检查门槛

闸门严重程度触发条件失败时的操作
AI 模式密度目标ADVISORY扫描后密度 > 2.0 个模式 / 1000 词发出警告;显示仍被标记的段落,供人工审核
模式 13 — 转换破折号后括号跨度损坏ENFORCED执行 — X — → (X) 扫描后运行 python3 "${CLAUDE_SKILL_DIR}/../self-review/scripts/check_paren_spans.py" --strict;PAREN_SPAN_ORDINAL / PAREN_SPAN_SENTENCE 表示转换将句子或序数包进了括号——定稿前修复
模式 19 — § 符号ENFORCED(资深 MA 审稿人准备)grep -c "§" manuscript.md > 0自动移除;验证改写后的计数 == 0
模式 20 — (see Methods §X) 自我引用ENFORCED找到匹配项改写为直接引用章节名称
模式 21 — AI 使用披露位置不当ENFORCED在要求将 AI 使用披露放在其他位置的期刊正文中出现披露,或在多个位置重复披露将其移到目标期刊要求的位置(期刊配置);不得为了隐瞒工具而改写必须披露的内容
模式 26 — 警句密度ENFORCED否定式定义率和简短陈述句占比均超过阈值运行 python3 "${CLAUDE_SKILL_DIR}/../self-review/scripts/check_aphorism_density.py" --manuscript manuscript.md;APHORISM_DENSITY(Minor)表示散文堆满警句,解释性句子被压缩掉了——将大多数警句融入相邻句子,并补回解释,保留两三处以作强调;切勿直接删掉它们,否则会进一步缩短正文
模式 27 — 对偶/分裂句密度ENFORCED“rather than” / “not X but Y” / “X, not Y” 或 “What … is …” / “It is … that …” 超过每 1000 词阈值且达到原始计数下限运行 python3 "${CLAUDE_SKILL_DIR}/../self-review/scripts/check_rhetorical_density.py" --manuscript manuscript.md;ANTITHESIS_DENSITY / CLEFT_DENSITY(均为 Minor)——应用修正规则 8(M2 测试)。单独使用具有实际功能的 “rather than” 或 “instead of” 永远不会触发
模式 25 — 过度使用行内强调ENFORCED应用白名单后,斜体强调密度超过阈值运行 python3 "${CLAUDE_SKILL_DIR}/../self-review/scripts/check_emphasis_density.py" --manuscript manuscript.md;EMPHASIS_OVERUSE(Minor)表示应去除行内斜体(仅保留统计符号 / 拉丁文 / 基因-物种名);整句使用斜体是最明显的信号
模式 22-24 — R2R 编辑机制/草稿行号/工具泄露TRIAGE(回复信);§ = 0 为硬性要求ai_patterns.md 的 R2R 部分中的检测 grep 命令显示候选项审核每个命中项(分析叙述、引用的新增内容、修订稿页码/行号都不是判断信号);将确认的问题改写为实质性正文
引文保留不变量ENFORCED删除或更改一条引文项(多键或定位符 Pandoc 引文中的每个键,或数字标记),或将其移出所依附词语所在的句子,而该词语仍保留原位scripts/check_rewrite_fidelity.py --before <pre> --after <post> --strict → CITATION_DROP / CITATION_MOVED(Major);还原该处单独的改写并标记给用户
数值保留不变量ENFORCED数字标记的计数发生变化(符号、不等号和百分比方向均属于标记;将符号改写为文字也会触发),或数值互换位置而其周围词语未变同一脚本 → NUMBER_DRIFT / NUMBER_REASSIGNED(Major);还原并标记。已知限制:否定词、用文字写出的数字、单位,或紧邻非百分比数值的方向词不会被检查——请阅读差异
改写幅度ADVISORY更改的词元比例超过 --warn-pct(默认值 70)EDIT_FOOTPRINT_HIGH(Minor)——不会阻止流程;阅读差异(阶段 4)
修正规则 7 — 句长均匀度ADVISORY正文中没有短句(≤12 词)或没有长句(≥25 词)scripts/check_sentence_variety.py --manuscript <file> → SENTENCE_UNIFORM(Minor);拆分或合并句子,直到两个长度区间都出现。句子少于 15 个时不提示

评论

支持 Markdown