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)

相关推荐

  • java中在main中写方法(java面试项目技巧)

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

    攻略 2021年12月22日
  • C语言编程核心要点是什么

    技术C语言编程核心要点是什么这篇文章主要讲解了“C语言编程核心要点是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言编程核心要点是什么”吧!C精简的语法集和标准库

    攻略 2021年11月1日
  • sparc处理器(sparc处理器优点)

    技术如何实现sparc处理器浅析本篇文章为大家展示了如何实现sparc处理器浅析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.前言前几天我看到知乎上的一篇文章《时代的眼泪:繁

    攻略 2021年12月18日
  • MySQL中Sandbox怎么安装

    技术MySQL中Sandbox怎么安装这篇文章主要介绍MySQL中Sandbox怎么安装,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 一 sandbox是什么?MyS

    攻略 2021年11月1日
  • 24 二级视图

    技术24 二级视图 24 二级视图和一级视图相比:GenericAPIView来自 :from rest_framework.generics import GenericAPIView新增:字段:  

    礼包 2021年11月4日
  • SAP Fiori编程模型规范里如何进行@ObjectModel.readOnly工作原理解析

    技术SAP Fiori编程模型规范里如何进行@ObjectModel.readOnly工作原理解析本篇文章为大家展示了SAP Fiori编程模型规范里如何进行@ObjectModel.readOnly工作原理解析,内容简

    攻略 2021年12月3日