They tend to be called language models, and I'd say it's a branch of natural language processing.
I'd say that it is machine learning, good models will tend to use big data, and it is a supervised learning problem, though with a much different flavor than typical textbook supervised learning problems.