diff-match-patch was written to reconcile machine text. We point it at human ears.
Around 2006, Neil Fraser wrote diff-match-patch, the library behind Google Docs’ collaborative editing: given two texts, find the minimal set of insertions and deletions between them, fast, at character level. It became one of those pieces of infrastructure that quietly runs everywhere and gets thanked nowhere.
We use it on people. Every dictation attempt on SiteDictation is graded by Fraser’s algorithm: you hear a native speaker, you type what you heard, and diff-match-patch compares your attempt to the transcript character by character. What you dropped shows in yellow. What you invented shows in red. Not word-level, character-level — the difference between excuserez and excuseraiz is two characters, and those two characters are exactly what your ear got wrong about a French vowel.
We built it as a grader. It kept turning into other things.
It became the memory. The diff decides correct or not; correct or not drives the spaced-repetition schedule; the schedule decides when a sentence returns to you. Your entire path through a corpus — every appointment your misses make with your future self — hangs off character-level comparisons.
It became the advertising. Our ads show real misses from real practice logs: a learner hearing “Borchgrave was a founding member of Newsmax Media” and typing “Orch Gravel are founding members of new max media.” A near miss has plot — intrigue, suspense, a story in one image — and a near miss requires a diff to be visible at all. Without Fraser’s algorithm rendering the yellow and red, that ad is just two sentences.
It became the mail. When a reminder email shows you the sentence that got away last Tuesday, the diff is right there in the message, rendered by the same code that graded you — your own miss, mailed back to you as the reason to return.
This is the thesis our company is named for. Human Machine Learning takes the tooling built for machines — the speech corpora recorded to train speech-to-text, the diff algorithms written to reconcile documents, the scheduling math — and runs it on the human side of the loop. The machines needed verified transcripts and honest comparisons; it turns out humans learning to hear a language need exactly the same things, and nobody had pointed the infrastructure at them.
Fraser’s library asked: what is the smallest edit between what was written and what should have been written? For a language learner the same question reads: what is the smallest distance between what you heard and what was said? That distance, in yellow and red, is the most honest teacher we know how to build.
Related: Their Training Data Is Your Training Data · The Prompt Artist