Lecture 4 Text Classification

news2024/11/26 8:45:16

目录

      • Classification 分类
      • Text Classification Tasks 文本分类任务
        • Topic Classification 主题分类
        • Sentiment Analysis 情感分析
        • Native-Language Identification 母语识别
        • Natural Language Inference 自然语言推理
      • Building a Text Classifier 构建文本分类器
      • Choosing a Classification Algorithm 选择分类算法
      • Naive Bayes 朴素贝叶斯
      • Logistic Regression 逻辑回归
      • Support Vector Machines 支持向量机
      • K-Nearest Neighbor K-最近邻
      • Decision Tree 决策树
      • Random Forests 随机森林
      • Neural Networks 神经网络
      • Hyperparameter Tuning 超参数调优
      • Confusion Matrix 混淆矩阵
      • Evaluation Metrics 评估指标

Fundamentals of Classification

Classification 分类

  • Input:

    • A document d: Often represented as a vector of features 一个文档 d:通常表示为特征向量
    • A fixed output set of classes C = {c1, c2, …, ck}: Categorical, not continuous or ordinal 一个固定的输出类别集合 C = {c1, c2, …, ck}:类别是离散的,不是连续或有序的
  • Output:

    • A predicted class c ∈ C 一个预测的类别 c ∈ C

Text Classification Tasks 文本分类任务

  • Some common examples:

    • Topic classification 主题分类
    • Sentiment analysis 情感分析
    • Native-language identification 母语识别
    • Natural language interence 自然语言推理
    • Automatic fact-checking 自动事实检查
    • Paraphrase 释义(paraphrase)
  • Input may not be a long document 输入可能不是一个长文档

Topic Classification 主题分类

  • Motivation: Library science, information retrieval 动机:图书馆科学,信息检索

  • Classes: Topic categories E.g. “jobs”, “international news” 类别:主题类别 例如"工作",“国际新闻”

  • Features:

    • Unigram bag-of-words, with stop-words removed 一元词袋模型,移除了停用词
    • Longer n-grams for phrases 长的n-grams表示短语
  • Examples of corpora:

    • Reuters news corpus. E.g. RCV1, NLTK
    • Pubmed abstracts
    • Tweets with hashtags

Sentiment Analysis 情感分析

  • Motivation: Opinion mining, business analytics 动机:观点挖掘,商业分析

  • Classes: Positive/Negative/(Neutral) 类别:积极/消极/(中立)

  • Features:

    • N-grams N-grams
    • Polarity lexicons(极性词词典)
  • Examples of corpora:

    • Movie review dataset in NLTK
    • SEMEVAL Twitter polarity datasets

Native-Language Identification 母语识别

  • Motivation: Forensic linguistics, educational applications 动机:法证语言学,教育应用

  • Classes: First language of author 类别:作者的第一语言

  • Features:

    • Word N-grams
    • Syntactic patterns (POS, parse trees) 句法模式
    • Phonological features 语音特征
  • Example of corpora:

    • TOEFL/IELTS essay corpora

Natural Language Inference 自然语言推理

  • Also called textual entailment 也称为文本蕴含

  • Motivation: Language understanding 动机:语言理解

  • Classes: entailment, contradiction, neutral 类别:蕴含,矛盾,中立

  • Features:

    • Word overlap 词重叠
    • Length difference between the sentences 句子之间的长度差异
    • N-grams N-grams
  • Examples of corpora:

    • SNLI, MNLI

Building a Text Classifier 构建文本分类器

  1. Identify a task of interest 确定感兴趣的任务
  2. Collect an appropriate corpus 收集适当的语料库
  3. Carry out annotation 执行注释
  4. Select features 选择特征
  5. Choose a machine learning algorithm 选择机器学习算法
  6. Train model and tune hyperparameters using hold-out development data 使用留出法开发数据训练模型并调整超参数
  7. Repeat earlier steps as needed 根据需要重复前面的步骤
  8. Train fianl model 训练最终模型
  9. Evaluate model on hold-out test data 在留出测试数据上评估模型

Algorithms for Classification

Choosing a Classification Algorithm 选择分类算法

  • Bias vs. Variance 偏差与方差

    • Bias: Assumptions made in the model 偏差:模型中做出的假设
    • Variance: Sensitivity to training set 方差:对训练集的敏感度
  • Underlying assumptions E.g. Independence 潜在假设 例如 独立性

  • Complexity 复杂度

  • Speed 速度

Naive Bayes 朴素贝叶斯

  • Find the class with the highest likelihood under Bayes Law: 根据贝叶斯定理找到最有可能的类别
    placeholder

    • Probability of the class times probability of features given the class 类别的概率乘以给定类别的特征概率
  • Naively assumes features are independent: 天真地假设特征是独立的
    placeholder

  • Pros:

    • Fast to train and classify 训练和分类速度快
    • Robust, low-variance -> good for low data situations 稳健,方差小 -> 对于数据量小的情况效果好
    • Optimal classifier if independence assumption is correct 如果独立性假设正确,那么它是最优分类器
    • Extremely simple to implement 实现极其简单
  • Cons:

    • Independence assumption rarely holds 独立性假设很少成立

    • Low accuracy compared to similar methods in most situations 在大多数情况下,与类似方法相比,精度较低

    • Smoothing required for unseen class/feature combinations 对于未见过的类别/特征组合,需要进行平滑处理

Logistic Regression 逻辑回归

  • A classifier, even called regression 一个分类器,甚至被称为回归

  • A linear model, but users softmax function squashing to get valid probability 一个线性模型,但使用 softmax 函数将其压缩成有效的概率
    placeholder

  • Training maximizes probability of training data subject to regularization which encourages low or sparse weights 训练过程最大化训练数据的概率,同时通过正则化来鼓励低权重或稀疏权重

  • Pros:

    • Unlike Naive Bayes not confounded by diverse, correlated features gives better performance 与朴素贝叶斯不同,不会被多样性、相关特征所混淆,性能更好
  • Cons:

    • Slow to train 训练速度慢
    • Feature scaling needed 需要特征缩放
    • Requires a lot of data to work well in practice 在实际应用中需要大量数据才能表现良好
    • Choosing regularization strategy is important since overfitting is a big problem 选择正则化策略很重要,因为过拟合是一个大问题

Support Vector Machines 支持向量机

  • Finds hyperplane which separates the training data with maximum margin 找到一个超平面,该超平面最大限度地分离训练数据

  • Pros:

    • Fast and accurate linear classifier 快速且准确的线性分类器
    • Can do non-linearity with kernel trick 可以使用核技巧进行非线性处理
    • Works well with huge feature sets 对于大规模特征集合工作良好
  • Cons:

    • Multiclass classification awkward 多类别分类不方便
    • Feature scaling needed 需要特征缩放
    • Deals poorly with class imbalances 对类别不平衡处理不佳
    • Interpretability 可解释性差

K-Nearest Neighbor K-最近邻

  • Classify based on majority class of k-nearest training examples in feature space 根据特征空间中最近的 k 个训练样本的多数类别进行分类

  • Definition of the nearest can vary: "最近"的定义可以变化

    • Euclidean distance 欧几里得距离
    • Cosine distance 余弦距离
  • Pros:

    • Simple but surprisingly effective 简单但效果惊人
    • No training required 无需训练
    • Inherently multiclass 内置多类别
    • Optimal classifier with infinite data 在无穷大的数据下是最优分类器
  • Cons:

    • Have to select k 必须选择 k
    • Issues with imbalanced classes 类别不平衡问题
    • Often slow for finding the neighbors 在寻找最近邻时往往很慢
    • Features must be selected carefully 特征必须仔细选择

Decision Tree 决策树

  • Construct a tree where nodes correspond to tests on individual features 构建一个树,其中节点对应于对单个特征的测试

  • Leaves are final class decisions 叶子节点是最终的类别决策

  • Based on greedy maximization of mutual information 基于贪心最大化互信息

  • Pros:

    • Fast to build and test 建立和测试速度快
    • Feature scaling irrelevant 特征缩放无关
    • Good for small feature sets 对于小规模特征集合表现良好
    • Handles non-linearly-separable problems 能处理非线性可分问题
  • Cons:

    • In practice, not very interpretable 在实际中,解释性不强
    • Highly redundant sub-trees 高度冗余的子树
    • Not competitive for large feature sets 对于大规模特征集合,表现不强

Random Forests 随机森林

  • An ensemble classifier 一种集成分类器

  • Consists of decision trees trained on different subsets of the training and feature space 由在训练集和特征空间的不同子集上训练的决策树组成

  • Final class decision is majority voting of sub-classifiers 最终的类别决策是子分类器的多数投票

  • Pros:

    • Usually more accurate and more robust than decision trees 通常比决策树更准确、更稳健
    • Great classifier for medium feature sets 对于中等规模的特征集合是很好的分类器
    • Training easily parallelized 训练过程可以轻易并行化
  • Cons:

    • Interpretability 可解释性
    • Slow with large feature sets 在大规模特征集合中训练慢

Neural Networks 神经网络

  • An interconnected set of nodes typically arranged in layers 一个由多个节点相互连接的集合,通常按层排列

  • Input layer(features), output layer(class probabilities), and one or more hidden layers 输入层(特征),输出层(类别概率),以及一个或多个隐藏层

  • Each node performs a linear weighting of its inputs from previous layer, passes result through activation function to nodes in next layer 每个节点对其来自上一层的输入进行线性加权,然后通过激活函数将结果传递给下一层的节点

  • Pros:

    • Extremely powerful, dominant method in NLP and computer vision 极其强大,是 NLP 和计算机视觉中的主导方法
    • Little feature engineering 很少需要特征工程
  • Cons:

    • Not an off-the-shelf classifier 不是开箱即用的分类器
    • Many hyperparameters, difficult to optimize 多个超参数,难以优化
    • Slow to train 训练慢
    • Prone to overfitting 易于过拟合

Hyperparameter Tuning 超参数调优

  • Dataset for tuning: 调优的数据集

    • Development set 开发集
    • Not the training set or the test set 不是训练集或测试集
    • k-fold cross-validation k-折交叉验证
  • Specific hyper-parameters are classifier specific. But many hyper-parameters relate to regularization 具体的超参数是分类器特定的。但许多超参数与正则化有关

    • Regularization hyperparameters penalize model complexity 正则化超参数惩罚模型复杂性
    • Used to prevent overfitting 用于防止过拟合
  • For multiple hyperparameters, use grid search 对于多个超参数,使用网格搜索

Evaluation

Confusion Matrix 混淆矩阵

Classified As
ClassAB
ATrue PositiveFalse Positive
BFalse NegativeTrue Negative

Evaluation Metrics 评估指标

  • Accuracy = True Positive / (True Positive + False Positive + True Negative + False Negative) 准确率 = 真正例 / (真正例 + 假正例 + 真负例 + 假负例)
  • Precision = True Positive / (True Positive + False Positive) 精确度 = 真正例 / (真正例 + 假正例)
  • Recall = True Positive / (True Positive + False Negative) 召回率 = 真正例 / (真正例 + 假负例)
  • F1-score = (2 * precision * recall) / (precision + recall) F1-分数 = (2 * 精确度 * 召回率) / (精确度 + 召回率)
    • Macroaverage: Average F-score across classes 宏平均:所有类别的 F-分数的平均值
    • Micreaverage: Calculate F-score using sum of counts 微平均:使用计数和来计算 F-分数

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

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

相关文章

JDK、Tomcat、Redis、MySQL集齐,教你如何搭建高效性能测试项目!

目录 前言: 1. JDK 的安装 2. Tomcat 的安装 3. Redis 环境搭建 4. 数据库的安装 5. WEB 项目搭建 6. 性能测试 7. 总结 前言: 作为一个软件工程师,怎能不知道如何搭建一个性能测试项目呢?性能测试是一个软件工程师不可或…

【Python从入门到进阶】23.urllib使用post请求百度翻译

接上篇《22、urllib库基本使用》 上一篇我们介绍了实现爬虫的必备基础——urllib库的学习。本篇我们来使用urllib实现百度翻译的效果。 一、在线翻译服务 当我们需要翻译一段文字时,百度翻译是一个很常用的工具。它是由百度公司开发的一款在线翻译服务&#xff0c…

k8s pv与pvc

1.前言 PV 是 Kubernetes 集群中的一种资源对象,它代表着一块物理存储设备,例如磁盘、网络存储或云存储等。PV 可以被多个 Pod 共享,并且可以独立于 Pod 存在。PV 可以配置不同的访问模式 (Access Modes),例如 ReadWriteOnce、Re…

传输优化是非谈

曾倾向于优化异常流的做法竟然最保守,异常是小概率事件,处理它只保障可用性,而不是优化性能,恰恰需要加速大概率的正常流处理,数据中心传输优化投入大量精力在丢包检测和重传上的思路需重估。 为 1% 的可能性而增加的…

uniapp注册模板

注册模板 学生注册 <template><view class"content"><uni-forms ref"from" :modelValue"formData"><uni-forms-item label"学号" name"num" :rules"[{required: true,errorMessage: 学号不能为…

华为OD机试真题 Java 实现【比赛评分】【2023 B卷 100分】,附详细解题思路

一、题目描述 一个有N个选手参加比赛&#xff0c;选手编号为1~N&#xff08;3<N<100&#xff09;&#xff0c;有M&#xff08;3<M<10&#xff09;个评委对选手进行打分。打分规则为每个评委对选手打分&#xff0c;最高分10分&#xff0c;最低分1分。 请计算得分最…

OpenMMLab-AI实战营第二期——3.基于RTMPose的耳朵穴位关键点检测(Colab+MMPose)

文章目录 1. Colab和Google云端硬盘1.1 建立项目文件和jupyter文件1.2 Colab运行时选择1.3 关联Colab中的文件和Google云端硬盘的文件 2. Colab和MMPose2.1 环境配置2.2 配置文件修改 3. Colab相关知识 1. Colab和Google云端硬盘 参考&#xff1a; 利用Colab上的TPU训练Keras…

RVOS操作系统内存管理简单实现-02

RVOS操作系统内存管理简单实现-02 内存管理分类内存映射表&#xff08;Memory Map)Linker Script 链接脚本语法基于符号定义获取程序运行时内存分布 基于 Page 实现动态内存分配代码讲解调试 扩展 本系列参考: 学习开发一个RISC-V上的操作系统 - 汪辰 - 2021春 整理而来&#x…

6-3 简单贪心(思想!不难)(看看这就这?)

贪心入门 贪心概念 贪心算法(又称贪婪算法)是指&#xff0c;在对问题求解时&#xff0c;总是做出在当前看来是最好的选择。也就是说&#xff0c;不从整体最优上加以考虑&#xff0c;他所做出的是在某种意义上的局部最优解。 贪心算法不是对所有问题都能得到整体最优解&#x…

【自制C++深度学习推理框架】卷积层的设计思路

卷积层的设计思路 使用Im2Col来实现高性能卷积 在深度学习中实现高性能卷积有以下几个方法&#xff1a; 并行计算&#xff1a;在网络或硬件层面上&#xff0c;利用并行计算的优势对卷积过程进行加速&#xff0c;例如使用GPU。 转换卷积算法&#xff1a;卷积操作可由矩阵相乘…

【生成数据】随机漫步

使用python来生成随机漫步数据&#xff0c;再使用matplotlib将这些数据呈现出来。 随机漫步&#xff1a;每次行走都是完全随机的&#xff0c;没有明确的方向&#xff0c;结果是由一系列随机决策决定的。也可以这么认为&#xff0c;随机漫步就是蚂蚁在晕头转向的情况下&#xff…

DNS详解

2.4 DNS&#xff1a;因特网的目录服务 我们首先要了解域名和IP地址的区别。IP地址是互联网上计算机唯一的逻辑地址&#xff0c;通过IP地址实现不同计算机之间的相互通信&#xff0c;每台联网计算机都需要通过IP地址来互相联系和分别。 但由于IP地址是由一串容易混淆的数字串构成…

Java String ,StringBuffer 和 StringBuilder 类

文章目录 一、Java String 类二、Java StringBuffer 和 StringBuilder 类总结 一、Java String 类 字符串广泛应用 在 Java 编程中&#xff0c;在 Java 中字符串属于对象&#xff0c;Java 提供了 String 类来创建和操作字符串。 创建字符串 创建字符串最简单的方式如下: St…

SiLu激活函数解释

SiLu激活函数 在yolo v5中&#xff0c;我们使用了SiLu激活函数 首先&#xff0c;了解一下激活函数的作用&#xff1a; 激活函数在神经网络中起到了非常重要的作用。以下是激活函数的一些主要功能&#xff1a; 引入非线性&#xff1a;激活函数的主要目标是在模型中引入非线性…

STM32F7xx Keil5 RTX RL-TCPnet DP83822移植

使用之前RTX工程模板 RTE中RL-TCPnet配置 暂时全部默认配置&#xff0c;DHCP已打开 修改RTE_Device.h ETH配置 修改DP83822驱动 去掉文件只读属性&#xff0c;之后需要修改&#xff0c;添加到工程 修改DP83822 ID RTE创建tcp server例程&#xff0c;参考该例程&#xff0c;进…

2023.6.4 第五十六次周报

目录 前言 文献阅读&#xff1a;一种预测中国东海岸非平稳和不规则波的VMD-LSTM/GRU混合模型 背景 研究区域和数据 VMD LSTM/GRU预测模型 VMD-LSTM/GRU 方法的数值算法 序列的非平稳分析 神经网络设计 结论 代码&#xff1a;lstm预测污染物浓度 总结 前言 I read …

ChatGPT结合Excel公式办公 —— ChatGPT统计富豪信息

&#x1f4a7; C h a t G P T 统计富豪信息 \color{#FF1493}{ChatGPT统计富豪信息} ChatGPT统计富豪信息&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f984; 个人主页——微风撞见云的博客&#x1f390; &#x1f433; 《数据结构与算法…

设计原则-里氏替换原则

凡事皆有利弊&#xff0c;面向对象设计语言通过提供继承、多态等机制使得项目代码更具有复用性、可扩展性等优点&#xff0c;但是这些机制也存在一定的使用风险&#xff0c;比如继承的滥用、多态实现的不确定性等问题都有可能会引起重大线上事故。 一、里氏替换原则概念 里氏…

智能计算补充(从第四章p44往后)

智能计算补充&#xff08;从第四章p44往后&#xff09; 本文内容大部分来自于任振兴老师的讲课PPT&#xff0c;主要是对老师PPT内容的总结和提炼&#xff0c;侵权请联系我删除。 文章目录 智能计算补充&#xff08;从第四章p44往后&#xff09;适应度尺度变换1、适应度尺度变换…

DicomObjects.Core 3.0.17 Crack

DicomObjects.NET 核心版简介 DicomObjects.Core Assembly DicomObjects.NET 核心版简介 DicomObjects.Core 由一组相互关联但独立的 .核心兼容的“对象”&#xff0c;使开发人员能够快速轻松地将DICOM功能添加到其产品中&#xff0c;而无需了解或编程DICOM标准的复杂性。此帮助…