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