学习方法:使用样例(或称样本,训练集)来合成计算机程序的过程称为学习方法[22]。
监督学习:学习过程中使用的样例是由输入/输出对给出时,称为监督学习[22]。最典型的监督学习例子就是文本分类问题,训练集是一些已经明确分好了类别文档组成,文档就是输入,对应的类别就是输出。
非监督学习:学习过程中使用的样例不包含输入/输出对,学习的任务是理解数据产生的过程 [22]。典型的非监督学习例子是聚类,类别的数量,名称,事先全都没有确定,由计算机自己观察样例来总结得出。
TSR(Term Space Reduction):特征空间的压缩,即降维,也可以叫做特征提取。包括特征选择和特征抽取两大类方法。
分类状态得分(CSV,Categorization Status Value):用于描述将文档归于某个类别下有多大的可信度。
准确率(Precision):在所有被判断为正确的文档中,有多大比例是确实正确的。
召回率(Recall):在所有确实正确的文档中,有多大比例被我们判为正确。
假设:计算机对训练集背后的真实模型(真实的分类规则)的猜测称为假设。可以把真实的分类规则想像为一个目标函数,我们的假设则是另一个函数,假设函数在所有的训练数据上都得出与真实函数相同(或足够接近)的结果。
泛化性:一个假设能够正确分类训练集之外数据(即新的,未知的数据)的能力称为该假设的泛化性[22]。
一致假设:一个假设能够对所有训练数据正确分类,则称这个假设是一致的[22]。
过拟合:为了得到一致假设而使假设变得过度复杂称为过拟合[22]。想像某种学习算法产生了一个过拟合的分类器,这个分类器能够百分之百的正确分类样本数据(即再拿样本中的文档来给它,它绝对不会分错),但也就为了能够对样本完全正确的分类,使得它的构造如此精细复杂,规则如此严格,以至于任何与样本数据稍有不同的文档它全都认为不属于这个类别!
超平面(Hyper Plane):n维空间中的线性函数唯一确定了一个超平面。一些较直观的例子,在二维空间中,一条直线就是一个超平面;在三维空间中,一个平面就是一个超平面。
线性可分和不可分:如果存在一个超平面能够正确分类训练数据,并且这个程序保证收敛,这种情况称为线形可分。如果这样的超平面不存在,则称数据是线性不可分的[22]。
正样本和负样本:对某个类别来说,属于这个类别的样本文档称为正样本;不属于这个类别的文档称为负样本。
规划:对于目标函数,等式或不等式约束都是线性函数的问题称为线性规划问题。对于目标函数是二次的,而约束都是线性函数的最优化问题称为二次规划问题[22]。
对偶问题:
给定一个带约束的优化问题
目标函数:min f(x)
约束条件:C(x) ≥0
可以通过拉格朗日乘子构造拉格朗日函数
L(x,λ)=f(x)- λTC(x)
令g(λ)= f(x)- λTC(x)
则原问题可以转化为
目标函数:max g(λ)
约束条件:λ≥0
这个新的优化问题就称为原问题的对偶问题(两个问题在取得最优解时达到的条件相同)。
从文本分类系统的处理流程来看,无论待分类的文本是中文还是英文,在训练阶段之前都要经过一个预处理的步骤,去除无用的信息,减少后续步骤的复杂度和计算负担。
对中文文本来说,首先要经历一个分词的过程,就是把连续的文字流切分成一个一个单独的词汇(因为词汇将作为训练阶段“特征”的最基本单位),例如原文是“中华人民共和国今天成立了”的文本就要被切分成“中华/人民/共和国/今天/成立/了”这样的形式。而对英文来说,没有这个步骤(更严格的说,并不是没有这个步骤,而是英文只需要通过空格和标点便很容易将一个一个独立的词从原文中区分出来)。中文分词的效果对文本分类系统的表现影响很大,因为在后面的流程中,全都使用预处理之后的文本信息,不再参考原始文本,因此分词的效果不好,等同于引入了错误的训练数据。分词本身也是一个值得大书特书的问题,目前比较常用的方法有词典法,隐马尔科夫模型和新兴的CRF方法。
预处理中在分词之后的“去停止词”一步对两者来说是相同的,都是要把语言中一些表意能力很差的辅助性文字从原始文本中去除,对中文文本来说,类似“我们”,“在”,“了”,“的”这样的词汇都会被去除,英文中的“ an”,“in”,“the”等也一样。这一步骤会参照一个被称为“停止词表”的数据(里面记录了应该被去除的词,有可能是以文件形式存储在硬盘上,也有可能是以数据结构形式放在内存中)来进行。
对中文文本来说,到此就已初审合格,可以参加训练了(笑)。而英文文本还有进一步简化和压缩的空间。我们都知道,英文中同一个词有所谓词形的变化(相对的,词义本身却并没有变),例如名词有单复数的变化,动词有时态的变化,形容词有比较级的变化等等,还包括这些变化形式的某种组合。而正因为词义本身没有变化,仅仅词形不同的词就不应该作为独立的词来存储和和参与分类计算。去除这些词形不同,但词义相同的词,仅保留一个副本的步骤就称为“词根还原”,例如在一篇英文文档中,经过词根还原后,“computer”,“compute”,“computing”,“computational”这些词全都被处理成“compute”(大小写转换也在这一步完成,当然,还要记下这些词的数目作为compute的词频信息)。
经过预处理步骤之后,原始文档转换成了非常节省资源,也便于计算的形式,后面的训练阶段大同小异(仅仅抽取出的特征不同而已,毕竟,一个是中文词汇的集合,一个是英文词汇的集合嘛)。
下一章节侃侃分类问题本身的分类。