王子豪作者

中文文本分类:你需要了解的10项关键内容

继上一篇这5个例子,小学生都能秒懂分类算法(点击查看详情)初步分享了几种常见的分类算法是什么,今天和大家聊聊做好中文文本分类的10项关键点。

文本分类指的是计算机通过算法对输入的文本按照一定的类目体系进行自动化归类的过程。人工智能浪潮席卷全球的今天,文本分类技术已经被广泛地应用在文本审核、广告过滤、情感分析和反黄识别等NLP领域。本文从达观数据中文文本分类的实践出发,总结了从数据预处理到特征工程、算法选择再到后处理和评价指标等流程中的10项关键内容,希望能对读者有所帮助。

1、数据清洗与预处理

在实际的中文文本分类问题中,我们面对的原始中文文本数据经常会存在许多影响最终分类效果的部分,这部分数据或文本都需要在文本分类最开始的时候就被清洗干净,否则很容易导致所谓的“Trash in,trash out”问题。除了一般分类问题的数据清洗都包含的缺失值处理、去重处理和噪声处理等步骤之外,中文文本分类还应该做到以下的清洗与处理以下数据:

(1) 非文本数据

很多时候我们的分类文本都来自爬虫的爬取结果,因此文本中常常会附带有HTML标签、URL地址等非文本内容,所以需要清除这部分内容对分类没有什么帮助的内容。

(2) 长串数字或字母

通常情况下中文文本中长串的数字代表手机号、车牌号、用户名ID等文本内容,在非特定的文本分类情境下可以去除。或者将其转换为归一化的特征,如是否出现长串数字的布尔值特征HAS_DIGITAL、按长度归一的DIGIAL_LEN_10等等。值得一提的是,表情代号常常作为长串数字或字母出现,却能在情感分析中却能起到巨大作用。

(3) 无意义文本

此外,还需要过滤掉剩余文本当中的诸如广告内容、版权信息和个性签名的部分,毫无疑问这些也都不应该作为特征被模型所学习。

2、变形词识别和替换

变形词问题除了能让我们感叹中文博大精深之外,也时时刻刻困扰文本分类工作者,极大地增加了广告识别、涉黄涉政等特殊的文本分类场景下的分类难度。对中文词的变形通常采用的方法有:特殊符号替换、同音近型替换、简繁替换等。

要做到变形词的识别和替换,除了建立常见变形词的映射表以外,还可以尝试用拼音首字母的方法来鉴别同音替换的变形词;以及用 Word2vec词向量来对比变形词与上下文的语意关联度,从而识别出该词是否经过了变形。

3、停用词与标点符号

停用词指的是诸如代词、介词、连接词等不包含或包含极少语义的词,另外标点符号也可以被认为是一种停用词。通常情况下,在文本中去掉这些停用词能够使模型更好地去拟合实际的语义特征,从而增加模型的泛化能力。

但值得注意的是,停用词表并不是一成不变的。针对不同的文本分类情景,所采用的停用词表也应该作出针对性的调整。例如书名号“《”和“》”往往比书名本身更能代表书名的特征、冒号“:”通常出现在人物访谈类文章的标题中,以及人称代词“他”和“她”在情感类文章标题中的频繁使用等。根据情景灵活地使用停用词表,往往能够起到意想不到的效果。

4、分词、N-gram和Skip-gram

由于计算机无法识别自然语言,我们自然也就无法直接将原始文本直接扔到分类算法当中得到分类结果。因此我们需要先将文本转化为一定格式的特征编码,文本分类区别于其他文类问题的特点在于此。显然,转化后的特征编码能够携带越多的文本特征,就越能帮助分类算法预测出对于的类别。

中文文本分类最常用的特征提取的方法就是分词。区别于英文天然的存在空格符作为词与词之间的间隔标志,中文文本中词的提取必须通过基于序列预测等方法的分词技术来实现。在提取了特征值之后,再采用One-hot或TF-IDF等方法将每个样本转化为固定长度的特征编码作为分类算法的输入。

除了分词,N-gram模型也完全值得你去尝试。分词产生的特征丢失了原文本中词与词之间的的位置和顺序信息,以至于对于“我爱你”、“你爱我”这样的短语,分词得到的特征完全相同。同样的例子,若采用二元的Bi-gram模型则能提取出“我爱”、“爱你”以及“你爱”、“爱我”两组完全不同的特征,更清晰得表达的原文的原意。


在在中文文本分类中,另一个N-gram模型相对分词的优势在于:N-gram模型不受分词准确率的影响。并且当N取足够大时,字符级别的N-gram模型总是能完全覆盖分词+词袋模型的特征集合,同时能极大得召回其他特征,这一点在短文本分类中效果格外明显。

在工程实践中,为了不让特征集合过于庞大从而拖累分类速度,一般同时采用N为1到3的N-gram就能取得较好的效果。

另一个值得一试的模型叫做Skip-gram模型。有别于word2vec中获得词向量的Skip-gram模型,这里中的Skip-gram模型表示的是一种衍生自N-gram模型的语言模型。对于例句“小明去学校上自习”,常用的1-skip-bi-gram得到的特征为{“小明_学校”,“去_上”,“学校_自习”}。一般情况下,Skip-gram可以做为N-gram的补充,从而提取一些可能遗漏的有效特征。

5、特征组合与分桶

前面介绍了三种不同的提取文本特征的方法,再加上举例的长串数字布尔特征,我们已经有了许多不同来源的特征。尝试这些特征方法中的一种或多种,并对来自不同方法的特征进行组合产生新的特征,能在特定的复杂文本分类场景下获得意想不到的效果。

例如将文本特征和结构特征进行组合是一种常见的做法:首先将文本按一定的长度阈值划分为两类,假设文本长度大于20的为长文本,否则为短文本。则可以将获得的长度结构特征和分词提取的文本特征进行组合,从而得到形如“长文本_小明”、“短文本_学校”等新生成的组合特征。诸如此类的特征组合方法,能够使得模型从非线性的角度进行分类,大大提升模型处理复问题的能力。

另外,假如你同时采用了多种特征方法,不妨对这些特征进行分桶标记。如对分词特征“小明”标记为“wordseg:小明”、对skip-gram特征“小明_学校”标记为“skipgram:小明_学校”。这样,就能在后续的特征选择和特征排序等步骤中,清楚的知道哪些特征方法起到了较好的效果。

6、特征选择

在用上述方法对文本提取了特征之后,如果我们直接将所有特征直接丢入分类器,那么最终训练得到的模型的效果往往并不尽如人意。特别是在模型的训练和预测速度上,由于经过多个特征提取和组合方法之后的特征空间会极度膨胀,模型需要学习的参数数量也因此暴涨,从而大大地增加了训练和预测过程的耗时。因此,在候选特征集合中选择保留最有效的部分就显得尤为重要。常用的特征选择方法有卡方检验和信息增益等。

卡方检验的目的是计算每个特征对分类结果的相关性,相关性越大则越有助于分类器进行分类,否则就可以将其作为无用特征抛弃。卡方检验是一种常用的统计检验方法,但是其缺点在于仅考虑特征是否出现对于分类结果的影响,而忽略了词频的重要性,因此卡方检验往往夸大了低频词的作用。信息增益用来计算一个特征对整个分类系统带来的信息的多少,带来的信息越多意味着该特征对分类越重要。此外一些分类算法本身也有特征选择的作用,例如C4.5决策树就是采用信息增益的方法来计算最佳的划分特征、逻辑回归模型训练后可以得到特征权重等。

值得一提的是,TF-IDF并不是一种真正意义上的特征选择方法。通过TF-IDF算法可以得到特征在每一篇文章中重要性,但是却没有考虑特征在类间的分布情况。也就是说,假如类别A中的所有文章都包含词t,类别B中均不包含,但可能由于类别A样本在总样本中占比较极高,原本显著的分类特征t却因为计算得到的TF-IDF值较小而被过滤掉了,这显然没有起到特征选择的目的。

7、尝试不同算法

对于各种算法内部的原理和实现,本文并不打算深入探讨。在机器学习算法库趋于成熟的今天,无论是在单机还是分布式甚至GPU集群上,所有你需要做的就是调用和调参即可。因此,在条件允许的情况下,建议尽可能多的在各种数据集上测试不同算法,并且记录其在各项指标上的效果,从而清楚地了解各种算法的特点。

下表总结了各个常用分类算法在中文文本分类情景下的对比情况,可供参考。

*注:TextCNN和LSTM模型的训练一般需要通过GPU加速。

事实上分类算法并没有绝对的好坏之分,在合适的场合才用适当的算法才是关键。如果是在线分类场景,那么预测速度较快的算法应该成为首选;如果需要快速迭代,那么训练速度快且调参难度小的算法更合适;若不考虑时间开销,那么尝试对多个模型进行集成(Ensemble)是最常用的提升分类效果的方法。

8、多标签分类

许多人将多标签分类(Multi-labelClassification)与多类分类(Multi-classClassification)混淆。后者主要区别于二分类问题,指的是在类别数大于2的候选集合中互斥地选取一个类别作为输出,例如将一条评论按情感倾向分类到{“正面”、“中立”、“负面”}当中的一个。而多标签分类则表示在类别数大于等于2的候选集合中非互斥地选取任意个类别作为输出,例如一篇标题为“国务院决定设立河北雄安新区”的新闻文章可以同时被分为政治、经济两个类别。

多标签分类算法通常被分为两类,一类将多标签分类问题转化为多个单标签二分类问题,被成为问题转化模型(Problem Transformation);另一类则将原来的单标签分类算法修改为支持多标签分类的算法,被称为适应性方法(Adapted Method)。问题转化模型中最常用的一种叫做Binary Relevance,其思想类似于多类分类中的One-Vs-Rest,即对每一个候选类别均训练一个二元分类器来判别样本是否属于该类。因此在类别数目很大的情况下,应尽量选择训练和预测速度较快的算法来训练内部的二元分类器。而在适应性方法中,基于决策树的算法和k最近邻的算法都能够较容易地修改为支持多标签分类的环境。

9、关键词规则与后处理

在面对实际中文文本分类问题时,谁都无法保证自己的模型能够100%分类准确。后处理旨在对模型输出的预测结果进行人工干预,从而保证最后的结果的可靠性。

关键词规则是最常用的后处理方法,其特点在于能够直接地将领域知识引入到分类系统当中。关键词规则不仅可以实现一个或多个关键词对应一个类别,更可以在上层算法给出概率输出的情况下实现一对多和多对多的规则映射。并且,我们可以根据实际情况对不同的关键词规则设定作用强度和优先级,从而更加灵活地调整得到预测结果。值得注意的是要控制关键词规则的粒度大小,粒度过大可能导致其它原本正确的样本被误操作而使得总体的准确性降低;粒度过小会使每条的作用范围变小,极大地增加设置后处理规则的工作量。

在最后输出阶段,还有一个实用的后处理方法就是对概率或置信度较低的预测结果归为“其他”类别,即让模型学会说:“我不知道”。这样做可以提高分类系统的使用体验,而不致于让使用者迷失在错误的猜测结果中。

10、评价指标

关于评价指标,一般最先想到的就是分类准确率(Precision),但准确率并不是全部。如果一个分类模型的准确率很高而召回率很低(Recall),那么反而意味着模型没能把其他本该预测出来的类别给预测出来。这常常在两种情况下发生:

一是在非均衡样本中,模型由于学习不到足够的小类的特征而倾向于把大部分小类样本预测为大类类别,虽然预测为小类的部分准确率较高,但是更多的小类样本却没有被召回。面对这种情况,应该关注小类类别的F1值情况,即准确率与召回率调和平均值;

二是在多标签分类中,如果一个模型偏向于保守,那么其可能只对某个多标签的样本预测出最有把握的一个标签,虽然保证了预测准确性,但是仍然没有召回其它的有效标签。此时,可以适当降低内部的二元分类器的预测阈值。如假设原来只有预测得分高于0.5的候选标签被输出,则将阈值降低到0.3时可以得到更多的预测标签,从而提高分类的召回率。

结束语

在互联网技术极速发展的今天,文本信息越来越多地以不同的形式出现在我们的视野内。达观数据文本分类始终作为文本挖掘和NLP领域的关键技术,应用在广泛的场景之中。

ABOUT 关于作者

王子豪:达观数据高级NLP算法工程师,负责达观数据文本挖掘和NLP算法的开发及应用,在文本分类、观点挖掘和情感分析等领域有丰富实践经验。

达观数据
达观数据

达观数据是一家专注于文本智能处理技术的国家高新技术企业,获得2018年度中国人工智能领域最高奖项 “吴文俊人工智能科技奖”,也是本年度上海市唯一获奖企业。达观数据利用先进的自然语言理解、自然语言生成、知识图谱等技术,为大型企业和政府客户提供文本自动抽取、审核、纠错、搜索、推荐、写作等智能软件系统,让计算机代替人工完成业务流程自动化,大幅度提高企业效率。

理论NLP文本挖掘特征工程达观数据文本分类
6
相关数据
达观数据机构

达观数据成立于2015年,是中国领先的文本智能处理企业,利用先进的文字语义自动分析技术,为企业、政府等各大机构提供文本自动抽取、审核、纠错、搜索、推荐、写作等智能软件系统,让计算机代替人工实现业务流程自动化,大幅度提高运营效率。 达观数据为企业提供完善的文本挖掘、知识图谱、搜索引擎和个性化推荐等大数据服务,是国内唯一一家将自动语义分析技术应用于企业数据化运营的人工智能公司。

http://www.datagrand.com/
逻辑回归技术

逻辑回归(英语:Logistic regression 或logit regression),即逻辑模型(英语:Logit model,也译作“评定模型”、“分类评定模型”)是离散选择法模型之一,属于多重变量分析范畴,是社会学、生物统计学、临床、数量心理学、计量经济学、市场营销等统计实证分析的常用方法。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

文本分类技术

该技术可被用于理解、组织和分类结构化或非结构化文本文档。文本挖掘所使用的模型有词袋(BOW)模型、语言模型(ngram)和主题模型。隐马尔可夫模型通常用于词性标注(POS)。其涵盖的主要任务有句法分析、情绪分析和垃圾信息检测。

分桶技术

将一个特征(通常是连续特征)转换成多个二元特征(称为桶或箱),通常是根据值区间进行转换。例如,您可以将温度区间分割为离散分箱,而不是将温度表示成单个连续的浮点特征。假设温度数据可精确到小数点后一位,则可以将介于 0.0 到 15.0 度之间的所有温度都归入一个分箱,将介于 15.1 到 30.0 度之间的所有温度归入第二个分箱,并将介于 30.1 到 50.0 度之间的所有温度归入第三个分箱。

词袋模型技术

词袋模型(英语:Bag-of-words model)是个在自然语言处理和信息检索(IR)下被简化的表达模型。此模型下,像是句子或是文件这样的文字可以用一个袋子装着这些词的方式表现,这种表现方式不考虑文法以及词的顺序。最近词袋模型也被应用在电脑视觉领域。

特征工程技术

特征工程是利用数据所在领域的相关知识来构建特征,使得机器学习算法发挥其最佳的过程。它是机器学习中的一个基本应用,实现难度大且代价高。采用自动特征工程方法可以省去采用人工特征工程的需求。Andrew Ng 说“挖掘特征是困难、费时且需要专业知识的事,应用机器学习其实基本上是在做特征工程。”

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

反比文档频数权重评价方法技术

tf-idf(英语:term frequency–inverse document frequency)是一种用于信息检索与文本挖掘的常用加权技术。tf-idf是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。tf-idf加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。除了tf-idf以外,互联网上的搜索引擎还会使用基于链接分析的评级方法,以确定文件在搜索结果中出现的顺序。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

分类问题技术

分类问题是数据挖掘处理的一个重要组成部分,在机器学习领域,分类问题通常被认为属于监督式学习(supervised learning),也就是说,分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。根据类别的数量还可以进一步将分类问题划分为二元分类(binary classification)和多元分类(multiclass classification)。

卡方技术

卡方常常与卡方分布和卡方检验联系在一起: 卡方分布(chi-square distribution)是常用于概率论和统计检验中的一种概率分布;卡方检验是(chi-square test)是一种基于卡方分布的常用的统计检验,其统计量在原假设(null hypothesis)成立时服从卡方分布。

word2vec技术

Word2vec,为一群用来产生词向量的相关模型。这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本。网络以词表现,并且需猜测相邻位置的输入词,在word2vec中词袋模型假设下,词的顺序是不重要的。 训练完成之后,word2vec模型可用来映射每个词到一个向量,可用来表示词对词之间的关系。该向量为神经网络之隐藏层。 Word2vec依赖skip-grams或连续词袋(CBOW)来建立神经词嵌入。Word2vec为托马斯·米科洛夫(Tomas Mikolov)在Google带领的研究团队创造。该算法渐渐被其他人所分析和解释。

特征选择技术

在机器学习和统计学中,特征选择(英语:feature selection)也被称为变量选择、属性选择或变量子集选择。 它是指:为了构建模型而选择相关特征(即属性、指标)子集的过程。

文本挖掘技术

文本挖掘有时也被称为文字探勘、文本数据挖掘等,大致相当于文字分析,一般指文本处理过程中产生高质量的信息。高质量的信息通常通过分类和预测来产生,如模式识别。文本挖掘通常涉及输入文本的处理过程,产生结构化数据,并最终评价和解释输出。'高品质'的文本挖掘通常是指某种组合的相关性,新颖性和趣味性。

信息增益技术

在决策树学习中,信息增益比是信息增益与固有信息的比率。 它被用来通过在选择属性时考虑分支的数量和大小来减少对多值属性的偏见.

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

推荐文章
暂无评论
暂无评论~