IBM Model 1 Machine Translation in Python
The IBM model 1 is the original gangster of statistical machine translation. It can learn a dictionary between two languages from a number of translated sentences without any real understanding of language and with a complete disregard for word order.
Even though, we will see that is is able to get meaningful results even from small-ish training sets. While the usual way of explaining its working involves alignments, I find it much more intuitive to think about it as a variant of Von Mises Iteration.