文本分类小结

来源:互联网 发布:哔哩哔哩客户端mac 编辑:程序博客网 时间:2024/05/18 17:25

一:特征提取

文本分类中一个重要的工作部分就是特征提取。常见的特征词提取方法有卡方,信息增益,信息增益比,期望KL距离等。链接

http://blog.csdn.net/fighting_one_piece/article/details/37912051,这篇博客讲的十分详细,就不重复写了。不同的特征提取方法,会有自己的特点,用不同的分类的方法,效果也不一样,不能一概而论(遇到过数据集特征提取后,性能反而下降了,应该是数据集本身比较小的原因。)。但是总体来说期望KL距离的效果会稍微好一点。如图在训练集为商品名称,期望交叉熵特征提取的结果中,排在前面的特征词,效果是很好的:


排在最末尾的是:


而且在用NB的测试中,其特征提取的效果也是最好的。

二:常用分类算法

最近在针对商品title进行三级类目分类的学习。常用的开源工具有libshortText和maxent,这两个工具都非常厉害,准确率超高,在实践过程中发现,训练测试集98%的准确率(与数据集应该有关系),很容易。在抽查预测效果的时候,准确率依然很高,大于96%。

最大熵maxent 和逻辑回归的关系,本博客中有篇详细解释了。也就是说当libshortText用LR的时候(SVM例外),二分类情况下,libshortText 和maxent几乎是一样的。但是这两个工具也有些区别,1)对于多分类的实现上,maxent一个模型学习所有分类,而libshortText是学习one-vs-rest,也就是有多少个类别,会学习多少个模型。2)因为有了(1)的因,导致的结果是,libshortText比maxent准确率有微弱的优势(1%左右),我的实验libshortText:99.327%, maxent: 98.4065%(还有改进余地),可以说两者旗鼓相当,不分伯仲。但是对机器的要求却大不一样,maxent,对机器要求不高,但是LibshortText很吃内存,容易使得机器死掉,只要机器内存够大,训练起来也很快,其内存需求一般与类别的数目有关系,类别越多,越吃内存。

LibshortText本身不支持中文,需要修改一些地方支持中文分类。

三:

单个模型已经这么吊了,让人膜拜。开源质量让人佩服。

最后对文本分类问题,可以有帮助的地方,可能有以下几方面,1)分词,暂时不是瓶颈吧,是个方向 2)模型融合,这块值得学习。美团刚分享了一篇文章有一些关于这方面的内容,感觉会有很大的帮助,正在实践中。

0 0
原创粉丝点击