I talk to my computer all day — in a fast mix of Vietnamese and English, full of odd technical names — and it almost always gets it right. People ask how. Here's the whole idea in plain language.
It isn't one piece of magic. It's three simple steps, each one fixing the weakness of the step before it.