qyfang / TextClassification

基于scikit-learn实现对新浪新闻的文本分类,数据集为100w篇文档,总计10类,测试集与训练集1:1划分。分类算法采用SVM和Bayes,其中Bayes作为baseline。
100 stars 21 forks source link
data-mining scikit-learn svm text-classification

新浪新闻文本分类

语料库构建

本项目的语料来源新浪新闻网,通过 spider.py 爬虫模块获得全部语料,总计获得10类新闻文本,每一类新闻文本有10w篇。

数据预处理

本项目的数据预处理包括:分词处理,去噪,向量化,由 stopwords.py 模块、text2term.py 模块、vectorizer.py 模块实现。

filter_pattern = re.compile(ur'[-+]?[\w\d]+|零|一|二|三|四|五|六|七|八|九|十|百|千|万|亿')

朴素贝叶斯分类

本项目使用朴素贝叶斯作为本项目文本分类的baseline,由 baseline.py 模块实现。

SVM分类

本项目使用SVM作为最终的文本分类器,由 svm.py 模块实现其中SVM的核函数选用线性核,特征矩阵投入训练前经过词频加权.

可视化

比较SVM分类器和贝叶斯分类器的分类性能,通过可视化的方式比较两者的预测结果,由 viewer.py 模块实现。

混淆矩阵热力图

混淆矩阵热力图

性能对比直方图

性能对比直方图