朴素贝叶斯算法Python实现

本文介绍了如何在Python中实现朴素贝叶斯分类器。通过`sampletrain`函数构建训练样本,使用正则表达式提取文本特征,并通过`classifier`和`naivebayes`类进行分类。分类器利用`weightedprob`方法计算特征概率,并在`classify`方法中确定最佳分类。
摘要由CSDN通过智能技术生成
# -*- coding: cp936 -*-
#朴素贝叶斯分类器的实现
#运行
#reload(docclass)
#c1=docclass.naivebayes(docclass.getwords)
#docclass.sampletrain(c1)
#c1.classify('quick rabbit',default='unknown')
#构建训练样本
def sampletrain(c1):
    c1.train('Nobody owns the water.','good')
    c1.train('the quick rabbit jumps fences','good')
    c1.train('buy pharmaceuticals now','bad')
    c1.train('make quick money at the online casino','bad')
    c1.train('the quick brown fox jumps','good')
import re
import math
#从文本中提取特征
def getwords(doc):
    splitter=re.compile('\\W*')
    #根据非字母字典进行单词拆分
    words=[s.lower() for s in splitter.split(doc) if len(s)>2 and len(s)<20]
    #只返回一组不重复的单词
    return dict([(w,1) for w in words])

#分类器
class classifier:
    def __init__(self,getfeatures):
        self.fc={}
        self.cc={}
        self.getfeatures=getfeature
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值