大家好,我是小伍哥,文本数据的处理,对于一个风控策略或者算法,我觉得是必须要掌握的技能,有人说,我的风控并不涉及到文本?我觉得这片面了,在非内容风控领域,文本知识也是非常有用的。

用户昵称、地址啥的,这种绝大部分风控场景都能遇到

关系网络的节点向量化,基本也是文本处理的思路

行为序列,也能用文本的知识去处理,能捕捉非常有趣模式

在这里开个系: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+逻辑回归相关推荐

  1. 【文本分类】基于类信息的TF-IDF权重分析与改进

    摘要:改进TFIDF,增加了类间因子.类内因子,应用于文本的特征选择,提高了精度 . 参考文献:[1]姚严志,李建良.基于类信息的TF-IDF权重分析与改进[J].计算机系统应用,2021,30(09 ...

  2. c语言贝叶斯分类,基于朴素贝叶斯分类器的文本分类算法(C语言)

    基于朴素贝叶斯分类器的文本分类算法(C语言) 基于朴素贝叶斯分类器的文本分类算法(C语言).txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情.#include ...

  3. 基于协同训练的半监督文本分类算法

    标签: 半监督学习,文本分类 作者:炼己者 --- 本博客所有内容以学习.研究和分享为主,如需转载,请联系本人,标明作者和出处,并且是非商业用途,谢谢! 如果大家觉得格式看着不舒服,也欢迎大家去看我的 ...

  4. 基于朴素贝叶斯的文本分类算法

    基于朴素贝叶斯的文本分类算法 摘要:常用的文本分类方法有支持向量机.K-近邻算法和朴素贝叶斯.其中朴素贝叶斯具有容易实现,运行速度快的特点,被广泛使用.本文详细介绍了朴素贝叶斯的基本原理,讨论多项式模 ...

  5. 朴素贝叶斯基于朴素贝叶斯的文本分类算法

    朴素贝叶斯 以及 基于朴素贝叶斯的文本分类算法 参考文章: https://www.cnblogs.com/jorbin/articles/1915888.html

  6. python中文文本分析_基于CNN的中文文本分类算法(可应用于垃圾邮件过滤、情感分析等场景)...

    基于cnn的中文文本分类算法 简介 参考IMPLEMENTING A CNN FOR TEXT CLASSIFICATION IN TENSORFLOW实现的一个简单的卷积神经网络,用于中文文本分类任 ...

  7. 朴素贝叶斯文本分类java_基于朴素贝叶斯的文本分类算法

    基于朴素贝叶斯的文本分类算法 摘要:常用的文本分类方法有支持向量机.K-近邻算法和朴素贝叶斯.其中朴素贝叶斯具有容易实现,运行速度快的特点,被广泛使用.本文详细介绍了朴素贝叶斯的基本原理,讨论多项式模 ...

  8. NLP --- 文本分类(基于概率的隐语意分析(PLSA)详解)

    上一节我们详细的讲解了SVD的隐语意分析,一旦提到这个,大家脑海里应该立刻有如下的矩阵形式: 我们通过矩阵的分解对文本数据进行压缩,压缩量很可观,尤其是原始的矩阵的维度很高时压缩的更可观,因为k通常要 ...

  9. 【NLP从零入门】预训练时代下,深度学习模型的文本分类算法(超多干货,小白友好,内附实践代码和文本分类常见中文数据集)

    如今NLP可以说是预训练模型的时代,希望借此抛砖引玉,能多多交流探讨当前预训练模型在文本分类上的应用. 1. 任务介绍与实际应用 文本分类任务是自然语言处理(NLP)中最常见.最基础的任务之一,顾名思 ...

  10. 文本分类算法研究与实现

    1 设计题目 文本分类的算法研究与实现 2 课题背景及研究现状 2.1 课题背景 近年来,随着Internet的迅猛发展,网络信息和数据信息不断扩展,如何有效利用这一丰富的数据信息,己成为广大信息技术 ...

最新文章

  1. Mac下pycharm如何安装tensorflow
  2. 知识驱动的推荐系统:现状与展望
  3. PHP无法加载curl扩展
  4. 如何在Atomic主机上远程使用 Docker
  5. 终于等到你!微软正式上线 Windows Terminal 预览版
  6. 2018蓝桥杯省赛---java---B---2(方格计数)
  7. 基于JAVA+SpringMVC+MYSQL的大学毕业生就业信息管理系统
  8. Coinbase在上市前选择在Reddit线上路演
  9. 山西民生云养老认证人脸识别_民生山西APP公众号手机认证
  10. 、简述global关键字的作用_二十三、Python变量作用域(局部变量和全局变量)
  11. android强制结束进程_Android完全强制退出应用程序
  12. 浅谈C++物理设计:实用宏
  13. pscad c语言程序,PSCAD入门教程(第8节):调用C语言函数及file reference组件使用...
  14. OpenCV 单目摄像头(python版)
  15. 1024程序员节日,祝愿所有的程序员节日快乐
  16. SPI读取NRF24L01
  17. 福布斯专栏:小米手机难成主流
  18. 【更新21.02.03】百分浏览器继续使用Flash Player的临时解决方案!
  19. JTextField:单行文本框组件
  20. Kafka知识体系总结【附大厂高频面试题】

热门文章

  1. Raspberry Pi 4B SSH、VNC及串口连接配置
  2. ESP8266制作天气预报海藻球微景观生态缸记录(一)
  3. 程序员多数性功能不行_1024,节日快乐!南京程序员绝不认输!
  4. jmeter上传文件踩坑指南
  5. 石榴——转自田维《花田半亩》
  6. 新能源车牌识别技术发展到哪一步了?
  7. Pandas:利用Styler对象设置Series、Dataframe在Jupyter Notebook中的输出样式(2)——内置样式
  8. Linux系统安装傻瓜教程
  9. 倒计时 妙味课堂_妙味课堂——JavaScript基础课程笔记
  10. 建行手机银行4.0版本转账怎么不要求输入支付密码?