二. 中文文本分类技术和流程
1. 预处理:去除文本的噪声信息,例如 HTML 标签,文本格式转换,检测句 子边界等等;
2. 中文分词:使用中文分词器为文本分词,并去除停用词;
3. 构建词向量空间:统计文本词频,生成文本的词向量空间;
4. 权重策略--TF-IDF 方法:使用 TF-IDF 发现特征词,并抽取为反映文档主题 的特征;
5. 分类器:使用算法训练分类器
常用的文本分类方法有 kNN 最近邻算法,朴素贝叶斯算法和支持向量机算法。 这三类算法一般而言 kNN 最近邻算法的原理最简单,分类精度尚可,但是速度最慢;
朴素贝叶斯对于短文本分类的效果最好,精度很高;支持向量机的优势是支持线性不 可分的情况,精度上取中。
6. 评价分类结果:分类器的测试结果分析
一般机器学习领域的算法评估有三个基本的指标:
召回率:(Recall Rate,也叫查全率)是检索出的相关文档数和文档库中所有的相关文 档数的比率,衡量的是检索系统的查全率;
召回率(Recall)=系统检索到的相关文件/系统所有相关的文件总数
准确率(Precision,也称为精度):是检索出的相关文档数与检索出的文档总数的比率, 衡量的是检索系统的查准率。
准确率(Precision) =系统检索到的相关文件/系统所有检索到的文件总数
准确率和召回率是互相影响的,理想情况下肯定是做到两者都高,但是一 般情况下准确率高、召回率就低,召回率高、准确率就低。
召回率与准确率的关系如下图:
Fβ- Measure(又称为 F-Score): 是机器学习领域的常用的一个评价标准,计算公式 为:
其中 β 是参数,P 是准确率(Precision),R 是召回率(Recall)。
F1-Measure:
当参数 β=1 时,就是最常见的 F1-Measure 了:
文本分类项目的分类结果评估:
import numpyas np from sklearn import metrics # 定义分类精度函数: def metrics_result(actual,predict): print '精度:{0:.3f}'.format(metrics.precision_score(actual,predict)) print '召回:{0:0.3f}'.format(metrics.recall_score(actual,predict)) print 'f1-score:{0:.3f}'.format(metrics.f1_score(actual,predict)) metrics_result(test_set.label,predicted)
下一篇将介绍朴素贝叶斯算法的基本原理和简单的 Python 实现。
参考资料:
《机器学习算法原理与编程实践》(郑捷 著)