文本分类的常见方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
文本分类的过程:
(1) 选择训练文本。好的训练文本对分类器的最终结果起到至关重要的作用。 (2) 选择文本特征。 对训练样本和测试样本进行数据预处理,包括分词、去停用词、 消除噪音等。目前的文本分类研究,主要选取一些具有代表性的词、词组、短语来表示文本。
(3) 建立文本表示模型。 为了便于计算机理解和计算相关的文本属性,需要对文本 进行表示,其中向量空间模型(Vector Space Model VSM)运用最为广泛。
(4) 选择分类方法。 文本分类的核心部分,不同的分类方法原理不同需要处理的数 据也不同。经典分类算法有朴素贝叶斯(Naive Bayes NB)、K-近邻(K-Nearest Neighbor KNN)、决策树(Decision Tree DTree)、算数平均质心(Arithmetical Average Centroid AAC)、支持向量机(Support Vector Machine SVM)。
(5) 分类结果的评估。 目前主流的评估标准准确率、召回率和F1值。
选择文本特征
我们需要将文档转换为计算机可以衡量、运算的形式。现在运用最广泛的形式:将文档映射入向量空间。具体流程如图1。
这样就将一篇文章映射成了为了向量空间中的一个向量。在把文章都映射完成后,我们可以根据自己不同的需求,在向量空间中进行运算。比如计算两篇文章的相似度:我们把向量的起点都映射到原点,则我们可以比较向量的长度、向量的夹角、向量两个终点的距离等等;我们还可以宏观的观察大量的向量在向量空间中的分布情况,对大量聚集在一起的向量抽取它们的共性:计算他们的中心、他们整体的方向等。其实数学模型很好,只不过限于计算机的存储、运算水平,向量空间的维度过高、文档数量过大、计算复杂度过高会使得模型的计算机实现变得困难,我们不得不进行简化:向量空间维度降低、较低复杂度的计算分析方法等等。而根据简化的合理程度,影响我们得到的结果质量。
向量空间的降维则需要进行特征项的筛选:筛选方法有五种:文档频率、信息增益、期望交叉熵、互信息、开放检验。就好像在软件开发阶段越早引入缺陷后期的Bug数量越多一样,上游的污染源造成的危害要大得多。如果我们要对数据源进行筛选,则筛选的规则一定要是非常严谨合理的,正确的数据合理的算法才有可能得到好的结果。
文档频率Document Frequence特征在特征集中出现的文档数目过多,则不能很好的区分不同的类别;特征在特征集中出现的文档数目过少,则它不具备很好的代表性。我们统计单词的出现频率,将频率过高和过低的词语过滤掉。
信息增益
其中c表示文档类别t表示特征项,描述的是在特征项t的前提下确定文档属于c的概率,表征的是该文档使用特征项t来区分类别c的能力。(其实三项加和的首项不太明白什
么意思,而且在特征项的筛选阶段,即尚未计算分类的情况下文档类别c是怎么回事?)这里首项表示整个事件的信息量,也可以认为它表示整个事件的未知程度,或者叫做消除整个事件的位置性,需要的信息量,比如该事件有8种等可能的情况,则我们要确定该事件具体出现哪种情况,则需要3的信息量;而若有两种等可能的情况,则要1的信息量。感性来讲,2猜1,要比8猜1容易的多。
具体到公式,后边的对数部分表示信息的量化过程,说的是比如我们要表示两个数,需要一位,而要表示八个数,需要3位;因为对数函数在0~正无穷是递增函数,但在0~1
之间函数值为负数,所以我们添加负号将值映射到> 0区间。
这里互信息,表示知道某些条件之后,事情的不确定性降低的程度。衡量的是情报的优劣。举个简单的例子,这就好像我们玩竞猜游戏,随着主持人对某件事情描述信息的增多,我们渐渐可以准确判断某件事情,而主持人的描述信息中有些很关键,有些则相对平淡,这里主持人的关键描述的互信息就比较高:因为可以很大程度消除事物的不确定性。
这里信息增益考虑的比较全面,它考虑了条件t发生和没有发生对整个事件的影响状况,分为两部分,第一部分为条件t发生时,对整个事件的熵的影响;第二部分为确定条件t不发生时,整个事件的熵。首先是让t发生之后,计算在t的条件下能够推断属于类别ci的概率。这里具体到文本分类则为,特征项t的出现与否,在t出现后确定这篇文章属于类别c
的概率是多少。就是看t的出现对该文档属于哪一个类别的判定出现了哪些影响;并且信息增益不仅考虑可相关情况,也考虑了负相关的状况,在t确定不出现时,它对该文档的类别判定又能起到什么效果。这样综合考量t的效果。不过这里也有个问题就P(t)表示特征项的出现与否可能并不合适,这里我们可以设置阈值,具体计算出现> 某个次数我们认为它表示出现。
至于特征项筛选中多次提到的类别c我们认为这是训练样本已知的,即有监督的分类,我们将事先分类好的样本来训练分类器,期望能够训练出好的分类器。
期望交叉熵
表示已知文档中出现了t 特征,则能确定该文档为类别c 的概率。我们能看到公式与t 条件下为类别c 的条件概率成正比,与无已知条件,文档为类别c 的概率成反比。简单来说就是,如果公式的计算值很大,则特征t 信息量很大,能够帮助我们确定该文档属于类别c 这种小概率事件。(很大、
很小,公式取到较大值)
互信息
类别c 的文档集合出现特征t 的文档集合
类别C 的文档集合出现特征t 的文档集合
A B
C B
C A
两个圆我们可以把它看作两个集合,分别为类别c 的文档集合以及出现特征t 的文档集合,则公式中的A 、B 、C 可以用两圆相交形成的三部分表示。可见两者相交部分越多A 越大,公式的分子越大,分母越小,函数值越大。即文档c 和类别t 的关联程度高。
开放检验
两个圆和上边的含义相同,分成的四个集合分别为A 、B 、C 、D 。强调的是特征的负相关特性,即表示出现特征t 时,不属于类别c 的概率较大。
开放检验与信息增益相同,都是考虑了事物的两个方面。这里我们举例来阐述公式的由来。
A B
C D
这里我们假设考虑词汇“篮球”和体育类新闻的关系,其中: A 表示体育类新闻中出现篮球的新闻集合; B 表示体育类中没有出现篮球的集合; C 表示出现词汇篮球但是非体育类的集合; D 表示非体育类新闻未出现篮球的集合。 A+B 表示体育类总数;