短短短短信 结巴(),新营销网红网本栏目通过数据整理汇集了短短短短信 结巴()相关信息,下面一起看看。
欢迎来到天山智能。我们是一个专注于BI、AI、大数据分析和挖掘的垂直社区。我们可以做一站式学习,问答;a还有找工作!
机器学习和垃圾邮件识别
不久前,我们使用NLTK的贝叶斯分类模型,通过机器学习来识别垃圾短信。
其实除了NLTK,我们还可以使用Scikit-Learn,一个集成了很多机器学习算法的模块来进行上述实验。
Scikit-Learn的API设计非常合理高效,对于刚接触机器学习的同学非常友好。值得尝试和使用。我也经常用scikit-learn在实验环境和工作环境下对机器学习进行建模。
接下来,我们将使用scikit-learn模块通过其朴素贝叶斯算法API来识别垃圾邮件。
导入短信数据首先我们需要对原始短信数据进行处理,导入到熊猫模块和洁霸模块中。
Pandas模块用于读取和处理数据,jieba模块用于对短信进行分段。
接下来,我们导入SMS数据:
检查一些短信数据:
第一栏是原序列号,第二栏是短信分类,0代表正常短信,1代表垃圾短信,第三栏是短信正文。
我们只需要关注第二列和第三列。
看看这个短信数据集的形状:
有超过70万条短信。
短信切分文本的分类基本上是基于词袋模型,即一个文本包含多少个词,以及每个词的出现频率。对于英语来说,它的自然句子空间可以很容易地分割单词,而汉语却要先进行分词,也就是把一个完整的汉语分割成单词。
Python中有第三方模块——jieba,口吃分词提供中文分词。
我们用街霸对短信内容进行分段。
结果如下:
提取特征数据和目标数据我们需要分别提取特征数据和目标数据。特征数据表示输入数据,目标数据是输入数据的属性。这里短信的内容是特征数据,短信的分类是目标数据。
x是特征数据,y是目标数据,便于下一步划分训练集和测试集。
训练集和测试集的分割:使用sklearn的分割模块对训练集和测试集进行分割;
提取文本特征要从文本中提取特征,我们需要使用scikit-learn中的CountVector()和TfidfTransformer()。
CountVectorizer()用于将文本从标量转换为矢量,而TfidfTransformer()将矢量文本转换为tf-idf矩阵。
建立和训练朴素贝叶斯分类器。朴素贝叶斯是一种经典的机器学习算法,准确率很高。用它做分类器可以得到很好的结果。
在scikit-learn中,每个模型都有一个用于模型训练的fit()和一个用于模型预测的predict()。这里,我们通过介绍训练特点和训练目标来训练模型。
模型训练好之后,我们就可以使用模型的predict()对数据进行测试和预测。
在此之前,我们必须采取另一个步骤。
因为之前的文本特征提取只针对训练集,没有进行测试集,所以我先从测试集中提取文本特征:
然后使用predict()来预测:
变量predicted_categories包含所有的预测结果。
模型评估scikit-learn模块内置了许多模型评估。对于分类问题,我们可以使用accuracy_score(),它返回一个最高分为1的数值。
打印结果显示:
这个分类器的准确率达到了0.98,比上次使用NLTK的贝叶斯算法提高了10%,非常不错。
您可以打印一些测试的短信数据和预测结果:
基本上正常短信和垃圾短信都是正确识别的。
作者:田山先生无线城
可以添加:xtechday(长按复制)进入机器学习爱好者交流群。
欢迎来到天山智能。我们是一个专注于BI、AI、大数据分析和挖掘的垂直社区。我们可以做一站式学习,问答;a还有找工作!
相关文章魔兽世界宏(魔兽世界最新群宏)
篮球场大小(NBA篮球场的大小)
国内汽车质量排名(中国汽车品牌质量排名正式发布)
十堰美食(十堰必吃的十大美食)
东莞理工学院分数线(东莞理工学院2022年本科招生)
中国电动车品牌(中国第一电动自行车品牌)
Lol怎么玩(英雄联盟手游)
美国食品药品监督管理局药品查询(如何通过美国食品药品监督管理局政府网站查询药品)
中国搜索引擎(国家队打造的“中国搜索”)
什么是好的科幻电影(有史以来最伟大的科幻电影)
珍珠女孩(4个珍珠美人,每个都是绝对的美女)
五大唱片公司(华纳唱片,时代洪流中的最后赢家)
更多短短短短信 结巴()相关信息请关注本文章,本文仅仅做为展示!