1.背景简介

本文主要介绍常见的文本分类算法模型及其优缺点,下面关键收集自互联网,按需获取。

2.文本分类模型

在文本分类中,有多种模型可以进行选择,如果您不知道选哪个,可以选择CNN 进行尝试,兼顾了运行效率和最终结果。以下是模型的说明,您可以根据自己的具体场景,选择一个更适合的模型。

  • FastText : 分类模型速度快,计算资源要求低,适合样本数量大、类别标签多,适合不需要太多语义理解的任务。

  • CNN: 分类模型相比FastText 模型,CNN 适用复杂度更高的场景,可捕捉更多、更广、更细致的文本特征,适合需要一定语义理解的任务。对比FastText 通常效果要好一些,但训练时间也会更长。

  • Self-Attention: 分类模型相比FastText 模型,Self-Attention 适应复杂度更高的场景,可捕捉更多、更广、更细致的特征;跟CNN 相比,能更好地捕捉文本里的长期依赖。适合需要一定语义理解的任务。训练时间跟效果跟 CNN 类似。

  • BERT: 小样本分类模型,主要原理为使用 BERT模型 从大量无标注语料进行预训练。适用于标注语料有限的场景,训练和预测时间较长。

  • StructBERT: 主要原理为使用StructBERT模型 从大量无标注语料进行预训练,精度较高,推理速度较慢。

  • StructBERT小样本分类: 基于StructBert-base,在xnli数据集(将英文数据集重新翻译得到中文数据集)上面进行了自然语言推理任务训练。
    适用场景:面向文本分类任务,尤其是多层级(最多3级)、标签数目大,训练样本少的低资源场景。时间开销会比较大
    典型输入样例:支持最多3层的层级分类,3层标签字段固定为“一级标签”、“二级标签”和“三级标签”。每一层为单标签分类

3.开源仓库

Chinese-Text-Classification-Pytorch

Bert-Chinese-Text-Classification-Pytorch

4.参考文档

中文文本分类 pytorch实现

模型说明