Python中怎么使用朴素贝叶斯进行垃圾短信识别

技术Python中怎么使用朴素贝叶斯进行垃圾短信识别这篇文章主要讲解了“Python中怎么使用朴素贝叶斯进行垃圾短信识别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Py

本文主要讲解“如何在Python中使用朴素贝叶斯识别垃圾邮件”。本文的解释简单明了,易学易懂。接下来,请跟随边肖的思路学习学习“如何用Python使用朴素贝叶斯识别垃圾邮件”!

00-1010现在很多手机管理软件都有拦截垃圾短信的功能,很智能很贴心,不是吗?

嗯~ o () o

对于经常被垃圾邮件骚扰的人非常有用。(••)

然而,在拦截垃圾邮件后,许多拦截软件.发送通知,提醒垃圾邮件已被拦截 (﹀_ ﹀) .

好奇心害死猫。你告诉我你截获了垃圾邮件。当然,我想知道你拦截了哪些垃圾邮件 (_)

00-1010机器学习根据其性质可以分为三类:

分类(监督)

退货(监督)

聚类(半监督)

垃圾短信通常使用已标记的短信数据来判断未知短信,属于机器学习中的分类性质。

Python中有很多机器学习模块,比如Sklearn、Tensorflow、Caffe等。这可以很容易地调用一些机器学习算法。

00-1010好吧,我们直接做吧.( ̄_,  ̄)

80w训练数据集和20w测试数据集都来自github上的一个小兄弟。我要感谢D====(;*)b。

00-1010好,我们先来看看数据是什么样子的:

importpandasaspd

data=PD . read _ CSV(r ' h : \ rubishmessage \ data \ 80w . txt ',编码='utf-8 ',sep=' ',header=None)

data.head()

Python中怎么使用朴素贝叶斯进行垃圾短信识别

最后一列是短信内容,倒数第二列是短信类型,0表示正常短信,1表示垃圾短信。

然后,我们根据不同的类型(普通短信和垃圾短信)对短信进行划分和分段:

#垃圾短信导入揭巴

垃圾邮件=数据[数据[1]==1]

垃圾邮件[2]=垃圾邮件[2]。map(lambda x: ' '。join(jieba.cut(x)))

spam.head()

#普通短信

正常=数据[数据[1]==0]

正常[2]=正常[2]。map(lambda x: ' '。join(jieba.cut(x)))

normal.head()

Python中怎么使用朴素贝叶斯进行垃圾短信识别

将不同类型的分段短信保存到不同的文件中:

spam.to_csv('soam.csv ',编码='utf-8 ',标头=False,索引=False,列=[2])

normal.to_csv('normal.csv ',编码='utf-8 ',标头=False,索引=False,列=[2])

一、引子

在这里,我们选择NLTK自然语言处理库进行贝叶斯分类,而不是Sklearn或其他深度学习库。

导入模块:

导入nltk . classifier . util

从nltk.classify导入天真分类器

从nltk .语料库导入PlaintextCorpusReaderimport随机

加载刚刚导出的短信文件:

加载短信语料库

message _ corps=PlainTextCorpsReader('。/',['soam.csv ',' normal.csv'])

all _ message=message _语料库. words()

定义特征函数以生成特征:

def manch _ feature(word,num_letter=1):

返回{ ' feature ' : word[-num _ letter :]}

短消息特征的标签提取;

labels _ name=([(message,'垃圾')formsseinmessage _ corpus . words(' Soam . CSV ')][(message,' normal ')formsseinmessage _ corpus . words(' normal . CSV ')])

随机种子(7)

random.shuffle(标签名)

并训练预测模型。

from nltk . class ifyimportaccurayasnlk _ accuracy

功能集=[(按摩_功能(n),按摩)适用于(n,按摩)标签_名称]

train_set,test _ set=featureset[2000:],featureset[:2000]

分类器=天真分类器. train(train_set)

最后,让我们看看预测有多准确:

打印('结果准确度:',STR (100 * NLTK _ accuracy(分类器,test _ set)) STR ('% ')

Python中怎么使用朴素贝叶斯进行垃圾短信识别

感谢阅读。以上就是“如何在Python中使用朴素贝叶斯识别垃圾邮件”的内容。学习完这篇文章,相信你对如何在Python中使用朴素贝叶斯识别垃圾邮件有了更深的理解,具体用法还需要实践验证。在这里,边肖将为您推送更多关于知识点的文章,敬请关注!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/123908.html

(0)

相关推荐

  • pythonopencv图像处理实例(pythonopencv获取图像)

    技术Python+OpenCV数字图像处理中如何进行ROI区域的提取本篇文章给大家分享的是有关Python+OpenCV数字图像处理中如何进行ROI区域的提取,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章

    攻略 2021年12月17日
  • 洛谷 P4570 [BJWC2011]元素,贪心、线性基)

    技术洛谷 P4570 [BJWC2011]元素,贪心、线性基) 洛谷 P4570 [BJWC2011]元素(贪心、线性基)传送门解题思路
    贪心策略:按照价值从大到小排序,能选就选。
    用线性基维护是否发生

    礼包 2021年10月28日
  • JavaScript工作体系中不可或缺的函数是什么

    技术JavaScript工作体系中不可或缺的函数是什么本篇内容主要讲解“JavaScript工作体系中不可或缺的函数是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Jav

    攻略 2021年11月29日
  • ts在项目中的使用-三斜线引入 与 import区别

    技术ts在项目中的使用-三斜线引入 与 import区别 ts在项目中的使用-三斜线引入 与 import区别ts 在项目中的使用
    本次分享内容只涉及项目初始阶段如何引入ts及依赖插件的ts。
    ts为类

    礼包 2021年12月24日
  • 通州运河公园,通州有特色的文化旅游地有什么

    技术通州运河公园,通州有特色的文化旅游地有什么通州的特色文化旅游这几个景点可以参考:1.历史名桥:八里桥又名永通桥通州运河公园。建于明正统十一年(一四四六年),南北走向,长三十米,宽十六米,桥两侧有三十三块护栏雕饰、三十

    生活 2021年10月30日
  • golang中rune类型怎么使用

    技术golang中rune类型怎么使用本篇内容介绍了“golang中rune类型怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,

    攻略 2021年12月1日