Natural Language Processing
Giuseppe Attardi
Introduction to Probability, Language Modeling
IP notice: some slides from: Dan Jurafsky, Jim Martin, Sandiway Fong, Dan Klein
Outline
Probability
Basic probability
Conditional probability
Language Modeling (N-grams)
N-gram Intro
The Chain Rule
The Shannon Visualization Method
Evaluation:
• Perplexity
Smoothing:
• Laplace (Add-1)
• Add-prior
1. Introduction to Probability
Experiment (trial)
Repeatable procedure with well-defined possible
outcomes
Sample Space (S)
• the set of all possible outcomes
• finite or infinite
Example
• coin toss experiment
• possible outcomes: S = {heads, tails}
Example
• die toss experiment
• possible outcomes: S = {1,2,3,4,5,6}
Slides from Sandiway Fong
Introduction to Probability
Definition of sample space depends on what we
are asking
Sample Space (S): the set of all possible outcomes
Example
• die toss experiment for whether the number is even or odd
• possible outcomes: {even,odd}
• not {1,2,3,4,5,6}
More definitions
Events
an event is any subset of outcomes from the sample space
Example
die toss experiment
let A represent the event such that the outcome of the die toss
experiment is divisible by 3
A = {3,6}
A is a subset of the sample space S= {1,2,3,4,5,6}
Example
Draw a card from a deck
• suppose sample space S = {heart,spade,club,diamond} (four suits)
let A represent the event of drawing a heart
let B represent the event of drawing a red card
A = {heart}
B = {heart,diamond}
Introduction to Probability
Some definitions
Counting
• suppose operation oi can be performed in ni ways,
then
• a sequence of k operations o1o2...ok
• can be performed in n1 n2 ... nk ways
Example
• die toss experiment, 6 possible outcomes
• two dice are thrown at the same time
• number of sample points in sample space = 6 6 =
36
Definition of Probability
The probability law assigns to an event a
nonnegative number
Called P(A)
Also called the probability A
That encodes our knowledge or belief about the
collective likelihood of all the elements of A
Probability law must satisfy certain properties
Probability Axioms
Nonnegativity
P(A) >= 0, for every event A
Additivity
If A and B are two disjoint events, then the probability
of their union satisfies:
P(A U B) = P(A) + P(B)
Normalization
The probability of the entire sample space S is equal to
1, i.e. P(S) = 1.
An example
An experiment involving a single coin toss
There are two possible outcomes, H and T
Sample space S is {H,T}
If coin is fair, should assign equal probabilities to 2
outcomes
Since they have to sum to 1
P({H}) = 0.5
P({T}) = 0.5
P({H,T}) = P({H}) + P({T}) = 1.0
Another example
Experiment involving 3 coin tosses
Outcome is a 3-long string of H or T
S ={HHH,HHT,HTH,HTT,THH,THT,TTH,TTT}
Assume each outcome is equiprobable
“Uniform distribution”
What is probability of the event that exactly 2 heads
occur?
A = {HHT,HTH,THH}
P(A) = P({HHT})+P({HTH})+P({THH})
= 1/8 + 1/8 + 1/8
=3/8
Probability definitions
In summary:
P( E )
number of outcomes correspond ing to event E
total number of outcomes
Probability of drawing a spade from 52 wellshuffled playing cards:
13 1
0.25
52 4
Probabilities of two events
If two events A and B are independent
Then
P(A and B) = P(A) · P(B)
If flip a fair coin twice
What is the probability that they are both heads?
If draw a card from a deck, then put it back, draw
a card from the deck again
What is the probability that both drawn cards are
hearts?
How about non-uniform probabilities? An example
A biased coin,
twice as likely to come up tails as heads,
is tossed twice
What is the probability that at least one head
occurs?
Sample space = {hh, ht, th, tt} (h = heads, t = tails)
Sample points/probability for the event:
ht 1/3 x 2/3 = 2/9
th 2/3 x 1/3 = 2/9
hh 1/3 x 1/3= 1/9
tt 2/3 x 2/3 = 4/9
Answer: 5/9 = 0.56 (sum of weights in red)
Moving toward language
What’s the probability of drawing a 2 from a deck
of 52 cards with four 2s?
4
1
P(drawing a two)
.077
52 13
What’s the probability of a random word (from a
random dictionary page) being a verb?
# of ways to get a verb
P(drawing a verb)
all words
Probability and part of speech tags
What’s the probability of a random word (from a
random dictionary page) being a verb?
P(drawing a verb)
# of ways to get a verb
all words
How to compute each of these
All words = just count all the words in the dictionary
# of ways to get a verb: number of words which are verbs!
If a dictionary has 50,000 entries, and 10,000 are verbs….
P(V) is 10000/50000 = 1/5 = .20
Conditional Probability
A way to reason about the outcome of an
experiment based on partial information
In a word guessing game the first letter for the word is
a “t”. What is the likelihood that the second letter is
an “h”?
How likely is it that a person has a disease given that a
medical test was negative?
A spot shows up on a radar screen. How likely is it that
it corresponds to an aircraft?
More precisely
Given an experiment, a corresponding sample
space S, and a probability law
Suppose we know that the outcome is within
some given event B
We want to quantify the likelihood that the
outcome also belongs to some other given event
A
We need a new probability law that gives us the
conditional probability of A given B
P(A|B)
An intuition
A is “it’s raining now”
P(A) in Tuscany is .01
B is “it was raining ten minutes ago”
P(A|B) means “what is the probability of it raining now if it
was raining 10 minutes ago”
P(A|B) is probably way higher than P(A)
Perhaps P(A|B) is .10
Intuition: The knowledge about B should change our
estimate of the probability of A.
Conditional probability
One of the following 30 items is chosen at
random
What is P(X), the probability that it is an X?
What is P(X|red), the probability that it is an X
given that it is red?
Conditional Probability
let A and B be events
P(B|A) = the probability of event B occurring given event
A occurs
definition: P(B|A) = P(A B) / P(A)
S
Conditional probability
P(A|B) = P(A B)/P(B)
or
P( A, B)
P( A | B)
P( B)
Note: P(A,B)=P(A|B) · P(B)
Also: P(A,B) = P(B,A)
A
A,B B
Independence
What is P(A, B) if A and B are independent?
P(A,B) = P(A) · P(B) iff A, B independent.
P(heads, tails) = P(heads) · P(tails) = .5 · .5 = .25
Note: P(A|B) = P(A) iff A, B independent
Also: P(B|A) = P(B) iff A, B independent
Summary
Probability
Conditional Probability
Independence
Language Modeling
We want to compute
P(w1,w2,w3,w4,w5…wn) = P(W)
= the probability of a sequence
Alternatively we want to compute
P(w5|w1,w2,w3,w4)
= the probability of a word given some previous words
The model that computes
P(W) or
P(wn|w1,w2…wn-1)
is called the language model.
A better term for this would be “The Grammar”
But “Language model” or LM is standard
Computing P(W)
How to compute this joint probability:
P(“the” , ”other” , ”day” , ”I” , ”was” , ”walking” ,
”along”, ”and”,”saw”,”a”,”lizard”)
Intuition: let’s rely on the Chain Rule of Probability
The Chain Rule
Recall the definition of conditional probabilities
P( A B)
P( A | B)
P( B)
Rewriting:
P( A B) P( A | B) P( B)
More generally
P(A,B,C,D) = P(A)P(B|A)P(C|A,B)P(D|A,B,C)
In general
P(x1,x2,x3,…xn) = P(x1)P(x2|x1)P(x3|x1,x2)…P(xn|x1…xn-1)
The Chain Rule applied to joint probability of words in
sentence
P(“the big red dog was”) =
P(the) * P(big|the) * P(red|the big) *
P(dog|the big red) * P(was|the big red dog)
Very easy estimate:
How to estimate?
P(the | its water is so transparent that)
P(the | its water is so transparent that) =
C(its water is so transparent that the)
____________________________________________________________________________________________
C(its water is so transparent that)
Unfortunately
There are a lot of possible sentences
We’ll never be able to get enough data to compute
the statistics for those long prefixes
P(lizard|the,other,day,I,was,walking,along,and,saw,a)
or
P(the|its water is so transparent that)
Markov Assumption
Make the simplifying assumption
P(lizard|the,other,day,I,was,walking,along,and,saw,a) =
P(lizard|a)
or maybe
P(lizard|the,other,day,I,was,walking,along,and,saw,a) =
P(lizard|saw,a)
Markov Assumption
So for each component in the product replace with
the approximation (assuming a prefix of N)
n1
1
P(wn | w
) P(wn | w
n1
nN 1
Bigram version
n1
1
P(w n | w
) P(w n | w n1 )
)
Estimating bigram probabilities
The Maximum Likelihood Estimate
count(wi1,wi )
P(wi | wi1)
count(wi1 )
c(wi1,wi )
P(wi | wi1)
c(wi1)
An example
<s> I am Sam </s>
<s> Sam I am </s>
<s> I do not like green eggs and ham </s>
This is the Maximum Likelihood Estimate, because it is the one which
maximizes P(Training set|Model)
Maximum Likelihood Estimates
The maximum likelihood estimate of some parameter of a
model M from a training set T
Is the estimate
that maximizes the likelihood of the training set T given the model M
Suppose the word Chinese occurs 400 times in a corpus of a
million words (Brown corpus)
What is the probability that a random word from some other
text will be “Chinese”
MLE estimate is 400/1000000 = .004
This may be a bad estimate for some other corpus
But it is the estimate that makes it most likely that “Chinese”
will occur 400 times in a million word corpus.
More examples: Berkeley Restaurant Project
sentences
can you tell me about any good cantonese
restaurants close by
mid priced thai food is what i’m looking for
tell me about chez panisse
can you give me a listing of the kinds of food that
are available
i’m looking for a good place to eat breakfast
when is caffe venezia open during the day
Raw bigram counts
Out of 9222 sentences
Raw bigram probabilities
Normalize by unigrams:
Result:
Bigram estimates of sentence probabilities
P(<s> I want english food </s>) =
P(i|<s>) x
P(want|I) x
P(english|want) x
P(food|english) x
P(</s>|food)
=.000031
What kinds of knowledge?
P(english|want) = .0011
P(chinese|want) = .0065
P(to|want) = .66
P(eat | to) = .28
P(food | to) = 0
P(want | spend) = 0
P (i | <s>) = .25
The Shannon Visualization Method
Generate random sentences:
Choose a random bigram <s>, w according to its
probability
Now choose a random bigram (w, x) according to its
probability
And so on until we choose </s>
Then string the words together
<s> I
I want
want to
to eat
eat Chinese
Chinese food
food </s>
Approximating Shakespeare
Shakespeare as corpus
N=884,647 tokens, V=29,066
Shakespeare produced 300,000 bigram
types out of V2= 844 million possible
bigrams: so, 99.96% of the possible
bigrams were never seen (have zero entries
in the table)
Quadrigrams worse: What's coming out
looks like Shakespeare because it is
Shakespeare
The wall street journal is not shakespeare
(no offense)
Lesson 1: the perils of overfitting
N-grams only work well for word prediction if the
test corpus looks like the training corpus
In real life, it often doesn’t
We need to train robust models, adapt to test
set, etc
Lesson 2: zeros or not?
Zipf’s Law:
A small number of events occur with high frequency
A large number of events occur with low frequency
You can quickly collect statistics on the high frequency events
You might have to wait an arbitrarily long time to get valid
statistics on low frequency events
Result:
Our estimates are sparse! no counts at all for the vast bulk of
things we want to estimate!
Some of the zeroes in the table are really zeros But others are
simply low frequency events you haven't seen yet. After all,
ANYTHING CAN HAPPEN!
How to address?
Answer:
Estimate the likelihood of unseen N-grams!
Slide adapted from Bonnie Dorr and Julia Hirschberg
Zipf's law
decompressor
are needed t o see t his pict ure.
f 1/r
(f proportional to 1/r)
there is a constant k such that
fr=k
Zipf's Law for the Brown Corpus
Zipf law: interpretation
Principle of least effort: both the speaker and the
hearer in communication try to minimize effort:
Speakers tend to use a small vocabulary of common
(shorter) words
Hearers prefer a large vocabulary of rarer less ambiguous
words
Zipf's law is the result of this compromise
Other laws …
Number of meanings m of a word obeys the law: m 1/f
Inverse relationship between frequency and length
Smoothing is like Robin Hood:
Steal from the rich and give to the poor (in probability mass)
Slide from Dan Klein
Laplace smoothing
Also called add-one smoothing
Just add one to all the counts!
Very simple
MLE estimate:
Laplace estimate:
Reconstructed counts:
Laplace smoothed bigram counts
Laplace-smoothed bigrams
Reconstituted counts
Note big change to counts
C(count to) went from 608 to 238!
P(to|want) from .66 to .26!
Discount d= c*/c
d for “chinese food” =.10!!! A 10x reduction
So in general, Laplace is a blunt instrument
But Laplace smoothing not used for N-grams, as we have
much better methods
Despite its flaws Laplace (add-k) is however still used to
smooth other probabilistic models in NLP, especially
For pilot studies
in domains where the number of zeros isn’t so huge.
Add-k
Add a small fraction instead of 1
Even better: Bayesian unigram prior smoothing
for bigrams
Maximum Likelihood Estimation
C(w1,w2 )
P(w2 | w1)
C(w1)
C(w1,w2 ) 1
PLaplace(w2 | w1)
C(w1 ) vocab
Laplace Smoothing
Bayesian Prior Smoothing
C(w1,w2 ) P(w2 )
PPrior(w2 | w1)
C(w1 ) 1
Practical Issues
We do everything in log space
Avoid underflow
(also adding is faster than multiplying)
Language Modeling Toolkits
SRILM
http://www.speech.sri.com/projects/srilm/
IRSTLM
Ken LM
Google N-Gram Release
Google N-Gram Release
serve
serve
serve
serve
serve
serve
serve
serve
serve
serve
as
as
as
as
as
as
as
as
as
as
the
the
the
the
the
the
the
the
the
the
incoming 92
incubator 99
independent 794
index 223
indication 72
indicator 120
indicators 45
indispensable 111
indispensible 40
individual 234
http://googleresearch.blogspot.com/2006/08/all-our-n-gram-are-belong-to-you.html
Evaluation
We train parameters of our model on a training set.
How do we evaluate how well our model works?
We look at the models performance on some new data
This is what happens in the real world; we want to know
how our model performs on data we haven’t seen
So a test set. A dataset which is different than our training
set
Then we need an evaluation metric to tell us how well our
model is doing on the test set.
One such metric is perplexity (to be introduced below)
Evaluating N-gram models
Best evaluation for an N-gram
Put model A in a task (language
identification, speech recognizer,
machine translation system)
Run the task, get an accuracy for A (how
many lgs identified corrrectly, or Word
Error Rate, or etc)
Put model B in task, get accuracy for B
Compare accuracy for A and B
Extrinsic evaluation
Difficulty of extrinsic (in-vivo) evaluation of Ngram models
Extrinsic evaluation
This is really time-consuming
Can take days to run an experiment
So
As a temporary solution, in order to run experiments
To evaluate N-grams we often use an intrinsic
evaluation, an approximation called perplexity
But perplexity is a poor approximation unless the test
data looks just like the training data
So is generally only useful in pilot experiments
(generally is not sufficient to publish)
But is helpful to think about.
Perplexity
Perplexity is the probability of the test set
(assigned by the language model), normalized
by the number of words:
Chain rule:
For bigrams:
Minimizing perplexity is the same as maximizing probability
The best language model is one that best predicts an
unseen test set
A totally different perplexity Intuition
How hard is the task of recognizing digits
‘0,1,2,3,4,5,6,7,8,9,oh’: easy, perplexity 11 (or if we ignore
‘oh’, perplexity 10)
How hard is recognizing (30,000) names at Microsoft.
Hard: perplexity = 30,000
If a system has to recognize
Operator (1 in 4)
Sales (1 in 4)
Technical Support (1 in 4)
30,000 names (1 in 120,000 each)
Perplexity is 54
Perplexity is weighted equivalent branching factor
Slide from Josh Goodman
Perplexity as branching factor
Lower perplexity = better model
Training 38 million words, test 1.5 million words,
WSJ
Unknown words: Open versus closed vocabulary
tasks
If we know all the words in advance
Vocabulary V is fixed
Closed vocabulary task
Often we don’t know this
Out Of Vocabulary = OOV words
Open vocabulary task
Instead: create an unknown word token <UNK>
Training of <UNK> probabilities
• Create a fixed lexicon L of size V
• At text normalization phase, any training word not in L changed to
<UNK>
• Now we train its probabilities like a normal word
At decoding time
• If text input: Use UNK probabilities for any word not in training
Advanced LM stuff
Current best smoothing algorithm
Kneser-Ney smoothing
Other stuff
Interpolation
Backoff
Variable-length n-grams
Class-based n-grams
• Clustering
• Hand-built classes
Cache LMs
Topic-based LMs
Sentence mixture models
Skipping LMs
Parser-based LMs
Backoff and Interpolation
Another really useful source of knowledge
If we are estimating:
Trigram P(z|xy)
but C(xyz) is zero
Use info from:
Bigram P(z|y)
Or even:
Unigram P(z)
How to combine the trigram/bigram/unigram
info?
Backoff versus interpolation
Backoff: use trigram if you have it,
otherwise bigram, otherwise unigram
Interpolation: mix all three
Interpolation
Simple interpolation
Lambdas conditional on context:
How to set the lambdas?
Use a held-out corpus
Training Data
Held-Out Data
Test
Data
Choose lambdas which maximize the probability
of data
i.e. fix the N-gram probabilities
Then search for lambda values
That when plugged into previous equation
Give largest probability for held-out set
Can use EM to do this search
Intuition of backoff+discounting
How much probability to assign to all the zero
trigrams?
Use GT or other discounting algorithm to tell us
How to divide that probability mass among
different contexts?
Use the N-1 gram estimates to tell us
What do we do for the unigram words not seen in
training?
Out Of Vocabulary = OOV words
ARPA format
Summary
Probability
Basic probability
Conditional probability
Language Modeling (N-grams)
N-gram Intro
The Chain Rule
The Shannon Visualization Method
Evaluation:
• Perplexity
Smoothing:
• Laplace (Add-1)
• Add-k
• Add-prior
© Copyright 2026 Paperzz