Now that I think about it, I'm sure someone will throw a language model at this problem any time now. It'll mostly work and, of course, make catastrophic mistakes the rest of the time.