Paper Polisher Pro
AI 寫作檢測(作者 AI 率自我檢測)· 學術潤飾指導 · 術語標準化 · 翻譯腔檢查 · 品質報告 · AIGC 合規標籤檢查 · 段落級歸因 · 期刊預審。 100% 本地執行,零上傳,無需憑證,純標準函式庫(可選 onnxruntime 增強層)。
⛔ 鐵律
- 僅有可重現的數值。 每個指標都來自
eval/run_eval.py的保留(測試集)評估;諸如「100% 檢測率 / F1 98.3%」等舊文件中的未經證實主張已被移除。- 不對短文下判定。 少於 100 個字元的文字會得到
risk=unknown(社群經驗:短文本的假陽性無法控制)。- 指紋僅用於歸因,絕不影響評分。(2026-08-15 測量:將指紋注入檢測器會使人類假陽性率翻倍。)
- 校準/評估分離。 頻譜、權重和閾值僅基於校準集的一半構建;測試集的一半保留給最終評估(樣本內 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.txt | pp_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 |
最重要的三個限制(完整細節請見下方矩陣)
- 降級模式下醫學文本過度評分——規則模式下人類 FPR @medium ≈59%(醫學)vs ≈2%(一般);在醫學文本上僅信任
@high判定,或安裝監督模型。 - 混合人機協作文檔——文檔級 AUROC 0.52-0.54(固有的平均化限制);使用段落歸因作為人工審查排序,切勿作為自動判定。
- 資料覆蓋範圍——術語庫包含 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.7046 | 0.9187 | 0.9997 | 1.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) |
| 改寫/混合攻擊 AUROC | 0.64 | 0.89 | 1.0(語料庫內) | 1.0 |
| 攻擊「AI 輔助」召回率 | — | — | 71.1% | 86.6% |
| 領域外純敘述/電影召回率 | — | — | 1/6 | 5/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 = 零網路呼叫,所有腳本編譯成功)。傳統文字 grepgrep -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),該檢查不給出判定,適用於短樣本。 - 不要在降級模式下信任醫學文本的分數
…[為翻譯而截斷]