Java 计算字符串的概率

Java 计算字符串的概率,java,string,probability,n-gram,Java,String,Probability,N Gram,我想计算字符串中出现字符的概率。例如,给定一个字符串“test”,我想得到P(test) 我计算了超过100k串的各种双克频率,并计算了它们出现的概率。我的问题是,只需乘以一个字符串中n-gram的概率,我就能得到一个准确的答案,还是有更好的方法来找到相同的答案 非常感谢您的帮助 使用双元语法,您的答案将尽可能准确。对于这样一个简单的模型,结果出人意料地好,但当然,对于更具表现力的模型,您可以做得更好。例如,在语言建模中,通常会使用bi图。使用bi图,您的答案将尽可能准确,因为您可以通过一个。对

我想计算字符串中出现字符的概率。例如,给定一个字符串“test”,我想得到P(test)

我计算了超过100k串的各种双克频率,并计算了它们出现的概率。我的问题是,只需乘以一个字符串中n-gram的概率,我就能得到一个准确的答案,还是有更好的方法来找到相同的答案


非常感谢您的帮助

使用双元语法,您的答案将尽可能准确。对于这样一个简单的模型,结果出人意料地好,但当然,对于更具表现力的模型,您可以做得更好。例如,在语言建模中,通常会使用bi图。

使用bi图,您的答案将尽可能准确,因为您可以通过一个。对于这样一个简单的模型,结果出人意料地好,但当然,对于更具表现力的模型,您可以做得更好。例如,在语言建模中,通常使用的是。这不应该是
p(s | te)
p(t | tes)
?@MarkoTopolnik否。它应该是
p(t | es)
。我想根据一个词的双格来计算它的概率。因此,我想找出一个给定双图的字符出现的概率。但是,很明显,整个方程不可能是正确的
p(test)
不等于二元概率的乘积。这就是为什么你在那里放一个大写字母
P(test)
?既然你考虑到“test”这个词出现的确切概率不是那么大,那么这不应该是
p(s | te)
p(t | tes)
?@MarkoTopolnik否。它应该是
p(t | es)
。我想根据一个词的双格来计算它的概率。因此,我想找出一个给定双图的字符出现的概率。但是,很明显,整个方程不可能是正确的
p(test)
不等于二元概率的乘积。这就是为什么你在那里放一个大写字母
P(test)
?既然你考虑到“测试”这个词出现的概率并不准确?谢谢,嗯,这正是我要找的谢谢,嗯,这正是我要找的东西。:)
P(test) = p(t) * p(e|t) * p (s|te) * p(t|es)