文本分类
文本分类的部分主要分成三个内容:文本表示、特征选择、分类算法
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} $$