Paper Polisher Pro
Detecção de escrita por IA (autoavaliação da taxa de IA para autores) · orientação de polimento acadêmico · padronização de terminologia · verificação de 'cheiro de tradução' · relatório de qualidade · verificação de conformidade com rótulo AIGC · atribuição em nível de parágrafo · pré-verificação de periódicos. 100% local, zero upload, zero credenciais, biblioteca padrão pura (camada de aprimoramento onnxruntime opcional).
⛔ Leis de ferro
- Apenas números reproduzíveis. Todas as métricas vêm da avaliação da divisão de teste (test split) em
eval/run_eval.py; alegações não suportadas como "taxa de detecção 100% / F1 98,3%" de documentos antigos foram removidas.- Sem veredito para texto curto. Textos com menos de 100 caracteres recebem
risk=unknown(lição da comunidade: falsos positivos em texto curto são incontroláveis).- Impressões digitais (fingerprints) atribuem, nunca pontuam. (Medido em 2026-08-15: injetar impressões digitais no detector dobrou os falsos positivos humanos.)
- Separação calibração/avaliação. Espectro, pesos e limites são construídos apenas na metade de calibração; a metade de teste é reservada para avaliação final (uma AUROC in-sample de 0,9972 caiu para 0,9187 real após a divisão).
TL;DR
- O que é: Kit de ferramentas 100% local de autoavaliação da taxa de IA + polimento acadêmico para texto acadêmico em chinês (modelo supervisionado opcional para melhor precisão; inglês recebe pontuações apenas de regras consultivas).
- Início rápido de 30 segundos:
python3 scripts/pp.py quickstart(demo sem modelo, sem arquivo) ·python3 scripts/pp.py detect draft.txt --format json· sugestões de reescrita em nível de sentença:python3 scripts/pp.py fix draft.txt· relatório completo de autoavaliação:python3 scripts/pp.py workflow draft.txt· ambiente:python3 scripts/pp.py doctor(um ponto de entrada roteia todos os subcomandos) - Medido (fora da amostra, vinculado à impressão digital md5 2631df3d388b): AUROC 0,9998 pré-2026 / 0,9400 geração atual; FPR humano @médio 2,3%.
- Conheça os limites: textos <100 caracteres recebem
risk=unknownpor design · texto médico em modo degradado é superpontuado · documentos mistos humano+IA: a pontuação em nível de documento é não confiável (a atribuição de parágrafos é o sinal acionável) · apenas para autoavaliação de autores — nunca para evitar a detecção institucional de IA. - Para onde ir a seguir: cenários em
references/best-practices.md· matriz de limites de capacidade abaixo · exemplo completo em § Início rápido · FAQ agrupada em cinco partes (vereditos → modos e instalação → saída e interpretação → segurança e verificação → ferramentas e fluxo de trabalho), vá direto ao grupo que você precisa · histórico completo emCHANGELOG.md.
Roteamento de tarefas em 30 segundos
| Você quer… | Execute | Documentação aprofundada |
|---|---|---|
| Verificar a taxa de IA de um rascunho | pp.py detect draft.txt --format json | § Desempenho medido + matriz de limites abaixo |
| Ver quais frases parecem escritas por IA | pp.py fix draft.txt | pp_fix_suggest.py --help |
| Comparar antes/depois da sua reescrita | pp.py rewrite-check orig.txt rev.txt | FAQ: sugestões de reescrita |
| Traduzir um PDF mantendo o layout | Não use este — use pp.py bundle do doc-holmes | Ferramentas relacionadas |
| Verificar convenções de escrita | pp.py norm draft.txt | FAQ: norma de estilo |
| Processar em lote uma pasta de tese inteira | ai_detector.py --batch DIR --csv s.csv --report r.html | FAQ: CSV em lote |
| Verificar a alegação de zero upload | pp.py verify + pp.py test | Declaração de segurança |
| Pré-verificação de periódico (contexto da disciplina) | ai_detector.py draft.txt --profile journal | § pré-verificação de periódico |
| Solucionar problemas de ambiente | pp.py doctor / pp.py freshness --status | FAQ: modos |
| Um painel visual de todos os resultados | pp.py html-report draft.workflow.json -o report.html | Folha de dicas do script: pp_report_html.py |
| Acompanhar um rascunho em várias rodadas de reescrita | pp.py trend 轮次目录/ -o trend.html | Folha de dicas do script: pp_trend.py |
| Não sabe qual comando se encaixa? | pp.py recommend "把这段的AI率降一降" | pp.py recommend --help |
Os três limites mais importantes (detalhes completos na matriz abaixo)
- Superpontuação de registro médico em modo degradado — FPR humano @médio apenas com regras ≈59% médico vs ≈2% geral; confie apenas em vereditos
@highem texto médico, ou instale o modelo supervisionado. - Documentos mistos humano+IA — AUROC em nível de documento 0,52-0,54 (limitação inerente de média); use a atribuição de parágrafos como um ranking para revisão humana, nunca como um veredito automático.
- Escopo de cobertura de dados — o banco de termos tem 2.344 termos médicos/acadêmicos (textos não médicos são padronizados para baixo por design); as camadas de estilo são calibradas para prosa acadêmica (entrada coloquial/narrativa = apenas consultivo). Escopo por ferramenta: matriz de sub-ferramentas abaixo.
Integridade acadêmica
Esta ferramenta é para autores revisarem e melhorarem a qualidade da própria escrita — frases mais claras, terminologia consistente, estilo natural. Ela não foi projetada para evitar sistemas institucionais de detecção de IA e não deve ser usada para deturpar o trabalho gerado por IA como escrito por humano. Siga as políticas de uso e divulgação de IA da sua instituição; o aigc_label_check.py incluso existe para ajudá-lo a cumprir as regras de divulgação e rotulagem (ex.: as medidas de rotulagem da China de 2025-09) — para declarar a assistência de IA corretamente, não para ocultá-la. Todo relatório de risco de IA (ai_detector.py / deai_gate.py) carrega um integrity_notice explícito para esse efeito.
Desempenho medido (C-ReD + DetectRL-ZH, metade de teste fora da amostra, n=5.251)
Nota sobre o escopo do corpus (v4.8.0): a tabela da era v3.0 abaixo foi medida na totalidade da metade de teste fora da amostra (n=5.251). O corpus de amostra incluso é um subconjunto — sua metade de teste é n=1.304; números reproduzíveis por corpus: apenas regras (PP_NO_SUP) 0,8985 geração antiga / 0,7149 geração atual, fusão 0,9998 / 0,9400 (
eval/results/v480_rules_*.json,v35ctl_*.json; chaves de cache vinculam a impressão digital do modelo E o modo do mecanismo).
| Métrica | v2.0 linha de base | v3.0 regras+espectro | v3.1 +supervisionado | v3.4 supervisionado (registro de era da versão, atual veja linha de remensuração abaixo) | |---|---|---|---| | AUROC (metade de teste) | 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 humano @p99 calibrado | não medido | não medido | 3,56% (30/844) | 0,71% (6/844) | | Paráfrase/ataque misto AUROC | 0,64 | 0,89 | 1,0 (no corpus) | 1,0 | | Recall de ataque "assistido por IA" | — | — | 71,1% | 86,6% | | Recall de narrativa simples/filme OOD | — | — | 1/6 | 5/6 apenas supervisionado · 6/6 fusão local |
Remensuração vinculada à impressão digital v4.4.0 do modelo supervisionado de envio (md5
2631df3d388b): AUROC 0,9998 (metade de teste, n_base=927), TPR@FPR1% 99,4%, FPR humano @médio 2,3% —eval/results/v35ctl_oldgen.json. As colunas acima são preservadas como registros de era de versão (linhagem de modelo anterior; binários não foram vinculados a impressão digital antes da v4.4.0).
Qual coluna se aplica a você? (Navegação de calibre: as únicas linhas de base atuais citáveis são v35ctl_* em eval/results/CURRENT.md; as colunas à esquerda são registros de era de versão.) O pacote base executa o mecanismo v3.0 regras+espectro (coluna AUROC 0,9187, medido no corpus completo fora da amostra; as linhas de base arquivadas pré-4.4.0 são anteriores à vinculação de impressão digital — todo resultado de avaliação desde a v4.4.0 carrega o md5 do modelo implantado como model_fp, números vinculados atuais em eval/results/v35ctl_*.json). As duas colunas à direita exigem o modelo supervisionado local opcional (veja abaixo). O mecanismo informa honestamente em qual modo você está: todo relatório carrega degraded_mode / degraded_notice quando a camada supervisionada está ausente ou ignorada.
Matriz de limites de capacidade (leia antes de confiar em qualquer detector)
| Cenário | Comportamento |
|---|---|
| Prosa acadêmica chinesa, pilha completa | Melhor caso (AUROC 0,9998 fora da amostra, FPR humano @médio 2,3% — v4.4.0 vinculado à impressão digital) |
| Pacote base sem modelo | Regras+espectro (0,9187); registro médico superpontuado (FPR humano @médio apenas com regras: ~59% médico vs ~2% geral) → confie apenas em vereditos @high em texto médico |
| Texto em inglês | A filtragem de idioma pula a camada supervisionada treinada em chinês por design; esqueleto apenas com regras em inglês, apenas consultivo |
| Documentos mistos humano+IA | AUROC em nível de documento 0,52-0,54 (limitação inerente de média); AUROC em nível de parágrafo 0,69 com ponto de operação ideal calibrado P=0,60 a 63% de cobertura (references/para_thresholds.json) — abaixo da barra de veredito automático; use rankings pp_workflow.py/paragraph_report.py apenas para revisão humana |
| Cabeça de regressão de extensão de edição | ρ=0,540 — relatado como metadados, nunca usado em vereditos |
| Modelos de geração atual (amostragem de 2026-09) | AUROC 0,9400 (remensuração vinculada à impressão digital v4.4.0, conjunto de avaliação de 443 documentos da geração atual: 9 famílias incl. K3/K2.7/Qwen3.7-3.8/DS-V4/V4.1/GLM-5.3/M3) vs 0,9998 pré-2026 fora da amostra — uma lacuna verificada modesta. A figura anterior de 0,6542-vs-0,9022 era um artefato de medição (replay de cache de pontuação desatualizado + linhagem de modelo não verificada); ambas as classes são estruturalmente prevenidas desde v4.4.0 (model_fp em todo JSON de resultado) |
| Texto coloquial / registro oral | A camada de estilo é calibrada para prosa acadêmica; trate as pontuações de estilo como consultivas fora desse registro |
Matriz de escopo de sub-ferramentas (domínio calibrado de cada sub-ferramenta)
| Sub-ferramenta | Domínio calibrado | Comportamento fora do domínio |
|---|---|---|
| ai_detector / deai_gate | Prosa acadêmica chinesa (calibrado fora da amostra) | Registro médico superpontuado em modo degradado; inglês apenas consultivo com regras; entrada narrativa/coloquial recebe um aviso de registro |
| paragraph_report / pp_rewrite_check | Mesmos critérios do mecanismo acima, por parágrafo | Mesmas limitações; rewrite_check compara dois rascunhos sob critérios idênticos |
| pp_fix_suggest | Biblioteca de padrões de escrita com IA chinesa (registro acadêmico) | Texto em inglês recebe apenas verificações básicas de conectivos/ritmo; as descobertas são observações de estilo, nunca detecções |
| term_check | Terminologia médica/acadêmica chinesa (banco de 2.344 termos) | Texto não médico: a taxa de padronização aparece baixa — isso é escopo do banco, não um erro; --auto-fix respeita o contexto |
| translation_smell_check | Prosa acadêmica chinesa (padrões de tradução) | Texto fonte em inglês: a saída lista seus termos de ponto cego em vez de fingir cobertura |
| style_distance | Estilometria de prosa acadêmica | Fora do registro acadêmico, a pontuação de estilo é apenas consultiva (declarada na saída) |
| style_norm | Convenções mecânicas — independente de registro | Sem pontuação por design; verificações estatísticas (números/abreviações) são fracas em amostras curtas e avisam sobre isso |
| aigc_label_check | Metadados de arquivo / C2PA / declarações explícitas de rótulo | Não é um detector de conteúdo; verifica a conformidade da rotulagem, não a autoria |
| quality_report | Dimensões de legibilidade/qualidade para o manuscrito | Não é uma medida de taxa de IA; as heurísticas de pontuação são genéricas, não ajustadas para periódicos |
| docx_text | Extração de texto .docx (preservando parágrafos) | Não é um conversor de PDF — PDFs são rejeitados com conselhos de conversão (a extração de PDF chinês sem dependências não pode ser garantida) |
| modo lote (--batch) | .txt/.md/.docx <5 MB por arquivo | >5 MB ignorados por design; docx criptografado/somente imagem produz um erro explícito, não saída vazia silenciosa |
Declaração de segurança e comportamento
- 100% local: todos os recursos são executados no dispositivo. A base de código não faz nenhuma chamada de rede de saída — sem bibliotecas de cliente de rede, sem utilitários de rede. O único componente com capacidade de ouvinte é o formulário HTTP MCP opcional (
--transport http), que vincula apenas o loopback 127.0.0.1 (vinculação assegurada pela regra de lista de permissões do verificador AST); a varredura AST trata qualquer ouvinte sem um vínculo de loopback como uma violação. Verifique estruturalmente:python3 scripts/pp_verify.py(varredura em nível AST; saída 0 = zero chamadas de rede, todos os scripts compilam). A pesquisa de texto legadagrep -rEin "urllib|requests|socket|import http" scripts/pode mostrar algumas strings de URL em rodapés de relatório — esses são dados em constantes de string, não código de rede; o verificador AST distingue os dois. - Sem upload, sem credenciais: não lê nem transmite credenciais, chaves ou dados pessoais; as únicas duas variáveis de ambiente são
PP_NO_SUP(pular a camada supervisionada) ePP_LANG(enalterna a superfície de entradapp.pypara inglês) — ambas alternâncias de comportamento local. - Sem persistência: não cria tarefas agendadas, entradas de inicialização automática ou alterações de configuração do sistema; arquivos temporários (JSON entre camadas, texto de sonda) são excluídos após o uso.
- Sem código remoto: não carrega modelos ou scripts remotos; o modelo supervisionado opcional é colocado pelo usuário em um caminho local.
- Limite de dados: lê/escreve apenas arquivos especificados pelo usuário, o diretório temporário do sistema e seus próprios diretórios de dados do pacote (artefatos de calibração/atualização); os relatórios vão apenas para onde o usuário os direciona.
- Integridade acadêmica: veja a seção acima — para autoavaliação e melhoria de qualidade do autor com divulgação compatível com a política; não para evitar detecção.
Contrato de código de saída (estável desde v5.8.0)
| Saída | Significado | Casos típicos |
|---|---|---|
| 0 | Sucesso | relatório produzido · verify passagem de zero rede · test suíte verde |
| 1 | Executado, mas não passou | falha de tempo de execução do mecanismo (conselho de recuperação na mensagem) · falhas de test · verify deriva · freshness deriva de linha de base |
| 2 | Erro de uso ou entrada | subcomando desconhecido · arquivo ausente · texto com menos de 100 caracteres · arquivo de entrada não analisável |
| 3 | Ambiente não pronto | falha de instalação/verificação do modelo pp_setup.py — execute pp.py doctor primeiro |
Espelho programático: pp_api levanta ValueError para entrada inválida (↔ saída 2) e RuntimeError para falha de tempo de execução (↔ saída 1), ambos carregando conselhos de recuperação na mensagem. Esses códigos são uma promessa de estabilidade — versões futuras não os reaproveitarão.
Antipadrões (cada um com a maneira correta)
Esta seção lista apenas regras do tipo julgamento (o que não fazer); perguntas operacionais de "como fazer" estão em
references/faq.md(pesquisáveis viapp.py faq <palavra-chave>) — os dois se referenciam cruzadamente em vez de repetir.
- Não alimente <100 caracteres e espere um veredito —
risk=unknowné por design (falsos positivos em texto curto são incontroláveis). ✅ Em vez disso: envie 300+ caracteres, ou use a verificação de norma de estilo (pp.py norm) que não tem veredito e funciona em amostras curtas. - Não confie em pontuações em modo degradado em texto médico
...