文本分类,属于有监督学习中的一部分,在很多场景下都有应用,下面通过小数据的实例,一步步完成中文短文本的分类实现。
开发环境,我们选择:
- Mac 系统
- Python 3.6
- Jupyter Notebook
本文使用的数据是我曾经做过的一份司法数据,需求是对每一条输入数据,判断事情的主体是谁,比如报警人被老公打,报警人被老婆打,报警人被儿子打,报警人被女儿打等来进行文本有监督的分类操作。
整个过程分为以下几个步骤:
- 语料加载
- 分词
- 去停用词
- 抽取词向量特征
- 分别进行算法建模和模型训练
- 评估、计算 AUC 值
- 模型对比
基本流程如下图所示:
下面开始项目实战。
1. 首先进行语料加载,在这之前,引入所需要的 Python 依赖包,并将全部语料和停用词字典读入内存中。
第一步,引入依赖库,有随机数库、jieba 分词、pandas 库等:
import random
import jieba
import pandas as pd
第二步,加载停用词字典,停用词词典为 stopwords.txt 文件,可以根据场景自己在该文本里面添加要去除的词(比如冠词、人称、数字等特定词):
#加载停用词
stopwords=pd.read_csv('stopwords.txt',index_col=False,quoting=3,sep="\t",names=['stopword'], encoding='utf-8')
stopwords=stopwords['stopword'].values
第三步,加载语料,语料是4个已经分好类的 csv 文件ÿ