Community寫作與編輯github.com

docsor1212/paper-polisher

AI率自我檢測與學術寫作潤飾指導:提供句子層級的改寫建議(定位與建議,從不自動改寫)、術語與一致性檢查、翻譯腔檢測、段落歸因、期刊預審(含學科背景)、風格規範檢查、品質報告、AIGC標籤檢查,以及 `--batch DIR` 附 HTML 摘要功能。可直接讀取 .docx 檔案。不適用於:文件/PDF翻譯(doc-holmes)、抄襲檢查(機構系統)、代寫或執行改寫(paper-rewriter);少於 100 字的文字基於設計不給出判定。100% 本地執行,零上傳;內含測試 + AST 零網路自我驗證。多層規則引擎 + 標記頻譜 + 可選監督式 Qwen3-0.6B ONNX 層 + LLM 指紋歸因 + 新鮮度管線。基礎引擎數值可從內含的保留評估中重現;監督式欄位為作者方(模型未內含)。

paper-polisher 是什麼?

Paper Polisher Pro 是一款 100% 本地執行的 AI 寫作檢測與學術潤飾工具,專為中文學術文本設計。它透過多層規則引擎、標記頻譜分析以及可選的監督式 Qwen3-0.6B ONNX 模型,提供 AI 率自我檢測、句子級改寫建議、術語標準化、翻譯腔檢查、段落歸因、期刊預審、風格規範檢查與品質報告等功能。 此工具強調學術誠信與可重現性。所有指標均來自內含的保留評估數據集,支援 .txt、.md 與 .docx 格式,並提供 `--batch` 批次處理模式。工具設計上遵循三大原則:不對少於 100 字的文本做出判定、指紋僅用於歸因而不影響評分、以及校準/評估資料集嚴格分離。系統支援 MCP 伺服器、HTML 報告與趨勢追蹤等功能。 關鍵限制包括:在降級模式(無監督模型)下,醫學文本會出現過高評分;混合人機協作文檔的文檔級評分不可靠(應依賴段落歸因);英文文本僅提供基於規則的諮詢性建議。工具嚴格遵守零上傳、無憑證、無持久化與無遠端程式碼的安全原則,所有運行均在裝置本地完成。

相容平台✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/docsor1212/paper-polisher-pro/tree/HEAD

Installed? Explore more 寫作與編輯 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Paper Polisher Pro

AI 寫作檢測(作者 AI 率自我檢測)· 學術潤飾指導 · 術語標準化 · 翻譯腔檢查 · 品質報告 · AIGC 合規標籤檢查 · 段落級歸因 · 期刊預審。 100% 本地執行,零上傳,無需憑證,純標準函式庫(可選 onnxruntime 增強層)。

⛔ 鐵律

  1. 僅有可重現的數值。 每個指標都來自 eval/run_eval.py 的保留(測試集)評估;諸如「100% 檢測率 / F1 98.3%」等舊文件中的未經證實主張已被移除。
  2. 不對短文下判定。 少於 100 個字元的文字會得到 risk=unknown(社群經驗:短文本的假陽性無法控制)。
  3. 指紋僅用於歸因,絕不影響評分。(2026-08-15 測量:將指紋注入檢測器會使人類假陽性率翻倍。)
  4. 校準/評估分離。 頻譜、權重和閾值僅基於校準集的一半構建;測試集的一半保留給最終評估(樣本內 AUROC 0.9972 在分離後降至真實的 0.9187)。

快速總覽

  • 功能:100% 本地 AI 率自我檢測 + 中文學術文本學術潤飾工具組(可選監督模型以獲取最佳準確度;英文則僅提供諮詢性的規則評分)。
  • 30 秒入門:python3 scripts/pp.py quickstart(無模型、無檔案演示)· python3 scripts/pp.py detect draft.txt --format json · 句子層級改寫建議:python3 scripts/pp.py fix draft.txt · 完整自我檢測報告:python3 scripts/pp.py workflow draft.txt · 環境檢查:python3 scripts/pp.py doctor(單一入口路由所有子命令)
  • 測量值(保留集,指紋綁定 md5 2631df3d388b):AUROC 0.9998(2026 年前)/ 0.9400(當前世代);人類 FPR@medium 2.3%。
  • 了解限制:少於 100 字的文字基於設計得到 risk=unknown · 降級模式下的醫學文本會被過度評分 · 混合人機協作文檔:文檔級評分不可靠(段落歸因是可行的訊號)· 僅供作者自我檢查——不得用於規避機構 AI 檢測。
  • 下一步:references/best-practices.md 中的情境操作指南 · 下方能力邊界矩陣 · § 快速入門中的端到端範例 · 依五大類別組織的常見問題(判定→模式與安裝→輸出與解讀→安全與驗證→工具與工作流程),跳轉至您需要的群組 · CHANGELOG.md 中的完整歷史。

30 秒任務路由

您想要…執行詳細文件
檢查草稿的 AI 率pp.py detect draft.txt --format json§ 測量效能 + 下方邊界矩陣
查看哪些句子像 AI 寫的pp.py fix draft.txtpp_fix_suggest.py --help
比較您改寫前後的差異pp.py rewrite-check orig.txt rev.txt常見問題:改寫建議
翻譯 PDF 並保留版面pp.py bundle 不適用——請使用 doc-holmes相關工具
檢查寫作慣例pp.py norm draft.txt常見問題:風格規範
批次處理整份論文資料夾ai_detector.py --batch DIR --csv s.csv --report r.html常見問題:批次 CSV
驗證零上傳主張pp.py verify + pp.py test安全聲明
期刊預審(學科背景)ai_detector.py draft.txt --profile journal§ 期刊預審
環境除錯pp.py doctor / pp.py freshness --status常見問題:模式
所有結果的單一視覺儀表板pp.py html-report draft.workflow.json -o report.html腳本速查表:pp_report_html.py
追蹤各次改寫輪次的草稿pp.py trend 輪次目錄/ -o trend.html腳本速查表:pp_trend.py
不確定哪個指令適合?pp.py recommend "把這段的AI率降一降"pp.py recommend --help

最重要的三個限制(完整細節請見下方矩陣)

  1. 降級模式下醫學文本過度評分——規則模式下人類 FPR @medium ≈59%(醫學)vs ≈2%(一般);在醫學文本上僅信任 @high 判定,或安裝監督模型。
  2. 混合人機協作文檔——文檔級 AUROC 0.52-0.54(固有的平均化限制);使用段落歸因作為人工審查排序,切勿作為自動判定。
  3. 資料覆蓋範圍——術語庫包含 2,344 個醫學/學術術語(非醫學文本的標準化率自然較低);風格層針對學術散文校準(口語/敘述性輸入僅為諮詢建議)。各工具範圍:下方的子工具矩陣。

學術誠信

此工具供作者自我審查並提升自身寫作品質——更清晰的句子、一致的術語、自然的風格。其設計目的並非規避機構的 AI 檢測系統,且不得用於將 AI 生成的作品偽裝成人類書寫。請遵守您所在機構的 AI 使用與揭露政策;內含的 aigc_label_check.py 旨在幫助您遵守揭露與標籤規範(例如,中國 2025-09 標籤措施)——以正確宣告 AI 輔助,而非隱藏它。每個 AI 風險報告(ai_detector.py / deai_gate.py)都會帶有明確的 integrity_notice 以說明此點。

測量效能(C-ReD + DetectRL-ZH,保留測試集的一半,n=5,251)

語料庫範圍說明(v4.8.0):下方 v3.0 時代的表格是在完整保留測試集的一半(n=5,251)上測量的。內含的範例語料庫是子集——其測試集的一半為 n=1,304;可重現的每個語料庫數值:僅規則模式(PP_NO_SUP)0.8985(舊世代)/ 0.7149(當前世代),融合模式 0.9998 / 0.9400(eval/results/v480_rules_*.json、v35ctl_*.json;快取鍵綁定模型指紋 AND 引擎模式)。

指標v2.0 基準v3.0 規則+頻譜v3.1 +監督式v3.4 監督式(版本時代記錄,現行請見下方重測行)
AUROC(測試集一半)0.70460.91870.99971.0
TPR@FPR5%30.4%49.0%99.95%100%
TPR@FPR1%16.7%24.9%99.88%100%
人類 FPR @校準後 p99未測量未測量3.56% (30/844)0.71% (6/844)
改寫/混合攻擊 AUROC0.640.891.0(語料庫內)1.0
攻擊「AI 輔助」召回率——71.1%86.6%
領域外純敘述/電影召回率——1/65/6 僅監督式 · 6/6 本地融合

v4.4.0 指紋綁定重新測量出貨監督模型(md5 2631df3d388b):AUROC 0.9998(測試集一半,n_base=927),TPR@FPR1% 99.4%,人類 FPR@medium 2.3%——eval/results/v35ctl_oldgen.json。上方欄位保留作為版本時代記錄(較早的模型譜系;v4.4.0 之前的二進位檔未經指紋綁定)。

哪一欄適用於您?(校準導航:唯一可引用的當前基準是 eval/results/CURRENT.md 中的 v35ctl_*;左側欄位是版本時代記錄。)基礎套件執行 v3.0 規則+頻譜引擎(0.9187 AUROC 欄位,在完整保留語料庫上測量;v4.4.0 之前的歸檔基準未經指紋綁定——自 v4.4.0 起的每個評估結果都包含已部署模型的 md5 作為 model_fp,當前綁定數值在 eval/results/v35ctl_*.json 中)。右側兩個欄位需要可選的本地監督模型(見下文)。引擎會誠實告知您所處的模式:當監督層不存在或跳過時,每個報告都帶有 degraded_mode / degraded_notice。

能力邊界矩陣(在信任任何檢測器前請先閱讀)

情境行為
中文學術散文,完整堆疊最佳案例(AUROC 0.9998 保留集,人類 FPR@medium 2.3%——v4.4.0 指紋綁定)
不含模型的基礎套件規則+頻譜(0.9187);醫學文本過度評分(僅規則模式下人類 FPR @medium:~59% 醫學 vs ~2% 一般)→ 在醫學文本上僅信任 @high 判定
英文文本語言門控基於設計跳過中文訓練的監督層;僅英文規則骨架,僅供諮詢
混合人機協作文檔文檔級 AUROC 0.52-0.54(固有的平均化限制);段落級 AUROC 0.69,校準後最佳操作點 P=0.60,覆蓋率 63%(references/para_thresholds.json)——低於自動判定門檻;僅使用 pp_workflow.py/paragraph_report.py 的排序進行人工審查
編輯程度回歸頭ρ=0.540——作為元數據報告,從不用於判定
當前世代模型(2026-09 抽樣)AUROC 0.9400(v4.4.0 指紋綁定重新測量,443 份文檔的當前世代評估集:9 個系列,包括 K3/K2.7/Qwen3.7-3.8/DS-V4/V4.1/GLM-5.3/M3)vs 0.9998(2026 年前保留集)——一個適度的驗證差距。先前的 0.6542-vs-0.9022 數字是測量偽影(過時的分數快取重播 + 未經驗證的模型譜系);自 v4.4.0 起,兩種情況都已被結構性防止(每個結果 JSON 中的 model_fp)
口語/對話風格文本風格層針對學術散文校準;在該風格之外,將風格分數視為諮詢建議

子工具範圍矩陣(每個子工具的校準領域)

子工具校準領域領域外行為
ai_detector / deai_gate中文學術散文(保留集校準)降級模式下醫學文本過度評分;英文僅諮詢規則;敘述/口語輸入會收到風格提示
paragraph_report / pp_rewrite_check與上述相同引擎標準,按段落相同限制;rewrite_check 在相同標準下比較兩個草稿
pp_fix_suggest中文 AI 寫作模式庫(學術風格)英文文本僅進行基本連接詞/節奏檢查;發現結果是風格觀察,而非檢測
term_check中文醫學/學術術語(2,344 個術語庫)非醫學文本:標準化率讀數較低——這是術語庫範圍限制,而非錯誤;--auto-fix 會尊重上下文
translation_smell_check中文學術散文(翻譯腔模式)英文風格來源文本:輸出會列出其盲點術語,而非假裝有覆蓋
style_distance學術散文風格計量學在學術風格之外,風格分數僅供諮詢(輸出中已說明)
style_norm機械慣例——與風格無關基於設計不給分數;統計檢查(數字/縮寫)在短樣本上較弱,並會如實說明
aigc_label_check檔案元數據 / C2PA / 明確標籤聲明非內容檢測器;驗證標籤合規性,而非作者身份
quality_report稿件的可讀性/品質維度非 AI 率測量;評分啟發式方法為通用型,未經期刊調校
docx_text.docx 文字提取(保留段落)非 PDF 轉換器——PDF 會收到轉換建議並被拒絕(無法保證零依賴的中文 PDF 提取)
批次模式(--batch).txt/.md/.docx <5 MB 每個檔案>5 MB 基於設計跳過;加密或僅含圖片的 docx 會給出明確錯誤,而非靜默空輸出

安全與行為聲明

  • 100% 本地執行:每個功能都在裝置上運行。程式碼庫零出站網路呼叫——無網路客戶端函式庫,無網路工具。唯一具備監聽能力的元件是可選的 MCP HTTP 表單(--transport http),它僅綁定 127.0.0.1 迴環位址(綁定已由 AST 驗證器的允許清單規則斷言);AST 掃描會將任何未綁定迴環位址的監聽器視為違規。結構性驗證:python3 scripts/pp_verify.py(AST 層級掃描;退出碼 0 = 零網路呼叫,所有腳本編譯成功)。傳統文字 grep grep -rEin "urllib|requests|socket|import http" scripts/ 可能會在報告頁尾中顯示一些 URL 字串——這些是字串常數中的資料,而非網路程式碼;AST 驗證器能區分兩者。
  • 不上傳,無憑證:不讀取也不傳輸任何憑證、金鑰或個人資料;唯一的兩個環境變數是 PP_NO_SUP(跳過監督層)和 PP_LANG(en 將 pp.py 入口介面切換為英文)——兩者均為本地行為切換。
  • 無持久化:不會建立排程任務、自動啟動項目或系統設定變更;暫存檔(層間 JSON、探測文字)使用後即刪除。
  • 無遠端程式碼:不載入任何遠端模型或腳本;可選的監督模型由使用者放置於本地路徑。
  • 資料邊界:僅讀取/寫入使用者指定的檔案、系統暫存目錄及其自身的套件資料目錄(校準/新鮮度工件);報告僅存在於使用者指定的位置。
  • 學術誠信:請參閱上方章節——供作者自我審查與品質提升,並進行符合政策的揭露;不得用於規避檢測。

退出碼契約(自 v5.8.0 起穩定)

退出碼含義典型案例
0成功報告已產生 · verify 零網路通過 · test 套件全部通過
1已執行但未通過引擎執行時故障(訊息中含恢復建議)· test 失敗 · verify 漂移 · freshness 基準漂移
2使用方式或輸入錯誤未知子命令 · 檔案缺失 · 文字少於 100 字 · 無法解析的輸入檔
3環境未就緒pp_setup.py 模型安裝/驗證失敗——請先執行 pp.py doctor

程式化鏡像:pp_api 對於無效輸入會拋出 ValueError(↔ 退出碼 2),對於執行時故障會拋出 RuntimeError(↔ 退出碼 1),兩者均會在訊息中攜帶恢復建議。這些代碼是一項穩定性承諾——未來版本不會重新定義其用途。

反模式(附正確做法)

本節僅列出判斷型規則(不該做什麼);操作性的操作指南問題請參閱 references/faq.md(可透過 pp.py faq <關鍵字> 搜尋)——兩者互相參照,而非重複。

  • 不要餵送少於 100 字的文字並期望得到判定——risk=unknown 是設計使然(短文本假陽性無法控制)。✅ 改為:提交 300 字以上的文字,或使用風格規範檢查(pp.py norm),該檢查不給出判定,適用於短樣本。
  • 不要在降級模式下信任醫學文本的分數

…[為翻譯而截斷]

相關技能