文章目录
-
- 前言
- [1、Text Classification 简介](#1、Text Classification 简介)
-
- [1.1 简介](#1.1 简介)
- [1.2 类别](#1.2 类别)
- [2、Text Classification 方法](#2、Text Classification 方法)
- [3、Text Classification 应用场景](#3、Text Classification 应用场景)
- [4、Text Classification 流程](#4、Text Classification 流程)
-
- [4.1 整体框架](#4.1 整体框架)
- [4.2 解读](#4.2 解读)
- [5、Text Classification 常用数据集](#5、Text Classification 常用数据集)
- [6、Text Classification model](#6、Text Classification model)
- [7、Text Classification 常用评价指标](#7、Text Classification 常用评价指标)
- [8、Text Classification challenge](#8、Text Classification challenge)
-
- [8.1 数据层面](#8.1 数据层面)
- [8.2 模型层面](#8.2 模型层面)
- 8.3性能评估层面
- 参考链接:
前言
了解 text classification 相关基础知识
1、Text Classification 简介
1.1 简介
文本分类(Text Classification 或 Text Categorization,TC),又称自动文本分类(Automatic Text Categorization),
是指计算机将载有信息的一篇文本映射到预先给定的某一类别或某几类别主题的过程,实现这一过程的算法模型叫做分类器。
文本分类问题算是自然语言处理领域中一个非常经典的问题。
1.2 类别
文本分类的类别:
按每篇文档赋予的标签数目
单标签
多标签
按类别数目
二类问题
多类问题
2、Text Classification 方法
文本分类最初是通过专家规则进行分类,利用知识工程建立专家系统,这样做的好处是比较直观地解决了问题,但费时费力,覆盖的范围和准确率都有限。
后来伴随着统计学习方法的发展,特别是 90 年代后互联网在线文本数量增长和机器学习学科的兴起,逐渐形成了一套解决大规模文本分类问题的经典做法,也即特征工程 + 浅层分类模型。又分为传统机器学习方法和深度学习文本分类方法。
文本分类的方法可分为三类:
基于规则的方法的特点(Rule-based methods)
需要人工参与:需要人的知识来形成规则,人形成的规则通常比较准确
维护方面:当规则变化或更新时,维护成本较高(需人工重新总结规则);当规则较多时,规则与其他规则之间可能出现冲突,难以维护
扩展性方面:难于扩展到其他场景中,往往需要重新编写规则
机器学习的方法,也可以叫做"数据驱动的方法"(Machine learning (data-driven) based methods)
机器学习的方法又分为两类
传统机器学习文本分类,比如svm、gbdt
第一步:人工指定特征,比如n-gram,tfidf,故需要大量的数据分析和特征工程的工作量;另外,特征工程工作需结合业务场景进行选择,这也导致很难泛化到其他场景;因为做了特征工程,对于数据量较大的数据集来说,一般都可以训练
第二步:将特征放入分类器训练
基于深度学习的文本分类
深度学习模型能够自动地学习一些数据与标签之间的内在联系,除标注工作外,不需要人工干预
混合方法(Hybrid methods)
这里混合的方法指的是attention,CNN,LSTM,BERT等模型的混合,即深度学习模型的混合
二工业界普遍采用的混合方法,主要考虑到规则方法来做前置过滤和后置兜底,方法简单易行、消耗资源少;对于一些较为复杂、数据量大,使用深度学习的模型效果更佳,就形成了混合的方法
3、Text Classification 应用场景
主流应用场景有:
情感分析:sentiment analysis ( SA)
情感分析是文本分类的一个热门分支,旨在分析文本数据(如产品评论、电影评论和推特)中人们的观点,并提取他们的情感倾向。
情感分类可以是二元问题,也可以是多类问题。二元情感分析是将文本分为正类和负类,而多类情感分析则侧重于将数据分为细粒度标签或多级强度。
话题标记:topic labeling(TL)
新闻分类:news classification (NC)
新闻内容是对人们产生重大影响的最重要的信息来源之一。新闻分类系统可以帮助用户实时获取感兴趣的信息。
识别新兴新闻主题和基于用户兴趣推荐相关新闻是新闻分类的两个主要应用。
问答系统:question answering(QA)
QA系统有两种类型:抽取式和生成式。抽取式QA可以看作是文本分类的一个特例。给定一个问题和一组候选答案(例如,文献[6]中给定文档中的文本跨度),我们需要将每个候选答案分类为正确与否。
生成性QA学习从零开始生成答案(例如使用Sequence-to-Sequence模型)。
对话行为分类:dialog act classification (DAC)
自然语言推理:natural language inference (NLD)
自然语言推理也被称为识别文本蕴涵(RTE),预测一个文本的意义是否可以从另一个文本中推断出来。
特别是,系统需要为每一对文本单元分配一个标签,例如蕴涵、矛盾和中性[7]。释义是NLI的一种广义形式,也称为文本对比较。
这项任务是衡量一个句子对的语义相似性,以确定一个句子是否是另一个句子的转述
关系分类:relation classification (RC)
事件预测:event prediction (EP)
4、Text Classification 流程
4.1 整体框架
这里讨论的文本分类流程指的是基于机器学习/深度学习的文本分类,专家系统已经基本上淘汰了。
文本分类系统流程如下图所示:
其中,先具体来看传统学习(Traditional Method)的具体过程,如下:
如果不考虑训练集,整个文本分类问题就拆分成了特征工程和分类器两部分。其实最后还应该有一个性能检验的步骤来评估模型。
4.2 解读
输入:文本(Text)
预处理(Preprocess):
文本表示:将字转换为向量(word embdding)单词级,字符级和混合表示
文字处理:分词、数据清洗、统计
算法策略(分支):
1)传统算法(Traditional Method)
手工提取特征+ 分类器(机器学习)
2)深度学习(Deep Learning Method)
Backbone = CNN、RNN、Transformer等自动提取特征 + MLP
输出:标签(Label)
5、Text Classification 常用数据集
1)情感分析 Sentiment Analysis:
Yelp,IMDb,SST,MPQA,Amazon,Aspect-Based Sentiment Analysis
2)新闻分类 News Classification:
AG News, Newsgroups,Sogou News, Reuters news, Bing news, NYTimes,BBC,Google news
3)话题分类 Topic Classification:
DBpedia, Ohsumed, EUR-Lex, WOS, PubMed
4)问答 QA:
SQuAD, MS MARCO, TREC-QA, WikiQA, Quora
5)NLI自然语言推理:
SNLI、Multi-NLI、SICK、MSRP、 Semantic Textual Similarity (STS)、RTE、SciTail
6、Text Classification model
从 1961 到 2020 文本分类算法的发展历史:
图上黄色代表浅层学习模型,绿色代表深层学习模型。
可以看到,从 1960 年代到 2010 年代,基于浅层学习的文本分类模型占主导地位。
自 2010 年代以来,文本分类已逐渐从浅层学习模型变为深层学习模型。
7、Text Classification 常用评价指标
二分类:accuracy,precision,recall,f1-score, f_beta(beta可调,根据任务,调整准确率和召回率的权重)...
多分类:Micro-Averaged-F1, Macro-Averaged-F1 ...
多标签分类:Jaccard相似系数 ...
Exact Match (EM)
主要用于QA系统,用来衡量预测与真实回答之间的匹配程度,是SQuAD比赛中常用的评测方法
Mean Reciprocal Rank (MRR)
主要用来评价排序的质量,query-document ranking 和 QA答案排序
8、Text Classification challenge
8.1 数据层面
对于文本分类任务,无论是浅层学习还是深度学习方法,数据对于模型性能都是必不可少的。
研究的文本数据主要包括多章,短文本,跨语言,多标签,少样本文本。对于这些数据的特征,现有的技术挑战如下:
1)零次学习/少量学习(zero-shot/Few-shot learning)
是指对无标注、或很少标注的文本进行分类。然而,目前的模型过于依赖大量的标记数据。
2)外部知识。
深度学习模型是大数据喂出来的,输入的信息越多,DNN 的性能就越好。所以,添加外部知识(知识库或知识图)是提高模型性能的有效途径。然而,如何添加以及添加什么仍然是一个问题。
3)多标签文本分类任务
多标签文本分类需要充分考虑标签之间的语义关系,并且模型的嵌入和编码是有损压缩的过程。因此,如何减少训练过程中层次语义的丢失以及如何保留丰富而复杂的文档语义信息仍然是一个亟待解决的问题。
4)具有许多术语词汇的特殊领域
特定领域的文本(例如金融和医学文本)包含许多特定的单词或领域专家,可理解的语,缩写等,这使现有的预训练单词向量难以使用。
8.2 模型层面
现有的算法模型,浅层和深度学习已经都尝试应用于文本分类,包括集成方法(integration methods)。
横空出世的 BERT 学习了一种语言表示法,可以用来对许多 NLP 任务进行 fine-tune。
但想提高模型准确率,最主要的方法是仍然是增加数据,如何在增加数据和计算资源,和预测性能之间权衡是值得研究的。
8.3性能评估层面
浅层模型和深层模型可以在大多数文本分类任务中取得良好的性能,但是需要提高其结果的抗噪声能力。如何实现对深度模型的合理评估也是一个技术挑战。
1)模型的语义鲁棒性
近年来,研究人员设计了许多模型来增强文本分类模型的准确性。但是,如果数据集中有一些对抗性样本,则模型的性能会大大降低。因此,如何提高模型的鲁棒性是当前研究的热点和挑战。
2)模型的可解释性
DNN 在特征提取和语义挖掘方面具有独特的优势,并且已经完成了出色的文本分类任务。但是,深度学习是一个黑盒模型,训练过程难以重现,隐式语义和输出可解释性很差。它对模型进行了改进和优化,丢失了明确的准则。此外,我们无法准确解释为什么该模型可以提高性能。
参考链接:
1、https://blog.csdn.net/a1097304791/article/details/121472163
2、https://blog.csdn.net/u011983997/article/details/122876973