基于贝叶斯分类器的社区UGC反垃圾模型

业务背景

背景:某金融APP的有料社区中,存在潜在用户发布垃圾信息(敏感、广告)等信息,需要构建一个文本分类模型进行相应拦截。
业务特点:广告占主要部分,含有微信、借贷、基金、股票等,敏感占次要。
我遇到的问题:前期获取数据量少,需要人工处理,需要自定义分词词库和主题词词库,文本预处理过程复杂,需要全方位思考。

数据准备

  1. 先来看看数据的模样
    1. 正常:
      基于贝叶斯分类器的社区UGC反垃圾模型_第1张图片
    2. 广告:
      基于贝叶斯分类器的社区UGC反垃圾模型_第2张图片
  2. 训练数据量:不便透露,使用过采样对样本少的类别进行数据集扩增。

主体思路及具体实现

  1. 主体思路:灵感来源于论文,使用基于词的过滤贝叶斯分类器
  2. 流程
    1. 训练离线分类模型:训练数据集 —> 文本清洗 —> jieba分词去停用词 —> 使用TF-IDF构建词向量 —> 使用NB算法结合K折交叉验证训练二分类模型(广告/非广告)。
    2. 在线分类:训练数据集 —> 文本清洗 —> jieba分词去停用词 —> 使用TF-IDF构建词向量 —> 使用分类模型进行分类,标记广告类,对非广告类别使用敏感词库直接判别,标记正常和敏感信息。
  3. 文本清洗详解
    分为以下几个方面:特殊符号、日期、特殊字体字、拼写错误、电话、QQ、微信号、股票、拼音、基金号,以上各自都有各自的处理方式。比如特殊符号和日期直接去除,微信、QQ等广告关键信息的统一等等。
  4. 定制词库
    定制了以下词库:停用词词库、敏感词库。

TF-IDF算法存在的问题

  1. 以词频衡量一个词的重要性不够全面;
  2. 算法无法体现词的位置信息。

总结

我在三个月的实习过程中,接触到了完全真实的业务场景,这是我以前所没有的。
虽然这个模型部署到线上之后效果还不错,但是回想起来还有很多值得改进的地方,也有很多想做的尝试。
尝试和改进的地方:

  1. 图片的处理;
  2. 增加对用户行为的挖掘

社区反作弊文章

https://blog.csdn.net/joylnwang/article/details/6831565
https://www.zhihu.com/question/20103086
https://www.jianshu.com/p/065fb03cf921

你可能感兴趣的:(机器学习和自然语言处理相关)