常用的文本分类算法概览


1. 前言

本文不涉及代码,仅介绍文本分类算法涉及到的操作和常见的一些算法,了解当前文本分类的过程,拓展知识面。

2. 文本分类之预处理

在文本分类任务中,预处理是至关重要的步骤,它涉及清洗文本数据集,去除噪声和不必要的特征,以便进行有效的特征化。预处理常用的一些步骤如下:

  1. 分词(Tokenization):这是将文本流分解为单词、短语、符号或其他有意义的元素(称为标记)的预处理方法。分词的目的是分析句子中的单词。

  2. 停用词(Stop Words):文本和文档分类中包含许多不包含重要意义的词,如“a”, “about”, “above”等。处理这些词的常见技术是将它们从文本中移除。

  3. 大小写(Capitalization):文本和文档数据点具有不同的大小写形式。为了处理不一致的大小写,常见的方法是将所有字母转换为小写。

  4. 俚语和缩写:俚语和缩写是文本中的其他形式的异常,它们在预处理步骤中被处理。常见的方法是将它们转换为正式语言。

  5. 噪声移除:大多数文本和文档数据集包含许多不必要的字符,如标点符号和特殊字符,这些字符可能对分类算法不利。

  6. 拼写校正:拼写校正是一个可选的预处理步骤,用于纠正文本和文档中的拼写错误。

  7. 词干提取(Stemming):词干提取是一种将单词修改为获得不同词形的方法,它通过去除后缀来实现。

  8. 词形还原(Lemmatization):词形还原是一种将单词替换为其基本形式(词元)的过程。

  9. 句法词表示:为了解决单词之间失去句法和语义关系的问题,研究人员开发了多种技术,如n-gram技术和句法n-gram。

  10. 加权词(Weighted Words):这是基于词频的文本特征提取的基本形式,每个词被映射为一个数字,表示该词在整个语料库中的出现次数。

  11. 词袋模型(Bag of Words, BoW):BoW模型是一种基于特定标准(如词频)从文本中选择部分文本的简化表示。BoW模型面临的挑战包括词汇表的规模可能达到数百万,这导致可扩展性问题。

  12. 词嵌入(Word Embedding):尽管有句法词表示,但并不意味着模型捕获了词的语义含义。词嵌入是一种将词汇表中的每个词或短语映射到N维实数向量的特征学习技术。

在实际处理中,可以结合其中的一些关键步骤,不一定完全执行所有的步骤。

3. 常见算法

  1. Rocchio算法
    优点:使用了相关反馈来查询全文本数据库,适用于文本和文档分类。
    缺点:用户只能检索到少量相关文档,且算法结果在考虑语义时存在局限性。

  2. Boosting 和 Bagging
    优点:Boosting 通过自适应改变训练集分布来提升弱学习算法的性能,而 Bagging 不考虑前一个分类器,通过投票分类技术提高分类准确性。
    缺点:计算复杂度高,可解释性差,即无法发现特征的重要性。

  3. Logistic Regression (LR)
    优点:适用于分类问题,能够预测二元或多元分类结果。
    缺点:假设数据点独立,且在处理非线性关系时可能不够有效。

  4. Naive Bayes Classifier (NBC)
    优点:简单且计算效率高,适用于大规模数据集。
    缺点:假设特征之间相互独立,这在实际中往往不成立,且在数据稀缺的情况下性能受限。

  5. K-Nearest Neighbor (KNN)
    优点:实现简单,易于理解和实现,适用于多类问题。
    缺点:对数据存储要求高,且性能依赖于有效的距离函数。

  6. Support Vector Machine (SVM)
    优点:在文本分类中表现良好,尤其适用于二分类问题。
    缺点:对于大规模数据集,训练时间长,且对于未见过的词(即训练数据中未出现的词)处理不佳。

  7. Decision Tree
    优点:快速学习和预测,适用于分类任务。
    缺点:对数据的微小变化非常敏感,容易过拟合,且在预测新样本时可能表现不佳。

  8. Random Forest
    优点:通过集成多个决策树来提高分类的准确性和鲁棒性。
    缺点:训练速度快,但预测时速度较慢,且需要选择合适的树的数量。

  9. Conditional Random Field (CRF)
    优点:结合了分类和图形模型的优点,能够紧凑地建模多变量数据。
    缺点:训练步骤的计算复杂度高,且不适用于未见过的词。

  10. Deep Learning
    优点:在许多领域,包括文本和文档分类,取得了最先进的结果。
    缺点:需要大量的数据进行训练,对于小数据集可能不适用。训练过程中的计算复杂性高,需要大量的计算资源。模型的可解释性差,通常被视为“黑盒”模型。选择有效的架构和结构仍然是一个挑战。

对于文本分类的 Deep Learning,可以包含:

  • 深度神经网络(DNN)
    利用多层连接学习,每层只从前一层接收连接,并只向后一层提供连接。输入层可以由TF-IDF、词嵌入或其他特征提取方法构建。输出层的节点数等于类别数,用于多类分类或二类分类。使用 sigmoid 或 ReLU 作为激活函数,并通过反向传播算法进行训练。

  • 循环神经网络(RNN)
    RNN特别适用于序列数据,如文本,因为它们可以在序列的不同时间步长之间传递信息。长短期记忆网络(LSTM)和门控循环单元(GRU)是 RNN 的两种变体,它们通过引入门控机制来解决传统 RNN 的梯度消失和梯度爆炸问题。

  • 卷积神经网络(CNN)
    虽然最初设计用于图像处理,但 CNN 也被证明对文本分类有效。CNN 通过卷积层提取特征,然后使用池化层(如最大池化)来降低特征维度,并通过全连接层进行分类。

  • 深度信念网络(DBN)
    由受限玻尔兹曼机(RBM)堆叠而成,是一种生成模型,可以学习样本的概率分布。

  • 层次注意力网络(HAN)
    HAN 专注于文档级分类,使用两层注意力机制,分别在词和句子级别上应用。

  • 随机多模型深度学习(RMDL)
    RMDL 结合了多个深度学习模型,如 CNN、DNN 和 RNN,以提高分类性能。

4. 评估方法

  1. 准确率 (Accuracy)
    准确率是最直观的性能指标,它衡量的是模型正确分类的文档数占总文档数的比例。然而,准确率在类别不平衡的情况下可能不是最佳的评估指标。

  2. 召回率 (Recall)
    召回率关注于模型识别所有正类样本的能力。它定义为真正例(TP)与实际为正类的所有样本(TP + FN)的比例。

  3. 精确度 (Precision)
    精确度衡量的是模型预测为正类的样本中实际为正类的比例,即真正例(TP)与预测为正类的所有样本(TP + FP)的比例。

  4. Fβ分数 (Fβ Score)
    Fβ分数是一个综合考虑召回率和精确度的指标,通过引入一个参数β来平衡两者的重要性。F1分数是Fβ分数的一个特殊情况,当β=1时,召回率和精确度被赋予相同的重要性。

  5. Matthews相关系数 (Matthews Correlation Coefficient, MCC)
    MCC是一个考虑了混淆矩阵中所有元素的指标,它能够为不平衡的数据集提供更平衡的性能评估。

  6. 接收者操作特征曲线 (Receiver Operating Characteristic, ROC)
    ROC 曲线是一个图形工具,用于评估分类模型的性能。它通过绘制真正例率(TPR)和假正例率(FPR)来展示模型在不同阈值下的性能。

  7. ROC曲线下面积 (Area Under the ROC Curve, AUC)
    AUC衡量的是ROC曲线下的整个面积,它提供了一个模型性能的总体度量,与决策阈值无关,并且对类别的先验概率不敏感。

  8. 宏平均 (Macro-Averaging)微平均 (Micro-Averaging)
    宏平均和微平均是在多类别分类问题中使用的两种聚合评估指标。宏平均对每个类别的指标进行简单平均,而微平均则在类别层面上对所有文档的决策进行聚合,然后输出汇总的指标。

欢迎关注本人,我是喜欢搞事的程序猿;一起进步,一起学习;

欢迎关注知乎/CSDN:SmallerFL

也欢迎关注我的wx公众号(精选高质量文章):一个比特定乾坤

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SmallerFL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值