An N-gram is a statistical language model that represents a contiguous sequence of n items (usually words or characters) from a given sample of text or speech. In natural language processing (NLP) and computational linguistics, N-grams are used to analyze and model the structure of language, providing a method to predict the likelihood of a sequence of words occurring in a given context.
The value of n determines the number of items in the sequence:
- Unigrams: (n=1) single words, e.g., “the”, “cat”.
- Bi-grams: (n=2) pairs of consecutive words, e.g., “the cat”, “cat sat”.
- Tri-grams: (n=3) sequences of three consecutive words, e.g., “the cat sat”.
By analyzing N-grams, models can capture local context and dependencies between words, which is essential for various NLP tasks such as text classification, language modeling, and machine translation. For instance, a bigram model could help predict the next word based on the previous word, which enhances the understanding of language patterns.
N-grams are often used in applications such as search engines, speech recognition systems, and predictive text input. However, while they are powerful, they also have limitations, such as requiring large amounts of data to be effective and the inability to capture long-range dependencies in language. Overall, N-grams are foundational in the field of NLP, serving as a building block for more complex models.