摘 要:本文主要是分析了中文文本分类所要用到的算法和技术,给出了一个可行的中文文本分类系统的基本构架。
关键词:文本自动分类技术,分词,特征提取,向量映射,机器学习
1. 引言
文本自动分类最初是应信息检索(Information Retrieval)系统的要求出现的。文本自动分类系统的目的就是对文本集进行有序组织,把相似的、相关的文本组织在一起。它作为知识的组织工具,为信息检索提供了更高效的搜索策略和更准确的查询结果。现有文本自动分类技术主要有基于知识库(专家系统)方法和归纳学习方法(基于词典的方法)。目前比较常用的是基于词典的方法,即通过已知类别的训练集构造出一个分类函数或分类模型(分类器),并利用此分类模型将未知的文档映射到给定的类别空间。本文根据中文文本分类所要用到的算法和技术,给出了一个可行的中文文本分类系统的基本构架,并给出了详细的系统设计方案。其中文本分类的关键是如何构造分类函数(也称为分类器),将未知文本与给定的类别模板进行匹配。目前有许多种分类器的构造方法,如统计方法、机器学习方法、神经网络方法等。其中基于关键词匹配的机器学习算法是网页文本自动分类的主流。机器学习算法主要有Naive Bayes算法、KNN(k-近邻算法)、SVM(支持向量机)等。本系统在文本处理的过程中,将采用SVM分类算法,将文本映射到向量空间进行表示。
2. 系统设计目标
(1)本系统的主要目的是实现一个面向中文的文本分类系统。主要处理两类事务:
对样本数据进行学习,生成分类器的内部表示。在这个事务的处理过程中,系统要协调分词模块对训练样本进行预处理,生成规范的文本表示。接着要协调特征提取模块提取适当数量的特征生成基础词典。然后调用向量映射模块将文本表示为向量,最后提供给支持向量机进行学习。
利用生成好的分类器对未知测试文本进行分类。在这个事务的处理过程中,系统要打开上一个事物生成的中间数据——基础词典,协调向量映射模块利用词典把文本表示成向量,然后用分类器对文本进行分类。
(2)对应系统的两类事物,系统的输入也分为两类:
训练文本集:已经由人工分好类的一系列中文文本的集合,每类文本赋予一个分类标签。这些文本可以是原始文本数据,也可以是经过预处理后,只剩下词干的预处理格式。
测试文本集:待分类的一系列中文文本的集合,这类文本可以没有分类标签,也可以有分类标签。如果没有分类标签则用系统进行分类。如果有分类标签则可用来验证系统分类的准确度。
(3)系统的中间数据。通过前面对系统两类事务流程的描述,可以看到有如下数据输出:
基础词典。这个数据集是向量空间模型中基础维的表示。它包含了系统用来将文本表示为向量时选取的特征词根。同时它也存储了特征词根在训练文本中的基本统计数据:词根出现的文档数目;词根在每类中出现的文档数目。
训练文本的向量表示。这个数据集是训练文本用基础词典在向量空间模型下映射的向量表示。它可以被支持向量机读取并学习。
分类器模型。这个数据集是支持向量机学习后生成的分类器。它包含了能将文本进行分类的源数据。
分类标签。这个数据集是系统对测试文本集分类后的分类标签。
3.系统设计思想
在一个中文文本分类系统的实现过程中,有分词、特征提取、向量表示和机器学习四个主要步骤。在每个步骤中多存在着许多不同的策略和实现方案。在本系统的实现过程中,希望能够兼容不同的策略,并提供一定的方案由用户进行扩展。
出于对上面要求的考虑,主要采用Bridge(桥梁模式)和Listenner(监听器模式)。
在流程耦合度低处,使用Bridge模式(如图1),为每个步骤提供一个抽象化(Abstraction)角色,同时提供不同实现和不同策略实现化(Implementor)角色。通过这个模式的应用做到了对不同策略的兼容和提供可扩展性的接口。
图1:Bridge模式
在流程耦合度较高处,使用监听器模式,将特定步骤抽象成监听器,进而将步骤独立出来。再通过监听器的不同实现完成不同策略的异构。
4.总体设计
本系统由分词模块、特征提取、向量映射模块,SVM学习模块和SVM分类模块五部分组成。总体框架设计如图2:
图2:系统总体设计图
本系统主要流程就是对数据的加工处理,每个模块都有自己的输入和输出,各模块间相互独立,以各自的输入、输出数据进行链接。流程1为分类系统的训练过程,流程2为分类系统的分类过程。词条字典、训练文档向量表示、测试向量文档表示是流程中间数据,SVM分类器和分类标签是最终数据输出结果。
5.各模块功能描述
分词模块:对中文文本进行分词
输入输出:模块输入为中文文本,输出为文本分词表。
特征提取模块:对给出文本建立向量空间模型,并进行特征提取和维度压缩,生成字典
输入输出:模块输入为分词表,输出为词条字典。
向量映射模块:按照词条字典把中文文本映射为向量表示形式。
输入输出:模块输入为文本分词列表和词条字典,输出为文档向量表示。
SVM学习模块:用SVM对向量和字典进行学习,生成学习模型。
输入输出:模块输入向量表示的文本训练集,输出为训练SVM分类器。
SVM分类模块:用SVM学习模块的训练得分类器对测试文本进行分类。
输入输出:模块输入为SVM分类器和测试文本的向量表示,输出为分类标签。
6.结束语
中文文本的自动分类是中文信息处理领域中的重要研究课题。本文对中文文本分类技术做了初步的探讨,给出一个基于中文文本自动分类系统分析。首先,分析系统的输入、输出以及中间过程,从而明确系统的设计目标。接着进一步解析系统内部的组织结构,形成统一的设计思想。最后,结合这些分析给出一个系统的框架的设计。按照该系统的设计思想和进一步的详细设计可以搭建一个相对系统化、功能较为全面、具有较高效率的中文文本自动分类系统平台。由于整个系统涵盖的范围较大,设计到的技术细节多,在很多实现细节上采用了比较简单的方法,以便于整个系统的顺利实现。今后在很多方面还需要继续进行深入的研究,以提高整个文本自动分类过程的识别准确率。
本文作者创新点:对中文文本自动分类系统进行分析给出一个系统框架设计,按系统设计思想和进一步的详细设计可搭建相对较高效率的中文文本自动分类系统平台。
作者对本文版权全权负责,无抄袭
参考文献:
. 现代图书情报技术,2005,(10).