2013-07-22 148 views
1

我想計算字符串中出現字符的概率。例如給出一個字符串「測試」,我想獲得P(測試)。計算字符串的概率

P(test) = p(t) * p(e|t) * p (s|te) * p(t|es) 

我已經計算了超過100k字符串的各種二元頻率並計算了它們出現的概率。我的問題是,通過將字符串中n-gram的概率相乘,我會得到一個準確的答案,還是有更好的方法來找到相同的答案?

任何幫助,高度讚賞。

+0

不應該是'p(s | te)'和'p(t​​ | tes)'? –

+0

@MarkoTopolnik號它應該是'p(t | es)'。我想根據二元語法找出一個單詞的概率。因此,我想找出給定一個二元組的字符出現的概率。 –

+0

但是,顯然,整個方程不可能是正確的。 'p(test)'不等於bigram概率的乘積。這就是爲什麼你在那裏放置一個大寫'P(test)'的原因嗎?既然你考慮到它不是「測試」一詞出現的確切概率? –

回答

1

使用雙元組,您的答案將與您通過second-order Markov chain獲得的答案一樣精確。結果對於這樣一個簡單的模型來說是非常好的,但是當然你可以用更多的表達模型做得更好。例如,在語言建模中,經常使用Hidden Markov Models (HMMs)

+0

感謝HMM是我一直在尋找的東西。 :) –