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

tf-idf +逻辑回归来识别垃圾文本

引入相关包

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, auc, roc_auc_score
import joblib
import os
import pandas as pd
from sklearn.model_selection import train_test_split
import picklepath  = '/Users/xinghuatianying/data/DataSets/im_cheat/'
os.chdir(path)

加载数据

训练样本demo:

label	msg
1       全网最低价完善数据 手把手教你引流 详细+V:vd12388
1       耍.微.店等.级评.价销.量回头.率➕15314268311
1       我收姐妹+我QQ2877613260
1       违规啥啊 佳651815289➕我q
0       温和洁面膏+红粉爽肤水
0       小卡盲盒改地址
0       20杯(每个口味各4杯)
def load_data():data = pd.read_csv('msg_train.csv', sep = "\t", names=['label', 'msg'])#对数据进行随机打乱data = data.sample(frac=1, random_state=42)# print(data.shape)# print(data.head(10))#查看0-1的比例,可以看出来,数据集基本上平衡# print(data['label'].value_counts())# 对文本进行分字data['msg'] = data['msg'].apply(lambda x: ' '.join(x))# print(data.head())x_train, x_test, y_train, y_test = \train_test_split(data['msg'],data['label'],test_size=0.3,random_state=42)# print(x_train.shape, x_test.shape, y_train.shape, y_test.shape)return x_train, x_test, y_train, y_test

模型训练

def train_model(x_train, x_test, y_train, y_test):#tf-idf训练vectorizer_word = TfidfVectorizer(max_features=800000,token_pattern=r"(?u)\b\w+\b",min_df=1,#max_df=0.1,analyzer='word',ngram_range=(1, 5))tfidf_model = vectorizer_word.fit(x_train)# 保存模型到文件with open('tfidf_model.pkl', 'wb') as f:pickle.dump(tfidf_model, f)tfidf_train = vectorizer_word.transform(x_train)tfidf_test  = vectorizer_word.transform(x_test)#查看词典的大小 vectorizer_word.vocabulary_print(len(vectorizer_word.vocabulary_))#逻辑回归模型的训练lr_word = LogisticRegression(solver='sag',verbose=2)lr_word.fit(tfidf_train, y_train)# 保存模型,下次可以直接使用joblib.dump(lr_word, 'lr_word_ngram.pkl')#模型读取model = joblib.load(filename="lr_word_ngram.pkl")# 模型预测y_pred_word_1 = lr_word.predict(tfidf_test)y_pred_word = lr_word.predict_proba(tfidf_test)[:, 1]# 模型评估print(accuracy_score(y_test, y_pred_word_1))

模型预测

def predcit_main():# 拉取数据data = pd.read_csv('test_msg.csv', names=['msg'])#对数据进行随机打乱data = data.sample(frac=1, random_state=42)print(data.shape)print(data.head(10))# 对文本进行分字data['msg'] = data['msg'].apply(lambda x: ' '.join(x))x_test = data['msg']# 从文件中加载模型with open('tfidf_model.pkl', 'rb') as f:tfidf_model = pickle.load(f)print(x_test[:10])tfidf_test  = tfidf_model.transform(x_test)# 模型读取lr_model = joblib.load(filename="lr_word_ngram.pkl")# 模型预测y_pred_word = lr_model.predict_proba(tfidf_test)[:, 1]predict_df = pd.DataFrame({ 'y_pred_word': y_pred_word, 'x_test': x_test})# 保存到 CSV 文件predict_df.to_csv('predict_test.csv', index=False, sep = "\t")

标题主函数:

if __name__ == '__main__':x_train, x_test, y_train, y_test = load_data() # 加载训练数据train_model(x_train, x_test, y_train, y_test) # 模型训练predcit_main() # 模型预测

相关文章:

tf-idf +逻辑回归来识别垃圾文本

引入相关包 from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score, auc, roc_auc_score import joblib import os import pandas as pd from sklearn.model_select…...

Oracle - 数据库的实例、表空间、用户、表之间关系

Oracle是一种广泛使用的关系型数据库管理系统,它具有高性能、高可靠性、高安全性等特点。1Oracle数据库的结构和组成是一个复杂而又有趣的话题,本文将介绍Oracle数据库的四个基本概念:数据库、实例、表空间和用户,以及它们之间的关…...

Java面试项目推荐,异构数据源数据流转服务DatalinkX

前言 作为一个年迈的夹娃练习生,每次到了春招秋招面试实习生时都能看到一批简历,十个简历里得有七八个是写商城或者外卖项目。 不由得想到了我大四那会,由于没有啥项目经验,又想借一个质量高点的项目通过简历初筛,就…...

一、Vue3组合式基础[ref、reactive]

一、ref 解释:ref是Vue3通过ES6的Proxy实现的响应式数据,其与基本的js类型不同,其为响应式数据,值得注意的是,reactive可以算是ref的子集,ref一般用来处理js的基本数据类型如整型、字符型等等(也可以用来处…...

unity网页远程手机游戏Inspector面板proxima

https://www.unityproxima.com/docs...

聊聊spring事务12种场景,太坑了

前言 对于从事java开发工作的同学来说,spring的事务肯定再熟悉不过了。 在某些业务场景下,如果一个请求中,需要同时写入多张表的数据。为了保证操作的原子性(要么同时成功,要么同时失败),避免数…...

mysql 数据查重与查重分页

起因是公司的crm录入不规范,有重复数据。 之后考虑到需要手动处理,首先需要自动找出重复的数据 查重要求: 存在多个不允许重复的字段,任一字段重复,则判断为同一个客户。划分到同一重复组中。 查重sql如下 SELECT C…...

微服务(12)

目录 56.k8s是怎么进行服务注册的? 57.k8s集群外流量怎么访问Pod? 58.k8s数据持久化的方式有哪些? 59.Relica Set和Replication Controller之间有什么区别? 60.什么是Service Mesh(服务网格)&#x…...

​iOS实时查看App运行日志

目录 一、设备连接 二、使用克魔助手查看日志 三、过滤我们自己App的日志 📝 摘要: 本文介绍了如何在iOS iPhone设备上实时查看输出在console控制台的日志。通过克魔助手工具,我们可以连接手机并方便地筛选我们自己App的日志。 &#x1f4…...

【计算机毕业设计】SSM健身房管理系统

项目介绍 本项目为后台管理系统,主要分为管理员与用户两种角色; 登录页面,管理员首页,会员增删改查,教练增删改查,运动器材管理等功能。 用户角色包含以下功能: 用户登录页面,用户首页,选择课程,选择教练等功能。 环境需要 1.运行环境&a…...

嵌入式Linux之MX6ULL裸机开发学习笔记(IMX启动方式-启动设备的选择)

一,硬件启动方式选择 1.启动方式的选择 6ull支持多种启动方式。 比如可以从 SD/EMMC、 NAND Flash、 QSPI Flash等启动。 6ull是怎么支持多种外置flash启动程序的。 1.启动方式选择: BOOT_MODE0 and BOOT_MODE1,这两个是两个IO来控制的,…...

K8S Ingress-Nginx导出TCP端口

ingress-nginx导出TCP端口 Exposing TCP and UDP services - Ingress-Nginx Controllerhttps://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/exposing-tcp-udp-services.md helm upgrade ingress-nginx导出redis 6379端口(这种方式最简单&…...

索引类型-哈希索引

一. 前言 前面我们简单介绍了数据库的B-Tree索引,下面我们介绍另一种索引类型-哈希索引。 二. 哈希索引的简介 哈希索引(hash index) 基于哈希表实现,只有精确匹配索引所有列的查询才有效。对于每一行数据,存储引擎都会对所有索引列计算一个…...

uniapp中组件库的Textarea 文本域的丰富使用方法

目录 #平台差异说明 #基本使用 #字数统计 #自动增高 #禁用状态 #下划线模式 #格式化处理 API #List Props #Methods #List Events 文本域此组件满足了可能出现的表单信息补充,编辑等实际逻辑的功能,内置了字数校验等 注意: 由于…...

LLM、AGI、多模态AI 篇三:微调模型

文章目录 系列LLM的几个应用层次Lora技术其他微调技术FreezeP-TuningQLoRA指令设计构建高质量的数据微调步骤系列 LLM、AGI、多模态AI 篇一:开源大语言模型简记 LLM、AGI、多模态AI 篇二:Prompt编写技巧 LLM、AGI、多模态AI 篇三...

IPC之十二:使用libdbus在D-Bus上异步发送/接收信号的实例

IPC 是 Linux 编程中一个重要的概念,IPC 有多种方式,本 IPC 系列文章的前十篇介绍了几乎所有的常用的 IPC 方法,每种方法都给出了具体实例,前面的文章里介绍了 D-Bus 的基本概念以及调用远程方法的实例,本文介绍 D-Bus…...

ES6之生成器(Generator)

✨ 专栏介绍 在现代Web开发中,JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性,还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言,JavaScript具有广泛的应用场景&#x…...

Matlab技巧[绘画逻辑分析仪产生的数据]

绘画逻辑分析仪产生的数据 逻分上抓到了ADC数字信号,一共是10Bit,12MHZ的波形: 这里用并口协议已经解析出数据: 导出csv表格数据(这个数据为补码,所以要做数据转换): 现在要把这个数据绘制成波形,用Python和表格直接绘制速度太慢了,转了一圈发现MATLAB很好用,操作方法如下:…...

Go面试题学习

1.并发安全性 Go语言中的并发安全性是什么?如何确保并发安全性? 并发安全性是指在并发编程中,多个goroutine对共享资源的访问不会导致数据竞争和不确定的结果。 使用互斥锁(Mutex):通过使用互斥锁来保护…...

SQL效率-查询条件需避免使用函数处理索引字段

一个sql效率的问题 问题 假设created_at 是date类型、是索引,那么以下2种方式有没效率差异: WHERE TO_CHAR(created_at, ‘YYYY-MM-DD’) ‘2020-02-01’WHERE created_at TO_DATE(‘2020-02-01’ , ‘YYYY-MM-DD’) DBA回复 有的,第一…...

【Spring 篇】Spring:轻松驾驭 Java 世界的利器

在 Java 开发领域,Spring 框架无疑是一颗璀璨的明星,它不仅提供了全面的企业级特性,还为开发者提供了简便而强大的开发方式。本文将深入探讨 Spring 框架的简介、配置和快速入门,带你轻松驾驭 Java 世界的利器。 Spring 简介 Sp…...

八个LOGO素材网站推荐分享

即时设计资源广场 在UI界面设计中,为了找到合适的图标icon,你有没有尝试过翻遍整个网络,找到自己想要的,却无法下载或收费使用?最后,只收集图标icon材料需要半天时间。专业设计师使用的图标icon设计材料“…...

React格式化规范

React并没有特定的格式要求,它允许开发者根据自己的喜好和项目需求来选择代码的格式化风格。然而,在React社区中有一些常见的约定和最佳实践,以下是一些常用的格式化规范和建议: 缩进:使用2个或4个空格来进行缩进&…...

如何利用Conda管理多种虚拟环境与Jupyter Notebook内核切换

写在开头 在数据科学与机器学习领域,项目之间可能存在不同的依赖关系和版本要求。为了有效管理这些差异,使用虚拟环境成为一种标准实践。本文将介绍如何利用Conda这一强大的环境管理工具,结合Jupyter Notebook,使得在不同项目之间灵活切换变得轻而易举。 2. Conda简介 2…...

博客摘录「 什么是QPS、TPS、吞吐量?- 高并发名词概念」2024年1月5日

1.什么是高并发? 高并发(High Concurrency)。通常是指系统在短时间内的大量操作。 高并发相关的常见指标有:QPS、TPS、吞吐量、并发数等。 2.QPS(Query Per Second) QPS每秒查询率,是指系统…...

PTA——逆序的三位数

程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。 输入格式: 每个测试是一个3位的正整数。 输出格式: 输出按位逆序…...

ChatGPT怎么帮我上班的

1.解放生产力 1)标准格式,完美输出。GPT对于公文等具有一定标准格式的文件,可以进行完美仿写,随随便便以假乱真那都是小菜一碟,这对于经常要开展规范成文的人来说,简直就是个福音,只要前期调教…...

WPF 漂亮长方体、正文体简单实现方法 Path实现长方体 正方体方案 WPF快速实现长方体、正方体的方法源代码

这段XAML代码在WPF中实现了一个类似长方体视觉效果的图形 声明式绘制:通过Path、PathGeometry和PathFigure等元素组合,能够以声明方式精确描述长方体每个面的位置和形状,无需编写复杂的绘图逻辑,清晰直观。 层次结构与ZIndex控制…...

Nginx(十三) 配置文件详解 - 反向代理(超详细)

本篇文章主要讲ngx_http_proxy_module和ngx_stream_proxy_module模块下各指令的使用方法。 1. 代理请求 proxy_pass 1.1 proxy_pass 代理请求 Syntax: proxy_pass URL; Default: — Context: location, if in location, limit_except 设置代理服务器的协议和地址以…...

谷歌浏览器启用实时字幕功能

在 Chrome 中使用“实时字幕”功能 - Google Chrome帮助 在 Chrome 中使用“实时字幕”功能 从计算机上的 Chrome 浏览器中,您可以使用“实时字幕”功能自动为视频、播客、游戏、直播、视频通话或其他音频媒体生成字幕。音频和字幕均在本地处理,并会保…...

沈阳网络建网站/西安seo教程

对于海量数据的插入和更新,ADO.NET确实不如JDBC做到好,JDBC有统一的模型来进行批操作.使用起来非常方便: PreparedStatement ps conn.prepareStatement("insert or update arg1,args2...."); 然后你就可以 for(int i0;i<1000000000000000;i){ ps.setXXX(realArg…...

个人网站做企业网站/免费做网站

jquery的优秀的控件库 包括常用 messager dialog pannel tree 等控件 http://files.cnblogs.com/wangdetian168/jquery-easyui-1%5b1%5d.0.5.rar转载于:https://www.cnblogs.com/wangdetian168/archive/2010/09/26/jquery-kongjian.html...

建网站哪家好 优帮云/千万别在百度上搜别人的名字

figure&#xff1a;图表&#xff0c;可以理解为一个空间&#xff0c;二维情况下是一个平面 axes&#xff1a;坐标系&#xff0c;空间中的坐标系&#xff0c;一个空间可以有多个坐标系 axis&#xff1a;坐标轴&#xff0c;坐标系中的一个坐标轴&#xff0c;一个坐标轴只属于一个…...

做微信h5的网站/免费网站安全检测

概述 什么是可靠消息最终一致性事务 可靠消息最终一致性方案是指当事务发起方执行完成本地事务后并发出一条消息&#xff0c;事务参与方&#xff08;消息消费者&#xff09;一定能够接收消息并处理事务成功&#xff0c;此方案强调的是只要消息发给事务参与方最终事务要达到一…...

合肥专业网站建设/互联网营销推广方案

ASP.NET成员资格为您提供了验证和存储用户凭据的内置方式。因此&#xff0c;ASP.NET成员可以帮助您管理网站中的用户身份验证。您可以使用ASP.NET表单身份验证使用ASP.NET成员身份&#xff0c;方法是使用ASP.NET登录控件创建一个用于验证用户的完整系统。 ASP.NET会员资格支持以…...

wordpress语言切换网站/今日北京新闻

前置通知, 方法执行前会被执行后置通知, 方法执行后会被执行 (不论方法是否异常) 返回通知, 即方法没有抛出异常会被执行异常通知, 即方法抛出异常后会被执行环绕通知, 即方法调用前后, 可以加入执行逻辑...