Paper Polisher Pro
AIライティング検出(著者向けAI率自己チェック) · アカデミック添削ガイダンス · 用語標準化 · 翻訳臭チェック · 品質レポート · AIGCコンプライアンスラベルチェック · 段落レベルの帰属判定 · ジャーナル事前チェック 100%ローカル、ゼロアップロード、認証情報不要、純粋な標準ライブラリ(オプションの onnxruntime 拡張レイヤーあり)。
⛔ 絶対のルール
- 再現可能な数値のみ。 すべての指標は
eval/run_eval.pyの保留テスト分割評価に基づきます。「100%検出率 / F1 98.3%」のような裏付けのない主張は古い文書から削除されました。- 短文に対する判定は行わない。 100文字未満のテキストは
risk=unknownを返します(コミュニティの教訓:短文の偽陽性は制御不可能です)。- 指紋は帰属に用い、スコアリングには使用しない。 (2026-08-15 測定:検出器に指紋を注入すると、人間による偽陽性が2倍になりました。)
- 較正と評価の分離。 スペクトル、重み、閾値は較正半分のみに基づいて構築され、テスト半分は最終評価のために予約されています(分割前のサンプル内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(1つのエントリポイントですべてのサブコマンドをルーティング) - 測定値(保留テスト、指紋バインド md5 2631df3d388b): AUROC 0.9998(2026年前) / 0.9400(現行世代)。人間のFPR@medium 2.3%。
- 制限を理解する: 100文字未満のテキストは設計上
risk=unknown· 医療テキストは縮退モードで過大評価されます · 人間とAIの混合文書:文書レベルのスコアは信頼できません(段落帰属が実用的なシグナルです) · 著者の自己チェック専用 — 機関のAI検出を回避するために使用しないでください。 - 参照先: シナリオ別ハウツーは
references/best-practices.md· 能力限界マトリックス(下記) · エンドツーエンドの例は§ クイックスタート · FAQは5つのパート(判定 → モードとインストール → 出力と解釈 → 安全性と検証 → ツールとワークフロー)にグループ化。必要なグループにジャンプしてください · 完全な履歴は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 | FAQ: 書き換え提案 |
| レイアウトを保持してPDF翻訳 | これではありません — doc-holmes を使用 | 関連ツール |
| 執筆規範チェック | pp.py norm draft.txt | FAQ: スタイル規範 |
| 論文フォルダ全体をバッチ処理 | ai_detector.py --batch DIR --csv s.csv --report r.html | FAQ: バッチCSV |
| ゼロアップロード主張の検証 | pp.py verify + pp.py test | 安全性に関する声明 |
| 分野コンテキストでのジャーナル事前チェック | ai_detector.py draft.txt --profile journal | § ジャーナル事前チェック |
| 環境トラブルシューティング | pp.py doctor / pp.py freshness --status | FAQ: モード |
| 全結果のビジュアルダッシュボード | 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 |
最も重要な3つの制限(詳細は下記マトリックス)
- 縮退モードでの医療テキストの過大評価 — ルールのみの人間FPR@medium ≈59%(医療) vs ≈2%(一般)。医療テキストでは
@high判定のみ信頼するか、教師ありモデルをインストールしてください。 - 人間+AIの混合文書 — 文書レベルAUROC 0.52-0.54(本質的な平均化の限界)。段落帰属を人間によるレビューのランキングとして使用し、自動判定として決して使用しないでください。
- データカバレッジ範囲 — 用語バンクは2,344の医療/学術用語(非医療テキストは設計上低めに標準化されます)。スタイルレイヤーは学術散文で較正(口語/物文入力はアドバイザリのみ)。ツール別範囲:下記サブツールマトリックス。
学術的誠実性
このツールは 著者が自身の執筆品質を自己レビューし改善するため のものです — 明確な文、一貫した用語、自然なスタイル。機関のAI検出システムを回避するために設計されておらず、AI生成作品を人間が書いたものとして誤認表示するために使用してはなりません。所属機関のAI使用および開示ポリシーに従ってください。バンドルされている aigc_label_check.py は、開示およびラベル付けルール(例:中国の2025年9月ラベル付け措置)に 準拠する ためのものです — 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。キャッシュキーはモデル指紋とエンジンモードの両方をバインドします)。
| 指標 | 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% | | OOD 平易な物語/映画再現率 | — | — | 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 ルール+スペクトルエンジン を実行します(AUROC 0.9187、完全な保持コーパスで測定。v4.4.0以前のアーカイブベースラインは指紋バインドに先行します — v4.4.0以降のすべての評価結果にはデプロイモデルのmd5が model_fp として含まれ、現在のバインド数値は eval/results/v35ctl_*.json にあります)。右側の2列はオプションのローカル教師ありモデルが必要です(下記参照)。エンジンはどのモードで動作しているかを正直に伝えます。すべてのレポートは、教師ありレイヤーがないかスキップされた場合に degraded_mode / degraded_notice を提供します。
能力限界マトリックス(検出器を信頼する前に読んでください)
| シナリオ | 動作 |
|---|---|
| 中国語学術散文、フルスタック | 最良ケース(AUROC 0.9998 保持テスト、人間FPR@medium 2.3% — v4.4.0 指紋バインド) |
| モデルなしの基本パッケージ | ルール+スペクトル(0.9187)。医療テキストは過大評価(ルールのみの人間FPR@medium: 医療 ≈59% vs 一般 ≈2%)→ 医療テキストでは @high 判定のみ信頼 |
| 英語テキスト | 言語ゲーティングにより中国語訓練済み教師ありレイヤーは設計上スキップ。英語はルールのみの骨格、アドバイザリのみ |
| 人間+AI混合文書 | 文書レベル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文書現行世代評価セット:K3/K2.7/Qwen3.7-3.8/DS-V4/V4.1/GLM-5.3/M3の9ファミリー) vs 2026年前保持テスト 0.9998 — 適度な検証済みギャップ。以前の0.6542 vs 0.9022という数値は測定アーティファクトでした(古いスコアキャッシュの再生 + 未検証モデル系統)。両方のクラスはv4.4.0以降構造的に防止されています(すべての結果JSONに model_fp) |
| 口語/口頭レジスターテキスト | スタイルレイヤーは学術散文で較正。そのレジスター外ではスタイルスコアはアドバイザリとして扱う |
サブツール範囲マトリックス(各サブツールの較正済みドメイン)
| サブツール | 較正ドメイン | ドメイン外の動作 |
|---|---|---|
| ai_detector / deai_gate | 中国語学術散文(保持テストで較正) | 医療テキストは縮退モードで過大評価。英語はアドバイザリルールのみ。物語/口語入力にはレジスター通知が付与 |
| paragraph_report / pp_rewrite_check | 上記と同じエンジン基準、段落ごと | 同じ制限。rewrite_check は同一基準で2つの草稿を比較 |
| 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 | 5MB超は設計上スキップ。暗号化/画像のみの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検証が両者を区別します。 - アップロードなし、認証情報不要: 認証情報、キー、個人データを読み取りまたは送信しません。唯一の2つの環境変数は
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)を使用してください。これは判定がなく、短いサンプルでも機能します。 - 医療テキストで縮退モードのスコアを信頼しない
…
[翻訳のために一部省略]