def test_tag_prob_2gram(self): hmm = MLHMM(2, self.tagged_sents, addone=False) y = 'D N V N P'.split() p = hmm.tag_prob(y) tag_prob = 0.5 * 0.5 self.assertAlmostEqual(p, tag_prob) lp = hmm.tag_log_prob(y) self.assertAlmostEqual(lp, log2(tag_prob))
def test_tag_prob_1gram(self): hmm = MLHMM(1, self.tagged_sents, addone=False) y = 'D N V N P'.split() p = hmm.tag_prob(y) # D V P and </s> have prob 2.0 / 12.0, N has prob 4.0 / 12.0. tag_prob = (2.0 / 12.0)**4 * \ (4.0 / 12.0)**2 self.assertAlmostEqual(p, tag_prob) lp = hmm.tag_log_prob(y) self.assertAlmostEqual(lp, log2(tag_prob))