一、NLP中的文本分类

news2024/9/19 9:04:55

目录

1.0 文本分类的应用场景

1.1 文本分类流程

​编辑

1.2 判别式模型

1.3 生成式模型

1.4 评估

 1.5 参考文献


 NLP学习笔记系列,欢迎收藏交流:

零、自然语言处理开篇-CSDN博客

一、NLP中的文本分类-CSDN博客

二、NLP中的序列标注(分词、主体识别)-CSDN博客

三、NLP中的句子关系判断-CSDN博客

四、自然语言中的生成式任务-CSDN博客

1.0 文本分类的应用场景

(1)情感分析:中性,正向评论,负向评论,黄色言论,暴力言论,反政言论等;

(2)主题、话题分类:法律、经济类话题等;

(3)垃圾邮件识别;

(4)意图识别:开关车门,开关车灯,闲聊等类别。

1.1 文本分类流程

(0)数据预处理:将本文中的停用词、空格、大小写等进行去除和归一。

(1)特征提取:将本文字符转换成数学模型能够识别的向量或者token,也就是第零章节中讲到的部分。

(2)维度处理:传统机器学习模型在处理分类任务前,通常会对输入的特征进行降维处理,以避免资源爆炸及训练时间过长,常用的维度处理方法有:主成分分析PCA(无监督、降维后的方差diff最大)、线性判别分析LDA(有监督)等。对于深度学习模型,由于大部分进行了词嵌入处理,因此一般不需要对维度进行特殊处理。

PCA的具体推导和实现:主成分分析法(PCA)-CSDN博客

LDA的具体推导和实现:线性判别分析LDA

其他降维方法:机器学习降维算法汇总!

(3)分类模型:处理好特征后,就可以利用机器学习或者深度学习模型对数据进行分类,常用的分类模型分为判别式模型和生成式模型,将在下面两节着重介绍。

1.2 判别式模型

人为设定好模型框架,通过数据的不断训练修正模型参数,最后输入数据,直接判断数据所属类别的概率。要确定一个羊是山羊还是绵羊,用判别式模型的方法是从历史数据中学习到模型,然后通过提取这只羊的特征来预测出这只羊是山羊的概率,是绵羊的概率。

LR:Logistic Regression逻辑回归,最常用及最简单的一种分类模型。曾经写的LR的博客

KNN:k-最近邻,一种有监督的模型,对于一个未知类别的数据,去计算得到K个与之距离最近的有标签的数据,最后通过投票的方式得到未知数据的类别。

SVM:支持向量机,通过计算得到一个超平面将数据进行分类。曾经写的关于SVM的博客

决策树:一种基于树结构进行决策判断的模型,它通过多个条件判别过程将数据集分类,最终获取需要的结果。(根据计算熵增方式的不同,分为ID3决策树、C4.5决策树、CART决策树)

集成分类器:XGBoost, GBDT。

MLP:多层感知器 ,通常由一个输入层、多个隐藏层和一个输出层组成,能够通过学习给出输入数据的类别概率。曾经写的关于MLP的博客

RNN:循环神经网络,在MLP的隐藏层中加入上一次计算得到的结果同时作为当前隐藏层的输入,来保存时序性数据的信息。曾经写的RNN的博客

LSTM:类似电路设计,会有输入门、遗忘门、输出门,遗忘门会有选择的遗忘低概率的数据。

BERT、ERNIE

1.3 生成式模型

通过数据学习得到数据的联合概率分布,基于条件概率P(X|Y)和先验概率P(Y)来作为预测模型的预测基础,预测联合概率分布P(Y,X)。是根据山羊的特征首先学习出一个山羊的模型,然后根据绵羊的特征学习出一个绵羊的模型,然后从这只羊中提取特征,放到山羊模型中看概率是多少,再放到绵羊模型中看概率是多少,哪个大就是哪个。

贝叶斯网络:一种生成式模型,给定一些先验知识(例如,每个类别的先验概率以及每个特征在不同类别下的条件概率),我们可以计算出某个数据点属于每个类别的后验概率,然后选择具有最高后验概率的类别作为预测结果。

马尔科夫随机场:MRF

隐马尔科夫模型:HMM

不管是生成式模型还是判别式模型,它们最终的判断依据都是条件概率P(y|x),但是生成式模型先计算了联合概率P(x,y),再由贝叶斯公式计算得到条件概率。因此,生成式模型可以体现更多数据本身的分布信息,其普适性更广。由生成式模型可以得到判别式模型,但反过来不行。

1.4 评估

NLP分类任务中,常用的评价指标有准确率、精准率、召回率、F1值,宏平均、微平均等。这些评价指标常依赖于混淆矩阵的计算,混淆矩阵主要包括其中包括真阳性(TP),假阳性(FP),假阴性(FN)和真阴性(TN),一般来说,他们的计算方式如下:

TP:预测为正例的,且标签值也为正例的;

FP:预测为正例的,但标签值为负例的;

TN:预测为负例的,且标签值也为负例的;

FN:预测为负例的,但标签值为正例的;

(1)准确率:

(2)精准率:

(3)召回率:

(4)F1值:

(5)宏F1值:

求取每一类的F值之后求平均值,对于类别分布不均的数据集,数据量大的类别对总体影响大:

(6)微F1值

求取每一类的TP/FP/TN/FN,然后按照P、R的计算公式计算微平均P、微平均R,最后计算得到微平均F1。

(7)ROC曲线

根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测(例如第一个样本的值为分界线,小于的为负例,大于的为正例),每次计算出两个重要量的值(TPR真阳率、FPR假阳率),分别以它们为横、纵坐标作图。

TPR = 召回率

FPR = FP / (TP + FP)

(8)AUC:

ROC曲线下的面积,介于0.1和1之间,作为数值可以直观的评价分类器的好坏,值越大越好。

 1.5 参考文献

Text Classification Algorithms: A Survey

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

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

相关文章

413 Request Entity Too Large 问题如何解决

遇到“413 Request Entity Too Large”错误通常意味着你尝试上传或提交到服务器的数据量超过了服务器能够处理的限制。这个问题通常与Web服务器的配置相关,比如Nginx或Apache。这个问题出现在使用Nginx作为Web服务器的环境中。这里有几种解决方法: 1. 调…

openGauss学习笔记-242 openGauss性能调优-SQL调优-典型SQL调优点-SQL自诊断

文章目录 openGauss学习笔记-242 openGauss性能调优-SQL调优-典型SQL调优点-SQL自诊断242.1 SQL自诊断242.1.1 告警场景242.1.2 规格约束 openGauss学习笔记-242 openGauss性能调优-SQL调优-典型SQL调优点-SQL自诊断 SQL调优是一个不断分析与尝试的过程:试跑Query&…

流水账-20240314

目录 Linux系统删除文件后,磁盘大小没变化mysql事务和neo4j事务冲突误诊描述解决方法网上提供的方法重置Neo4j密码,成功解决问题高版本低版本 Linux系统删除文件后,磁盘大小没变化 lsof L1|grep 删除的文件名kill进程 mysql事务和neo4j事务…

面试题系列一之-css画三角形(原理解析)

用html写一个三角形的图标算是一个比较简单的,但是工作中用的还是比较多的&#xff0c;面试也可能会问&#xff0c;但了解背后的原理才能熟练使用 我们首先写一个div,设置边框 <body><div class"border"></div> </body> <style> .bo…

华宽通招商资源推介平台:一站式立体展示,招商资源尽在眼前

传统园区在招商引资推介过程中&#xff0c;主要以画册、PPT、视频等形式进行介绍&#xff0c;对于客商来说体验感不佳&#xff0c;难以通过地理信息、空间信息和图文信息结合的方式&#xff0c;更加直观和立体地呈现园区整体优势和每个载体资源的详细情况&#xff0c;导致客商无…

基于SpringBoot的“家政服务管理平台”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“家政服务管理平台”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统首页界面图 用户注册界面图 服务信息界面…

DeleteFile(szFilePath)失败,之后再对文件操作,造成崩溃

调用WINAPI函数DeleteFile(szFilePath1)之后&#xff1a; 1.如果不再对szFilePath1文件进行操作 DeleteFile()函数执行失败》也不会造成 软体崩溃&#xff01; 2.如果后续需要对szFilePath1文件进行操作 DeleteFile()函数执行失败》就会造成 软体崩溃&#xff01; 所以&…

【刷题训练】LeetCode:557. 反转字符串中的单词 III

557. 反转字符串中的单词 III 题目要求 示例 1&#xff1a; 输入&#xff1a;s “Let’s take LeetCode contest” 输出&#xff1a;“s’teL ekat edoCteeL tsetnoc” 示例 2: 输入&#xff1a; s “Mr Ding” 输出&#xff1a;“rM gniD” 思路&#xff1a; 第一步&am…

Clickhouse MergeTree 原理(一)

作者&#xff1a;俊达 MergeTree是Clickhouse里最核心的存储引擎。Clickhouse里有一系列以MergeTree为基础的引擎&#xff08;见下图&#xff09;&#xff0c;理解了基础MergeTree&#xff0c;就能理解整个系列的MergeTree引擎的核心原理。 本文对MergeTree的基本原理进行介绍…

目标检测——YOLOv3算法解读

论文&#xff1a;YOLOv3&#xff1a;An Incremental Improvement 作者&#xff1a;Joseph Redmon, Ali Farhadi 链接&#xff1a;https://arxiv.org/abs/1804.02767 代码&#xff1a;http://pjreddie.com/yolo/ YOLO系列其他文章&#xff1a; YOLOv1通俗易懂版解读SSD算法解读…

pgsql常用索引简写

文章来源&#xff1a;互联网博客文章&#xff0c;后续有时间再来细化整理。 在数据库查询中&#xff0c;合理的使用索引&#xff0c;可以极大提升数据库查询效率&#xff0c;充分利用系统资源。这个随着数据量的增加得到提升&#xff0c;越大越明显&#xff0c;也和业务线有关…

操作系统总结(第二周 第一堂)

前言&#xff1a; 第一周的重点就在于一张图表&#xff1a; 基于这张图&#xff0c;我们将陷入内核分为了两个大块Trap和Interrupt。同时我们知道一件事情任何一次I/O操作或者错误程序操作都将陷入内核&#xff0c;从而使得内核可以监控所有的外部设备以及维护整个电脑程序运行…

PowerPoint 2010

文章目录 一、界面介绍二、选项卡1. 文件选项卡2. 开始选项卡3. 插入选项卡4. 设计选项卡5. 切换选项卡6. 动画选项卡7. 幻灯片放映选项卡8. 视图选项卡9. 效果识别 三、幻灯片操作1.选择幻灯片2.移动(调整幻灯片顺序&#xff09;和复制3.删除幻灯片 四、幻灯片放映1.按次序放映…

FX110网:1月美国零售货币资金环比上升2.61%,嘉盛环比上升1.86%

美国商品期货交易委员会&#xff08;CFTC&#xff09;发布的最新月度报告显示&#xff0c;2024年1月零售货币存款与上月相比上升2.61%。 这份报告涵盖在美国运营的注册零售货币对交易商&#xff08;RFED&#xff09;和经纪自营商。包括嘉信理财&#xff08;CHARLES SCHWAB Futu…

由世界第一个AI软件工程师Devin引发的热潮背后----程序员到底会不会被代替?AI发展至如今是否初衷已变?

目录 一.Devin的登场是突破也是导火索 二.Devin的"逆天"能力 1、端到端构建和部署程序 2、自主查找并修复bug 3、训练和微调自己的AI模型 4、修复开源库 5、成熟的生产库也能做贡献 6、学习能力 三.Devin的出现甚至整个AI领域的进步,编程还有未来吗? 1.业…

PyQt6实战1

创建一个json处理的小工具 功能&#xff1a; 1.json格式化 2.jsonpath提取数据 3.保存文件 main.py from PyQt6.QtGui import QFocusEvent from PyQt6.QtWidgets import * from PyQt6.QtCore import * from PyQt6.QtGui import * import sys import json import time impo…

如何使用vscode创建Node.js服务并结合内网穿透实现远程访问本地服务

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…

(学习日记)2024.03.11:UCOSIII第十三节:使用优先级的流程 (持续更新)

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

Baumer工业相机堡盟工业相机如何通过NEOAPISDK实现双快门采集两张曝光时间非常短的图像(C++)

Baumer工业相机堡盟工业相机如何通过NEOAPISDK实现双快门采集两张曝光时间非常短的图像&#xff08;C&#xff09; Baumer工业相机Baumer工业相机定序器功能的技术背景Baumer工业相机通过NEOAPI SDK使用定序器功能预期的相机动作技术限制定序器的工作原理 Baumer工业相机通过NE…

【CSP试题回顾】201712-1-最小差值

CSP-201712-1-最小差值 完整代码 #include<iostream> #include<vector> #include<cmath> using namespace std;int n, minDelta 10005;int main() { cin >> n;vector<int>arr(n);for (int i 0; i < n; i){cin >> arr[i];}for (i…