研究生课程:现代信息检索-第11讲 文本分类

《现代信息检索》课程笔记:第11讲 文本分类

第11讲 文本分类

常设查询(Standing Queries)

从检索到文本分类:假设某用户有一个经常关注的信息需求,用户会经常输入这个查询来寻找关于这个主题的新内容,关注于浏览新内容,此时排序问题变成了一个分类问题(相关 vs. 不相关)

需要构建分类函数

人工分类

专家分类一般都是准确的

当数据规模不大、标注者人数较少时,分类一致

当数据规模变大,人工分类困难且代价昂贵

人工编写的基于规则的分类器

新闻机构,情报机构等使用的一个技术,广泛部署于政府和企业

供应商提供“ IDE”来编写此类规则,商业系统具有复杂的查询语言

如果领域专家花时间精心完善规则,则准确性会很高,但是建立和维护这些规则非常昂贵

有监督学习

监督学习分类器可以使用各种特征

词袋模型

仅使用词项特征,使用文本中的所有词项

特征选择的意义

  • 文本语料具有大量的词项/特征
  • 特征选择可以使得某些分类器可用
  • 减少训练时间
  • 使运行时模型更小,更快
  • 可以提高模型泛化能力

最简单的特征选择方法:

  • 仅使用最常见词项
  • 没有特别的(理论)依据
  • 但是很好理解:
    • 这些词的概率可以被很好地估计(因为词频高),并且最常被用作相关性的证据
    • 在实际应用中,词频特征选择往往能达到一些更高的方法的90%的性能

更聪明的特征选择方法:卡方(chi-square)等

朴素贝叶斯分类器

朴素贝叶斯分类的目标是寻找具有最大后验概率的类别

对数计算:通过取对数将原来的乘积计算变成求和计算

参数估计:极大似然估计

避免零概率:加一平滑

朴素贝叶斯对于训练集的大小和测试文档的大小而言是线性的,在某种意义上是最优的。

  • 相对于其他很多更复杂的学习方法,朴素贝叶斯对不相关特征更具鲁棒性
  • 相对于其他很多更复杂的学习方法,朴素贝叶斯对概念漂移更鲁棒(概念漂移是指类别的定义随时间变化)
  • 当有很多同等重要的特征时,该方法优于决策树类方法
  • 如果满足独立性假设,那么朴素贝叶斯是最优的
  • 速度非常快、存储开销少

分类结果的评价:评估必须在独立于训练数据的测试数据上完成

评价指标:正确率(Precision),召回率(Recall),F1,分类准确率r/n ,其中 n 是所有测试文档的数量,r是正确分类的测试文档数量

向量空间分类

训练集包含一系列文档,每篇都标记着它的类别

在向量空间分类中,该集合对应着空间中一系列标记的点或向量。

利用Rocchio方法进行向量空间分类

基本思想:计算每个类的中心向量(所有文档向量的算术平均),将每篇测试文档分到离它最近的那个中心向量

Rocchio简单地将每个类别表示成其中心向量,分类基于文档向量到原型的相似度或聚类来进行,并不保证分类结果与训练集一致,即得到分类器后,不能保证训练集中的文档能否正确分类。

很多情况下,Rocchio的效果不如朴素贝叶斯:Rocchio算法不能正确处理非凸、多模式类别问题

kNN分类器

将每篇测试文档分给训练集中离它最近的那篇文档所属的类别。

  • 不需要训练过程,但是文档的线性预处理过程和朴素贝叶斯的训练开销相当。对于训练集来说我们一般都要进行预处理,因此现实当中
    kNN的训练时间是线性的。
  • 当训练集非常大的时候,kNN分类的精度很高
  • 如果训练集很小, kNN可能效果很差。
  • kNN倾向于大类,可以将相似度考虑在内来缓解这个问题。

线性分类器

线性分类器计算特征值的一个线性加权和

很多常用的文本分类器都是线性分类器:朴素贝叶斯、Rocchio、logistic回归、线性SVM等等

不同的方法选择超平面的策略不同,造成了在测试文档分类性能的巨大差异

不能通过更强大的非线性分类器来获得更好的分类性能

不存在某个学习方法对于任何分类问题都最优

kNN高方差低偏差,而朴素贝叶斯分类器低方差高偏差

单标签问题:类别之间互斥,每篇文档属于且仅属于某一个类

多标签分类问题:一篇文档可以属于0、1或更多个类,针对某个类的决策并不影响其他类别上的决策

对于给定的分类问题,要考虑很多因素从而选择合适的分类器算法。


研究生课程:现代信息检索-第11讲 文本分类
https://zhangzhao219.github.io/2022/09/30/UCAS/information-retrieval/information-retrieval-11/
作者
Zhang Zhao
发布于
2022年9月30日
许可协议