logo资料库

文本分类入门(完整版).docx

第1页 / 共27页
第2页 / 共27页
第3页 / 共27页
第4页 / 共27页
第5页 / 共27页
第6页 / 共27页
第7页 / 共27页
第8页 / 共27页
资料共27页,剩余部分请下载后查看
文本分类入门(一)文本分类问题的定义
文本分类入门(三)统计学习方法
文本分类入门(五)训练Part 2
文本分类入门(六)训练Part 3
文本分类入门(七)相关概念总结
文本分类入门(八)中英文文本分类的异同
文本分类入门(一)文本分类问题的定义 一个文本(以下基本不区分“文本”和“文档”两个词的含义)分类问题就是将一篇文档归入 预先定义的几个类别中的一个或几个,而文本的自动分类则是使用计算机程序来实现这样的 分类。通俗点说,就好比你拿一篇文章,问计算机这文章要说的究竟是体育,经济还是教育, 计算机答不上就打它的屁屁(……)。 注意这个定义当中着重强调的两个事实。 第一,用于分类所需要的类别体系是预先确定的。例如新浪新闻的分类体系,Yahoo! 网页导航的分类层次。这种分类层次一旦确定,在相当长的时间内都是不可变的,或者即使 要变更,也要付出相当大的代价(基本不亚于推倒并重建一个分类系统)。 第二,一篇文档并没有严格规定只能被分配给一个类别。这与分类这个问题的主观性有 关,例如找 10 个人判断一篇文章所陈述的主题究竟属于金融,银行还是财政政策领域,10 个人可能会给出 11 个不同的答案(聪明的读者,您应该能看出来并没有 11 个答案,这只 是一种修辞方法,笑),因此一篇文章很可能被分配到多个类别当中,只不过分给某些类别 让人信服,而有些让人感觉模棱两可罢了(说的专业点,置信度不一样)。 八股是一种写文章的格式,过去用于科举,现在用于科研,总之,和科学有点关系的文 章就得八股,鉴于我正锻炼自己写论文的能力,所以按照标准的格式,陈述了文本分类问题 的定义之后,我要说说它的应用范围。 现在一说到文本分类,大部分人想当然的将这个问题简化为判断一篇文章说的是什么, 这只是文本分类的一小部分应用,我们可以称之为“依据主题的分类”。实际上,文本分类还 可以用于判断文章的写作风格,作者态度(积极?消极?),甚至判断作者真伪(例如看看 《红楼梦》最后二十回到底是不是曹雪芹写的)。总而言之,凡是与文本有关,与分类有关, 不管从什么角度出发,依据的是何特征,都可以叫做文本分类。 当然,目前真正大量使用文本分类技术的,仍是依据文章主题的分类,而据此构建最多 的系统,当属搜索引擎。内里的原因当然不言自明,我只是想给大家提个醒,文本分类还不
完全等同于网页分类。网页所包含的信息远比含于其中的文字(文本)信息多得多,对一个 网页的分类,除了考虑文本内容的分类以外,链入链出的链接信息,页面文件本身的元数据, 甚至是包含此网页的网站结构和主题,都能给分类提供莫大的帮助(比如新浪体育专栏里的 网页毫无疑问都是关于体育的),因此说文本分类实际上是网页分类的一个子集也毫不为过。 当然,纯粹的文本分类系统与网页分类也不是一点区别都没有。文本分类有个重要前提:即 只能根据文章的文字内容进行分类,而不应借助诸如文件的编码格式,文章作者,发布日期 等信息。而这些信息对网页来说常常是可用的,有时起到的作用还很巨大!因此纯粹的文本 分类系统要想达到相当的分类效果,必须在本身的理论基础和技术含量上下功夫。 除了搜索引擎,诸如数字图书馆,档案管理等等要和海量文字信息打交道的系统,都用 得上文本分类。另外,我的硕士论文也用得上(笑)。 下一章和大家侃侃与文本分类有关的具体方法概览,有事您说话。 文本分类入门(二)文本分类的方法 文本分类问题与其它分类问题没有本质上的区别,其方法可以归结为根据待分类数据的某 些特征来进行匹配,当然完全的匹配是不太可能的,因此必须(根据某种评价标准)选择最 优的匹配结果,从而完成分类。 因此核心的问题便转化为用哪些特征表示一个文本才能保证有效和快速的分类(注意这 两方面的需求往往是互相矛盾的)。因此自有文本分类系统的那天起,就一直是对特征的不 同选择主导着方法派别的不同。 最早的词匹配法仅仅根据文档中是否出现了与类名相同的词(顶多再加入同义词的处理) 来判断文档是否属于某个类别。很显然,这种过于简单的方法无法带来良好的分类效果。 后来兴起过一段时间的知识工程的方法则借助于专业人员的帮助,为每个类别定义大量 的推理规则,如果一篇文档能满足这些推理规则,则可以判定属于该类别。这里与特定规则 的匹配程度成为了文本的特征。由于在系统中加入了人为判断的因素,准确度比词匹配法大 为提高。但这种方法的缺点仍然明显,例如分类的质量严重依赖于这些规则的好坏,也就是
依赖于制定规则的“人”的好坏;再比如制定规则的人都是专家级别,人力成本大幅上升常常 令人难以承受;而知识工程最致命的弱点是完全不具备可推广性,一个针对金融领域构建的 分类系统,如果要扩充到医疗或社会保险等相关领域,则除了完全推倒重来以外没有其他办 法,常常造成巨大的知识和资金浪费。 后来人们意识到,究竟依据什么特征来判断文本应当隶属的类别这个问题,就连人类自 己都不太回答得清楚,有太多所谓“只可意会,不能言传”的东西在里面。人类的判断大多依 据经验以及直觉,因此自然而然的会有人想到何让机器像人类一样自己来通过对大量同类文 档的观察来自己总结经验,作为今后分类的依据。 这便是统计学习方法的基本思想(也有人把这一大类方法称为机器学习,两种叫法只是 涵盖范围大小有些区别,均无不妥)。 统计学习方法需要一批由人工进行了准确分类的文档作为学习的材料(称为训练集,注 意由人分类一批文档比从这些文档中总结出准确的规则成本要低得多),计算机从这些文档 重挖掘出一些能够有效分类的规则,这个过程被形象的称为训练,而总结出的规则集合常常 被称为分类器。训练完成之后,需要对计算机从来没有见过的文档进行分类时,便使用这些 分类器来进行。 现如今,统计学习方法已经成为了文本分类领域绝对的主流。主要的原因在于其中的很 多技术拥有坚实的理论基础(相比之下,知识工程方法中专家的主观因素居多),存在明确 的评价标准,以及实际表现良好。 下一章就深入统计学习方法,看看这种方法的前提,相关理论和具体实现。 文本分类入门(三)统计学习方法 前文说到使用统计学习方法进行文本分类就是让计算机自己来观察由人提供的训练文档集, 自己总结出用于判别文档类别的规则和依据。理想的结果当然是让计算机在理解文章内容的 基础上进行这样的分类,然而遗憾的是,我们所说的“理解”往往指的是文章的语义甚至是语 用信息,这一类信息极其复杂,抽象,而且存在上下文相关性,对这类信息如何在计算机中
表示都是尚未解决的问题(往大里说,这是一个“知识表示”的问题,完全可以另写一系列文 章来说了),更不要说让计算机来理解。 利用计算机来解决问题的标准思路应该是:为这种问题寻找一种计算机可以理解的表示 方法,或曰建立一个模型(一个文档表示模型);然后基于这个模型,选择各方面满足要求 的算法来解决。用谭浩强的话说,程序,就是数据+算法。(啥?你不知道谭浩强是谁?上 过学么?学过 C 么?这捣什么乱?) 既然文本的语义和语用信息很难转换成计算机能够理解的表示形式,接下来顺理成章的, 人们开始用文章中所包含的较低级别的词汇信息来表示文档,一试之下,效果居然还不错。 统计学习方法进行文本分类(以下就简称为“统计学习方法”,虽然这个方法也可以应用 到除文本分类以外的多个领域)的一个重要前提由此产生,那就是认为:文档的内容与其中 所包含的词有着必然的联系,同一类文档之间总存在多个共同的词,而不同类的文档所包含 的词之间差异很大[1]。 进一步的,不光是包含哪些词很重要,这些词出现的次数对分类也很重要。 这一前提使得向量模型(俗称的 VSM,向量空间模型)成了适合文本分类问题的文档 表示模型。在这种模型中,一篇文章被看作特征项集合来看,利用加权特征项构成向量进行 文本表示,利用词频信息对文本特征进行加权。它实现起来比较简单,并且分类准确度也高, 能够满足一般应用的要求。[5] 而实际上,文本是一种信息载体,其所携带的信息由几部分组成:如组成元素本身的信 息(词的信息)、组成元素之间顺序关系带来的信息以及上下文信息(更严格的说,还包括 阅读者本身的背景和理解)[12]。 而 VSM 这种文档表示模型,基本上完全忽略了除词的信息以外所有的部分,这使得它 能表达的信息量存在上限[12],也直接导致了基于这种模型构建的文本分类系统(虽然这是 目前绝对主流的做法),几乎永远也不可能达到人类的分类能力。后面我们也会谈到,相比 于所谓的分类算法,对特征的选择,也就是使用哪些特征来代表一篇文档,往往更能影响分 类的效果。
对于扩充文档表示模型所包含的信息量,人们也做过有益的尝试,例如被称为 LSI(L atent Semantic Index 潜在语义索引)的方法,就被实验证明保留了一定的语义信息(之 所以说被实验证明了,是因为人们还无法在形式上严格地证明它确实保留了语义信息,而且 这种语义信息并非以人可以理解的方式被保留下来),此为后话。 前文说到(就不能不用这种老旧的说法?换换新的,比如 Previously on "Prison Brea k",噢,不对,是 Previously on Text Categorizaiton……)统计学习方法其实就是一个两 阶段的解决方案,(1)训练阶段,由计算机来总结分类的规则;(2)分类阶段,给计算 机一些它从来没见过的文档,让它分类(分不对就打屁屁)。 下一章就专门说说训练阶段的二三事。 文本分类入门(四)训练 Part 1 训练,顾名思义,就是 training(汗,这解释),简单的说就是让计算机从给定的一堆文 档中自己学习分类的规则(如果学不对的话,还要,打屁屁?)。 开始训练之前,再多说几句关于 VSM 这种文档表示模型的话。 举个例子,假设说把我正在写的“文本分类入门”系列文章的第二篇抽出来当作一个需要 分类的文本,则可以用如下的向量来表示这个文本,以便于计算机理解和处理。 w2=(文本,5,统计学习,4,模型,0,……) 这个向量表示在 w2 所代表的文本中,“文本”这个词出现了 5 次(这个信息就叫做词频), “统计学习”这个词出现了 4 次,而“模型”这个词出现了 0 次,依此类推,后面的词没有列出。 而系列的第三篇文章可以表示为 w3=(文本,9,统计学习,4,模型,10,……) 其含义同上。如果还有更多的文档需要表示,我们都可以使用这种方式。
只通过观察 w2 和 w3 我们就可以看出实际上有更方便的表示文本向量的方法,那就是 把所有文档都要用到的词从向量中抽离出来,形成共用的数据结构(也可以仍是向量的形式), 这个数据结构就叫做词典,或者特征项集合。 例如我们的问题就可以抽离出一个词典向量 D=(文本,统计学习,模型,……) 所有的文档向量均可在参考这个词典向量的基础上简化成诸如 w2=(5,4,0,……) w3=(9,4,10,……) 的形式,其含义没有改变。 5,4,10 这些数字分别叫做各个词在某个文档中的权重,实际上单单使用词频作为权 重并不多见,也不十分有用,更常见的做法是使用地球人都知道的 TF/IDF 值作为权重。(关 于 TF/IDF 的详细解释,Google 的吴军研究员写了非常通俗易懂的文章,发布于 Google 黑 板报,链接地址是 http://googlechinablog.com/2006/06/blog-post_27.html,有兴趣不妨一 读)TF/IDF 作为一个词对所属文档主题的贡献程度来说,是非常重要的度量标准,也是将 文档转化为向量表示过程中的重要一环。 在这个转化过程中隐含了一个很严重的问题。注意看看词典向量 D,你觉得它会有多大? 或者说,你觉得它会包含多少个词? 假设我们的系统仅仅处理汉语文本,如果不做任何处理,这个词典向量会包含汉语中所 有的词汇,我手头有一本商务印书馆出版的《现代汉语词典》第 5 版(2005 年 5 月出版), 其中收录了 65,000 个词,D 大致也应该有这么大,也就是说,D 是一个 65,000 维的向 量,而所有的文本向量 w2,w3,wn 也全都是 65,000 维的!(这是文本分类这一问题本身 的一个特性,称为“高维性”)想一想,大部分文章仅仅千余字,包含的词至多几百,为了表 示这样一个文本,却要使用 65,000 维的向量,这是对存储资源和计算能力多大的浪费呀!
(这又是文本分类问题的另一个特性,称为“向量稀疏性”,后面会专门有一章讨论这些特性, 并指出解决的方法,至少是努力的方向) 中国是一个人口众多而资源稀少的国家,我们不提倡一味发展粗放型的经济,我们所需 要的可持续发展是指资源消耗少,生产效率高,环境污染少……跑题了…… 这么多的词汇当中,诸如“体育”,“经济”,“金融”,“处理器”等等,都是极其能够代表文 章主题的,但另外很多词,像“我们”,“在”,“事情”,“里面”等等,在任何主题的文章中都很 常见,根本无法指望通过这些词来对文本类别的归属作个判断。这一事实首先引发了对文本 进行被称为“去停止词”的预处理步骤(对英文来说还有词根还原,但这些与训练阶段无关, 不赘述,会在以后讲述中英文文本分类方法区别的章节中讨论),与此同时,我们也从词典 向量 D 中把这些词去掉。 但经过停止词处理后剩下的词汇仍然太多,使用了太多的特征来表示文本,就是常说的特征 集过大,不仅耗费计算资源,也因为会引起“过拟合问题”而影响分类效果[22]。 这个问题是训练阶段要解决的第一个问题,即如何选取那些最具代表性的词汇(更严格 的说法应该是,那些最具代表性的特征,为了便于理解,可以把特征暂时当成词汇来想象)。 对这个问题的解决,有人叫它特征提取,也有人叫它降维。 特征提取实际上有两大类方法。一类称为特征选择(Term Selection),指的是从原有 的特征(那许多有用无用混在一起的词汇)中提取出少量的,具有代表性的特征,但特征的 类型没有变化(原来是一堆词,特征提取后仍是一堆词,数量大大减少了而已)。另一类称 为特征抽取(Term Extraction)的方法则有所不同,它从原有的特征中重构出新的特征(原 来是一堆词,重构后变成了别的,例如 LSI 将其转为矩阵,文档生成模型将其转化为某个概 率分布的一些参数),新的特征具有更强的代表性,并耗费更少的计算资源。(特征提取的 各种算法会有专门章节讨论) 训练阶段,计算机根据训练集中的文档,使用特征提取找出最具代表性的词典向量(仍 然是不太严格的说法),然后参照这个词典向量把这些训练集文档转化为向量表示,之后的
所有运算便都使用这些向量进行,不再理会原始的文本形式的文档了(换言之,失宠了,后 后)。 下一章继续训练,咱们之间还没完。(怎么听着像要找人寻仇似的) 文本分类入门(五)训练 Part 2 将样本数据成功转化为向量表示之后,计算机才算开始真正意义上的“学习”过程。 再重复一次,所谓样本,也叫训练数据,是由人工进行分类处理过的文档集合,计算机 认为这些数据的分类是绝对正确的,可以信赖的(但某些方法也有针对训练数据可能有错误 而应对的措施)。接下来的一步便是由计算机来观察这些训练数据的特点,来猜测一个可能 的分类规则(这个分类规则也可以叫做分类器,在机器学习的理论著作中也叫做一个“假设”, 因为毕竟是对真实分类规则的一个猜测),一旦这个分类满足一些条件,我们就认为这个分 类规则大致正确并且足够好了,便成为训练阶段的最终产品——分类器!再遇到新的,计算 机没有见过的文档时,便使用这个分类器来判断新文档的类别。 举一个现实中的例子,人们评价一辆车是否是“好车”的时候,可以看作一个分类问题。 我们也可以把一辆车的所有特征提取出来转化为向量形式。在这个问题中词典向量可以为: D=(价格,最高时速,外观得分,性价比,稀有程度) 则一辆保时捷的向量表示就可以写成 vp=(200 万,320,9.5,3,9) 而一辆丰田花冠则可以写成 vt=(15 万,220,6.0,8,3) 找不同的人来评价哪辆车算好车,很可能会得出不同的结论。务实的人认为性价比才是 评判的指标,他会认为丰田花冠是好车而保时捷不是;喜欢奢华的有钱人可能以稀有程度来 评判,得出相反的结论;喜欢综合考量的人很可能把各项指标都加权考虑之后才下结论。
分享到:
收藏