文/soso 张立明
1. 技术背景
分类问题是人类所面临的一个非常重要且具有普遍意义的问题。将事物正确的分类,有助于人们认识世界,使杂乱无章的现实世界变得有条理。自动文本分类就是对大量的自然语言文本按照一定的主题类别进行自动分类,它是自然语言处理的一个十分重要的问题。文本分类主要应用于信息检索,机器翻译,自动文摘,信息过滤,邮件分类等任务。文本分类的一个关键问题是特征词的选择问题及其权重分配。
在搜索引擎中,文本分类主要有这些用途:相关性排序会根据不同的网页类型做相应的排序规则;根据网页是索引页面还是信息页面,下载调度时候会做不同的调度策略;在做页面信息抽取的时候,会根据页面分类的结果做不同的抽取策略;在做检索意图识别的时候,会根据用户所点击的url所属的类别来推断检索串的类别等等。
2. 自动分类的原理和步骤
在分类的时候首先会遇到文档形式化表示的问题,文档模型有3种:向量空间模型,布尔模型和概率模型,其中我们常用的是向量空间模型。向量空间模型的核心描述如下:
其中特征选取是文本表示的关键, 方法包括:文档频率法(DF)、信息增益法和互信息法等等。
在做特征选取之前,一般还要进行预处理的工作,要对先对网页降噪。另外在实际的分类中,除了利用文档的内容特征之外,可能还会用到实际应用中所特有的特征,比如在网页分类中,可能用到url的特征、html的结构特征和标签特征等信息。
分类的基本步骤是这样的:定义分类体系,将预先分类过的文档作为训练集,从训练集中得出分类模型,然后用训练获得出的分类模型对其它文档加以分类。
3. 常用的分类算法
文档自动分类是学术界研究多年,技术上比较成熟的一个领域。目前分类算法主要分下面这些:
其中比较常用的是:支持向量机(SVM)方法、朴素贝叶斯(NB)方法、神经网络(NN)方法、K近邻(KNN)方法、决策树(Decision Tree)方法等。
贝叶斯公式:P(C|X)*P(X)=P(X|C)*P(C)
特征向量:X=(x1,x2,x3…) C={C1,C2,……}
其中P(C)是每个类别的先验概率,即,互联网上各个分类所占总页面的比例
P(X|C):条件概率,表示在类别为C的训练集合中,X的分布情况。
P(X):每个特征值的分布,由于特征值的分布是随机的,所以P(X)相等
通过我们对现实网页的分类测试情况看,这些方法中SVM方法的效果是比较好的,但是性能不高; 朴素贝叶斯的分类效果虽然略差于SVM,但是性能上要好很多。
4. 网页分类应用
4.1 分类算法
实际应用中, 除了分类效果外, 速度是一个需要重点考虑的因素。
4.2 分类类别
在搜索引擎中, 在不同的应用场景下, 会有不同的分类的标准, 比如在链接调度中需要信息页、索引页这样的分类,不同类型的页面更新调度的周期不一样;排序对分类的要求又不同, 比如按表现形式分图片、视频等;按网站类型分为论坛、博客等,不同类型的页面抽取策略也会不尽相同;再按内容主题分成小说、招聘和下载等类别。对网页从多个维度进行分类,能更好给用户提供更为贴切的检索结果。
4.3 特征选取
在学术研究中, 一般比较重视分类算法的研究,在特征选择上比较忽视。传统的特征选择一般是用TF*IDF等方法选择内容关键字等,这也是我们使用的一个重要因子, 但是除内容特征之外,我们还会用到很多其它特征,比如:网站特征、html特征和url特征等,这些特征会明显的提高分类的准确率和召回率。