20大风控文本分类算法-基于字符级的tfidf+逻辑回归
大家好,我是小伍哥,文本数据的处理,对于一个风控策略或者算法,我觉得是必须要掌握的技能,有人说,我的风控并不涉及到文本?我觉得这片面了,在非内容风控领域,文本知识也是非常有用的。
用户昵称、地址啥的,这种绝大部分风控场景都能遇到
关系网络的节点向量化,基本也是文本处理的思路
行为序列,也能用文本的知识去处理,能捕捉非常有趣模式
在这里开个系:20大风控文本分类算法,之前已经写的差不多了,慢慢更新,今天是第一讲。本系列主要介绍了风控场景下文本分类的基本方法,对抗文本变异,包括传统的词袋模型、循环神经网络,也有常用于计算机视觉任务的卷积神经网络,以及 RNN + CNN,试验完一遍,基本能搞定大部分的文本分类以及文本变异对抗问题。算是个保姆级的入门教程。
数据集和预处理
本文用一个风险弹幕数据集做实验,该数据集包含19670条明细数据,每一行都用 1(垃圾文本)和 0(正常文本)进行了标记。需要数据集的关注:小伍哥聊风控,后台回复【弹幕】获取
目标:针对直播间中存在的大量涉黄涉暴弹幕,进行垃圾分类,将弹幕中不合法的内容进行识别并屏蔽。
正常弹幕示例
新人主播,各位老板多多关注ᚠᚠᚠ 0
50077你卖我 0
看看五雷咒的威力 0
垃圾弹幕示例
网站++沜买的私聊我 1
安 KMD555 买-P-微 1
抠逼加薇2928046748抠逼加薇2928046748抠逼。 1
数据读取和查看
import os
import pandas as pd
path = '/Users/wuzhengxiang/Documents/DataSets/TextCnn'
os.chdir(path)
data = pd.read_csv('text_all.csv')#对数据进行随机打乱
data = data.sample(frac=1, random_state=42)
print(data.shape)
(19670, 2)#查看0-1的比例,可以看出来,数据集基本上平衡
data['label'].value_counts()
1 9882
0 9788#查看前10行的数据
data.head(10)
text label
17036 郑 29526 Q 77544 1
5426 葩葩葩l 0
14173 网站盘需要买的私聊我. 1
14582 买家秀和卖家秀?0
1730 1776看v 0
1444 我又没送你谢我干啥ᚠ 0
10439 7645 55562筘 0
2448 伽韦 sx111505 珂视频箹 Ku 1
10423 影薇 w2753636 1
11782 胸还没有寒磊的 大ᚠ 还奶子疼!0# 对文本进行分字
data['text'] = data['text'].apply(lambda x: ' '.join(x))
data.head()
数据读取了,我们就要进行预处理,很多文本分类的预处理,上来就直接去除各种特殊字符,但是在风控中,我们不能这么操作,因为很多文本的信息,都是包含在特殊字符里面,甚至说特殊字符比正常文本的信息含量还要高。这里暂时不做处理,后续再提高模型精度的时候我们再进行处。
将数据集进行分割,80%用于训练,20%用于测试:
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = \
train_test_split(data['text'], data['label'], test_size=0.2, random_state=42)
print(x_train.shape, x_test.shape, y_train.shape, y_test.shape)
(15736,) (3934,) (15736,) (3934,)
字符级的tfidf+逻辑回归
1、什么是N-Gram?
n-gram 是从一个句子中提取的N 个(或更少)连续单词的集合,这一概念中的“单词”,也可以替换为“字符”,这个概念听起来比较抽象,下面来看一个简单的例子,考虑句子“小伍哥最靓”。
它可以被分解为以下二元语法(2-grams)的集合。
{'小 ; 伍 ; 哥 ; 最 ; 靓 ; 小伍 ; 伍哥 ; 哥最 ; 最靓'}
也可以被分解为以下三元语法(3-grams)的集合。
{小 ; 伍 ; 哥 ; 最 ; 靓 ; 小伍 ; 伍哥 ; 哥最 ; 最靓 ; 小伍哥 ; 伍哥最 ; 哥最靓'}
这样的集合分别叫作二元语法袋(bag-of-2-grams)及三元语法袋(bag-of-3-grams)。这里袋(bag)这一术语指的是,我们处理的是标记组成的集合,而不是一个列表或序列,即标记没有特定的顺序,这一系列分词方法叫作词袋(bag-of-words)。
上面是汉语的文本级的,当然对于英语或者汉语拼音,我们可以做成字符级的,下面以cold这个单词为例,得到如下的词袋组合
那么,什么是 n-gram 呢?我们拿下面
20大风控文本分类算法-基于字符级的tfidf+逻辑回归相关推荐
- 【文本分类】基于类信息的TF-IDF权重分析与改进
摘要:改进TFIDF,增加了类间因子.类内因子,应用于文本的特征选择,提高了精度 . 参考文献:[1]姚严志,李建良.基于类信息的TF-IDF权重分析与改进[J].计算机系统应用,2021,30(09 ...
- c语言贝叶斯分类,基于朴素贝叶斯分类器的文本分类算法(C语言)
基于朴素贝叶斯分类器的文本分类算法(C语言) 基于朴素贝叶斯分类器的文本分类算法(C语言).txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情.#include ...
- 基于协同训练的半监督文本分类算法
标签: 半监督学习,文本分类 作者:炼己者 --- 本博客所有内容以学习.研究和分享为主,如需转载,请联系本人,标明作者和出处,并且是非商业用途,谢谢! 如果大家觉得格式看着不舒服,也欢迎大家去看我的 ...
- 基于朴素贝叶斯的文本分类算法
基于朴素贝叶斯的文本分类算法 摘要:常用的文本分类方法有支持向量机.K-近邻算法和朴素贝叶斯.其中朴素贝叶斯具有容易实现,运行速度快的特点,被广泛使用.本文详细介绍了朴素贝叶斯的基本原理,讨论多项式模 ...
- 朴素贝叶斯基于朴素贝叶斯的文本分类算法
朴素贝叶斯 以及 基于朴素贝叶斯的文本分类算法 参考文章: https://www.cnblogs.com/jorbin/articles/1915888.html
- python中文文本分析_基于CNN的中文文本分类算法(可应用于垃圾邮件过滤、情感分析等场景)...
基于cnn的中文文本分类算法 简介 参考IMPLEMENTING A CNN FOR TEXT CLASSIFICATION IN TENSORFLOW实现的一个简单的卷积神经网络,用于中文文本分类任 ...
- 朴素贝叶斯文本分类java_基于朴素贝叶斯的文本分类算法
基于朴素贝叶斯的文本分类算法 摘要:常用的文本分类方法有支持向量机.K-近邻算法和朴素贝叶斯.其中朴素贝叶斯具有容易实现,运行速度快的特点,被广泛使用.本文详细介绍了朴素贝叶斯的基本原理,讨论多项式模 ...
- NLP --- 文本分类(基于概率的隐语意分析(PLSA)详解)
上一节我们详细的讲解了SVD的隐语意分析,一旦提到这个,大家脑海里应该立刻有如下的矩阵形式: 我们通过矩阵的分解对文本数据进行压缩,压缩量很可观,尤其是原始的矩阵的维度很高时压缩的更可观,因为k通常要 ...
- 【NLP从零入门】预训练时代下,深度学习模型的文本分类算法(超多干货,小白友好,内附实践代码和文本分类常见中文数据集)
如今NLP可以说是预训练模型的时代,希望借此抛砖引玉,能多多交流探讨当前预训练模型在文本分类上的应用. 1. 任务介绍与实际应用 文本分类任务是自然语言处理(NLP)中最常见.最基础的任务之一,顾名思 ...
- 文本分类算法研究与实现
1 设计题目 文本分类的算法研究与实现 2 课题背景及研究现状 2.1 课题背景 近年来,随着Internet的迅猛发展,网络信息和数据信息不断扩展,如何有效利用这一丰富的数据信息,己成为广大信息技术 ...
最新文章
- Mac下pycharm如何安装tensorflow
- 知识驱动的推荐系统:现状与展望
- PHP无法加载curl扩展
- 如何在Atomic主机上远程使用 Docker
- 终于等到你!微软正式上线 Windows Terminal 预览版
- 2018蓝桥杯省赛---java---B---2(方格计数)
- 基于JAVA+SpringMVC+MYSQL的大学毕业生就业信息管理系统
- Coinbase在上市前选择在Reddit线上路演
- 山西民生云养老认证人脸识别_民生山西APP公众号手机认证
- 、简述global关键字的作用_二十三、Python变量作用域(局部变量和全局变量)
- android强制结束进程_Android完全强制退出应用程序
- 浅谈C++物理设计:实用宏
- pscad c语言程序,PSCAD入门教程(第8节):调用C语言函数及file reference组件使用...
- OpenCV 单目摄像头(python版)
- 1024程序员节日,祝愿所有的程序员节日快乐
- SPI读取NRF24L01
- 福布斯专栏:小米手机难成主流
- 【更新21.02.03】百分浏览器继续使用Flash Player的临时解决方案!
- JTextField:单行文本框组件
- Kafka知识体系总结【附大厂高频面试题】