废物短信的辨认分类

布景介绍

废物短信运用基站或许程序进行发送,常常想要收到正常且需求的短信(醒醒没有女生向你表达(bushi))。当手机产生震动,迫不及待点开数据处理是将数据转换成信息的进程的时分映入眼帘的便是买彩票吗,买六合彩吗这种短信。让人烦不胜烦

因此,经过一顿剖析:必定是因为遭受很多废物短信后,害我的女数据结构c语言版第二版课后答案神无法为我发送短信,害我单身至今。让人疾恶如仇的废物短信,今日我就要写代码制裁你。

数据来历:泰迪杯
edu.tipdm.org/course/4255…

大体的思路如下:

1、文本进行去除x

2、jieba进行中文分词

3、文本进行stop词的去除

4、去除后将列表转化为算法规划与剖析字符串(用数据结构c语言版严蔚敏于后边的数据剖析)

5、文本数据和标签分隔

(能够挑选词云的制作 使得文字的数据处理员是干什么的剖析更加清楚)
6、字符串经过TF-IDF进行向量化 获得每个词以及每个词呈现的频率
(one-hot只能知道是否有,coutVectorizer知道每个词的频率,TF-IDF是运用算法进行词语的核算数据处理的最小单位)
TF:词的数量/词的总数 IDF:log((N+1)/(N(x)+1))+1
N=练习集文本总数(行数), N(x)=包含词x的文本数(包含x的行数)
TF-IDF算法便是 TF*IDF

7、数据结构化之后 进行机器学习的猜测

底子数据数据处理的最小单位处理

import pandas as pd
import re
import jieba
def data_process(file数据处理软件='message80W1.csv'):
data = p数据结构c语言版d.read_c算法剖析的意图是sv(file, header=None, index_col=0)
data.columns = [数据结构知识点总结'label', 'message']
n = 5000
a = d数据结构c语言版ata[data['lab算法的时间复杂度取决于el'] == 0].sample(n) #获取5000个非废物短信样本
b = data[data['label'] == 1].sample(n) #获取5000个废物短信样本
data_new = pd.concat([a, b], axis=0)  #兼并行兼并 一个在上一个鄙人
data_数据处理员是干什么的dup = data_new['message'].drop_duplicates()#去除重复列
data_数据结构题库及答案qumin = data字体辨认扫一扫_dup.apply(lambda x: re.sub('x', '', x))#去除data_dup中每一个样本的的x字符 换成' '
jieba.load_userdict('newdic1.txt')#加载自定义文库 给结巴添加特有词语
data_cut = data_q数据结构期末考试题及答案umin.apply(lambda x: jieba.lcut(x))#切分中文词语 lcut参数cut_all默以为Fa数据结构lse 假设写为True那么就变为全模式 会有重复的词
stopWords = pd.read_csv('stopword.txt', encoding='GB18030', sep='hahaha', he字体美化大师ader=Non算法导论e) #读取文本  sep指定分隔符为'hahaha' 默以为,
stopWords = ['≮', '≯', '≠', '≮', ' ', '会', '月', '日', '–'] + list(stopWords.iloc[:, 0]) #添加停用词
data_after_stop = data_c算法剖析的意图是ut.apply(lambda x: [i for i in x i数据处理的意图是什么f i not in stopWord算法导论s]) #数据结构c语言版严蔚敏假设在停用词里边 那算法的五个特性么就删去
labels = data_new.loc[data_after_stop.index, 'label']#index是行名 构成一个只需标签的dat数据处理是将数据转换成信息的进程aframe
adata = data_after_stop.apply(lambda x: ' '.join(x))#将列表转化为字符串 分隔为' '
return adata, data_after_stop, lab数据处理的常用办法有els #data_after_stop是列表 adata是字符串 labels是标签

效果字体规划在线生成器的猜测

from skl数据处理的常用办法有earn.neural_network import MLPClassifier
from skle字体辨认扫一扫arn.model_selection import tr数据处理的最小单位ain_test_split
from sklea字体辨认扫一扫rn.feature_extraction.text import CountVectorizer,数据处理员是干什么的 TfidfTransformer
adata, data_数据处理软件after_stop, labl数据处理办法es = data_process()#获得结构化之后的数据
data_tr, data_te, labels_tr, labels_te = train_test_split(数据处理是将数据转换成信息的进程a字体天下data, lables, test_size=0.2)#进行检验集和练习集的划分
countVectorizer = CountVectorizer()
data_tr = countVectorizer.fit_transform(data_tr)#只是考虑词频 每个词呈现一次 数值加一
X_tr = TfidfTransfor数据结构题库及答案mer().fit_transform(data数据处理_tr.toarray()).toarray()#运用TF-IDF进行核算
data_te = CountVectorizer(vocabulary=countVectorizer.vocabulary_).fit_transform(data_te)算法导论#vocabulary=countV数据处理ectorizer.vocabulary_为了坚持上面相同的向量列数
X_te = TfidfT数据结构知识点总结ransformer().fit_transfo数据处理的最小单位rm(data_te.toarray()).toarray()#不toarray()数据处理是什么工作的话 呈现的是告诉你哪个方位是什么数值
model = MLPClassifier()#神经网络模型的构建
model.fit(X_tr, labels_t数据处理的基本单位是r)#数据结构严蔚敏算法剖析的意图是入练习集数据
model.score(X_te, labels_te)#检验集数据进行跑分

这儿的神经网络是调用默认参数,假设需求更好的效果能够调参或许运用其他的模型

跑分效果

根据TF-IDF的文本剖析--短信辨认分类

词云字体规划的制作

#制作词云
from data_process import data_process
from wordcloud import Word算法的有穷性是指Cloud
import matplotlib.pyplot as plt
adata, data_after_stop, labels = data_process()
word_fre = {}
for i in data_afte算法导论r_stop[labels == 1]:#遍历data标签为1的(列表)
for j in i:
if j not in word_fre.keys():#keys为键名 不含这个键名就数据结构期末考试题及答案建立一个
word_fre[j] = 1
else:
word_fre[j] += 1
mask = plt.imread(算法导论'duihuakuan.jpg')数据结构知识点总结#添加图标
wc = WordCloud(m数据结构难学吗ask=mask算法, background_color='white', f算法的有穷性是指ont_path=r'C:WindowsFontssimhei.ttf')#制作词云 图片和布算法规划与剖析景色彩以及文字的格式设置
wc.fit_words(word_fre)#添加字典
plt.imshow(wc)#画图

根据TF-IDF的文本剖析--短信辨认分类

fo数据处理的最小单位r循环为1的话 就标明废物短信的词云,为0的话便是一般短信的词云
这儿的难点是font_path的参数调整
需求运用能够闪现的字体

总结

运用了废物短信的辨认,马上有女神找我谈天~~数据处理技能的发展经历了三个阶段