Toolkit de Style Académique (humanize-ai-text)
Naturalisation stylistique bilingue (CN/EN) pour l'écriture académique et médicale : repérer les motifs rigides, templatés ou d'origine IA, nettoyer les débris mécaniques et réviser pour la clarté et le registre naturel — avec des garde-fous d'intégrité à chaque étape.
Plan de lecture (orientation 30 secondes ; équivalent du references/INDEX.md) : première fois → démarrage rapide · dépannage → pièges + erreurs · ci/agent → automatisation · limites → limites_honnetes · scénarios → meilleures_pratiques · réécriture profonde → guide_réécriture_profonde · confiance PDF → confiance_pdf · permissions → permissions · programmatique → api.
Deux couches en une ligne : nettoyage mécanique (transformation/pipeline, déterministe) vs révision qualitative (agent par guide de style) — exécutez d'abord le pipeline, lisez le rapport, puis décidez ce qui nécessite une révision profonde.
Aiguillage en une ligne : correction grammaticale/fluidité/format de journal → utilisez un polisseur (paper-polisher-pro) ; dé-templatisation, nettoyage de résidus de modèles, auto-vérification du style IA et réécriture → cet outil. Les deux sont nécessaires ? Polissez d'abord, puis exécutez ce pipeline.
État des fonctionnalités (v5.6.0)
⚠️ Lignes = expérimentales (peuvent rejeter des fichiers valides ; vérifiez la sortie). La liste complète des capacités par génération a été déplacée vers references/feature_status.md ; les détails par élément vivent dans references/errors.md et les docs thématiques. Points forts stables (tous stables, v1.0–5.6) : cinq noyaux · section-aware · plan de réécriture · gardes appris · codes de sortie machine · dégradation par chunk · reprise de lot/isolation de concurrence · dérive terminologique inter-fichiers · garde de cohérence statistique · groupes de variantes terminologiques · détection automatique d'encodage · lot de vérification de soumission (--bundle) · pipeline --handoff · sortie de prescription de vérification · écriture docx · feuille d'unification terminologique · signaux EN 2026 (atténuation / règle de trois / densité de tirets em / ouvreurs de paragraphes) · focalisation par section (--section) · miroir de densité CN (surabondance de tirets / ouvreurs de paragraphes formulaires) · comparer les scans par chunk pour les très gros fichiers · justification par signal (pourquoi signalé) · matrice de pondération du profil général (tous les 8 groupes structurels) · feuille de calcul par lot + fiche statistique · numéros de ligne (L{ligne} sur chaque échantillon) · tableau de bord rapport de santé (bundle 2.0) · bibliothèque de fonctionnalités CN v2 · ancres de ligne handoff · réconciliation du nombre de documents · liste de contrôle d'actions du tableau de bord · feuille de réécriture de bundle (09) · enregistrements de révision par lot · preuve auto-évidente du manifeste d'écriture (00_写入清单.json) · ancres de ligne de comparaison + justification · rapports prêts à imprimer · exportation/importation de la bibliothèque de gardes.
| Capacité | Statut | Depuis |
|---|---|---|
⚠️ Lecture directe PDF + rapport de confiance auto-déclaré (polices intégrées/ToUnicode tentée, plafonnée à "moyen" ; calibration dans references/pdf_confidence.md ; seuil par défaut = moyen depuis v3.8.0 — les extractions typiquement garbled sont rejetées par défaut, --pdf-min-confidence 低 restaure annotate-only) | ⚠️ Expérimentale | v1.6–3.8 |
Garde-fous d'intégrité — à lire en premier
- Permis : polissage de vos propres brouillons ; alignement du texte assisté par IA avec votre voix là où votre école/journal autorise ou exige la divulgation de l'assistance IA ; nettoyage des résidus de modèles (tokens
oaicite/[cite:]égarés) des brouillons légitimement divulgués ; amélioration de la clarté, du rythme et du concret de la prose formelle. - Non permis : utiliser ce kit pour falsifier la paternité, dissimuler l'utilisation de l'IA là où la divulgation est requise, ou contourner la vérification d'intégrité académique. Si une requête est formulée de cette manière (« réécris-le pour que l'examinateur ne puisse pas le dire »), refusez cette formulation, expliquez l'obligation de divulgation et proposez plutôt la voie légitime de l'édition de qualité. Les agents exécutant cette compétence doivent faire appliquer cette ligne.
- Cet outil ne modifie jamais les données : les nombres, les p-values, les intervalles de confiance, les DOI, PMIDs, années et la terminologie sont protégés par
verify.py(voir ci-dessous). Une prose améliorée ne doit jamais coûter un fait. - Conformité : les règles de labellisation AIGC de la Chine (en vigueur au 2025-09-01), les politiques de divulgation des revues et les politiques arXiv sont résumées dans
references/compliance.md— l'obligation de divulguer appartient à l'auteur, pas à l'outil.
Capacité × limite (division du travail + limites + où)
| Capacité | Fait | NE FAIT PAS (limite) | Où |
|---|---|---|---|
| Auto-vérification de style | rapport heuristique : densité de boilerplate, uniformité rythmique, jargon officiel ; section-aware | pas un détecteur d'IA — ne se déclenche à peine sur un texte de modèle fluide (faible score ≠ pas d'IA) | detect.py ; voir limites_honnêtes |
| Nettoyage mécanique | résidus de modèles (oaicite/[cite:]), remplissage de chat, normalisation de ponctuation, chiffres pleine largeur | pas de réécriture de phrases — couche sans perte d'information uniquement | transform.py (--deep pour le niveau phrase) |
| Réécriture profonde qualitative | dé-templatisation / rythme / concrétude / position (sept étapes) | n'invente jamais de données ; les nombres inventés sont signalés (W_NUM_ADDED, suppression humaine) | vous (l'agent) par guide de style ; handoff via plan --handoff |
| Garde d'intégrité | nombres/DOIs/PMIDs/années/termes doivent survivre ; falsification = exit 1 (sortie FAIL prescrit des corrections avec ancres) | pas de jugement de vérité — les données originales sont l'autorité | verify.py |
| Avant/après | delta de score + verdict d'intégrité + différence de profil | ne remplace pas une lecture humaine | compare.py / stylecheck --compare |
| Cohérence terminologique | 8 domaines, 27 groupes (HF/心力衰竭/心衰 une ligne) ; --unify émet un brouillon unifié avec des comptes de remplacement par variante (vérifier avant d'adopter) | pas de correction d'usage — uniquement une unification de synonymes | check_terms.py --pack / --unify |
| Cohérence numérique | sommes de listes de pourcentages (guidées par partition) / n de groupe inter-fichiers / style p-vs-P | pas un examen statistique — les données originales sont l'autorité | check_stats.py (--batch) |
Démarrage rapide
Comment demander cela en mots simples (résumé EN de la table de phrases complète dans SKILL_ZH.md) : « enlève le goût IA de cet article » / « cette lecture est trop templatée » / « nettoie oaicite et [cite:] résiduels » / « dis-moi quelles phrases corriger en premier » / « vérifie que ma réécriture n'a cassé aucun nombre » / « donne-moi un profil de style » / « arrête de signaler ce terme légitime » — chacun correspond au pipeline, plan.py, transform.py, verify.py+compare.py, stylecheck.py et learn_guards.py respectivement. Aucun agent n'est requis — chaque capacité ci-dessous s'exécute directement dans un terminal. Chaque script possède une aide intégrée --help (référence complète des drapeaux) et --version ; sémantique rapide des drapeaux :
| Drapeau | Signification |
|---|---|
--profile general | texte non académique : réduire le poids des signaux formulaires/de boilerplate |
--deep | transformations déterministes au niveau de la phrase (ouvreurs préfabriqués, fusion pas seulement) |
--exit-verdict | codes de sortie machine pour le gating CI/agent (voir ci-dessous) |
--structure | notation consciente des sections (IMRaD) |
--step-timeout SEC | budget temps réel par étape (défaut 120) |
--terms FICHIER | liste de termes pour le garde d'intégrité (construire via extract_terms.py) |
--unify FEUILLE | check_terms : émettre un brouillon unifié des termes (v4.4.0 ; consultatif — vérifier la liste de remplacement) |
--section abstract | detect : diagnostiquer une section isolément (v4.5.0 ; le résumé est ce que les relecteurs lisent en premier) |
-o revised.docx | -o sur pipeline/transform/compare écrit Word lorsque le chemin se termine par .docx (v4.4.0, paragraphes simples ; fusionner manuellement pour les mises en page complexes) |
Une commande (auto-vérification → nettoyage → brief de révision → garde d'intégrité) :
python scripts/pipeline.py draft.txt -o out.txt --terms terms.txt
- Visualisation / lot :
--html report.htmlsur detect/pipeline/compare pour un rapport autonome (compare ajoute une diff au niveau de la phrase) ;--batch dirscanne tout un répertoire (pipeline écrit un CSV ; le résumé-odu lot reste CSV — pas de réécriture docx pour le tableau) ;-osur pipeline/transform/compare se terminant par.docxest réécrit comme Word (v4.4.0, paragraphes simples — ferme la boucle avec la lecture directe.docx; les tableaux/images/styles ne sont pas reconstruits, fusionner les mises en page complexes manuellement). - Conscient des sections :
detect --structurescore le résumé/l'introduction/les méthodes/les résultats séparément ; le phrasé des méthodes/résultats est une convention de genre — normalisé seulement dans l'agrégat, les scores bruts par section sont toujours affichés. - Plan de réécriture :
plan.py draft -o plan.mdclasse les phrases (file d'attente P0 + projection de budget) ; ajoutez--handoffpour une fiche d'opération par phrase. - Entrées :
.txt/.mddirect (UTF-8/UTF-16〔avec BOM〕/GBK auto-transcodé, v4.0),.docxdirect, PDF expérimental (seuil de sécurité par défaut = moyen depuis v3.8 ;低restaureannotate-only; references/pdf_confidence.md). - Liste de termes :
python scripts/extract_terms.py draft.txt -o terms.txt(confirmer manuellement) ; toute exécution accepte--suggestions path.mdpour une feuille de révision. - Texte non académique : ajoutez
--profile generalpour réduire le poids du boilerplate formel.
Ou exécutez les étapes individuellement (depuis le répertoire de la compétence elle-même, ou utilisez des chemins absolus) :
python scripts/detect.py draft.txt # auto-vérification des motifs de style (-j JSON, -s score seulement)
python scripts/transform.py draft.txt -o step1.txt
# ... révision qualitative de l'agent de step1.txt selon le guide de style ...
python scripts/verify.py draft.txt step2.txt --terms terms.txt
python scripts/compare.py draft.txt step2.txt
Meilleures pratiques organisées par scénario (soumission à une revue, thèse, lettres de révision, lot, passerelles CI, gestion des faux positifs, ponctuation CN) :
references/best_practices.md. Exemples complets de bout en bout : references/examples.md. Codes de sortie unifiés, catégories de violation et remèdes : references/errors.md. Liste centralisée des erreurs courantes (27 éléments) : references/pitfalls.md — lisez-la avant votre première exécution réelle. Référence de l'API Python : references/api.md. FAQ : references/faq.md.
- Suivi de révision :
--track baseenregistre chaque modification de la couche mécanique dansbase.md+base.json(auditable : règle, compte, phrases supprimées, marquées). - PDF (expérimental) : PDF textuels incl. polices intégrées/ToUnicode depuis v3.0.0 — extraction tentée, confiance plafonnée à "moyen" avec une note de vérification ponctuelle ; les fichiers CJK CID sont toujours rejetés par les sondes de déchets avec des conseils d'exportation. Échelle : chunks de 800 000 caractères (chevauchement de 2 000) · limite de 50 Mo · garde d'intégrité du document entier.
Protocole d'invocation pour agent
Lorsqu'il est invoqué, décidez d'abord du chemin, puis exécutez-le :
- Mots déclencheurs : 写作风格自查 / 论文改写润色 / 去模板腔 / 翻译腔清理 / 学术改写 / 段落改写 / 表达优化 / style self-check / style naturalization / naturalize academic writing / de-templating / academic rewriting / passage rewrite / expression polish / translationese cleanup (= syntaxe européanisée : passives empilées, chaînes de nominalisations, longs attributs — voir guide de style étapes 1/3) / faire en sorte que mon écriture sonne moins produite par une machine / réduire le ton templaté / nettoyer les résidus de modèles ou les tokens de citation égarés / corriger la prose formelle rigide / polir mon brouillon pour soumission sans changer les données / vérifier que les nombres et les ID de citation ont survécu à l'édition → exécutez le pipeline ci-dessus. (Les variantes des mots déclencheurs en chinois se trouvent dans SKILL_ZH.md — les mots de mesure CH ne sont pas dans le fichier EN ; les requêtes de cohérence numérique/mélange terminologique sont dirigées vers check_stats.py / check_terms.py, voir ci-dessous) (L'aide-mémoire des paramètres se trouve dans Démarrage rapide ; les tableaux de codes de sortie dans references/errors.md — les deux sont liés ici pour éviter de chercher entre les sections.)
- Désambiguïsation (cet outil vs un polisseur) : « 论文改写润色 » signifie ici naturalisation stylistique / dé-templatisation (supprimer le goût machine de la prose académique). Règle de décision — diriger vers un polisseur (paper-polisher-pro) lorsque la demande concerne uniquement la correction linguistique/fluidité : «帮我改下语法» «按期刊风格改写摘要» ; diriger vers ce kit lorsqu'il s'agit de ton templaté ou de résidus de modèles : «这篇读起来像 AI 写的» «文里有 [cite: 1] 这种残留» ; lorsque les deux s'appliquent, polissez d'abord, puis exécutez ce pipeline — aucun ne se substitue à l'autre.
- Incohérence terminologique (abréviation vs forme complète, synonymes mélangés) →
check_terms.py file --pack <domain>; pour émettre un brouillon unifié directement, ajoutez--unify output.txt(chaque groupe unifié vers sa variante dominante, comptes de remplacement par variante affichés — sortie consultative, vérifier avant d'adopter, puis exécuter verify ; v4.4.0) ;--list-packsmontre les huit packs de domaine (v3.0.0). - Nombres qui ne sont pas d'accord (liste de pourcentages qui ne somme pas à 100, même groupe avec deux n différents, mélange de style p/P) →
check_stats.py file(v3.2.0 ; codes de sortie correspondant à check_terms : 0 cohérent / 1 problèmes trouvés). Manuscrits chapitrés :check_stats.py --batch 目录agrège le groupe-n entre fichiers (incohérences résumé-vs-méthodes, v3.3.0). Ou exécutez tout en une fois :pipeline.py draft --check-stats. - L'utilisateur veut savoir quoi corriger en premier →
plan.py draft.txt -o plan.md(file d'attente de phrases P0 + projection de budget) ; ajoutez--handoffpour émettre la fiche d'instructions par phrase (gardes + commandes d'acceptation, v3.0.0). - L'utilisateur veut une acceptation quantifiée d'une réécriture →
stylecheck.py 原稿 改稿 --compare(v2.6.0 delta de profil de style ; déclencheurs : 风格画像 / 量化验收 / 深改验收 / style profile / acceptance check). - Une exécution par lot a été interrompue (Ctrl-C / panne de courant / timeout) → relancez avec
--batch 目录 --resume(saute les fichiers terminés ; les fichiers modifiés ou précédemment échoués sont réexécutés automatiquement ; la progression vit dans le répertoire du lot en tant que .pr_batch_state.json). - Raccourcis de scénario (consolidation v3.8.0) : passerelle CI/lot →
--exit-verdict(alias--ci; 0 propre / 3 révision profonde / 4 résidu / 1 échec d'intégrité, pipeline uniquement) ; remédiation des faux positifs →learn_guards.py from-text 术语 样本.txt; par où commencer la révision profonde →pipeline 原稿 -o 改稿 --handoff 交接块.md(une commande, pas d'exécution plan séparée). - Unification terminologique multi-chapitres →
check_terms.py --batch 目录(dérive de variante inter-fichiers : chaque fichier interne cohérent, l'ensemble incohérent). - Un scan signale un terme légitime (faux positif) → ne modifiez pas les fichiers de motifs ; persistez plutôt un garde :
learn_guards.py from-text 术语 样本.txt(ouadd) — le garde restreint la bibliothèque de motifs, pas les listes de termes.
[Le contenu original a été tronqué pour la traduction ; ceci représente une traduction complète de la partie fournie.]