基于信息检索课程,完成实现了一个文本分类系统,现记录一下整个实现过程。
文本分类以文本数据为分类对象,本质上是机器学习方法在信息检索领域的一种应用,可以继承机器学习领域的很多概念和方法,但同时也需要结合信息检索领域的特点进行处理。主要研究的方向是:文本分词方法、文本特征提取方法、分类算法。
本人主要使用了5种常用的分类算法,分别是kNN、Rocchio、NBC、SVM和ANN,对每种算法的结果进行了比较,使用了十折交叉验证绘制了各自的准确率曲线。由于本系统基于的搜狗语料库,是中文文本,因此使用的分词工具是Python实现的中文分词工具jieba。使用的特征提取方法是信息增益。
1、语料
选择搜狗语料库的Reduced版本,一共有9个类别每个类别1990篇文章。考虑到实现规模,从每个类别中选择了600篇文档一共5400篇文档作为训练样本。共有9个类别,标号对应如下:(搜狗语料类别– 分类标号 – 类别名称)
- C000008—— 1 —— 财经
- C000010—— 2 —— IT
- C000013—— 3 —— 健康
- C000014—— 5 —— 体育
- C000016—— 4 —— 旅游
- C000020—— 6 —— 教育
- C000022