文本分类是什么?让机器自动给文字贴标签
TL;DR文本分类是根据文本内容自动把它归入预先定义的类别的自然语言处理任务,比如判断邮件是否为垃圾邮件、评论是好评还是差评,是内容审核和信息管理的基础技术。
文本分类(Text Classification)是根据内容自动把文本归入预先定义类别的任务。判断一封邮件是不是垃圾邮件、一条评论是好评还是差评、一篇新闻属于体育还是财经、一张客服工单该派给哪个部门,都是文本分类。它是自然语言处理里最基础、应用最广的任务之一。
几种常见形式
二分类:只有两个类别,比如正常或违规。多分类:从多个类别里选一个,比如新闻频道。多标签分类:一段文本可以同时属于多个类别,比如一篇文章既是“科技”又是“教育”。情感分析、意图识别、主题分类、垃圾信息过滤,本质上都是文本分类的变体。
技术演进
早期方法依赖人工设计的特征,比如词袋模型、TF-IDF,再配上朴素贝叶斯、支持向量机等分类算法。这些方法简单快速,但难以理解语义,比如“不是不好”这类双重否定就容易判错。
2014 年,Yoon Kim 提出用卷积神经网络(CNN)在预训练词向量上做句子分类,一个结构简单、几乎不用调参的模型,就在多个基准上取得了很好的效果,在 7 个任务中的 4 个上超过了当时的最好成绩,这让深度学习在文本分类上迅速普及。之后 BERT 等预训练语言模型又带来一次飞跃:在大规模语料上预训练,再用少量标注数据微调,准确率大幅提高。
到了大模型时代,很多分类任务可以直接用提示词完成,不需要训练,适合类别经常变化、标注数据少的场景。但在数据量大、类别固定的生产环境里,一个微调好的小模型往往更快、更便宜、结果也更稳定。
实践中的要点
类别定义要清晰、互不重叠,否则人都分不清,模型更学不会。注意类别不平衡,比如违规内容可能只占百分之一,模型全判“正常”也有 99% 准确率,所以要看精确率、召回率和 F1,而不只是准确率。