nlp|NLP之文本分类(一)---文本分类描述

参考:
https://mp.weixin.qq.com/s/UQqeDjdXaZqLNZxkbjZkbA —文本多分类问题
https://zhuanlan.zhihu.com/p/370503493 —文本分类综述(各分类问题数据集汇总部分较好)
0 背景 主要是参考对文本分类的描述,特别是多标签分类,选取一些核心点,同时加上自身实践遇到的一些问题, 以及面试中会问到的关于文本分类的问题,共学习使用。后面做进一步补充。
1 文本分类 文本分类是指将计算机对文本按照一定的分类习题或标准进行自动分类标记。应用场景包括:

  • 情感分析 (Sentiment Analyse) (积极、消极、中性)
  • 主题分类 (Topic Labeling) (金融、体育、军事、社会)
  • 问答任务(Question Answering) (是、否)
  • 意图识别(Dialog Act Classification) (天气查询、歌曲搜索、随机闲聊)
  • 自然语音推理(Natural Language Inference) (导出、矛盾、中立)
NLP经常出现问题,目前常用的baseline是FastText, TextCNN, 通过添加attention ,或者基于预训练模型做进一步提升 等。特别是多分类场景,当标签个数较多时,通用开源的模型效果有待进一验证。
2. 主要遇到的问题
  • 数据问题(影响较大)
    (1) 分类标签之间边界模糊,影响最终评估效果。
    (2) 数据标注问题:建议算法baseline后人工查看,或者多人标注。
  • 模型与数据结构与样本分配问题(数据质量符合预期情况下)
    (1) 数据不均衡:每个标签类编下样本分布差异大,长尾现象显著,部分标签没有样本。
    泛化能力不足情况:简单数据增强、正负采样, focal loss
    当few shot问题解决:******
    部分标签没有样本覆盖: 修改类目体系,自编数据,定向挖掘。
    (2) 数据少的问题:特定类目或者整体数据比较少,建议方法:
    自造数据,数据复制和训练策略调整,数据少但重要类目,batch内增加样本,loss内进行调整,多给一些权重。
    (3) 类目混淆: 通过混淆矩阵观察,增加hardcase。
    (4) 关注测试集质量
3. 分析与观测方法 (1) 观测指标: precision, recall, F1,多分类不看auc.
(2) 细分:
  • 加权或非加权: 加权关注高频, 非加权关注长尾
  • 总体和分类目: 总体倾向算法效果稳定性, 分类目关注具体类目预测差异
4. 文本分类模型 主流模型如FastText、TextCNN、TextRNN(Bi-GRU/LSTM)等,以及一些state-of-the-art模型,如VDCNN、DPCNN、Region Embedding、AttentiveConvNet、DRNN、Transformer等
主流机制,如Attention、Pre-trained embedding等。
数据输入的多线程加速读取、变长和定长输入、词和字符级输入、自定义输入等。
优化方法,如Adagrad、Adam、FTRL、Momentum、RMSProp、SGD等。
损失函数,如Softmax、NCE Loss、Focal Loss等。
分类任务,如二分类、多分类、层次分类等。
多模型集成评估和预测。
5. 常用数据集 (1) 情感分析SA(Sentiment Analyse)
  • MR(Movie Review):电影评论数据集,二分类,5331条正样例、5331条负样例
  • SST(Stanford Sentiment Treebank):
  • SST-1为五分类,8544条train、2210条test
  • SST-2为二分类,6920条train、872条dev、1821条test
  • MPQA(The Multi-Perspective Question Answering):二分类,3311条正样例、7293条负样例
  • IMDB reviews:电影评论情感分析,二分类,每类数量相同
  • Yelp reviews:
  • Yelp-2:560000 training、38000 test
  • Yelp-5:650000 training、50000 test
  • AM(Amazon Reviews):亚马逊商品评论
  • Amazon-2:3600000 training、400000 testing
  • Amazon-5:3000000training、650000 testing
(2) 新闻分类NC(News Classification)
新闻分类技术方便用户实时获取重要知识。其应用主要包括:新闻主题识别和根据用户兴趣推荐相关新闻。
20NG(20 Newsgroups ):20类,每类数量相同,共计18846条
AG(AG News ):学术新闻搜索引擎,4分类,包含新闻标题和简介
R8 and R52:来源于路透社,为8分类和52分类
Sogou News:搜狗新闻语料,包含SogouCA、SogouCS两个语料库。搜狗新闻数据集,选取5个大类,分别为sports、finance、entertainment、automautomobile、technotechnology, 并且使用pinyin进行转换
(3) 主题标注TL(Topic Labeling)
主题分析试图通过定义复杂的文本主题来获得文本的意义。主题标注是主题分析技术的重要组成部分之一,旨在为每个文档指定一个或多个主题,以简化主题分析。
DBpedia:维基百科最常用的信息框生成的大规模多语言知识库。560000 training 、70000 testing,包含14个种类。
Ohsumed:生物医药文献数据库,7400篇,有23个心血管疾病分类。
Yahoo answers:一个有10个类的主题标记任务
(4) 问答任务QA(Question Answering)
QA任务可以分为两类:抽取式QA和生成式QA。抽取式QA为每个问题提供多个候选答案,以选择正确答案。
SQuAD(Stanford Question Answering Dataset):从维基百科文章中获得的一组问答对
SQuAD1.1包含从107,785 Q&A 项目中选择的536组问答对。
SQuAD2.0将SQuAD1.1中的100000个问题与人群工作者面临的50000多个无法回答的问题结合起来,形式上与可回答的问题类似。
MS MARCO:微软being搜索引擎的检索句与找回结果对
TREC-QA:TREC-6 and TREC-50
WikiQA:数据集包含没有正确答案的问题,需要对答案进行评估
(5) 自然语言推理NLI(Natural Language Inference)
NLI用于预测一个文本的意义是否可以从另一个文本中推断出来。释义是自然语言的一种广义形式。它通过测量句子对的语义相似度来判断一个句子是否是另一个句子的解释。
SNLI(The Stanford Natural Language Inference):包含570152个人类注释句子对,包含三类关系:中立、导出和矛盾。
MNLI(Multi-Genre Natural Language Inference ):是SNLI的扩展,包括更广泛的书面和口头文本类型。
SICK(Sentences Involving Compositional Knowledge):包含了将近10000个英语句子对。
MSRP(Microsoft Research Paraphrase ):由句子对组成,通常用于文本相似性任务。
(6)意图识别 DAC(Dialog Act Classification)
对话行为(Dialog Act)是指根据语义、语用和句法规则来描述对话中的语言。DAC根据一段对话的意义类别给它贴上标签,帮助学习说话者的意图。
DSTC 4(Dialog State Tracking Challenge 4 ):89个训练分类,24,000 training and 6,000 testing texts
MRDA(ICSI Meeting Recorder Dialog Act):5个行为类别,51000个training、11000个test文本和11000个dev文本.
SwDA(Switchboard Dialog Act):43个训练分类,1003000个training、19,000个test文本和112,000个dev文本.
【nlp|NLP之文本分类(一)---文本分类描述】(7) 多标签分类(Multi-label datasets)
在多标签分类中,一个实例有多个标签,每个标签只能取多个类中的一个。
Reuters news:来源于路透社金融新闻,包含90个类别,数据标签既有多个又有单个
Patent Dataset:数据来源于USPTO 1美国专利的专利系统,包含标题和摘要等文本细节。它包含100000项在现实世界中授予的美国专利,具有多个层次类别。
RCV1(Reuters Corpus Volume I )and RCV1-2K:RCV1是从路透社1996-1997年的新闻文章中收集的,它是人类标记的103个类别。
WOS-11967(Web of Science):是从科学网中爬网而来的,由发表论文的摘要组成,每个例子有两个标签。
AAPD(Arxiv Academic Paper Dataset):是计算机科学领域的一个大型数据集,用于网站2的多标签文本分类。共有论文55840篇,包括摘要和相应的主题,共54个标签。
面试问到的问题
  • 二分类或者多分类与多标签分类区别?
    二分类或者多分类,每个样本属于唯一的类。 多标签分类则是一个样本包含多个标签。
  • 多标签分类样本不平衡如何处理?
    整体数据较少或者部分分类标签较少:自造数据
    loss优化: Focal loss, ASL Few shot
  • 如何评估多标签分类的效果。
    召回标签与有多少与实际标签相同。precision, recall , F1, 或者混淆矩阵

    推荐阅读