def test_cond_prob_2gram(self): ngram = NGram(2, self.sents) probs = { ('pescado', 'come'): 0.5, ('salmón', 'come'): 0.5, ('salame', 'come'): 0.0, } for (token, prev), p in probs.items(): self.assertEqual(ngram.cond_prob(token, [prev]), p)
def test_cond_prob_1gram(self): ngram = NGram(1, self.sents) probs = { 'pescado': 1 / 12.0, 'come': 2 / 12.0, 'salame': 0.0, } for token, p in probs.items(): self.assertEqual(ngram.cond_prob(token), p)
def test_cond_prob_2gram(self): ngram = NGram(2, self.sents) probs = { ('pescado', 'come'): 0.5, ('salmón', 'come'): 0.5, ('salame', 'come'): 0.0, } for (token, prev), p in probs.items(): self.assertAlmostEqual(ngram.cond_prob(token, (prev,)), p)
def test_cond_prob_1gram(self): ngram = NGram(1, self.sents) probs = { 'pescado': 1 / 12.0, 'come': 2 / 12.0, 'salame': 0.0, } for token, p in probs.items(): self.assertAlmostEqual(ngram.cond_prob(token), p)
def test_cond_prob_3gram(self): ngram = NGram(3, self.sents) probs = { ('pescado', ('gato', 'come')): 1, ('salmón', ('gata', 'come')): 1, ('salame', ('gato', 'come')): 0.0, ('gato', ('<s>', 'el')): 1, ('gata', ('<s>', 'el')): 0.0, } for (token, prev), p in probs.items(): self.assertEqual(ngram.cond_prob(token, list(prev)), p)
def test_cond_prob_3gram(self): ngram = NGram(3, self.sents) probs = { ('pescado', 'gato', 'come'): 1, ('salmón', 'gata', 'come'): 1, ('salame', 'gato', 'come'): 0.0, ('salmón', 'gato', 'come'): 0.0, ('el', '<s>', '<s>'): 0.5, ('</s>', 'pescado', '.'): 1, } for (token, prev1, prev2), p in probs.items(): self.assertEqual(ngram.cond_prob(token, [prev1, prev2]), p)
def test_cond_prob_3gram(self): ngram = NGram(3, self.sents) probs = { ('pescado', 'gato', 'come'): 1, ('salmón', 'gata', 'come'): 1, ('salame', 'gato', 'come'): 0.0, ('salmón', 'gato', 'come'): 0.0, ('el', '<s>', '<s>'): 0.5, ('</s>', 'pescado', '.'): 1, } for (token, prev1, prev2), p in probs.items(): self.assertEqual(ngram.cond_prob(token, [prev1, prev2]), p)
def test_cond_prob_4gram(self): ngram = NGram(4, self.sents2) probs = { ('pescado', ('el', 'gato', 'come')): 1, ('salmón', ('la', 'gata', 'come')): 0.0, ('salame', ('el', 'gato', 'come')): 0.0, ('gato', ('<s>', '<s>', 'el')): 1, ('viejo', ('gato', 'come', 'pescado')): 0.5, ('fresco', ('gato', 'come', 'pescado')): 0.5, } for (token, prev), p in probs.items(): self.assertEqual(ngram.cond_prob(token, list(prev)), p)