Methodology

De-AI-ify does not identify who wrote a passage. It measures stylistic patterns that can occur in human writing, machine-generated writing, or both. This page documents every metric so you can judge the results for yourself.

Mechanical Writing Score

The overall score runs from 0 to 100 and is the sum of thirteen independent category scores, each capped at a fixed maximum:

CategoryMaximum
Sentence shapes (structural fingerprints)20
Phrase repetition (incl. lemmatised forms)14
AI-style phrases11
Stock transitions8
Sentence rhythm8
Filler & wordiness7
Sentence openings6
Vague claims6
Paragraph structure (incl. fingerprints)6
Punctuation (incl. dash constructions)6
Lexical diversity3
Polished vocabulary3
Rhetorical templates2
Total100

The category maximums are defined once in DETECTOR_WEIGHTS, every detector reads its cap from there, and their sum is exactly 100 — no post-hoc clamping is needed to keep the score in range. Scores are produced by continuous normalisation — density above a threshold scales linearly towards a saturation point — rather than by magic cut-offs. The bands are: 0–20 natural variation, 21–40 light patterning, 41–60 noticeably patterned, 61–80 highly uniform, 81–100 extremely repetitive.

This score measures writing patterns, not whether AI wrote the text. It is diagnostic: a high score tells you which patterns dominate, not who typed the words.

Sentence rhythm

The detector computes the mean, median, standard deviation and coefficient of variation (CV) of sentence word counts:

CV = standardDeviation / mean

Low CV means sentence lengths are unusually consistent. The detector also looks for local runs: consecutive sentences whose lengths differ by at most 15% relative to each other. A run of three or more similar-length sentences contributes to the score; runs of five or six contribute more. Documents with fewer than five usable sentences are not scored at all, because the sample is too small to mean anything.

Sentence shapes

Every sentence gets a structural fingerprint: a punctuation skeleton (word runs collapse to w, so "Label — explanation" becomes w—w.), a length bucket, and the part-of-speech pattern of its first three words (via the compromise NLP library, running locally). When many nearby sentences share the same skeleton — or the same grammatical opening like determiner + noun + verb — the "Repeated sentence construction" finding fires. This catches template repetition that exact-word matching misses entirely.

Phrase repetition

Word sequences (2–4 grams) are counted across the document over normalised, case-folded words. Sequences made entirely of stop words, inside protected regions, or matching a list of common grammatical combinations are ignored. On top of the exact matching, a lemma layer compares content words in base form — "transforms", "transforming" and "transformed" share the lemma transform — so rephrased repetition and repeated word families are caught without punishing repeated domain nouns.

Sentence openings

For every sentence, the first two, three and four normalised words are extracted. Identical 3–4 word openings repeated nearby count strongly; identical 2-word openings count moderately; a repeated first word counts only slightly and never for stop words. Distance matters: three identical openings inside one paragraph score more than the same three openings spread across a 5,000-word document.

Stock transitions

A dictionary of connective phrases ("furthermore", "moreover", "it is important to note that", and so on) is matched case-insensitively. Two components are combined: overall density per 1,000 words, and repeated use of the same transition. One instance in a long document has effectively zero effect.

Filler

A configurable map of wordy phrases with conservative replacements: "in order to" → "to", "due to the fact that" → "because", and similar. Matches inside quotations or code are skipped. Only density above roughly 1.5 per 1,000 words begins to score. The cleanup engine only ever applies replacements marked safe, and every change is reversible.

Specificity (vague claims)

Phrases such as "studies have shown", "experts agree" or "in today's world" are labelled as potentially vague claims. De-AI-ify performs no citation validation — it flags the absence of a concrete source, not the presence of a false one.

Paragraph structure

For documents with at least four body paragraphs, the detector compares paragraph word counts, sentence counts, and the share of paragraphs sharing the modal sentence count. Organised academic writing is not penalised merely for being organised — the detector requires several consecutive paragraphs that are similar in both length and sentence count.

Lexical diversity

Whole-document type-token ratios shrink as documents grow, so De-AI-ify uses the Moving Average TTR (MATTR): a 50-word window slides over the text, unique words are counted per window, and the window ratios are averaged. This category is mostly informational and capped at 6 points, because technical writing legitimately repeats terminology.

MATTR = average of (unique words in window / window size)

Vocabulary density

A low-weight list of polished-sounding terms ("delve", "tapestry", "pivotal", "robust"…) is counted. These are legitimate English words: one occurrence has approximately zero effect. Only elevated density — above roughly 3 per 1,000 words — contributes, and the category is capped at 4 points.

Punctuation

Em dashes, en dashes, semicolons, colons and parentheses are counted per 1,000 words, with local clustering for em dashes. A single em dash — like this — is completely normal and scores nothing. Only high density or several dashes in one paragraph register, and the whole category is capped at 3 points. En dashes inside numerical ranges (2020–2024) sit in protected regions and are never counted or altered.

AI-style phrases

A dictionary of around a hundred and thirty templated phrases — "plays a crucial role in", "serves as a testament to", "it is worth noting that", "in today's rapidly evolving" — each labelled by type (generic emphasis, meta-discourse, buzzphrase, cliché) and paired with a plainer rewrite where one is safe. These phrases prove nothing about authorship; they are simply the patterns people come here to remove. Density gates apply: one phrase in a long document scores nothing.

Fills, fixes and your text

De-AI-ify separates analysis from fixing. Fixes come in two tiers. Auto-fixes are deterministic replacements for well-understood wordiness ("in order to" → "to") — they apply in one click and can all be undone at once. Smart fixes are algorithm-generated but need judgement — removing a repeated "Furthermore" opener, or replacing "a large number of" with "many" — so each one waits for your approval. Structural findings such as uniform rhythm or repeated sentence openings are never rewritten automatically, because no deterministic rule can rewrite them without occasionally damaging meaning.

All fixes respect protected regions: code, URLs, e-mail addresses, Markdown links, quotations, numerical ranges like 2020–2024, and file paths are never modified. Edits are applied from the highest offset to the lowest so earlier changes never corrupt later offsets.

Limitations

  • Sentence segmentation is strong but not perfect: unusual abbreviations or unpunctuated lists can occasionally split or merge sentences.
  • The analyser has no notion of topic. Repeated domain terms can raise lexical or phrase scores even when the repetition is appropriate.
  • Thresholds are tuned for general prose in English. Very short texts (< a few sentences) are deliberately under-scored because the sample is too small.
  • No detector here says anything about authorship. Both humans and language models produce patterned writing.