京公网安备 11010802034615号
经营许可证编号:京B2-20210330
一、案例综述
案例编号:102006
案例名称:中英文垃圾短信过滤
作者姓名(或单位、或来源):朱江
案例所属行业:J631 电信
案例所用软件:R
案例包含知识点:中英文文本数据处理 朴素贝叶斯分类
案例描述:
目前全球范围内手机已经不成不可替代的生活必需品,而短信和微信成为人们日常沟通的主要方式,其中广告商利用短信服务(SMS)文本信息,以潜在消费者为目标,给他们发送不需要的广告信息。目前垃圾短信可以实现对固定区域内特定手机号码段的用户群发,并且手机号信息泄露极其严重。这些都导致手机用户特别是老的手机用户收到垃圾短信的频率较高,故垃圾短信和正常短信的分类不管是对于运营商还是对于客户来说都是较为有利的工具。
朴素贝叶斯已经成功的用于垃圾邮件的过滤,所以它很有可能用于垃圾短信的过滤。然而,相对于垃圾邮件来说,垃圾短信的自动过滤有额外的挑战:由于短信文本数的限制,所以一条短信是否是垃圾信息的文本量减少了;短信的口语化导致文本可能极其不规整,尤其是中文文本,会带来文本处理的难度;缩写的形式在中英文文本中都较为普遍,而且中文文本中新兴词汇的使用,都会模糊合法信息和垃圾信息的界限。
本案例包含已经添加好标签的英文短信数据和中文短信数据,英文数据有5559条,可以进行全数据处理,数据文件不是很大。而中文短信有80万条的信息,信息量较大,在处理过程中会生成130多G的稀疏矩阵,远超出R的内存限制,且中文文本处理更为麻烦,故这里按照短信长度正常短信和垃圾短信分别取前1000条进行分类建模
本案例知识点没有办法细分,因为文本处理过程中生成的文本文件都比较大,会加大内存消耗,且建模前的稀疏矩阵存储读取都需要转格式较为繁琐,故这里我们英文短信分类作为一个知识点,中文短信分类作为一个知识点。
本案例共包含两个个知识点
1英文短信文本读取、清洗、词云、建模、评估
2中文短信文本读取、清洗、词云、建模、评估
案例执行形式:
单人上机
二、案例知识点
知识点1:
知识点名称:英文短信文本读取、清洗、词云、建模、评估
知识点所属工作角色:文本处理 文本挖掘 词云 朴素贝叶斯分类 分类模型评估
知识点背景:英文文本挖掘过程中常见的文本预处理,朴素贝叶斯属于一种比较简单的分类模型。
知识点描述:
涉及到英文文本处理中的去除无关字符、大小写转换、去除停用词、去除空白、词汇修剪(stem)
知识点关键词:
文本处理 文本挖掘 词云 朴素贝叶斯分类 分类模型评估
知识点所用软件:
Rstudio
操作目的:
英文短信文本读取、清洗、词云、建模、评估
知识点素材(包括数据):
sms_spam.csv
操作步骤:
读取文件,将其中的type列转化为因子
可见其中正常短信共有4812条,垃圾短信有747条。
将所有的文本信息构建成语料库,并且打印出未经处理的前十条信息


构建去除非子母类字符的函数,用空格替换

使用大写变小写、去除停用词、去除多余空格以及上面构建的函数转换语料库,并且观察转换后的前十条信息


将原数据分为训练集和测试集,其中训练集占75%,测试集占25%。

查看训练集和测试集中垃圾信息占比是否近似

可见占比都在13%左右
将语料库同样分为训练集测试集,方便后面构建文档词矩阵使用

分别对所有训练集,训练集中垃圾信息,训练集中正常信息创建词云
所有训练集信息的词云:


训练集中的垃圾信息的词云:
训练集中正常信息的词云:


筛选出现在大于等于5条短信中的词,由训练语料库和测试语料库生成文档词矩阵(稀疏矩阵),根据筛选出的词筛选稀疏矩阵的列

将文档词矩阵中所有大于0的数字替换为“yes”,0替换为“no”,得到训练矩阵train和测试矩阵test

使用朴素贝叶斯对训练矩阵建模,通过测试矩阵预测出分类,然后评估模型的性能


得到的结果中,正常短信中错误的将垃圾信息预测为正常信息的占比为12.7%,垃圾短信中错误的将正常信息预测为垃圾信息的占比为85%,可见模型性能一般,需要更多的初期工作,例如更多的数据采集,词汇处理上更多的选择等等
操作结果:
得到训练集中不同类型短信的词云;将测试集的短信分类。
知识点小结:
本知识点显示了英文文本清洗及转换为文档词矩阵的全套流程,以及使用朴素贝叶斯进行分类和评估的全套流程。
知识点2:
知识点名称:中文短信文本读取、清洗、词云、建模、评估
知识点所属工作角色:
文本处理 文本挖掘 词云 朴素贝叶斯分类 分类模型评估
知识点背景:
中文文本挖掘过程中常见的文本预处理,朴素贝叶斯属于一种比较简单的分类模型。
知识点描述
涉及到中文文本处理中的去除无关字符、去除停用词、去除空白、分词
知识点关键词:
文本处理 文本挖掘 词云 朴素贝叶斯分类 分类模型评估
知识点所用软件:
Rstudio
操作目的:
中文短信文本读取、清洗、词云、建模、评估
知识点素材(包括数据):
sms_labelled.txt stop.txt
操作步骤:
操作步骤:
读取文件,用readLines按行读取

抽取每行文本中的标签信息、短信信息、计算短信长度、合并成一个表格


可见其中第一列是标签,0表示正常信息,1表示垃圾信息
按文本长度由长到短排列所有信息,选取正常信息和垃圾信息中的前一千条

将标签变量type0重新命名为“ham”和“spam”








训练集中的垃圾信息的词云:


训练集中正常信息的词云:


筛选出现在大于等于5条短信中的词,由训练语料库和测试语料库生成文档词矩阵(稀疏矩阵),根据筛选出的词筛选稀疏矩阵的列

将文档词矩阵中所有大于0的数字替换为“yes”,0替换为“no”,得到训练矩阵train和测试矩阵test

使用朴素贝叶斯对训练矩阵建模,通过测试矩阵预测出分类,然后评估模型的性能


得到的结果中,虽然只有200条短信,正常短信中错误的将垃圾信息预测为正常信息的占比为25%,垃圾短信中错误的将正常信息预测为垃圾信息的占比为15.5%,可见模型性能较英文模型有了不错的提升
操作结果:
得到训练集中不同类型短信的词云;将测试集的短信分类。
知识点小结:
本知识点显示了中文文本清洗及转换为文档词矩阵的全套流程,以及使用朴素贝叶斯进行分类和评估的全套流程。
在词云中观察到有乱码,可能是由于txt存储类型不是UTF-8编码,可以打开txt源文件另存为指定编码来处理。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在电商行业精细化运营时代,流量红利逐步消退,粗放式投流、广撒网营销模式已无法适配市场竞争需求。依托用户点击、加购、收藏、 ...
2026-09-17在数据可视化与数据分析工作中,图表是将零散数据转化为直观业务规律的核心工具。不同图表拥有专属的数据逻辑与分析维度,能够从 ...
2026-09-17 很多数据分析师每天盯着GMV、DAU、转化率,但当被问到“哪些指标在所有行业都适用”“哪些指标只对电商有意义”“二者如何搭 ...
2026-09-17在企业数字化运营、业务流程管理与精细化管控体系中,流程运营是串联各项业务环节、保障工作落地、提升运转效率的核心载体。无论 ...
2026-09-16在数据分析与统计学研究中,卡方检验是分析分类变量关联性与差异性的重要方法,广泛应用于市场调研、行为统计、社会调查、商业数 ...
2026-09-16 很多数据分析师每天盯着GMV、DAU、转化率,但当被问到“什么是指标”“指标和维度有什么区别”“如何定义指标值的计算规则和 ...
2026-09-16CDA数据分析师 出品 作者:李诗怡 定义: 用户增长核心分析框架,刻画用户从接触产品到自发推荐的全生命周期,五个递进环节构建 ...
2026-09-15在数字化营销与精细化用户运营时代,企业传统的广撒网式营销模式成本高、转化率低,已无法适配精准商业竞争需求。客户画像作为大 ...
2026-09-15 很多数据分析师精通描述性统计,能熟练计算均值、中位数、标准差,但当被问到“用500个样本如何推断10万用户的真实满意度” ...
2026-09-15在MySQL数据库数据查询与数据分析中,GROUP BY与ORDER BY是使用频率极高的核心关键字。二者语法结构相似,常搭配使用,但核心功 ...
2026-09-14随着数字化治理、智慧运营、数字孪生技术的普及,数字体征成为衡量业务状态、系统运行、城市治理与企业经营健康度的核心体系。数 ...
2026-09-14 很多数据分析师沉迷于复杂的模型和算法,却忽略了数据分析的一项基础能力——描述性统计。事实上,大量商业分析问题,用描述 ...
2026-09-14在MySQL数据库运维与开发实践中,经常出现一种典型现象:数据库实际存储的数据量很小,数据表条数少、文件体积低,但服务器整体 ...
2026-09-11 很多数据分析师能熟练计算均值、标准差,但当被问到“总体和样本有什么区别”“参数和统计量有什么关系”“数据级别的高低如 ...
2026-09-11CDA数据分析师 出品 作者:李诗怡 定义: 将同一时间段内因具备相同属性或共同经历的用户划分为群体,分析其留存与生命周期价值 ...
2026-09-11在零售、商超、餐饮、线下门店等实体商业运营中,客流与销售额是衡量门店经营状态的两大核心指标。销售额是门店经营的最终结果, ...
2026-09-10在数据可视化体系中,柱形图是最基础、应用最广泛的图表类型,其中**累计柱形图(堆积柱状图)**是兼顾整体总量与内部结构的核心 ...
2026-09-10 许多数据分析师精通Excel函数和SQL查询,但当面对一张上万行的销售明细表,要快速回答“哪个地区销量最高”“哪款产品增长最 ...
2026-09-10在Python Pandas数据分析中,DataFrame是承载结构化数据的核心载体,数据清洗、数据修正、条件赋值、字段更新等实操场景,都离不 ...
2026-09-09 很多数据分析师掌握了Excel函数、会写SQL查询,但当被问到“数据从哪里来”“数据加工有哪些步骤”“如何使用分析工具连接数 ...
2026-09-09