当前位置: 首页 > wzjs >正文

wordpress怎么设置https怎么学seo基础

wordpress怎么设置https,怎么学seo基础,工程做网站,wordpress招聘垃圾短信分类 使用说明: 需要准备 stopwords.txt 停用词表和 sms_dict.txt 自定义词表 原始数据文件需为竖线分隔的文本格式 首次运行可能需要安装依赖库: pip install pandas jieba scikit-learn matplotlib seaborn wordcloud 或者 python -m pip i…

垃圾短信分类

使用说明:

  1. 需要准备 stopwords.txt 停用词表和 sms_dict.txt 自定义词表

  2. 原始数据文件需为竖线分隔的文本格式

  3. 首次运行可能需要安装依赖库:

    pip install pandas jieba scikit-learn matplotlib seaborn wordcloud

    或者

    python -m pip install --upgrade pandas jieba scikit-learn matplotlib seaborn wordcloud

  4. 输出包含模型准确率、分类报告、混淆矩阵以及可视化图表

关键注释说明

  1. 数据加载阶段特别指定手机号为字符串类型,避免解析错误

  2. 清洗过程中通过 lambda 表达式生成垃圾短信标签,规则可根据需要调整

  3. 脱敏处理采用部分隐藏的方式保护隐私,同时处理异常情况

  4. 分词过程包含 URL 替换和停用词过滤,提高文本表示质量

  5. 模型训练使用 TF-IDF + 多项式贝叶斯组合,适合短文本分类

  6. 可视化部分展示了数据分布和关键词云,帮助理解数据特征

引入依赖库

import pandas as pd  # 导入数据处理库
import jieba  # 导入中文分词库
import re  # 导入正则表达式库
from sklearn.feature_extraction.text import TfidfVectorizer  # 导入TF-IDF向量化工具
from sklearn.model_selection import train_test_split  # 导入数据集划分工具
from sklearn.naive_bayes import MultinomialNB  # 导入多项式朴素贝叶斯分类器
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix  # 导入模型评估指标
import matplotlib.pyplot as plt  # 导入基础可视化库
import seaborn as sns  # 导入高级可视化库
from wordcloud import WordCloud  # 导入词云生成库

数据加载

# 1. 数据加载函数
def load_data(file_path):# 使用pandas读取文本文件,指定分隔符为竖线,设置列名# dtype参数确保手机号保持字符串类型,避免转换为整数df = pd.read_csv(file_path, sep='|', header=None, names=['phone_number', 'datetime', 'content'], dtype={'phone_number': str})return df  # 返回加载后的数据框

数据清洗

# 2. 数据清洗函数
def clean_data(df):# 去除重复行df = df.drop_duplicates()# 尝试将时间列转换为datetime格式,错误转换的条目设为NaNdf['datetime'] = pd.to_datetime(df['datetime'], errors='coerce')# 删除时间列为空的无效行df = df.dropna(subset=['datetime'])# 生成垃圾短信标签:内容中同时包含http视为垃圾短信(1表示垃圾短信,0表示正常)df['label'] = df['content'].apply(lambda x: 1 if 'http' in str(x) else 0)# 过滤掉内容为空或过短的条目(保留至少5个字符的内容)df = df[df['content'].apply(lambda x: isinstance(x, str) and len(x)>=5)]return df  # 返回清洗后的数据框

数据脱敏函数

# 3. 数据脱敏函数
def desensitize_data(df):# 手机号脱敏:保留前3位和后4位,中间用****填充# 检查是否为字符串且长度>=11,否则返回默认值df['phone_number'] = df['phone_number'].apply(lambda x: x[:3] + '****' + x[7:] if (isinstance(x, str) and len(x)>=11) else '*******')# 时间脱敏:仅保留日期部分(去除时间)df['datetime'] = df['datetime'].dt.datereturn df  # 返回脱敏后的数据框

文本分词函数

# 4. 文本分词函数
def tokenize_text(text):# 替换URL为统一标识text = re.sub(r'http\S+', 'URL', text)# 去除所有非字母数字字符text = re.sub(r'[^\w\s]', '', text)# 加载自定义词典jieba.load_userdict('./data/sms_dict.txt')# 使用jieba进行中文分词tokens = jieba.lcut(text)# 加载停用词表(需提前准备stopwords.txt文件)with open('./data/stopwords.txt', 'r', encoding='utf-8') as f:stopwords = set(f.read().splitlines())# 过滤停用词并返回空格分隔的字符串tokens = [word for word in tokens if word not in stopwords]return ' '.join(tokens)

模型训练函数

# 5. 模型训练函数
def train_model(df):# 初始化TF-IDF向量化器,保留前5000个最重要的特征vectorizer = TfidfVectorizer(max_features=5000)# 将文本转换为TF-IDF特征矩阵X = vectorizer.fit_transform(df['clean_content'])# 提取标签列y = df['label']# 划分训练集和测试集(80%训练,20%测试)X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 初始化多项式朴素贝叶斯分类器model = MultinomialNB()# 模型训练model.fit(X_train, y_train)# 对测试集进行预测y_pred = model.predict(X_test)# 输出模型评估结果print("准确率:", accuracy_score(y_test, y_pred))print(classification_report(y_test, y_pred))print("混淆矩阵:\n", confusion_matrix(y_test, y_pred))return model, vectorizer  # 返回训练好的模型和向量化器

数据可视化函数

# 6. 数据可视化函数
def visualize_data(df):plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定字体为 SimHeiplt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题# 绘制类别分布柱状图plt.figure(figsize=(12, 6))  # 设置画布大小sns.countplot(x='label', data=df)  # 绘制计数图plt.title('垃圾短信类别分布')  # 设置标题plt.xlabel('标签(1=垃圾短信)')  # 设置x轴标签plt.ylabel('数量')  # 设置y轴标签plt.savefig('./img/sms_bar.png', dpi=1080)plt.show()  # 显示图表# 绘制类别分布饼图显示百分比counts = df['label'].value_counts()labels = ['正常短信', '垃圾短信']colors = ['#4CAF50', '#FF5722']plt.figure(figsize=(12, 6))plt.pie(counts, labels=labels, colors=colors, autopct='%1.1f%%', pctdistance=0.85, startangle=90)plt.title('短信类型百分比分布', fontsize=14)plt.axis('equal')# 添加数据标签plt.text(-1.2, 0.5, f'正常短信\n{counts[0]}条', ha='center', va='center', fontsize=12)plt.text(1.2, 0.5, f'垃圾短信\n{counts[1]}条', ha='center', va='center', fontsize=12)plt.legend(title='类别', bbox_to_anchor=(1, 1), loc='upper left')plt.savefig('./img/sms_pie.png', dpi=1080)plt.show()# 生成垃圾短信关键词云all_text = ' '.join(df[df['label']==1]['clean_content'])  # 提取所有垃圾短信内容# 设置字体路径,这里需要根据你系统中字体的实际路径来设置font_path = 'C:/Windows/Fonts/simkai.ttf'wordcloud = WordCloud(font_path=font_path, width=800, height=400, background_color='white').generate(all_text) # 生成词云plt.figure(figsize=(12, 6))  # 设置画布大小plt.imshow(wordcloud)  # 显示词云图像plt.axis("off")  # 关闭坐标轴plt.title('垃圾短信关键词云')  # 设置标题plt.savefig('./img/sms_word_could.png', dpi=1080)plt.show()  # 显示图表

主程序流程

# 主程序流程
if __name__ == "__main__":# 1. 加载原始数据df = load_data('./data/sms_data.txt')# 2. 数据清洗df_clean = clean_data(df)# 3. 数据脱敏处理df_desensitized = desensitize_data(df_clean)# 4. 文本预处理(分词和停用词过滤)3 df_desensitized['clean_content'] = df_desensitized['content'].apply(tokenize_text)# 5. 模型训练与评估model, vectorizer = train_model(df_desensitized)# 6. 可视化分析结果visualize_data(df_desensitized)
Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\64626\AppData\Local\Temp\jieba.cache
Loading model cost 0.454 seconds.
Prefix dict has been built successfully.准确率: 1.0precision    recall  f1-score   support0       1.00      1.00      1.00     449831       1.00      1.00      1.00     15017accuracy                           1.00     60000macro avg       1.00      1.00      1.00     60000
weighted avg       1.00      1.00      1.00     60000混淆矩阵:[[44983     0][    0 15017]]

垃圾短信分类柱状图
垃圾短信分类饼图
垃圾短信分类词云图

http://www.dtcms.com/wzjs/271770.html

相关文章:

  • 做网站需要视频衔接怎么软文营销是什么意思
  • wordpress文章加密访问班级优化大师怎么用
  • Seo与网站推广的技术对比wordpress seo教程
  • 自己做的网站怎么添加文档百度排名优化专家
  • 做公众号的网站模板网站联盟营销
  • 手机上可以做网站吗百度获客平台
  • 营口公司网站建设怎样做网络推广效果好
  • 省建设厅网站6百度爱采购优化软件
  • 以前做视频的网站吗推广链接怎么自己搞定
  • 徐老师在那个网站做发视频新乡seo推广
  • 艺术设计教学资源网站建设标准哪里可以引流到精准客户呢
  • 网站开发 演讲黑帽seo
  • 网站怎么做超链接北京seo公司助力网络营销
  • 长沙企业网站排名杭州网站推广找哪家
  • 做竞价的网站需要做外部链接吗线下实体店如何推广引流
  • 优化网站排名推荐公司营销型网站推广方案
  • 网站建设自我介绍如何推广小程序
  • 坪山商城网站建设哪家便宜罗湖区seo排名
  • 企业vi设计公司上海设计公司seo外链怎么发
  • 服务器网站建设维护百度一下首页官网百度
  • 怎么看一个网站是不是外包做的网站营销方案模板
  • 山东网站建设流程网络营销品牌推广公司
  • 东莞技术好的网站建设推广广东网站营销seo费用
  • 梅州市住房和建设局网站百度搜索页
  • 沈阳网站制作找网势科技qq推广链接生成
  • 网站建设教学改进南京seo域名
  • 网站首页的滚动大图怎么做百度导航下载安装手机导航
  • ps企业网站模板免费下载软件培训机构排名
  • 社交网站用户体验企业网站怎么注册
  • gta5此网站正在建设seo营销优化软件