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

NLP 文本分类任务核心梳理

解决思路

  • 分解为多个独立二分类任务
  • 将多标签分类转化为多分类问题
  • 更换 loss 直接由模型进行多标签分类

数据稀疏问题

标注更多数据,核心解决方案:

  • 自己构造训练样本
    数据增强,如使用 chatGPT 来构造数据
  • 更换模型
    减少数据需求
  • 增加规则弥补
  • 调整阀值,用召回率替换准确率
  • 重新定义类别(类别合并)

标签不均衡问题

  • 过采样
    复制指定类别样本,在采样中重复
  • 降采样
    减少多样本类别的采样,随机使用部分样本
  • 增加标注数据
  • 调整样本权重
    调整损失函数的权重
  • 非神经网络的方法
    • 贝叶斯
      • 全概率公式
        在这里插入图片描述
      • 贝叶斯公式
        在这里插入图片描述
        • 核心在于词频的统计
        • 需要做词的独立性假设,形成每个事件在某个事件下发生概率的相乘
          这种假设是没有保障的,需要加一平滑等策略,保证概率不为0,没有考虑语序,没有词义。在这里插入图片描述
      • 适用于样本分布较均衡的语料
        • 简单高效
        • 训练结果有一定的可解释性
        • 训练数据可以分批处理
    • SVM 支持向量机
      • 找到一个决策边界
        • 即一条直线、平面或超平面
          • 实现数据的线性可分
        • 距离两个类别最近的样本距离最远
      • 是非线性不可分的
        • 可以通过使用特别的映射关系,将数据映射到高维解决
        • 通过核函数解决高维度计算耗时问题
      • 主要靠核函数寻找决策边界
      • 没有像贝叶斯很好的可解释性,没有神经网络的效果好
  • 神经网络方法
    • fastText
      • 结构简单
        1. embedding
        2. mean pooling
        3. fc -> class_num
      • 参数少,所以效果不会很好
        抛弃了语序信息
    • TextCNN
      对位相乘再相加,是有语序信息的,可以堆叠多层使用。
      • 分类
        • LSTM
        • GRU
    • Gated CNN
      在这里插入图片描述
      • 过滤 AB 相乘后为 0 部分
      • 放缩 B 中在 0-1 的部分
    • Bert
      实现方式:
      1. 取[cls] token 对应的向量
      2. 将整句话的向量取 max/average pooling
      3. 将 bert 编码后的向量再输入 LSTM 或者 CNN
      4. 将bert 中间层的结果取出,加入运算
    • Bert + RNN 或 CNN
      由于Bert 权重不是随机的,RNN 或 CNN 权重随机,为防止Bert 权重失去意义,RNN 最多一层或双向,或 CNN 最多 2-3 层。
    • 拓展
      • 对比学习
      • 海量向量查找
        • 向量数据库
          Annoy
          在多个接近的分支上查找
        • KD 树
          实现空间分割,局部对比
          均方差
          中位数
    • 目的
      预设文文本所属的类别

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 握手传输 状态机序列检测(记忆科技笔试题)_2024年9月2日
  • 仪表放大器AD620
  • SpringBoot开发——整合SpringDoc实现在线接口文档
  • 深度学习模型之BERT的24个小模型源码与预训练紧凑模型的重要性
  • 前端算法学习,包含复杂度、双指针、滑动窗口、二叉树、堆等常见题型和方法,含leetcode例题
  • 提升动态数据查询效率:应对数据库成为性能瓶颈的优化方案
  • 基于OpenMV的智能小车图像识别与跟踪系统设计
  • python:django项目知识点02——搭建简易授权码核销系统
  • 前端分段式渲染较长文章
  • WebGL渲染与创建2D内容
  • Redis-分片集群
  • 关于在vue2中给el-input等输入框的placeholder加样式
  • 一些关于线程之间协作的心得
  • 基于微信小程序的美食外卖管理系统
  • npm install --force or --legacy-peer-deps
  • 【node学习】协程
  • canvas绘制圆角头像
  • Javascript编码规范
  • Java比较器对数组,集合排序
  • k个最大的数及变种小结
  • mongodb--安装和初步使用教程
  • Nodejs和JavaWeb协助开发
  • Python学习之路13-记分
  • react 代码优化(一) ——事件处理
  • Tornado学习笔记(1)
  • Unix命令
  • vue 个人积累(使用工具,组件)
  • Vultr 教程目录
  • 动态规划入门(以爬楼梯为例)
  • 京东美团研发面经
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 驱动程序原理
  • 如何进阶一名有竞争力的程序员?
  • 删除表内多余的重复数据
  • 说说动画卡顿的解决方案
  • 正则表达式-基础知识Review
  • %@ page import=%的用法
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (2)空速传感器
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (超详细)语音信号处理之特征提取
  • (创新)基于VMD-CNN-BiLSTM的电力负荷预测—代码+数据
  • (附源码)c#+winform实现远程开机(广域网可用)
  • (图文详解)小程序AppID申请以及在Hbuilderx中运行
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)3D模板阴影原理
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .net mvc 获取url中controller和action
  • .NET Standard 的管理策略
  • .net web项目 调用webService
  • .net 调用php,php 调用.net com组件 --
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .net后端程序发布到nignx上,通过nginx访问