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)

相关推荐

  • 抖音刷赞软件,实惠的刷赞软件

    技术抖音刷赞软件,实惠的刷赞软件免费刷抖音赞软件,抖音怎么刷点赞上热门?关于抖音刷赞、抖音怎么刷赞等相关问题,于是去网上输入”抖音刷赞”,哇~不搜不知道一搜吓一跳,网上出现:抖音刷赞|抖音怎么刷赞|抖音刷赞上热门|抖音快

    测评 2021年10月19日
  • php数据类型的永久转换函数是哪个

    技术php数据类型的永久转换函数是哪个本篇内容主要讲解“php数据类型的永久转换函数是哪个”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php数据类型的永久转换函数是哪个”吧

    攻略 2021年12月13日
  • 瘦小腿的最快方法,如何快速瘦大腿,瘦小腿

    技术瘦小腿的最快方法,如何快速瘦大腿,瘦小腿瘦腿法第一招瘦小腿的最快方法:平时尽量多走楼梯,并在上楼梯的时候抬起脚跟,以腿部承担体重。由于加大了腿部的负担,可以提高大腿周围脂肪的燃烧速率,消除大腿内侧和臀部的赘肉。专家表

    生活 2021年10月23日
  • javascript 中string是不是对象

    技术javascript 中string是不是对象这篇文章主要介绍了javascript 中string是不是对象,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解

    攻略 2021年11月18日
  • pads无模命令怎么用

    技术pads无模命令怎么用这篇文章将为大家详细讲解有关pads无模命令怎么用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。全局设置(Global Settings)C……

    攻略 2021年11月11日
  • Redis个实现附近人功能

    技术Redis个实现附近人功能Redis个实现附近人功能,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。01Redis的Geo最近在写实现附近人的这个功能,在

    攻略 2021年11月15日