对文章进行分类、打标签、建模的主要步骤如下:
1)将已划分好类型的文本集(训练集)和待划分类型的文本集(测试集)进行分词处理,将长句划分为单个词组;
2)将步骤1中切好的词组放入词包中,并扩展成链式结构,形成bag of word;
3)应用TF-IDF算法计算训练集文档中每篇文章的TF-IDF权重矩阵;
4)使用朴素贝叶斯分类方法对训练集数据进行训练,然后利用得到的参数对测试集数据进行分类处理;
原始数据源:
-------------------------------------文本分词处理------------------------------------
分词
#!/usr/bin/env python
执行程序后,训练集和测试集对应文件夹下未经处理的原始txt文档被切词处理,并将切词后的txt文件存入新建立的文件夹下。
---------------------------------------数据结构处理----------------------------------
为了方便后续生成词向量空间模型,需要将这些分词后的文本信息转换成文本向量信息并对象化,Sklearn中的Bunch库继承自dict类型,可以参数形式创建相关对象,并以key/value的形式存储数据。
#!/usr/bin/env python
执行完程序后生成train_bunch_bag.dat和test_bunch_bag.dat数据文件。
---------------------------------------TF-IDF权重矩阵---------------------------------
其中TF=(某词在文档中出现的总次数/文档的词总数), IDF= loge(语料库中文档总数/包含该词的文档数)+1。
from
space表示词向量空间坐标,tdm表示训练集和测试集数据的TF-IDF权重矩阵。
执行完程序后生成train_tfidfspace.dat和test_tfidfspace.dat数据文件。
-----------------------------------朴素贝叶斯分类--------------------------------------
import
从建模流程来看,对文章分类、打标签包括4个主要步骤:
1)文章数据分词处理,抽取文章的主题标签;
2)构建文章的词袋模型;
3)使用TF-IDF计算文章的词空间向量;
4)使用朴素贝叶斯算法对测试集文章进行分类。