思路历程:
1.利用知识工程建立专家系统进行分类
通过添加特定规则做分类任务,费时费力,覆盖的范围和准确率都非常有限。
2.人工特征工程+浅层分类模型
文本预处理:在文本中提取关键词表示文本
中文文本预处理主要包括
分词
jieba等工具,具体算法参考相关文章
去停用词
维护停用词表(包括高频的代词连词介词等),特征提取过程中删除停用表中出现的词等
文本表示
1.词袋模型(one-hot编码)
缺点:高纬度、高稀疏、无法编码上下文的关联信息,无法表达语义信息。
2.向量空间模型
通过特征选择降低维度,特征权重计算增加稠密性
白话就是说,我们需要一种评价指标对词打分,选取分高的作为特征词,并给予其合理的权重值。
特征选择:文档频率、互信息、信息增益、χ²统计量等
特征权重计算:TF-IDF等
3.基于语义的表示
LDA主题模型
LSI/PLSI概率潜在语义索引
分类器
传统的分类器基本是统计分类方法,朴素贝叶斯,KNN,SVM,最大熵等。
3.深度学习分类方法
文本表示
word embedding(具体算法:skip-gram,cbow,fastText,elmo,gpt,bert)
分类模型
通过CNN,RNN,tranformer等做特征提取(特征的表达),然后分类的问题
1.fastText
2.TextCNN
3.TextRNN
4.TextRNN+Attention
5.TextRCNN
6.HAN
7.SWEM
8.VDCNN
效果比较
对于模型效果的比较,我们截取部分实验图
来源:技术客知音
数据描述:公司内部数据(只关注F1指数)
结果如下
另一个实验地址:https://github.com/brightmart/text_classification
新闻文本分类(11个分类,每个类2000个样例,每行文本采用标题加内容,取前100个字)
实验结果对比(知乎大牛王岳王院长)