导入模块,定义编码格式,训练数据的占比。
将词条转换成向量
一开始doc_vect是一个全为0的一个列表形式的向量,vocabulary是一个词汇表(里面有所有不重复的词),用word去 遍历循环文档中的所有词汇,然后判断文档中的词汇在词汇表中有没有,有则将0改成1,这里doc_vest向量发生变化。
解析文件中的数据
读取数据,生成一个词库vocabulary里面的词都是不重复的,一个文档中所有的单词(重复),词的类别classes。
解释函数NaiveBayesClassifier()
导入模块,定义训练模型。图1是函数defaultdict的解释,defaultdict相当于统计不同类别的下的属性个数
图1
关于参数lambda的解释图2
计算
cls_probs:ham和spam这个类型的概率,就是说所有邮件中出现垃圾邮件和非垃圾邮件的两种概率
cond_prob_vect:就是一个词出现的概率,在文档中。
cond_probs:一个词出现在ham的概率和出现在spam的概率。