How This Comparison Works
Plagiarism detection is fundamentally about detecting shared n-grams — sequences of n consecutive words. If two texts share many 3-word sequences that are not common English phrases (like "in the end" or "on the other hand"), there is likely copying or close paraphrase.
The Algorithm
- Both texts are lowercased and stripped of punctuation.
- Words are tokenised and split into overlapping 3-grams.
- Common stop-word n-grams are filtered out — "of the", "in the", "to the" don't count as plagiarism.
- The Jaccard similarity is computed: |A ∩ B| ÷ |A ∪ B| — the ratio of shared n-grams to the total unique n-grams across both texts.
- Additionally, the fraction of B's n-grams that appear in A is computed — the "containment" score.
Interpreting the Scores
- < 5% — Near-certainly independent. Shared n-grams are common phrases.
- 5%–15% — Minor overlap. Could be coincidence, shared source material, or a single copied sentence.
- 15%–35% — Significant overlap. Likely paraphrasing or partial copying.
- > 35% — Heavy overlap. Likely substantial copying with light rewording.
Why "Plagiarism" Needs Human Judgment
Two texts can have 40% n-gram overlap without plagiarism: quotes from the same source, common technical definitions, or both describing the same API documentation. Two texts can have 8% overlap and still contain one flagrantly copied paragraph. Statistical overlap is a lead, not a verdict — always read the flagged phrases and judge them in context.
Paraphrasing Bypasses N-gram Detection
Adept paraphrasing — swapping synonyms, restructuring sentences, changing voice — can reduce n-gram overlap to near-zero while preserving the original meaning. This is called idea plagiarism, and no n-gram tool detects it. For that you need human editorial reading, not statistical analysis.
What This Tool Cannot Do
- Compare against the entire web — that requires a search-index backend this tool deliberately does not have.
- Detect cross-language plagiarism.
- Detect paraphrased ideas (semantic plagiarism).
- Detect AI-generated text (use the AI Burstiness Checker instead).