Rewrites AI-generated argumentative/academic essays toward human baseline style informed by CAWSE (M/D bands) LOCNESS, and contrast with DeepSeek-generated counterparts. Ships with a fine-tuned LoRA adapter (9.3 MB) and inference script.
ComponentPathNotesInference scriptscripts/inference.pyEntry point — humanize() function or CLILoRA adaptersassets/adapters/adapters.safetensors.json12.3 MB base64 JSON; auto-decoded to binary on first runPattern weightsdata/analysis/weights.jsonCorpus-derived, loaded by inference at runtimeDecoderscripts/decode_adapters.pyReconstructs .safetensors binary from JSON (auto or manual)Installerscripts/install_deps.shOne-time: pip install mlx mlx-lm transformers + decodeBase modelQwen/Qwen3-8B-MLX-4bitDownloaded from HuggingFace on first run (~4.5 GB, cached)
Requirements: Apple Silicon macOS with Python 3.9+.
bash
bash scripts/install_deps.sh # one-time: installs deps + decodes adapter
python scripts/inference.py --file draft.txt # adapter auto-decodes if not already done
Or from Python:
python
from scripts.inference import humanize
print(humanize("Your AI-drafted essay text here..."))
When humanizing, address higher-weight rows first. Weights are data-driven from corpus analysis (Mann-Whitney); zero-weight rows were not statistically significant.
IDWeightCategoryPatternP06_CLICHE_METAPHORS0.1358vocabularyCliche metaphorsP15_EM_DASH_OVERKILL0.1358punctuationEm dash overkillP21_MARKDOWN_ARTIFACTS0.1358formattingMarkdown artifactsP23_TEXTBOOK_BOLDING0.1358formattingTextbook boldingP12_PRESENT_PARTICIPLE_TAIL0.1133rhetoricalPresent participle tailingP10_RULE_OF_THREES0.0806rhetoricalRule of threesP04_AI_VOCABULARY0.0621vocabularyAI vocabularyP14_COMPULSIVE_SUMMARIES0.0598rhetoricalCompulsive summariesP05_EXCESSIVE_ADVERBS0.0540vocabularyExcessive adverbsP13_OVER_ATTRIBUTION0.0529rhetoricalOver-attributionP11_FALSE_RANGES0.0341rhetoricalFalse rangesP17_TRANSITION_OVERUSE0.0001punctuationOveruse of transition wordsP01_UNDUE_EMPHASIS0.0000contentUndue emphasisP02_SUPERFICIAL_ANALYSIS0.0000contentSuperficial analysisP03_REGRESSION_TO_MEAN0.0000contentRegression to the meanP07_REDUNDANT_MODIFIERS0.0000vocabularyRedundant modifiersP08_FILLER_HEDGING0.0000vocabularyFiller hedgingP09_NEGATIVE_PARALLELISM0.0000rhetoricalNegative parallelismsP16_EN_DASH_AVOIDANCE0.0000punctuationEn dash / hyphen misuse for rangesP18_COLLABORATIVE_REGISTER0.0000registerCollaborative registerP19_LETTER_FORMALITY0.0000registerLetter-style formalityP20_INSTRUCTIONAL_CONDESCENSION0.0000registerInstructional condescensionP22_EXCESSIVE_LISTS0.0000formattingExcessive bulleted/numbered listsP24_EMOJI_SYMBOL0.0000formattingEmoji/symbol injection
Human Merit / Distinction-range writing in CAWSE often shows variable mean dependency distance (MDD); AI prose may cluster more tightly. When humanizing:
$$ LaTeX unless user explicitly requests LaTeX.For non-Apple-Silicon machines or multi-user deployments, run the optional FastAPI server on a Mac host and connect via HTTP/OpenAPI:
pip install fastapi uvicorn[standard]uvicorn api.main:app --host 0.0.0.0 --port 8765 (set HUMANIZE_API_KEY env var for auth)https://<your-host>/openapi.jsonPOST /v1/humanize with JSON {"text":"..."} (+ Authorization: Bearer …)See references/hosted_api.md for details.