贝叶斯算法是基于概率,这里有一篇说得挺详细的介绍:http://hi.baidu.com/finlandrbt/blog/item/8f05b2115e019e78cb80c474.html
简单来说,首先对两类文本信息进行学习,计算出每个token在各类文本中的一个概率,公式简单表示为:字频/token总数,
这样得出两个hash table,分别表示两类文本,再按照两个hash table算出一个关于概率的hash_table,表示某个字串属于某一类文本的可能性。公式为:token在该类文本中的字频/该token在两类文本中的概率之和。当要分析一个新文本的时候,首先得出它所有的token串,然后查表得出这么多token串的概率,然后算出一个复合概率:所有概率的乘积/(所有概率的乘积+(1-各个概率)之和),便可得出这个文本属于这一类的一个概率,再设定一个阈值,如果超过这个阈值,则可判定这个文本为此类文本。
综合来说:贝叶斯算法也是基于概率的一个算法,有很大的不确定性,但是,他是基于机器学习的启发式概率算法,有一定的人工智能的味道在里面。理论上来说,如果样本空间足够大,是否能说贝叶斯算法足够能得出正确的结果呢。
感觉这个算法挺奇妙,至少感觉是从理论的高度上确定了算法的可行性。以前自己在思考这类问题的时候,思路和他差不多,但是没能想得这么细河这么系统,在平时的工作时,有很多需要加入一些机器判定的问题可以借鉴贝叶斯算法的原理。例如:在一些论坛上判定一些垃圾账号,文本分类推荐,对spider抓取的数据进行分类等等........
迟点打算写个程序出来实现这个算法。
