Python朴素贝叶斯垃圾短信分类
Python朴素贝叶斯垃圾短信分类
0.前⾔电梯打一成语
王怎么读
没写完.有时间会更新
这是接着我的第⼀篇博客,搭建好Hadoop伪分布式后,完成的整个毕设.毕设的主要内容是完成对100W短信进⾏垃圾短信分类.其中80W是含有标签0/1的数据,还有20W是⽆标签数据.最后的效果评判主要是进⾏交叉验证.
电脑IP地址在哪里看
1.总体思路
⾸先是⽤到的实验环境和相关技术
1.1实验环境
Python 3.6.5 + Anaconda3 + Pycharm + Hadoop + spark
伪分布式的Hadoop搭建参见我的博客
其实,不⽤Hadoop + spark也能跑,我只是觉得毕设⼯作量太少,所以强⾏加的.
1,2思路
当初也很⼩⽩,简单的思路就是分离数据和标签、⽂本分词、套⽤已有的朴素贝叶斯库---->得出结果.
后来和实验室的⽼师交流的过程中才觉得缺了很多步骤.
总体就如图所⽰了.
2.关键技术
2.1 预处理
四个火念什么预处理主要是要完成四个任务:⽂本分离;⽂本分词;去停⽤词;去单字。
⾸先是⽂本分离,由于数据的形式是每⼀⾏代表⼀条数据,⼀共三列。第⼀列代表代表序号、第⼆列代表标签、第三列代表短信内容。进⾏⽂本分离时,我们的任务是将标签和短信内容进⾏分离。最后得到两个⽂件:标签⽂件和内容⽂件。可以使⽤Pandas中的DataFrame读⼊,然后重新写⼊。
然后是⽂本分词,主要是使⽤jieba分词库,这⾥可以直接⽤官⽅的分词库,也可以⾃⼰去。我⾃⼰是⽤的官⽅的分词库。
接下来的⼯作就是读取内容⽂件⽂件,并使⽤jieba分词库进⾏分词分词。得到分词结果,你会发现有很多问题,⽐如有些词很奇怪,有些词⽆意义,那么你就⾃然跳到了要做去停⽤词。
其实去停⽤词⼀共分两步:
第⼀步:在分词前对wen'⽂本内的⼀些⽆⽤的词直接剔除,如x
第⼆步:在分词后,去掉⼀些⼈称谓词、助词、语⽓词等;还要去除⼀些特殊符号。
最后,⼀般单字表⽰的意义是不⾜够⽤来进⾏最后的预测的,所以我们还要把长度为1的词,去除。
表示红的词语
2.2算法
使⽤的算法是⽐较简单且经典的朴素贝叶斯算法,由于这个问题⽐较简单,所以最后结果也还不错。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。