图片.png
关于朴素贝叶斯的理论介绍,请参见下方链接:
带你搞懂朴素贝叶斯分类算法
python代码实现朴素贝叶斯分类算法
'''判断留言是否属于敏感类留言'''
import numpy as np
def loadDataSet():#生成一个文本集
postingList = [['my', 'dog', 'has', 'flea', 'problems', 'help', 'please'],
['maybe', 'not', 'take', 'him', 'to', 'dog', 'park', 'stupid'],
['my', 'dalmation', 'is', 'so', 'cute', 'I', 'love', 'him'],
['stop', 'posting', 'stupid', 'worthless', 'garbage'],
['mr', 'licks', 'ate', 'my', 'steak', 'how', 'to', 'stop', 'him'],
['quit', 'buying', 'worthless', 'dog', 'food', 'stupid']]
classVec = [0,1,0,1,0,1] #0代表正常留言,1代表敏感留言
return postingList,classVec
def createVocabList(dataSet):#利用文本集,生成一个词汇表
vocabSet = set() #确保词汇表的唯一性
for document in dataSet:
vocabSet = vocabSet | set(document)
return list(vocabSet)
def setofwordsvec(vocabList,inputSet):#检查句中的单词是否在词汇表里存在
#(词集模型,即只判断该词是否出现)
returnvec = [0]*len(vocabList) #依据词汇表的长度生成一个全为0的向量
for word in inputSet:
if word in vocabList:
returnvec[vocabList.index(word)] = 1 #如果单词存在词汇表,则将词汇表
#对应的值设为1
<