文本分类概述
文本分类是在预定义的分类体系下,根据文本的特征(内容和属性),将给定文本与一个或者多个类别相关联的过程。最终目的是找到一个有效的映射函数,将输入的可视化文本映射为预定义分类体系下的一个或者多个类别。因此,文本分类有两个关键问题:一个是文本的表示,另一个就是分类器的设计。
**|输入文档|—> 预处理 —> **文本表示** —> **分类器** —> |类别输出|**
图1 文本分类系统示意图
总的来说,系统使用训练样本进行特征选择和分类器参数训练(预处理),根据选择的特征对待分类的输入样本进行形式化(文本表示),然后输入到分类器进行类别判定,最后得到输入样本的类别。
文本表示
通常采用向量空间模型(VSM)进行文本分类。VSM是通过训练样本提取出n个特征,构成n维空间,每个文本对应各个特征的权重组成该空间内的一个向量。
运用VSM模型进行文本分类主要经过两个步骤:一是根据训练样本集生成文本表示所需要的特征项序列(特征抽取),二是根据文本特征项序列,对训练样本集和测试集中各个文本进行权重赋值。
文本特征抽取
上述文本表示中,第一重要步骤就是特征抽取。其中抽取的特征项可以选择字、词、短语、“概念”等多种元素。下图为常用的特征选取方法。
分类器设计
文本分类论文精读
论文为2016年复旦大学IJCAI 上的发表的关于循环神经网络在多任务文本分类上的应用:https://arxiv.org/abs/1605.05101
不同于上述文本分类提及的传统特征抽取、分类器设计方法,该论文采用机器学习中深度学习的RNN网络进行样本训练,其中使用LSTM进行特征抽取。(注:关于RNN,LSTM的知识后面再次补足)
Model-I: Uniform-Layer Architecture
该模型中不同的任务(m,n)共享一个同样的LSTM层,以及他们各自输入的词嵌入层共享一个词嵌入层。针对每一个任务,其输入由两部分拼接而成,即具体任务和共享词嵌入.
xˆ(m)=x(m)⊕x(s),
h(T)(m) = LSTM(xˆ(m)).
Model-II: Coupled-Layer Architecture
每一个任务有自己的LIST单元,但是可以相互使用对方的LIST单元信息(两两结合学习)
增加门控,通过改变记忆单元的内容,从而决定接受其他任务LSTM层的信息量
Model-III: Shared-Layer Architecture
每一个任务有自己的一个LSTM层,且所有的任务通过一个共享的双向LSTM层(前向后向拼接输出)进行信息共享。重新定义LSTM层的记忆单元内容,参数由训练获得。