文本分类应该是最多见的文本语义分析任务了。首先它是简单的,几乎每个接触过nlp的同窗都作过文本分类,但它又是复杂的,对一个类目标签达几百个的文本分类任务,90%以上的准确率召回率依旧是一个很困难的事情。这里说的文本分类,指的是泛文本分类,包括query分类,广告分类,page分类,用户分类等,由于即便是用户分类,实际上也是对用户所属的文本标签,用户访问的文本网页作分类。算法
几乎全部的机器学习方法均可以用来作文本分类,经常使用的主要有:lr,svm等,下面介绍一下文本分类的pipeline以及注意点。网络
- 创建分类体系。
- 分类相比于topic model或者聚类,一个显著的特色是:类目体系是肯定的。而不像在聚类和LDA里,一个类被聚出来后,但这个类究竟是描述什么的,或者这个类与另外的类是什么关系,这些是不肯定的,这样会带来使用和优化上的困难。
- 通常而言,类目体系是由人工设定的。而类目体系的创建每每须要耗费不少人工研究讨论,一方面因为知识面的限制,人工创建的类目体系可能不能覆盖全部状况;另外一方面,还可能存在类目之间instance数的不平衡。比较好的方法,是基于目前已有的类目体系再作一些加工,譬如ODP,FreeBase等。
- 还能够先用某种无监督的聚类方法,将训练文本划分到某些clusters,创建这些clusters与ODP类目体系的对应关系,而后人工review这些clusters,切分或者合并cluster,提炼name,再而后根据知识体系,创建层级的taxonomy。
- 若是类目标签数目不少的话,咱们通常会将类目标签按照必定的层次关系,创建类目树,以下图所示。那么接下来就能够利用层次分类器来作分类,先对第一层节点训练一个分类器,再对第二层训练n个分类器(n为第一层的节点个数),依次类推。利用层次类目树,一方面单个模型更简单也更准确,另外一方面能够避免类目标签之间的交叉影响,但若是上层分类有偏差,偏差将会向下传导。
图21. 层次类目体系机器学习
- 获取训练数据
- 通常须要人工标注训练数据。人工标注,准确率高,但标注工做量大,耗费人力。
- 为了减小标注代价,利用无标记的样本,提出了半监督学习(Semi-supervised Learning),主要考虑如何利用少许的标注样本和大量的未标注样本进行训练和分类的问题。这里介绍两种常见的半监督算法,但愿了解更多请参考文献[49]。
- 半监督学习,随着训练不断进行,自动标记的示例中的噪音会不断积累,其负做用会愈来愈大。因此如term weighting工做里所述,还能够从其余用户反馈环节提取训练数据,相似于推荐中的隐式反馈。
- 咱们看一个具体的例子,在文献[45]中,twitter利用了三种方法,user-level priors(发布tweet的用户属于的领域),entity-level priors(话题,相似于微博中的#*#),url-level priors(tweet中的url)。利用上面三种数据基于必定规则获取到基本的训练数据,再经过Co-Training获取更多高质量的训练数据。上述获取到的都是正例数据,还须要负例样本。按照常见的方法,从非正例样本里随机抽取做为负例的方法,效果并非好,文中用到了Pu-learning去获取高质量的负例样本,具体请参考文献[58]。
图22.文献[45]训练数据获取流程图优化
- 特征提取
- 对于每条instance,运用多种文本分析方法提取特征。常见特征有:
- 分词 or 字的ngram,对词的权重打分,计算词的一些领域特征,又或者计算词向量,词的topic分布。
- 文本串的特征,譬如sentence vector,sentence topic等。
- 提取的特征,从取值类型看,有二值特征,浮点数特征,离线值特征。
- 特征的预处理包括:
- 通常来讲,咱们但愿instance各维特征的均值为0,方差为1或者某个有边界的值。若是不是,最好将该维度上的取值作一个变换。
- 特征缺失值和异常值的处理也须要额外注意。
- 特征选择,下面这些指标均可以用做筛选区分度高的特征。
- Gini-index: 一个特征的Gini-index越大,特征区分度越高。
- 信息增益(Information Gain)
- 互信息(Mutual Information)
- 相关系数(Correlation)
- 假设检验(Hypothesis Testing)
- 模型训练
- model ensemble:也称“Multi-Model System”,ensemble是提高机器学习精度的有效手段,各类竞赛的冠军队伍的是必用手段。它的基本思想,充分利用不一样模型的优点,取长补短,最后综合多个模型的结果。Ensemble能够设定一个目标函数(组合多个模型),经过训练获得多个模型的组合参数(而不是简单的累加或者多数)。譬如在作广告分类时,能够利用maxent和决策树,分别基于广告title和描述,基于广告的landing page,基于广告图片训练6个分类模型。预测时能够经过ensemble的方法组合这6个模型的输出结果。
- 评测
- 评测分类任务通常参考Accuracy,recall, precision,F1-measure,micro-recall/precision,macro-recall/precision等指标。