Make it sound more human: what 400 human texts show about AI writing
To make it sound more human, change the structure of the text before you change its words. We compared 400 human-written emails and blog posts with 197 texts from Claude Sonnet 5.5 and GPT-5.2. In this sample, the models rarely used the stock AI words. The gap was in sentence length, paragraph length and rhythm, and adding contractions or chopping sentences short pushed the numbers further from the human texts.
Key findings
- Sentence length: in our sample, the median Claude Sonnet 5.5 email averaged 9.00 words per sentence against 12.93 for human emails, about 30% shorter. Only 52% landed in the human range, against 81% of GPT-5.2 emails.
- Rhythm: in our sample, Claude Sonnet 5.5 blog posts had a sentence length standard deviation of 6.88 against 9.13 for human blog posts. Only 65% were in the human range.
- Contractions: in our sample, Claude Sonnet 5.5 blog posts had 1.35 contractions per 100 words against 0.57 in human blog posts, more than twice as many.
- Leftovers: 18 of 50 Claude Sonnet 5.5 emails kept a placeholder in square brackets, against 3 of 48 GPT-5.2 emails.
- Rewrites: on the Claude drafts, Light and Medium changed only 3% to 8% of the words and barely moved the structure numbers.
What we compared
The human texts predate AI writing tools: Enron work emails from 2000–2002 and Common Crawl blog posts from 2019. Each model got the points of one human text and wrote a new text of about the same length, so every AI text has a human counterpart. We quote none of the human text.
| Group | Source | Years | Texts | How chosen |
|---|---|---|---|---|
| Human emails | Enron email corpus (corbt/enron-emails, 517,401 emails) | 2000–2002 | 200 | Random sample of 2,000; kept emails sent from enron.com addresses, forwarded and quoted text removed, 40–400 words |
| Human blog posts | C4 English validation split (allenai/c4, from Common Crawl, April 2019) | 2019 | 200 | Random sample of 2,500 rows; kept blog-like URLs, 200–1,500 words, mostly running prose |
| Claude emails | Claude Sonnet 5.5, no system instructions | 2026 | 50 | Written from the points of one human email, about the same length |
| Claude blog posts | Claude Sonnet 5.5, no system instructions | 2026 | 49 | Same, from one human blog post each (1 generation failed) |
| GPT emails | GPT-5.2, no system instructions | 2026 | 48 | Same instruction as the Claude group (2 generations failed) |
| GPT blog posts | GPT-5.2, no system instructions | 2026 | 50 | Same instruction as the Claude group |
What we measured
For human texts we report p10, median and p90. For each AI group we report its median and the share of its texts in the human range, meaning between the human p10 and p90.
| Metric | How it is computed |
|---|---|
| Mean sentence length | Words per sentence, averaged over the text |
| Sentence length spread | Standard deviation of sentence length within the text (higher = more uneven) |
| Contractions per 100 words | Forms like don’t, it’s, we’re, I’ve |
| Paragraph length | Words per paragraph (emails only; the blog source has no paragraph breaks) |
| Words changed | Word-level edit distance between draft and rewrite, divided by the draft’s word count |
| Fact drift | Rewrites where a number, date, link or name is missing or new |
| Meaning alerts | Rewrites where a negation or condition disappeared or certainty changed, checked by sentence |
Today’s AI text rarely uses the stock AI words
A common first step is to hunt for overused words. In this sample that would have found little. We ran the Less AI rules, a pattern check and not a detector, over every AI text. The median number of flagged sentences was 0 for both the Claude Sonnet 5.5 and the GPT-5.2 blog posts.
| Group | Categories hit |
|---|---|
| Claude emails (50), rule hits | Unfilled placeholder 20, chatbot leftover 1 |
| GPT emails (48), rule hits | Unfilled placeholder 3, stock phrase 2, empty -ing tail 1 |
| Claude blog posts (49), rule hits | AI vocabulary 3, inflated significance 1, fake depth opener 1 |
| GPT blog posts (50), rule hits | Inflated significance 4, empty -ing tail 2, promotional tone 2, fake depth opener 1, AI vocabulary 1, signposting 1 |
The difference is structure
The Claude Sonnet 5.5 emails stand out. Their sentences were about 30% shorter than the human median, and their paragraphs were 15.83 words against 24.00. In blog posts, mean sentence length was mostly in range, but the AI posts were more even from one sentence to the next.
| Metric | Human p10 / median / p90 | Claude Sonnet 5.5 | GPT-5.2 |
|---|---|---|---|
| Emails, mean sentence length (words) | 8.56 / 12.93 / 21.00 | 9.00 (52% in range) | 12.62 (81% in range) |
| Emails, sentence length spread | 4.75 / 8.45 / 16.18 | 7.11 (86% in range) | 7.88 (85% in range) |
| Emails, paragraph length (words) | 13.33 / 24.00 / 51.50 | 15.83 (66% in range) | 22.25 (88% in range) |
| Blog posts, mean sentence length (words) | 12.11 / 17.97 / 26.80 | 14.26 (88% in range) | 16.58 (86% in range) |
| Blog posts, sentence length spread | 6.47 / 9.13 / 14.01 | 6.88 (65% in range) | 6.99 (60% in range) |
GPT-5.2 emails were close to the human numbers on both counts. Blog paragraph length is not measured, because the blog source drops paragraph breaks.
Contractions are an AI tell, not a human one
The usual advice to make it sound more human is to use contractions. On this data it runs the other way. The human email median was 0.00 per 100 words and the Claude email median 0.60. In blog posts the human median was 0.57 and the Claude median 1.35. This holds for these 400 texts, from one company’s email and from web blogs, and is not a claim about all human writing.
| Metric | Human p10 / median / p90 | Claude Sonnet 5.5 | GPT-5.2 |
|---|---|---|---|
| Emails, contractions per 100 words | 0.00 / 0.00 / 3.17 | 0.60 (86% in range) | 0.00 (90% in range) |
| Blog posts, contractions per 100 words | 0.00 / 0.57 / 2.33 | 1.35 (69% in range) | 0.33 (86% in range) |
Dashes did not separate the groups: the median was 0.00 everywhere. Our own tool shows how easy it is to overshoot, because an earlier version of its instructions told the model to use contractions where natural.
| Group | Contractions per 100 words |
|---|---|
| Claude emails, original draft | 0.60 |
| Claude emails, old instructions, light fix | 1.20 |
| Claude emails, old instructions, full rewrite | 2.00 |
| Claude emails, new instructions, light fix | 0.88 |
| Claude emails, new instructions, full rewrite | 0.91 |
The old line took the median from 0.60 to 2.00. With it removed, a full rewrite sat at 0.91, against 0.00 in human emails.
Placeholders and leftovers
| Trace | Claude emails | GPT emails | Claude blog posts | GPT blog posts |
|---|---|---|---|---|
| Unfilled placeholder in square brackets | 18 of 50 | 3 of 48 | 0 of 49 | 0 of 50 |
| Markdown headings or bold text | 12 of 50 | 5 of 48 | 11 of 49 | 1 of 50 |
| Em dash anywhere in the text | 0 of 50 | 2 of 48 | 0 of 49 | 1 of 50 |
Another trace was the subject line: 47 of 50 Claude emails began with a Subject: line, against 1 of 48 GPT-5.2 emails. That follows from our instruction to write an email. It says nothing about drafts a real user pastes in.
Claude Sonnet 5.5 against GPT-5.2
The two models differed. In our sample, GPT-5.2 emails were close to the human range for sentence length and paragraph length (81% and 88%) and used almost no contractions. Claude Sonnet 5.5 wrote shorter email sentences and more contractions in blog posts. The table lists words each model used more than the human blogs, as a log2 ratio: each step up of one means double the frequency. The Claude words are mostly contractions, and the GPT-5.2 words are plain ones such as meaningful and particularly.
| Word | Group | log2 ratio against human | AI posts using it | Human posts using it |
|---|---|---|---|---|
| you’ll | Claude blog posts | 3.7 | 9 of 49 | 4 of 200 |
| they’re | Claude blog posts | 3.1 | 10 of 49 | 5 of 200 |
| meaningful | GPT blog posts | 4.2 | 11 of 50 | 2 of 200 |
| particularly | GPT blog posts | 3.0 | 18 of 50 | 12 of 200 |
What rewriting changed
Less AI rewrites at three levels, and we measured whether each helps make it sound more human. Light changes only the flagged sentences, Medium reworks paragraphs that have AI patterns, and Strong rewrites every paragraph. Fact drift is an automatic check that includes false alarms, such as a reworded subject line. Claude Sonnet 5.5 drafts first (99 texts).
| Level and text type | Words changed (median) | Fact drift | Meaning alerts |
|---|---|---|---|
| Claude emails, Light | 3% | 2 of 50 | 0 of 50 |
| Claude blog posts, Light | 3% | 0 of 49 | 2 of 49 |
| Claude emails, Medium | 8% | 0 of 50 | 1 of 50 |
| Claude blog posts, Medium | 7% | 0 of 49 | 0 of 49 |
| Claude emails, Strong | 18% | 3 of 50 | 1 of 50 |
| Claude blog posts, Strong | 14% | 0 of 49 | 5 of 49 |
| Metric | Draft | Light | Medium | Strong | Human median |
|---|---|---|---|---|---|
| Claude emails: mean sentence length (share in human range) | 9.00 (52%) | 8.63 (52%) | 8.88 (52%) | 9.10 (54%) | 12.93 |
| Claude emails: contractions per 100 words (share in human range) | 0.60 (86%) | 0.65 (86%) | 1.26 (86%) | 1.19 (82%) | 0.00 |
| Claude blog posts: sentence length spread (share in human range) | 6.88 (65%) | 6.76 (65%) | 6.83 (63%) | 7.51 (78%) | 9.13 |
| Claude blog posts: contractions per 100 words (share in human range) | 1.35 (69%) | 1.38 (76%) | 1.38 (71%) | 1.29 (69%) | 0.57 |
Light and Medium barely moved the structure. Claude email sentence length stayed at 52% in the human range and reached only 54% after Strong. Strong did help blog posts, lifting the spread from 65% to 78%.
Now the GPT-5.2 drafts (98 texts).
| Level and text type | Words changed (median) | Fact drift | Meaning alerts |
|---|---|---|---|
| GPT emails, Light | 3% | 1 of 48 | 2 of 48 |
| GPT blog posts, Light | 7% | 2 of 50 | 4 of 50 |
| GPT emails, Medium | 6% | 1 of 48 | 3 of 48 |
| GPT blog posts, Medium | 14% | 3 of 50 | 6 of 50 |
| GPT emails, Strong | 25% | 6 of 48 | 3 of 48 |
| GPT blog posts, Strong | 31% | 7 of 50 | 8 of 50 |
| Metric | Draft | Light | Medium | Strong | Human median |
|---|---|---|---|---|---|
| GPT emails: mean sentence length (share in human range) | 12.62 (81%) | 12.50 (81%) | 12.38 (79%) | 12.50 (81%) | 12.93 |
| GPT emails: contractions per 100 words (share in human range) | 0.00 (90%) | 0.00 (88%) | 0.00 (85%) | 0.61 (83%) | 0.00 |
| GPT blog posts: sentence length spread (share in human range) | 6.99 (60%) | 6.74 (56%) | 6.68 (50%) | 6.77 (60%) | 9.13 |
| GPT blog posts: contractions per 100 words (share in human range) | 0.33 (86%) | 0.34 (84%) | 0.40 (86%) | 0.71 (86%) | 0.57 |
Strong changed far more of the GPT-5.2 texts (25% of the words in emails, 31% in blog posts), with more fact drift and meaning alerts: 7 and 8 of 50 blog posts. The more a rewrite changes, the more you need to check it. Strong also added contractions, from 0.33 to 0.71 in blog posts.
Rule false positives, before and after tuning
We also used the human texts to test our own rules.
| Group of human texts | Before tuning | After tuning |
|---|---|---|
| Human blog posts (of 200) | 58 | 20 |
| Human emails (of 200) | 5 | 2 |
Human blog posts dropped from 58 of 200 (29%) to 20 of 200 (10%). The biggest source of early false alarms was dashes: 146 hits, 105 of them en dashes, many inside number ranges. We tuned how en dashes and number ranges count, raised the cluster threshold from 3 to 4, and weakened or removed words human writers also use often. Of the 20 posts still flagged, the categories were AI vocabulary 11, a two-part contrast formula 7, inflated significance 4, empty -ing tail 2, fake depth opener 1 and dashes 1. Across all 400 human texts, none had an AI index above 20, before or after tuning.
How to make it sound more human: a checklist
Each step comes from a result above. None of them guarantees a human-sounding result.
- Count your sentence length. Claude emails ran about 30% under the human median.
- Check the spread. The AI blog posts were more even, 6.88 and 6.99 against 9.13.
- Do not add contractions to sound casual. Human emails had a median of 0.00.
- Check paragraph length. Claude emails had 15.83 words per paragraph, human emails 24.00.
- Fill or delete every placeholder. 18 of 50 Claude emails kept one.
- Strip leftover Markdown and any Subject: line before pasting into an email.
- Do not expect a light pass to change structure: Light and Medium changed 3% to 8% of Claude words.
- Check facts after any big rewrite. Strong on GPT-5.2 blog posts showed fact drift in 7 of 50.
Limitations
- The sample is small: 400 human texts and 197 AI texts.
- The Enron emails come from one company in 2000–2002, so they reflect that era and industry.
- Some C4 blog pages come from companies, not individuals.
- Each AI text was generated once. We did not measure variation between runs.
- Paragraph length is reported for emails only, because the blog source drops paragraph breaks.
- The AI texts were written from human points, not from real user drafts.
- Only two models were tested, and we did not test any AI detector.
How to reproduce this
Sample corbt/enron-emails and the English validation split of allenai/c4 with the counts and filters in the first table, then keep 200 texts from each. Give each model the points of one human text, ask for a new text of about the same length, use no system instructions, and run each source once per model. We do not publish the full prompt. Compute the metrics above, take p10, median and p90 from the human texts, and count how many texts in each AI group fall between the human p10 and p90. For rewrites, run each AI text at all three levels and apply the last three metrics in the definitions table.
Questions about AI writing and human writing
How do I make AI writing sound more human?+
In our sample, the gap was mostly in structure. Word choice mattered less. Compare your draft’s sentence length, spread and paragraph length with your normal writing, then remove placeholders and stock phrases.
Do contractions make text sound less like AI?+
Not in our sample. Human emails had a median of 0.00 contractions per 100 words, human blog posts 0.57 and Claude Sonnet 5.5 blog posts 1.35. This covers 400 texts and may not hold for every writer.
Can AI detectors tell if I made my text sound more human?+
We did not test any detector, so this article has no answer on that. The Less AI score counts AI-style patterns with fixed rules. It is not a detector result.
Does Less AI save the text I paste?+
No. Less AI passes your text to a model for the rewrite and stores none of it. When a rewrite drops a number, date, link or name, or adds a new number or link, the tool marks it for you to check.
If you want to make it sound more human, start with the numbers above and then run your own draft through Less AI. It flags AI-sounding sentences, rewrites them at the level you pick, and does not save your text.