文本分类的一些记录

背景

过去工作中最常遇到的问题就是文本分类和实体抽取的任务。其中文本分类是自然语言处理中最基础的任务,指的是将文本打上特定的类别标签,以做区分和筛选。文本分类主要流程一般是:先预处理文本,再提取特征,最后通过特征进行分类,或者直接采用深度学习的模型对处理好的文本进行分类。在搜索、对话等很多场景中文本分类都有应用,并有具体的任务如情感分析、舆情分析、新闻分类、标签分类等。

常用模型

  • TEXTCNN
    TextCNN模型核心思想是,通过数个卷积运算(卷积核大小不同)和池化操作,提取文本局部特征,将这些特征经过全连接层以后,经过softmax函数最终完成分类任务。简单描述前向过程为:
    1. 词嵌入层,用词向量表示词
    2. 多个不同大小的一维卷积核在词维度获取上下文信息,此时编码维度大小为1,可接Relu层提供非线性
    3. 通过在词维度去最大池化,此时词维度也为1
    4. 将各卷积核处理后的表示合并,得到文本的特征
    5. 通过两层全连接得到类别概率分布
    在训练过程为了增强模型的泛化性,可以使用dropout随机遮蔽了部分参数。
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    • 优点:两层全连接的好处,先将特征映射到高维/低维空间,再从映射的空间到输出空间。
    • TextCNN不足:受限于卷积层的大小,无法提取到长距离文本的关联关系。
  • FASTTEXT(快速文本分类):
    FASTTEXT 是一种基于词袋模型的文本分类算法,由Facebook于2016年提出。
    FASTTEXT 将文本划分为单词(或字符)并使用平均池化(average pooling)来获取文本的嵌入表示。
    它使用线性分类器对文本嵌入进行分类,速度快且性能不错。
    FASTTEXT 在简单文本分类任务上表现出色,尤其适用于大规模文本分类。

  • TextRNN(循环神经网络文本分类):
    TextRNN 是一种基于循环神经网络(RNN)的文本分类模型,它可以捕捉文本序列中的上下文信息。
    TextRNN 将文本中的词汇序列依次传递给RNN单元,最终将RNN的输出用于分类。
    它适用于需要考虑文本序列中的顺序信息的任务,如情感分析和文本生成。

  • TextRCNN(循环卷积神经网络文本分类):
    TextRCNN 结合了卷积神经网络(CNN)和RNN的优点,用于文本分类任务。
    它首先使用CNN来提取文本中的局部特征,然后使用RNN来捕捉全局语境信息。
    TextRCNN可以更好地理解文本序列中的上下文信息,适用于情感分析和文本分类等任务。

  • DPCNN(深度金字塔卷积神经网络):
    DPCNN 是一种卷积神经网络架构,用于文本分类,由微软提出。
    它使用卷积层来提取不同级别的局部特征,然后通过池化层将这些特征组合成更高级的表示。
    DPCNN 结构深度较深,有助于捕捉文本中的层次信息,适用于长文本的分类任务。

模型评价

对于文本单标签多分类问题常有如下指标:

  • 准确度(Accuracy):
    准确度是模型正确分类的样本数量与总样本数量的比率。它表示模型在所有类别上的整体性能。
    公式:准确度 = (TP + TN) / (TP + TN + FP + FN)
    适用于类别平衡的问题,但当类别不平衡时,不是一个很好的性能指标。

  • 精确度(Precision):
    精确度是模型预测为正类别的样本中实际为正类别的比例。它衡量了模型的精确性。
    公式:精确度 = TP / (TP + FP)
    精确度适用于那些要求高精确性的问题,比如垃圾邮件检测,其中误报的代价较高。

  • 召回率(Recall):
    召回率是实际为正类别的样本中,模型成功预测为正类别的比例。它衡量了模型找到正类别的能力。
    公式:召回率 = TP / (TP + FN)
    召回率适用于那些要求找到尽可能多正类别的问题,比如医疗诊断中的疾病检测。

  • F1 分数(F1-Score):
    F1 分数是精确度和召回率的调和平均值。它提供了精确度和召回率的综合性能指标。
    公式:F1 分数 = 2 * (精确度 * 召回率) / (精确度 + 召回率)
    F1 分数适用于平衡精确性和召回率的问题,对于综合考虑分类器的性能时很有用。

Micro Average、Macro Average 和 Weighted Average 是用于计算多类别分类问题中精确度和召回率的不同方法。它们的区别在于如何处理多类别的度量和加权。

  • Micro Average(微平均):
    Micro Average 通过将所有类别的真阳性、假阳性和假阴性的总和来计算精确度和召回率。然后,它计算总体的精确度和召回率。
    这意味着 Micro Average 将所有类别视为一个大类别,所有的真阳性、假阳性和假阴性都汇总在一起,然后计算总体的精确度和召回率。
    Micro Average 对所有类别平等看待,不考虑类别的不平衡性。

  • Macro Average(宏平均):
    Macro Average 是通过分别对每个类别计算精确度和召回率,然后取平均值来计算总体精确度和召回率。
    这种方法平等地对待每个类别,不考虑类别的大小或不平衡性。
    Macro Average 适用于多类别平衡的情况,或者是希望了解每个类别的性能时。

  • Weighted Average(加权平均):
    Weighted Average 与 Macro Average 类似,但在计算总体精确度和召回率时,它考虑了每个类别的权重,这个权重通常是类别的样本数量。
    由于每个类别的权重不同,Weighted Average 更适合处理多类别不平衡的情况。
    Weighted Average 将不同类别的性能考虑在内,权重越大的类别对总体性能的影响越大。

  • 25
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值