其实朴素贝叶斯分类用一个区分是否是侮辱性句子的应用来说就是:
我们先通过训练集来算出 当句子是侮辱性句子时,单词(要计算很多个单词)出现的概率W,然后通过概率W来预测测试句子是否是侮辱性句子。
使用朴素贝叶斯进行文档分类:以社区的留言板为例,运用朴素贝叶斯算法,对文本自动分类是否是侮辱性句子
一,准备数据
1.生成测试集包括一个文本矩阵,和一个人工标注的是否是侮辱性句子的一维矩阵。
这里省去了如何将文本转化为下列格式的步骤,为了方便后面的测试,这里直接用函数生成了一个已经数据清洗好的测试集。
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
2.生成词汇表
def createVocablist(dataSet): #生成一个包含所有不重复单词的列表,
vocabSet=set([]) #创建一个空集
for document