文本分类

文本分类的部分主要分成三个内容:文本表示、特征选择、分类算法

1. 文本表示

首先介绍 向量空间模型(Vector Space Model, VSM),它将文本表示为向量的形式,通常使用 词袋模型(Bag of Words, BOW) 来表示文本

文本表示的一个重要问题就是如何计算特征项权重,即每个词袋元素的权重是多少

布尔变量 是一个简单的方法

词频率 TF

$$ w_i = \log(tf_i + 1) $$

逆文档频率 IDF:一个词的 df 越小,说明它越能区分不同的文档,权重就应该越大

$$ idf_i = \log \frac{N}{df_i} \quad N \text{ 是文档总数,} df_i \text{ 是包含词 } i \text{ 的文档数} $$

TF-IDF

$$ w_i = tf_i \cdot idf_i $$

2. 特征选择

用于文本分类的特征选取准则有很多,一个常用的指标是 DF 文档频率

$$ P(c_j|t_i) \approx \frac{A_{ij}}{\sum_{j=1}^{k} A_{ij} + C} \quad C \text{ 是类别数} $$

而更常用的指标是 信息增益(Information Gain, IG),它衡量了一个特征对分类结果的不确定性减少的程度

下面会从 熵 开始逐步推出 IG 的概念

From Entropy to Information Gain

熵(Entropy) 是一个衡量随机变量不确定性的指标,定义如下:

$$H(X) = -\sum_{i=1}^{n} P(x_i) \log P(x_i)$$

联合熵

$$H(X,Y) = -\sum_{i=1}^{n} \sum_{j=1}^{m} P(x_i,y_j) \log P(x_i,y_j)$$

条件熵

$$H(Y|X) = H(X,Y) - H(X) = -\sum_{i=1}^{n} \sum_{j=1}^{m} P(x_i,y_j) \log \frac{P(x_i,y_j)}{P(x_i)}$$

条件熵衡量了在知道特征 X 的情况下,类别 Y 的不确定性

那么 信息增益 就是原始熵与条件熵之差

$$\begin{aligned} IG(Y|X) &= H(Y) - H(Y|X) \\ &= -\sum_{i=1}^{n} P(x_i) \log P(x_i) + \sum_{i=1}^{n} \sum_{j=1}^{m} P(x_i,y_j) \log \frac{P(x_i,y_j)}{P(x_i)} \\ &= \sum_{i=1}^{n} \sum_{j=1}^{m} P(x_i,y_j) \log \frac{P(x_i,y_j)}{P(x_i)P(y_j)} \end{aligned}$$

互信息 MI 就是信息增益的一个特例,它衡量了两个随机变量之间的依赖关系

$$MI(X;Y) = \sum_{i=1}^{n} \sum_{j=1}^{m} P(x_i,y_j) \log \frac{P(x_i,y_j)}{P(x_i)P(y_j)}$$

PPT 中重点介绍了 PMI(Pointwise Mutual Information),它衡量了特定的特征值和类别值之间的关联程度

$$PMI(x,y) = \log \frac{P(x,y)}{P(x)P(y)}$$

3. 分类算法

分类方法有很多,PPT 中重点介绍了 朴素贝叶斯(Naive Bayes, NB)神经网络(Neural Network, NN)

朴素贝叶斯方法

$$ \begin{aligned} P(c_j|w) &= \frac{P(w|c_j)P(c_j)}{P(w)} \\ &= \frac{P(c_j) \prod_{i=1}^{n} P(w_i|c_j)}{P(w)} \\ &\propto P(c_j) \prod_{i=1}^{n} P(w_i|c_j) \\ c &= \arg\max_{c_j} P(c_j) \prod_{i=1}^{n} P(w_i|c_j) \end{aligned} $$