Maybe some sort of Bayesian learning system that figures out what people mean based on actual user input? You could seed it with an initial country list and it would go from there, so even if you start out with something suboptimal it would correct over time.
no subject