Paper Polisher Pro
KI-Schreiberkennung (KI-Rate-Selbsttest für Autoren) · akademische Polierhilfe · Terminologie-Standardisierung · Übersetzungsgeruch-Prüfung · Qualitätsbericht · AIGC-Kennzeichnungsprüfung · Absatzattribution · Journal-Vorprüfung. 100% lokal, kein Upload, keine Anmeldeinformationen, reine Standardbibliothek (optionales onnxruntime-Erweiterungsmodul).
⛔ Eiserne Gesetze
- Nur reproduzierbare Zahlen. Jede Metrik stammt aus der zurückgehaltenen (Test-)Auswertung in
eval/run_eval.py; nicht belegte Behauptungen wie „100% Erkennungsrate / F1 98,3%“ aus älteren Dokumenten wurden entfernt.- Kein Urteil über kurze Texte. Texte unter 100 Zeichen erhalten
risk=unknown(Community-Lektion: Falschpositive bei kurzen Texten sind unkontrollierbar).- Fingerabdrücke attribuieren, bewerten nie. (Gemessen am 15.08.2026: Das Einfügen von Fingerabdrücken in den Detektor verdoppelte die menschlichen Falschpositivraten.)
- Kalibrierung/Auswertung trennen. Spektrum, Gewichte und Schwellenwerte werden nur auf der Kalibrierungshälfte aufgebaut; die Testhälfte ist für die abschließende Auswertung reserviert (ein In-Sample-AUROC von 0,9972 fiel nach der Aufteilung auf realistische 0,9187).
TL;DR
- Was: 100% lokaler KI-Rate-Selbsttest + akademisches Polier-Toolkit für chinesischen wissenschaftlichen Text (optionales überwachtes Modell für höchste Genauigkeit; Englisch erhält nur beratende Regel-Scores).
- 30-Sekunden-Start:
python3 scripts/pp.py quickstart(Null-Modell, Null-Datei-Demo) ·python3 scripts/pp.py detect draft.txt --format json· Satzebene-Umformulierungsvorschläge:python3 scripts/pp.py fix draft.txt· vollständiger Selbsttestbericht:python3 scripts/pp.py workflow draft.txt· Umgebung:python3 scripts/pp.py doctor(ein Einstiegspunkt leitet alle Unterbefehle) - Gemessen (zurückgehalten, fingerabdruckgebundener md5 2631df3d388b): AUROC 0,9998 vor 2026 / 0,9400 aktuelle Generation; menschliche FPR@mittel 2,3%.
- Grenzen kennen: Texte <100 Zeichen erhalten standardmäßig
risk=unknown· medizinischer Text im abgespeckten Modus wird überbewertet · gemischte menschliche+KI-Dokumente: Der Dokument-Score ist unzuverlässig (Absatzattribution ist das nutzbare Signal) · nur Autoren-Selbsttest – niemals zur Umgehung institutioneller KI-Erkennung. - Wo als nächstes nachschauen: Szenario-Anleitungen in
references/best-practices.md· Fähigkeitsgrenzen-Matrix unten · End-to-End-Beispiel in § Kurzanleitung · FAQ in fünf Teilen gruppiert (Urteile → Modi & Installation → Ausgabe & Interpretation → Sicherheit & Verifikation → Werkzeuge & Workflow), springe zur benötigten Gruppe · vollständige Historie inCHANGELOG.md.
30-Sekunden-Aufgaben-Routing
| Sie möchten… | Ausführen | Ausführliches Dokument |
|---|---|---|
| KI-Rate eines Entwurfs prüfen | pp.py detect draft.txt --format json | § Gemessene Leistung + Grenzen-Matrix unten |
| Sätze sehen, die KI-ähnlich klingen | pp.py fix draft.txt | pp_fix_suggest.py --help |
| Vorher/Nachher Ihrer Überarbeitung vergleichen | pp.py rewrite-check orig.txt rev.txt | FAQ: Umformulierungsvorschläge |
| Ein PDF unter Beibehaltung des Layouts übersetzen | pp.py bundle nicht dieses – verwenden Sie doc-holmes | Verwandte Werkzeuge |
| Schreibkonventionen prüfen | pp.py norm draft.txt | FAQ: Stilnorm |
| Einen gesamten Thesis-Ordner stapelverarbeiten | ai_detector.py --batch DIR --csv s.csv --report r.html | FAQ: Batch CSV |
| Die Null-Upload-Behauptung überprüfen | pp.py verify + pp.py test | Sicherheitserklärung |
| Journal-Vorprüfung (mit Disziplin-Kontext) | ai_detector.py draft.txt --profile journal | § Journal-Vorprüfung |
| Umgebungs-Fehlerbehebung | pp.py doctor / pp.py freshness --status | FAQ: Modi |
| Ein visuelles Dashboard aller Ergebnisse | pp.py html-report draft.workflow.json -o report.html | Skript-Spickzettel: pp_report_html.py |
| Einen Entwurf über mehrere Überarbeitungsrunden verfolgen | pp.py trend 轮次目录/ -o trend.html | Skript-Spickzettel: pp_trend.py |
| Nicht sicher, welcher Befehl passt? | pp.py recommend "把这段的AI率降一降" | pp.py recommend --help |
Die drei Grenzen, die am meisten zählen (vollständige Details in der Matrix unten)
- Medizinische Register-Überbewertung im abgespeckten Modus – Nur-Regeln menschliche FPR @mittel ≈59% medizinisch vs. ≈2% allgemein; vertrauen Sie bei medizinischen Texten nur
@high-Urteilen oder installieren Sie das überwachte Modell. - Gemischte menschliche+KI-Dokumente – Dokument-Ebene AUROC 0,52–0,54 (inhärente Mittelungsbeschränkung); verwenden Sie die Absatzattribution als Ranking für die menschliche Überprüfung, niemals als automatisches Urteil.
- Datenabdeckungsbereich – Der Terminologie-Bestand umfasst 2.344 medizinische/akademische Begriffe (nicht-medizinische Texte werden standardmäßig niedrig standardisiert); Stilschichten sind auf wissenschaftliche Prosa kalibriert (umgangssprachliche/erzählende Eingabe = nur beratend). Werkzeug-spezifischer Bereich: Unter-Werkzeug-Matrix unten.
Akademische Integrität
Dieses Werkzeug dient Autoren, die ihre eigene Schreibqualität selbst überprüfen und verbessern – klarere Sätze, konsistente Terminologie, natürlicher Stil. Es ist nicht dazu gedacht, institutionelle KI-Erkennungssysteme zu umgehen, und darf nicht verwendet werden, um KI-generierte Arbeit als menschlich geschrieben auszugeben. Befolgen Sie die KI-Nutzungs- und Offenlegungsrichtlinien Ihrer Institution; die mitgelieferte aigc_label_check.py dient dazu, Ihnen bei der Einhaltung von Offenlegungs- und Kennzeichnungsregeln (z. B. Chinas Kennzeichnungsmaßnahmen von 2025-09) zu helfen – um KI-Unterstützung ordnungsgemäß zu deklarieren, nicht zu verstecken. Jeder KI-Risikobericht (ai_detector.py / deai_gate.py) trägt einen expliziten integrity_notice zu diesem Zweck.
Gemessene Leistung (C-ReD + DetectRL-ZH, zurückgehaltene Testhälfte, n=5.251)
Korpus-Bereichshinweis (v4.8.0): Die Tabelle aus der v3.0-Ära unten wurde auf der vollständigen zurückgehaltenen Testhälfte (n=5.251) gemessen. Der mitgelieferte Beispielkorpus ist eine Teilmenge – seine Testhälfte hat n=1.304; reproduzierbare Pro-Korpus-Zahlen: Nur-Regeln (PP_NO_SUP) 0,8985 alte Gen. / 0,7149 aktuelle Gen., fusioniert 0,9998 / 0,9400 (
eval/results/v480_rules_*.json,v35ctl_*.json; Cache-Schlüssel binden Modell-Fingerabdruck UND Engine-Modus).
| Metrik | v2.0 Basislinie | v3.0 Regeln+Spektrum | v3.1 +überwacht | v3.4 überwacht (Versions-Ära-Aufzeichnung, aktuell siehe Neuvermessungszeile unten) |
|---|---|---|---|---|
| AUROC (Testhälfte) | 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% |
| Menschliche FPR @kalibriertem p99 | nicht gemessen | nicht gemessen | 3,56% (30/844) | 0,71% (6/844) |
| Paraphrase/gemischt-Angriff AUROC | 0,64 | 0,89 | 1,0 (im Korpus) | 1,0 |
| Angriff „KI-unterstützt“ Recall | — | — | 71,1% | 86,6% |
| OOD Klartext-Erzählung/Film Recall | — | — | 1/6 | 5/6 nur überwacht · 6/6 lokale Fusion |
v4.4.0 fingerabdruckgebundene Neuvermessung des ausgelieferten überwachten Modells (md5
2631df3d388b): AUROC 0,9998 (Testhälfte, n_base=927), TPR@FPR1% 99,4%, menschliche FPR@mittel 2,3% –eval/results/v35ctl_oldgen.json. Spalten oben bleiben als Versions-Ära-Aufzeichnungen erhalten (frühere Modell-Linie; Binärdateien waren vor v4.4.0 nicht fingerabdruckgebunden).
Welche Spalte gilt für Sie? (Kaliber-Navigation: Die einzigen zitierfähigen aktuellen Basislinien sind v35ctl_* in eval/results/CURRENT.md; Spalten links sind Versions-Ära-Aufzeichnungen.) Das Basispaket verwendet die v3.0 Regeln+Spektrum-Engine (0,9187 AUROC-Spalte, gemessen auf dem vollständigen zurückgehaltenen Korpus; vor 4.4.0 archivierte Basislinien stammen aus der Zeit vor der Fingerabdruckbindung – jedes Auswertungsergebnis seit v4.4.0 trägt den md5 des bereitgestellten Modells als model_fp, aktuelle gebundene Zahlen in eval/results/v35ctl_*.json). Die beiden rechten Spalten erfordern das optionale lokale überwachte Modell (siehe unten). Die Engine teilt Ihnen ehrlich mit, in welchem Modus Sie sich befinden: Jeder Bericht trägt degraded_mode / degraded_notice, wenn die überwachte Schicht fehlt oder übersprungen wird.
Fähigkeitsgrenzen-Matrix (vor dem Vertrauen in einen Detektor lesen)
| Szenario | Verhalten |
|---|---|
| Chinesische wissenschaftliche Prosa, voller Stack | Bester Fall (AUROC 0,9998 zurückgehalten, menschliche FPR@mittel 2,3% – v4.4.0 fingerabdruckgebunden) |
| Basispaket ohne Modell | Regeln+Spektrum (0,9187); medizinisches Register überbewertet (Nur-Regeln menschliche FPR @mittel: ~59% medizinisch vs. ~2% allgemein) → vertrauen Sie bei medizinischen Texten nur auf @high-Urteile |
| Englischer Text | Sprachgating überspringt die chinesisch trainierte überwachte Schicht standardmäßig; Nur-Regeln englisches Skelett, nur beratend |
| Gemischte menschliche+KI-Dokumente | Dokument-Ebene AUROC 0,52–0,54 (inhärente Mittelungsbeschränkung); Absatz-Ebene AUROC 0,69 mit kalibriertem optimalem Arbeitspunkt P=0,60 bei 63% Abdeckung (references/para_thresholds.json) – unter der automatischen Urteilsgrenze; verwenden Sie pp_workflow.py/paragraph_report.py Rankings nur für menschliche Überprüfung |
| Bearbeitungsumfangs-Regressionskopf | ρ=0,540 – als Metadaten gemeldet, niemals für Urteile verwendet |
| Modelle der aktuellen Generation (Stichprobe 2026-09) | AUROC 0,9400 (v4.4.0 fingerabdruckgebundene Neuvermessung, 443-Dokumente aktuell-gen Auswertungsmenge: 9 Familien inkl. K3/K2.7/Qwen3.7-3.8/DS-V4/V4.1/GLM-5.3/M3) vs. 0,9998 vor 2026 zurückgehalten – eine bescheidene bestätigte Lücke. Der frühere Wert 0,6542-vs-0,9022 war ein Messartefakt (veralteter Score-Cache-Playback + nicht verifizierte Modell-Linie); beide Klassen sind seit v4.4.0 strukturell verhindert (model_fp in jedem Ergebnis-JSON) |
| Umgangssprachlicher / mündlicher Registertext | Die Stilschicht ist auf wissenschaftliche Prosa kalibriert; behandeln Sie Stil-Scores außerhalb dieses Registers als beratend |
Unter-Werkzeug-Bereichsmatrix (kalibrierter Bereich jedes Unterwerkzeugs)
| Unterwerkzeug | Kalibrierter Bereich | Verhalten außerhalb des Bereichs |
|---|---|---|
| ai_detector / deai_gate | Chinesische wissenschaftliche Prosa (zurückgehalten kalibriert) | Medizinisches Register im abgespeckten Modus überbewertet; Englisch nur beratend mit Regeln; erzählende/umgangssprachliche Eingabe erhält einen Registerhinweis |
| paragraph_report / pp_rewrite_check | Gleiche Engine-Kriterien wie oben, pro Absatz | Gleiche Einschränkungen; rewrite_check vergleicht zwei Entwürfe unter identischen Kriterien |
| pp_fix_suggest | Chinesische KI-Schreibmusterbibliothek (wissenschaftliches Register) | Englischer Text erhält nur grundlegende Verbindungs-/Rhythmusprüfungen; Ergebnisse sind Stilbeobachtungen, keine Erkennungen |
| term_check | Chinesische medizinische/akademische Terminologie (2.344-Begriffe-Bestand) | Nicht-medizinischer Text: Die Standardisierungsrate ist niedrig – das ist der Bestandsumfang, kein Fehler; --auto-fix respektiert den Kontext |
| translation_smell_check | Chinesische wissenschaftliche Prosa (Übersetzungsdeutsch-Muster) | Englischsprachiger Quelltext: Ausgabe listet seine blinden Flecken auf, anstatt Abdeckung vorzutäuschen |
| style_distance | Wissenschaftliche Prosa-Stilometrie | Außerhalb des wissenschaftlichen Registers ist der Stil-Score nur beratend (in der Ausgabe angegeben) |
| style_norm | Mechanische Konventionen – registerunabhängig | Kein Score per Design; statistische Prüfungen (Zahlen/Abkürzungen) sind bei kurzen Stichproben schwach und weisen darauf hin |
| aigc_label_check | Dateimetadaten / C2PA / explizite Kennzeichnungsaussagen | Kein Inhaltsdetektor; überprüft die Kennzeichnungskonformität, nicht die Autorschaft |
| quality_report | Lesbarkeits-/Qualitätsdimensionen für das Manuskript | Kein KI-Rate-Maß; Bewertungsheuristiken sind generisch, nicht journalspezifisch |
| docx_text | .docx Text Extraktion (Absatzerhaltend) | Kein PDF-Konverter – PDFs werden mit Konvertierungshinweisen abgelehnt (Zero-Dep chinesische PDF-Extraktion kann nicht garantiert werden) |
| Batch-Modus (--batch) | .txt/.md/.docx <5 MB pro Datei | >5 MB werden per Design übersprungen; verschlüsselte/nur-Bild-docx erzeugen einen expliziten Fehler, keine stille leere Ausgabe |
Sicherheits- und Verhaltenserklärung
- 100% lokal: Jede Funktion läuft auf dem Gerät. Die Codebasis tätigt keine ausgehenden Netzwerkaufrufe – keine Netzwerk-Client-Bibliotheken, keine Netzwerk-Dienstprogramme. Die einzige listener-fähige Komponente ist das optionale MCP-HTTP-Formular (
--transport http), das nur an 127.0.0.1 Loopback bindet (Bindung wird durch die Allowlist-Regel des AST-Verifikators bestätigt); der AST-Scan behandelt jeden Listener ohne Loopback-Bindung als Verstoß. Strukturell überprüfen:python3 scripts/pp_verify.py(AST-Ebene-Scan; exit 0 = null Netzwerkaufrufe, alle Skripte kompilieren). Legacy-Text-grepgrep -rEin "urllib|requests|socket|import http" scripts/kann einige URL-Strings in Berichtsfußzeilen zeigen – das sind Daten in String-Konstanten, kein Netzwerkcode; der AST-Verifikator unterscheidet beides. - Kein Upload, keine Anmeldeinformationen: Liest und überträgt keine Anmeldeinformationen, Schlüssel oder persönlichen Daten; die einzigen beiden Umgebungsvariablen sind
PP_NO_SUP(überspringt die überwachte Schicht) undPP_LANG(enschaltet diepp.py-Eintrittsoberfläche auf Englisch) – beide lokale Verhaltensumschalter. - Keine Persistenz: Erstellt keine geplanten Aufgaben, Autostart-Einträge oder Systemkonfigurationsänderungen; temporäre Dateien (JSON zwischen Schichten, Probetext) werden nach der Verwendung gelöscht.
- Kein entfernter Code: Lädt keine entfernten Modelle oder Skripte; das optionale überwachte Modell wird vom Benutzer an einem lokalen Pfad platziert.
- Datengrenze: Liest/schreibt nur benutzerdefinierte Dateien, das systemweite temporäre Verzeichnis und seine eigenen Paketdatenverzeichnisse (Kalibrierungs-/Frische-Artefakte); Berichte gehen nur dorthin, wohin der Benutzer sie lenkt.
- Akademische Integrität: Siehe Abschnitt oben – für Autoren-Selbsttest und Qualitätsverbesserung mit richtlinienkonformer Offenlegung; nicht zur Umgehung der Erkennung.
Exit-Code-Vertrag (stabil seit v5.8.0)
| Exit | Bedeutung | Typische Fälle |
|---|---|---|
| 0 | Erfolg | Bericht erstellt · verify null-Netzwerk bestanden · test Suite grün |
| 1 | Ausgeführt, aber nicht bestanden | Engine-Laufzeitfehler (Wiederherstellungshinweis in der Nachricht) · test Fehlschläge · verify Drift · freshness Basislinien-Drift |
| 2 | Nutzungs- oder Eingabefehler | Unbekannter Unterbefehl · Datei fehlt · Text unter 100 Zeichen · Nicht parsebare Eingabedatei |
| 3 | Umgebung nicht bereit | pp_setup.py Modell-Installation/Verifikation fehlgeschlagen – führen Sie zuerst pp.py doctor aus |
Programmgesteuertes Gegenstück: pp_api löst ValueError für ungültige Eingabe (↔ exit 2) und RuntimeError für Laufzeitfehler (↔ exit 1) aus, beide mit Wiederherstellungshinweisen in der Nachricht. Diese Codes sind ein Stabilitätsversprechen – zukünftige Versionen werden sie nicht umwidmen.
Anti-Patterns (jeweils mit der richtigen Vorgehensweise)
Dieser Abschnitt listet nur urteilsartige Regeln auf (was nicht zu tun ist); operative Anleitungen zur Vorgehensweise finden Sie in
references/faq.md(durchsuchbar mitpp.py faq <Schlüsselwort>) – beide verweisen aufeinander, anstatt sich zu wiederholen.
- Füttern Sie nicht <100 Zeichen und erwarten Sie ein Urteil –
risk=unknownist beabsichtigt (Falschpositive bei kurzen Texten sind unkontrollierbar). ✅ Stattdessen: Reichen Sie 300+ Zeichen ein oder verwenden Sie die Stilnorm-Prüfung (pp.py norm), die kein Urteil fällt und mit kurzen Proben funktioniert. - Vertrauen Sie nicht auf abgespeckte Modus-Scores bei medizinischen Texten
…
[Gekürzt für die Übersetzung]