lessai

Make it sound more human: what 400 human texts show about AI writing

By The Less AI team. Tested November 2026 on Claude Sonnet 5.5 and GPT-5.2.

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

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.

The six groups of texts
GroupSourceYearsTextsHow chosen
Human emailsEnron email corpus (corbt/enron-emails, 517,401 emails)2000–2002200Random sample of 2,000; kept emails sent from enron.com addresses, forwarded and quoted text removed, 40–400 words
Human blog postsC4 English validation split (allenai/c4, from Common Crawl, April 2019)2019200Random sample of 2,500 rows; kept blog-like URLs, 200–1,500 words, mostly running prose
Claude emailsClaude Sonnet 5.5, no system instructions202650Written from the points of one human email, about the same length
Claude blog postsClaude Sonnet 5.5, no system instructions202649Same, from one human blog post each (1 generation failed)
GPT emailsGPT-5.2, no system instructions202648Same instruction as the Claude group (2 generations failed)
GPT blog postsGPT-5.2, no system instructions202650Same 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.

How each metric is computed
MetricHow it is computed
Mean sentence lengthWords per sentence, averaged over the text
Sentence length spreadStandard deviation of sentence length within the text (higher = more uneven)
Contractions per 100 wordsForms like don’t, it’s, we’re, I’ve
Paragraph lengthWords per paragraph (emails only; the blog source has no paragraph breaks)
Words changedWord-level edit distance between draft and rewrite, divided by the draft’s word count
Fact driftRewrites where a number, date, link or name is missing or new
Meaning alertsRewrites 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.

Rule hits by group and category
GroupCategories hit
Claude emails (50), rule hitsUnfilled placeholder 20, chatbot leftover 1
GPT emails (48), rule hitsUnfilled placeholder 3, stock phrase 2, empty -ing tail 1
Claude blog posts (49), rule hitsAI vocabulary 3, inflated significance 1, fake depth opener 1
GPT blog posts (50), rule hitsInflated 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.

Structure metrics, human against AI
MetricHuman p10 / median / p90Claude Sonnet 5.5GPT-5.2
Emails, mean sentence length (words)8.56 / 12.93 / 21.009.00 (52% in range)12.62 (81% in range)
Emails, sentence length spread4.75 / 8.45 / 16.187.11 (86% in range)7.88 (85% in range)
Emails, paragraph length (words)13.33 / 24.00 / 51.5015.83 (66% in range)22.25 (88% in range)
Blog posts, mean sentence length (words)12.11 / 17.97 / 26.8014.26 (88% in range)16.58 (86% in range)
Blog posts, sentence length spread6.47 / 9.13 / 14.016.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.

Contractions per 100 words
MetricHuman p10 / median / p90Claude Sonnet 5.5GPT-5.2
Emails, contractions per 100 words0.00 / 0.00 / 3.170.60 (86% in range)0.00 (90% in range)
Blog posts, contractions per 100 words0.00 / 0.57 / 2.331.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.

Claude emails, contractions per 100 words
GroupContractions per 100 words
Claude emails, original draft0.60
Claude emails, old instructions, light fix1.20
Claude emails, old instructions, full rewrite2.00
Claude emails, new instructions, light fix0.88
Claude emails, new instructions, full rewrite0.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.

Try it on your own text

Placeholders and leftovers

Leftover traces, number of texts
TraceClaude emailsGPT emailsClaude blog postsGPT blog posts
Unfilled placeholder in square brackets18 of 503 of 480 of 490 of 50
Markdown headings or bold text12 of 505 of 4811 of 491 of 50
Em dash anywhere in the text0 of 502 of 480 of 491 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.

Words over-used in AI blog posts
WordGrouplog2 ratio against humanAI posts using itHuman posts using it
you’llClaude blog posts3.79 of 494 of 200
they’reClaude blog posts3.110 of 495 of 200
meaningfulGPT blog posts4.211 of 502 of 200
particularlyGPT blog posts3.018 of 5012 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).

Claude drafts, rewrite size and checks
Level and text typeWords changed (median)Fact driftMeaning alerts
Claude emails, Light3%2 of 500 of 50
Claude blog posts, Light3%0 of 492 of 49
Claude emails, Medium8%0 of 501 of 50
Claude blog posts, Medium7%0 of 490 of 49
Claude emails, Strong18%3 of 501 of 50
Claude blog posts, Strong14%0 of 495 of 49
Claude drafts, median by level (share in human range)
MetricDraftLightMediumStrongHuman 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).

GPT-5.2 drafts, rewrite size and checks
Level and text typeWords changed (median)Fact driftMeaning alerts
GPT emails, Light3%1 of 482 of 48
GPT blog posts, Light7%2 of 504 of 50
GPT emails, Medium6%1 of 483 of 48
GPT blog posts, Medium14%3 of 506 of 50
GPT emails, Strong25%6 of 483 of 48
GPT blog posts, Strong31%7 of 508 of 50
GPT-5.2 drafts, median by level (share in human range)
MetricDraftLightMediumStrongHuman 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.

Human texts with at least one flagged sentence
Group of human textsBefore tuningAfter tuning
Human blog posts (of 200)5820
Human emails (of 200)52

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.

  1. Count your sentence length. Claude emails ran about 30% under the human median.
  2. Check the spread. The AI blog posts were more even, 6.88 and 6.99 against 9.13.
  3. Do not add contractions to sound casual. Human emails had a median of 0.00.
  4. Check paragraph length. Claude emails had 15.83 words per paragraph, human emails 24.00.
  5. Fill or delete every placeholder. 18 of 50 Claude emails kept one.
  6. Strip leftover Markdown and any Subject: line before pasting into an email.
  7. Do not expect a light pass to change structure: Light and Medium changed 3% to 8% of Claude words.
  8. Check facts after any big rewrite. Strong on GPT-5.2 blog posts showed fact drift in 7 of 50.

Limitations

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.

Try it on your own text

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.