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)

相关推荐

  • Python爬虫框架有哪些

    技术Python爬虫框架有哪些这篇文章给大家分享的是有关Python爬虫框架有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、ScrapyScrapy是一个为了爬取网站数据,提取结构性数

    攻略 2021年10月28日
  • VB.NET局部静态变量的示例分析

    技术VB.NET局部静态变量的示例分析这篇文章将为大家详细讲解有关VB.NET局部静态变量的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。VB支持用Static关键字声明局部变

    攻略 2021年12月1日
  • SYS用户登录Oracle报错ORA-01031怎么办

    技术SYS用户登录Oracle报错ORA-01031怎么办这篇文章主要为大家展示了“SYS用户登录Oracle报错ORA-01031怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并

    攻略 2021年11月20日
  • c++面试题(c++用什么软件编程)

    技术如何利用上下文属性将 C++ 对象嵌入 QML 里本篇文章为大家展示了如何利用上下文属性将 C++ 对象嵌入 QML 里,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、设置

    攻略 2021年12月15日
  • WPF开发随笔收录-自定义图标XamlIcon

    技术WPF开发随笔收录-自定义图标XamlIcon WPF开发随笔收录-自定义图标XamlIcon一、前言
    1、在以前自学的过程中,软件需要使用到图标的时候,总是第一个想法是下载一个图片来充当图标使用,

    礼包 2021年12月22日
  • 利用socket实现一个简单的web聊天(websocket服务器开源)

    技术如何分析基于WebSocket的聊天开源项目如何分析基于WebSocket的聊天开源项目,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。如果你是站长,是否

    攻略 2021年12月24日