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 树
          实现空间分割,局部对比
          均方差
          中位数
    • 目的
      预设文文本所属的类别

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/147714.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

MELON的难题- 华为OD统一考试(E卷)

2024华为OD机试(C卷D卷)最新题库【超值优惠】Java/Python/C合集 题目描述 MELON 有一堆精美的雨花石(数量为 n,重量各异),准备送给 S和 W,MELON 希望送给俩人的雨花石重量是一致的。请你设计一…

爬虫 ----hook

目录 定义: 了解什么是hook? 举例 hook XHR请求 XMLHttpRequest 案例地址: Interceptors-拦截器 HOOK cookie操作 cookie 示范 常见的hook代码总结 1.Hook Cookie 2.Hook Header 3.Hook URL 4.Hook JSON.stringify 5.Hook JSON.parse 6.Ho…

Mac使用gradle编译springboot-2.7.x源码

1 开发环境: JDK8 ideaIU-2024.2.2 gradle-7.6.3 代理网络 2 下载springboot源码 代码仓库网址 git clone -b 2.7.x https://github.com/spring-projects/spring-boot.git3 安装gradle gradle下载网址 https://services.gradle.org/distributions/ 安装此文件指…

C语言 | Leetcode C语言题解之第415题字符串相加

题目: 题解: char* addStrings(char* num1, char* num2) {int i strlen(num1) - 1, j strlen(num2) - 1, add 0;char* ans (char*)malloc(sizeof(char) * (fmax(i, j) 3));int len 0;while (i > 0 || j > 0 || add ! 0) {int x i > 0 ?…

lsof可以查看当前系统中正在被使用的文件,包括动态库

lsof的英文是 list open files lsof直接回车,会显示很多,可以配合more命令查看 lsof | more -10 sudo lsof | more -20 lsof查看正在使用某个动态库的进程 lsof /lib/x86_64-linux-gnu/libc.so.6 lsof /usr/lib/x86_64-linux-gnu/libc.so.6 l…

如何优化苹果CMS 泛目录的缓存管理?

在使用苹果CMS进行内容管理时,缓存管理是提升网站性能的重要环节。随着技术的不断发展,泛目录插件的缓存机制也逐渐变得不再必要。(maccmscn)本文将探讨如何在不使用缓存的情况下,优化苹果CMS泛目录的性能,…

(学习记录)使用 STM32CubeMX——配置时钟(入门)

使用STM32CubeMX配置STM32F103C8T6时钟部分 选择芯片 ①:选择MCU型号 ①:这里使用英文输入法,输入你想要的芯片型号,我这里采用STM32F103C8T6 ②:这里能看到搜索后出来的芯片具体型号,选择匹配度最高的一个…

MySQL-排名函数ROW_NUMBER(),RANK(),DENSE_RANK()函数的异同

MySQL-排名函数ROW_NUMBER(),RANK(),DENSE_RANK()函数的异同 前言 假设有如下表结构与数据,class_id表示班级,需求:现在要按照班级分组,每个班级的学生进行年龄从小到大排序 一、ROW_NUMBER()函数 ROW_NUM…

Linux中的调度算法

nice值的范围有限,即为[-20, 19],也就是40个数字,优先级为[60, 99]即一共40个优先级 目前谈论的Linux操作系统叫做分时操作系统,调度的时候主要强调公平,还有一种是实时操作系统,比如智能汽车里面必须装有这…

【面经】查找中常见的树数据结构

查找中常见的树数据结构 一、二叉排序(搜索、查找)树(BST,Binary Search Tree)(1)二叉排序树的查找、插入和删除过程(2)叉树排序树的缺陷(3)二叉排…

Spark原理及调优

spark官档 hints:https://spark.apache.org/docs/3.0.0/sql-ref-syntax-qry-select-hints.html调优参数:https://spark.apache.org/docs/latest/sql-performance-tuning.html#join-strategy-hints-for-sql-queries作者几乎把所有的RDD API查了个遍&…

【服务器入门】Linux系统基础知识

【服务器入门】Linux系统基础知识 远程登录与文件传输基础命令与文本编辑vi/vim使用shell脚本基本命令1、目录操作2、文件创建与删改3、文件连接与查看 参考 目前超算使用的系统以Linux系统为主,肯定需要了解一些相关知识。本博客就以本人运行WRF模型所需&#xff0…

7-50 畅通工程之局部最小花费问题 (kruskal)

输入样例: 4 1 2 1 1 1 3 4 0 1 4 1 1 2 3 3 0 2 4 2 1 3 4 5 0输出样例: 3 代码&#xff1a; #include<iostream> #include<queue> using namespace std; const int N110; struct node{int x,y,w;bool operator <(const node &n1)const{if(wn1.w) retur…

提升编程效率的秘诀:多数人竟然忽略了它!

在编程学习的过程中&#xff0c;许多人会专注于算法、数据结构、编程语言的学习&#xff0c;而往往忽略了一个至关重要的基础技能——键盘盲打。虽然看似与编程能力无关&#xff0c;但盲打不仅可以显著提高编程效率&#xff0c;还能帮助编程者更好地集中注意力。本文将深入探讨…

数字图像面积计算一般方法及MATLAB实现

一、引言 在数字图像处理中&#xff0c;经常需要获取感兴趣区域的面积属性&#xff0c;下面给出图像处理的一般步骤。 1.读入的彩色图像 2.将彩色图像转化为灰度图像 3.灰度图像转化为二值图像 4.区域标记 5.对每个区域的面积进行计算和显示 二、程序代码 %面积计算 cle…

加密视频播放器 EncodedPlayer V3.1使用说明

使用说明 加密视频播放器 EncodedPlayer可对视频发布者提供的特定加密视频进行播放&#xff0c;以达到保护视频内容不被未经授权的用户访问或盗版的目的。 点击【打开】可选择格式为.Apol的加密视频文件并进行播放。为防止视频翻录&#xff0c;播放器会在视频中添加当前用户…

银河麒麟操作系统重装后重新激活是否会额外消耗一个激活码?

银河麒麟操作系统重装后重新激活是否会额外消耗一个激活码&#xff1f; 1、激活码会额外消耗吗&#xff1f;2、重装后如何重新激活&#xff1f;3、注意事项4 总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在使用银河麒麟操作系统时&a…

解释器模式:将语法规则与执行逻辑解耦

解释器模式&#xff08;Interpreter Pattern&#xff09;是一种行为设计模式&#xff0c;它提供了评估语言的语法或表达式的方式。该模式通过定义一个语言的文法表示&#xff0c;并通过解释这些表示来执行相应的操作。 解释器模式主要用于设计一种特定类型的计算机语言或表达式…

JVM面试问题集

什么是JVM? 了解过字节码文件的组成吗? 说一下运行时数据区 哪些区域会出现内存溢出&#xff0c;会有什么现象? JM在JDK6-8之间在内存区域上有什么不同 类的生命周期 什么是类加载器 什么是双亲委派机制 打破双亲委派机制 Tomcat的自定义类加载器

51单片机——数码管

一、数码管原理图 我们发现&#xff0c;总共有8个数码管。 它们的上面接8个LED&#xff0c;用来控制选择哪个数码管。例如要控制第三个数码管&#xff0c;就让LED6为0&#xff0c;其他为1&#xff0c;那LED又接到哪呢&#xff1f; 二、LED 由图可以看出&#xff0c;这个一个1…