def classifyNB(self,listWord2classify): ''' 对给定的词组列表进行分类 :param vec2classify: :return: ''' vectorWord2classify=bagOfWords2VecMN(self.vocabList,listWord2classify) res=classifyNB(vectorWord2classify,self.p0V,self.p1V,self.pAb) return res
def __init__(self): self.meaningDict={} trainList,trainClassifyVec,self.testList,self.testClassifyVec=self.getData() vocabList=createVocabList(trainList) trainMat=[] for postingData in trainList: trainMat.append(bagOfWords2VecMN(vocabList,postingData)) self.p0V,self.p1V,self.pAb=trainNB(trainMat,trainClassifyVec) self.vocabList=vocabList
def getAccurayRate(self): numOfTest=len(self.testClassifyVec) numOfSuc=0 for i,testData in enumerate(self.testList): res=self.classifyNB(bagOfWords2VecMN(self.vocabList,testData)) if res==self.testClassifyVec[i]: numOfSuc+=1 if numOfTest!=0: return float(numOfSuc/numOfTest) else: return 0