部分转载: http://www.blogjava.net/zhenandaci/archive/2008/05/31/204646.html
作者:Jasper
文本分类(text categorization) 问题就是将一篇文档归入预先定义的几个类别中的一个或几个,而文本的自动分类则是使用计算机程序来实现这样的分类。 通俗点说,就好比你拿一篇文章,问计算机这文章要说的究竟是体育,经济还是教育,计算机答不上就打它的屁屁(……)。
注意这个定义当中着重强调的两个事实。
第一,用于分类所需要的类别体系是预先确定的。 例如新浪新闻的分类体系,Yahoo!网页导航的分类层次。这种分类层次一旦确定,在相当长的时间内都是不可变的,或者即使要变更,也要付出相当大的代价(基本不亚于推倒并重建一个分类系统)。
第二,一篇文档并没有严格规定只能被分配给一个类别。 这与分类这个问题的主观性有关,例如找10个人判断一篇文章所陈述的主题究竟属于金融,银行还是财政政策领域,10个人可能会给出10个不同的答案。因此一篇文章很可能被分配到多个类别当中,只不过分给某些类别让人信服,而有些让人感觉模棱两可罢了(说的专业点,置信度不一样)。
现在一说到文本分类,大部分人想当然的将这个问题简化为判断一篇文章说的是什么,这只是文本分类的一小部分应用,我们可以称之为“依据主题的分类”。实际上,文本分类还可以用于判断文章的写作风格,作者态度(积极?消极?),甚至判断作者真伪(例如看看《红楼梦》最后二十回到底是不是曹雪芹写的)。总而言之,凡是与文本有关,与分类有关,不管从什么角度出发,依据的是何特征,都可以叫做文本分类。
当然,目前真正大量使用文本分类技术的,仍是依据文章主题的分类,而据此构建最多的系统,当属搜索引擎。内里的原因当然不言自明,我只是想给大家提个醒,文本分类还不完全等同于网页分类。网页所包含的信息远比含于其中的文字(文本)信息多得多,对一个网页的分类,除了考虑文本内容的分类以外,链入链出的链接信息,页面文件本身的元数据,甚至是包含此网页的网站结构和主题,都能给分类提供莫大的帮助(比如新浪体育专栏里的网页毫无疑问都是关于体育的),因此说文本分类实际上是网页分类的一个子集也毫不为过。 当然,纯粹的文本分类系统与网页分类也不是一点区别都没有。文本分类有个重要前提:即只能根据文章的文字内容进行分类,而不应借助诸如文件的编码格式,文章作者,发布日期等信息。而这些信息对网页来说常常是可用的,有时起到的作用还很巨大!因此纯粹的文本分类系统要想达到相当的分类效果,必须在本身的理论基础和技术含量上下功夫。
下面我们看看F.Sebastiani (2002) 在 ACM Computing Surveys上发表的一篇论文《Machine Learning in Automated Text Categorization》中,用如下的数学模型来描述分类体系下的类别集合:
文本分类的任务可以理解为获得这样一个函数Φ: D×C -> {T , F} ,其中D={d1,d2,...,dx}表示需要进行分类的文档,C={c1,c2,...,cy}表示预定义的分类体系下的类别集合(或者可以说是训练语料中的类别集合)。T值表示对于
上面是计算机的分类系统的体系结构,没有自然语言处理基础的朋友可能很难看到这个分体系统。下面我们通俗点谈谈计算机分类方法。
分本分类方法
首先想想我们人类看到一篇文档之后,是如何能够确定这篇文本的类别呢?
很显然,我们要通读全文,然后根据文中大量的特征词来判断。比如下面这篇文章,标蓝的词语给我们了一种主观感觉,再加上标蓝词语在文章中还是比较多的,这就能让我们断定它是一篇NBA篮球方面的文章。
勒布朗-詹姆斯 、德维恩-韦德 和克 里斯-波什 的组合,能在新赛季 为迈阿密热火 带来期盼已久的总冠军 么?也许在纸面上,热火 的新三巨头是不可 战胜的,但如果深入研究如今球队 的阵容,不要说对比连续两年的卫冕冠军湖人 ,即便连东部的凯尔特人 ,热火 也难有胜算的优势。《DIME杂志》专家大卫-阿 尔瓦雷斯就撰文指出,即便热火 在休赛期 的运作足以震撼全世界,但他们足以击败联盟 所有对手了么?答案显然是:绝不可能。
当然,这有一个问题,如果我们完全就不知道NBA和篮球,那么再多的特征词也没用。因此,我们人类判断出来的准确度取决于我们的知识量和经验。也就是我们以前看到过很多这类文章,才能够保证我们人分类的正确性。
正是人类的这种分类方法,使得我们也让计算机的分类理论具备了一些类似的术语:
(1) 特征: 反映文本的内容,且具有对其他类别文本的区分能力。对于计算机而言,很多时候特征用具有特殊含义的词来表示。在自然语言处理领域,获取文本/类别特征的研究,我们叫做特征提取(feature extraction) 。
( 2) 训练: 不懂NBA的人自然也读不懂NBA的文章,计算机也是如此。因此我们必须为计算机建立一个类别的知识库(专业领域叫语料库 或知识词典 ),让计算机在这个知识库中学习,获取经验。这个过程也就是专业领域中讲到的机器学习(Machine Learning) 。在分类体系中,这个过程有时是不可或缺的,我们叫做训练 ,而用于训练的文本我们叫做训练语料 或训练集 。
(3) 文本表示: 计算机很难想人类一样,对文本具有概念上的感性表示。只能通过一种确定的形式化表示方法来表示文本,进而能够简单的处理文本内容。在自然语言处理领域中,常用的一种文本形式化表示模型叫做向量空间模型(VSM) 。
整个这样的一种计算机分类理论,我们叫做统计学习方法 (很多人叫机器学习方法 )。这是目前自然语言处理领域中最可靠,也是最流行的思想。
统计学习方法需要一批由人工进行了准确分类的文档作为学习的材料(称为训练集,注意由人分类一批文档比从这些文档中总结出准确的规则成本要低得多),计算机从这些文档中挖掘出一些能够有效分类的规则,这个过程被形象的称为训练。而总结出的规则集合常常被称为分类器。训练完成之后,需要对计算机从来没有见过的文档进行分类时,便使用这些分类器来进行。
现如今,统计学习方法已经成为了文本分类领域绝对的主流。主要的原因在于其中的很多技术拥有坚实的理论数学基础。