0.理论
贝叶斯定理由英国数学家贝叶斯 ( Thomas Bayes 1702-1761 ) 发展,用来描述两个条件概率之间的关系,比如 P(A|B) 和 P(B|A)。按照乘法法则,可以立刻导出:P(A∩B) = P(A)*P(B|A)=P(B)*P(A|B)。如上公式也可变形为:P(A|B)=P(B|A)*P(A)/P(B)。
使用朴素贝叶斯对垃圾邮件进行分类, 假定各个单词之间没有联系。只是独立地检查邮件中的每个单词,然后将每个单词对确定是否为垃圾邮件的贡献组合起来。
1.用朴素贝叶斯实现垃圾邮件分类
import os
import io
import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
def resultFrameFromDirectory(root, classification):
"""读取文件夹路径下的所有文件数据,提取邮件内容和分类
Args:
root (str): 文件夹路径
classification (str): 分类
Returns:
resultFrame: 消息和分类
"""
files = os.listdir(root)
result = {
'message': [], 'classification': []}
for file in files:
path = os.path.join(root