基于逻辑回归的中文垃圾短信分类

基于逻辑回归的中文垃圾短信分类

一、数据预处理

  1. 去重
  2. 中文分词和停用词

二、建立模型
三、预测


一.数据预处理

源数据一共有80万条短信,我选1万条做我的源数据
后面做预测信息的时候选的2000条没做源数据的数据,一份去掉标签的用作预测,一份没去标签的我后面用来做计数处理。
1.数据去重

data=data.drop_duplicates(subset=['text'])  # text列去重

其实源数据并没有重复数据…
2.中文分词和停用词
a.中文分词
中文分词使用目前流行的结巴(Jieba)

# 中文分词
x1=[]
x=[]
y=[]
x1=data['text'].values
# data["text"].apply(lambda x:' '.join(jieba.cut(x)))
for i in range(len(x1)):
    words=jieba.cut(x1[i])
    str1=""
    for key in words:
        if key not in stop_words:
            if key != '\t':  
                str1+=key
                str1+=' '
    x.append(str1)                #短信内容
y=data['label'].values

b.停用词
停用词表网上下载 根据源数据再添了一些
不得不吐槽我用的这个源数据是真的源数据 一堆乱七八糟的内容

# 停用词
stop_f = open('./stopwords.txt',"r",encoding='utf-8')
stop_words=[]
for line in stop_f.readlines():
    line = line.strip()
    if not len(line):
        continue 
    stop_words.append(line)
stop_f.close

二、建立模型并训练

使用机器学习sklearn库 方便 简单
1.建立模型

#线性回归
train_x,test_x,y_train,y_test = train_test_split(x,y,test_size=0.3)#测试集:训练集 =1:9
# test_xrain
#通过TfidfVectorizer算出TF-IDF权重
  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值