zoukankan      html  css  js  c++  java
  • 贝叶斯分类算法

    分类实际上就是按照某种标准来给对象贴标签,然后再根据标签进行区分,基于概率统计的贝叶斯分类算法是最常见的分类算法,也是目前垃圾文本识别领域应用最广泛的算法。

    使用贝叶斯分类算法进行二分类大致可分为这几个步骤:

    1. 收集大量的垃圾内容和非垃圾内容语料,建立训练的垃圾语料集和正常内容的语料集。
    2. 对语料文本进行分词,提取出独立的字符串,并且统计字符串在文本中出现的频次。
    3. 每个训练语料集对应一个hash table,比如垃圾语料集放在hashtable_bad中,而非垃圾语料集放在hashtable_good中,而hashtable中存储通过分词提取出的字符串以及对应的词频。
    4. 计算hashtable所有的字符串出现的概率,即P=字符串的词频/字符串的总数。
    5. 综合hashtable_good与hashtable_bad,推测当一串文本中包含某个字符串时,该文本为垃圾内容的概率,对应的数学表达式如下: P(A|ki) = Pbad(ki) / [ Pgood(ki) +Pbad(ki) ],其中事件A表示文本为垃圾内容,k1,k2 ……kn 代表提取的关键词,而P(A|ki)则表示在文本中出现关键词ki时,该文本为垃圾内容的概率,Pbad(ki)为ti在hashtable_bad中的值,而Pgood(ki)为ki在hashtable_good中的值。
    6. 建立新的hashtable_probability存储字符串ki到P(A|ki)的映射。

    行文至此,贝叶斯分类的训练学习过程就完成了,接下来就可以根据hashtable_probability来计算文本为垃圾内容的可能性了。假设用户提交的文本内容经过分词得到n个关键词k1,k2,k3……kn,hashtable_probability中对应的值为 P1,P2……Pn ,P(A|k1,k2,k3……kn) 表示在用户提交的文本中同时出现关键字k1,k2,k3……kn时,该段内容为垃圾文本的概率, P(A|k1,k2,k3……kn) =P1*P2*……Pn 。当P(A|k1,k2,k3……kn)超过预定阈值时,可以判断该内容为垃圾内容,通过调整阀值,可以控制反垃圾系统对于内容过滤的严苛程度。

  • 相关阅读:
    mysql存儲過程+游標的應用實例5/17
    mysql存儲過程+遊標應用之:找缺號5/19
    轉:愚公移山
    c++中的头文件
    栈和堆:生存空间
    java中的类加载
    c++中的连接
    访问static变量和方法
    子类调用构造函数的过程
    c++中变量的存储种类
  • 原文地址:https://www.cnblogs.com/encode/p/5166243.html
Copyright © 2011-2022 走看看