# Language Models

A **language model** is a computational model designed to understand, generate, and predict human language. It captures language patterns, learns the likelihood of a specific term occurring in a given context, and assigns probabilities to word sequences through training on extensive text data.

## Contents

* [N-gram Models](https://emory.gitbook.io/nlp-essentials/language-models/n-gram-models)
* [Smoothing](https://emory.gitbook.io/nlp-essentials/language-models/smoothing)
* [Maximum Likelihood Estimation](https://emory.gitbook.io/nlp-essentials/language-models/maximum-likelihood-estimation)
* [Entropy and Perplexity](https://emory.gitbook.io/nlp-essentials/language-models/entropy-and-perplexity)
* [Assignments](https://emory.gitbook.io/nlp-essentials/language-models/homework)
