参考:
https://www.jianshu.com/p/56061b8f463a
统计自然语言处理 宗成庆(第二版)
文本自动分类简称文本分类(text categorization),是模式识别与自然语言处理密切结合的研究课题.传统的文本分类是基于文本内容的,研究如何将文本自动划分为各种类型.文本分类是在预定义的分类体系下,根据文本的特征(内容或属性),将给定文本与一个或多个类别相关联的过程.系统的输入时需要进行分类处理的文本,系统的输出则是与文本关联的类别.
一个文本分类系统表示为
NLP文本分类主要分为两大类:
-
基于传统机器学习的文本分类:TF-IDF+分类算法,Count Vectors+分类算法
-
基于深度学习的文本分类:FastText文本分类,TextRNN,TextCNN,基于Bert的文本分类
1 基于传统机器学习的文本分类(文本特征工程+分类器)
传统的特征工程分为文本预处理、特征提取、文本表示三个部分。
1.1 特征工程
1.1.1 文本预处理
文本预处理过程是提取文本中的关键词来表示文本的过程。英文语法有空格,因此可以直接以空格进行分割,中文文本处理则需要考虑中文分词和去停用词的问题。
常用的文本分词方法:基于字符串匹配的正向/逆向/双向最大匹配;基于理解的句法和语法分析,基于统计的互信息/CRF方法,基于深度学习的。
停用词是文本中一些高频的代词、介词、连词等对文本分类无意义的词,类似于我,你,的等。
此外,自然语言处理分析还包括命名实体识别、词性标注、句法分析、语义分析、篇章分析。
命名实体识别是从文本中识别这些实体指称及其类别, 即命名实体识别和分类,实体概念在文本中的引用(entity mention, 或称“指称项”) 有三种形式: 命名性指称、 名词性指称和代词性指称。例如”[[中国] 乒乓球男队主教练] [刘国梁] 出席了会议,[他] 指出了当前经济工作的重点。 ”中, 实体概念“刘国梁”的指称项有三个, 其中, “中国乒乓球男队主教练”是名词性指称, “刘国梁”是命名性指称, “他”是代词性指称。
词性(part-of-speech) 是词汇基本的语法属性, 通常也称为词类。词性标注就是在给定句子中判定每个词的语法范畴, 确定其词性并加以标注的过程。
句法分析(syntactic parsing) 是自然语言处理中的关键技术之一,其基本任务是确定句子的句法结构(syntactic structure) 或句子中词汇之间的依存关系。
对于不同的语言单位, 语义分析的任务各不相同。 在词的层次上,语义分析的基本任务是进行词义消歧(word sense disambiguation,WSD) , 在句子层面上语义角色标注(semantic role labeling, SRL) 则是人们关注的问题, 而在篇章层面上, 指代消歧(coreference resolution)(也称“共指消解”) 、 篇章语义分析等则是目前研究的重点。 本章主要介绍词义消歧和语义角色标注的基本方法。
1.1.2 特征提取
特征提取包括特征选择和特征权重计算两部分.
特征选择的基本思路是根据某个评价指标独立的对原始特征项(词项)进行评分排序,从中选择得分最高的一些特征项,过滤掉其余的特征项。常用的评价有:文档频率、互信息、信息增益、χ²统计量等。
特征权重用于衡量某个特征项在文档表示中的重要程度或者区分能力的强弱.权重计算的一般是利用文本的统计信息,例如词频.主要是经典的TF-IDF方法及其扩展方法。TF-IDF的主要思想是一个词的重要度与在类别内的词频成正比,与所有类别出现的次数成反比.
1.1.3 文本表示
一个文本表现为一个由文字和标点符号组成的字符串,由字或字符组成词,由词组成短语,进而形成句,段,节,章,篇的结构.文本表示的目的是把文本预处理后的转换成计算机可理解的方式,是决定文本分类质量最重要的部分。传统做法常用词袋模型(BOW, Bag Of Words)或向量空间模型(Vector Space Model),最大的不足是忽略文本上下文关系,每个词之间彼此独立,并且无法表征语义信息。
1.2 分类算法
机器学习的分类算法有逻辑回归(LR)、支持向量机(SVM)、决策树(DT)、XGBoost,LightGBM、CatBoost等。
1.3 文本分类性能评测
参照机器学习的性能评测标准,主要方法有精准率、召回率、F1-score
2 基于深度学习的文本分类
2.1 FastText文本分类
FastText是一种典型的深度学习词向量的表示方法,它通过Embedding层将单词映射到稠密空间,然后将句子中所有单词在Embedding空间中进行平均,进而完成分类操作。
2.2 TextCNN文本分类
TextCNN是利用卷积网络进行文本分类,输入的数据是处理之后的词向量,卷积核不进行横向滑动,仅仅向下移动,在不同词窗上应用不同的卷积核,最终得到不同向量,再对向量进行最大池化并拼接各个池化值,将这个句子的向量送到分类器进行分类。
2.3 TextRNN文本分类问题
TextRNN指的是利用RNN循环神经网络解决文本分类问题,其中,可将RNN单元换成Bi-RNN,LSTM,GRU等。
2.4 基于Bert的文本分类
BERT是一个基于Transformer的多层Encoder,通过一系列的预训练,进而得到深层的上下文表示。基于预训练语言模型的词表示由于可以建模上下文信息,进而解决传统静态词向量不能建模“一词多义”语言现象的问题。最早用两个单向的LSTM,将双向的表示拼接学习上下文词嵌入。后用Transformer代替LSTM作为编码器,进行了语言模型预训练,然后在下游任务微调模型参数,现又提出Bert。