朴素贝叶斯不能对分类概率进行大致估算,只能判定特征项属于哪一类的概率最大,因此费舍尔方法弥补该缺陷,可以直接估算特征项从属于某一类的概率值,下面首先列出基本代码以供参考,后期补充内容:
# -*- coding: utf-8 -*-
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])
def sampletrain(cl):
cl.train('hello,everybody,welcome to suning','good')
cl.train('hello,everybody,nice to meet you','good')
cl.train('hello,everybody,IT is bad to you','bad')
class classifier:
def __init__(self,getfeatures,filename=None):
self.fc={}
self.cc={}
self.getfeatures=getfeatures
#参数类型 单词,文档类型(tezh