资源简介
Python项目案例开发从入门到实战源代码第18章 机器学习案例——基于朴素贝叶斯算法的文本分类.rar
代码片段和文件信息
from numpy import *
import re
#原始数据
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 = [010101] #1代表侮辱性文字,0代表正常言论
return postingListclassVec
#生成词汇表
def vocabList(dataSet):
vocabSet = set([]) #使用set创建不重复的词汇集
for document in dataSet:
vocabSet = vocabSet|set(document) #创建两个集合的并集
return list(vocabSet)
#词集模型
def setOfWordsVec(vocabListinputText): #得到某个文档的词向量(词集模型)
textVec = [0]*len(vocabList)#创建一个所包含元素都为0的向量
#遍历文档中的所有单词,如果出现了词汇表中的单词,则将输出的文档向量中的对应值设为1
for word in inputText:
if word in vocabList:
textVec[vocabList.index(word)] += 1
return textVec
#词集模型
def bagOfWordsVec(vocabListinputText):#得到某个文档的词向量(词袋模型)
textVec = [0]*len(vocabList) #创建一个所包含元素都为0的向量
#遍历文档中所有单词,若出现了词汇表中的单词,则将文档向量中的对应值+1
for word in inputText:
if word in vocabList:
textVec[vocabList.index(word)] += 1
return textVec
#训练算法
def trainNB(trainDocMatrixtrainCategory):
numTrainDoc = len(trainDocMatrix) #文档数
numWord = len(trainDocMatrix[0]) #单词数
# 侮辱性文件的出现概率,即用trainCategory中所有的1的个数除以文档总数
pAbusive = sum(trainCategory)/float(numTrainDoc)
#构造单词出现的次数列表,初值为0,大小为单词数
#p0Num = zeros(numWord)
#p1Num = zeros(numWord)
p0Num = ones(numWord)
p1Num = ones(numWord)
# 整个数据集单词出现总数
p0Denom = 2.0
p1Denom = 2.0
#p0Denom = 0.0
#p1Denom = 0.0
#对每个文档遍历
for i in range(numTrainDoc):
#是否是侮辱性文档
if trainCategory[i] ==1:
# 如果是侮辱性文档,对侮辱性文档的向量进行加和
p1Num+=trainDocMatrix[i]
# 对向量中所有元素求和,也就是计算所有侮辱性文档中出现的单词总数
p1Denom+=sum(trainDocMatrix[i])
else:
p0Num+=trainDocMatrix[i]
p0Denom+=sum(trainDocMatrix[i])
#类别1下,每个单词出现的概率,即
p1Vec = log(p1Num/p1Denom)
# p1Vec = p1Num/p1Denom
#类别0下,每个单词出现的概率,即
#p0Vec = p0Num/p0Denom
p0Vec = log(p0Num/p0Denom)
return p0Vecp1VecpAbusive
#分类算法
def classifyNB(textVecp0Vecp1VecpClass1):
“““
分类函数
:param textVec: 要分类的文档向量
:param p0Vec: 正常文档类(类别0)下的单词概率列表
:param p1Vec: 侮辱性文档类(类别1)下的单词概率列表
:param pClass1: 侮辱性文档(类别1)概率
:return: 类别1 or 0
“““
p1=sum(textVec*p1Vec)+log(pClass1)
p0=sum(textVec*p0Vec)+log(1.0-pClass1)
#print(‘p1=‘p1)
#print(‘p0=‘p0)
if p1>p0:
return 1
else:
return 0
#测试
def testNB():
“““
朴素贝叶斯算法测试
“““
#1、加载数据集
listOpostslistClasses = loadDataSet()
#2、创建词汇表
wordList = vocabL
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 37373 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\1.txt
文件 36633 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\10.txt
文件 37387 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\11.txt
文件 37954 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\12.txt
文件 37784 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\13.txt
文件 37782 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\14.txt
文件 37939 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\15.txt
文件 36106 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\16.txt
文件 38233 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\17.txt
文件 37413 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\18.txt
文件 37750 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\19.txt
文件 36600 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\2.txt
文件 36930 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\20.txt
文件 37127 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\21.txt
文件 37396 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\22.txt
文件 37501 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\23.txt
文件 36057 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\24.txt
文件 36278 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\25.txt
文件 37599 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\3.txt
文件 36573 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\4.txt
文件 36292 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\5.txt
文件 38536 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\6.txt
文件 36998 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\7.txt
文件 37340 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\8.txt
文件 36857 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\noSpam\9.txt
文件 36781 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\spam\1.txt
文件 37121 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\spam\10.txt
文件 38547 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\spam\11.txt
文件 37262 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\spam\12.txt
文件 37328 2018-04-12 07:31 第18章 机器学习案例——基于朴素贝叶斯算法的文本分类\第18章 代码\email\spam\13.txt
............此处省略30个文件信息
相关资源
- Python项目案例开发从入门到实战源代
- python写的专家系统玩具分类
- 基于决策树的天气大数据回归例程
- python实现图像的混沌加密解密
- think python 中文版.pdf
- kNN分类器和两个-Python
- TensorFlow实现股票预测的Python代码
- 解压微信小程序源码python文件
- python数据结构与算法
- 支持向量机几个的代码
- Python:网络爬虫抓取豆瓣3万本书-详细
- Python GUI项目:文件夹管理系统代码
- python2.7_批量读取netCDF4文件并输出为
- Python 3网络爬虫开发实战pdf 崔庆才著
- python串口读写
- 基于Python的Vibe目标检测代码
- python首次连接STK
- PSO_TSP_Python
- PythonOCC的安装
-
pyQt5_wavepla
yer python计算声音分贝 语 - The Python Language Reference Manual 无水印
- iris.csv数据集和python代码
- Python爬虫爬取校内论坛标题,并将关
- crowd counting test single image demo
- kNN(python实现)
- ds18x20_onewire.rar
- python生成扭曲带干扰验证码
- 基于OpenCV 3 LBPH 人脸识别 Python代码
- Python标准库源代码.zip
- 信息隐藏——Python语言幻方置乱实现
评论
共有 条评论