文本分类小结
来源:互联网 发布:哔哩哔哩客户端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)模型融合,这块值得学习。美团刚分享了一篇文章有一些关于这方面的内容,感觉会有很大的帮助,正在实践中。
- 文本分类小结
- 文本分类
- 文本分类
- 文本分类
- 文本分类
- 文本分类
- 文本分类
- 文本分类
- 文本分类
- 文本分类
- 文本分类
- 文本分类
- 文本分类
- 文本分类
- 文本分类
- 文本分类
- 文本分类-分类器设计
- 文本挖掘之文本分类
- Android最佳性能实践(二)——分析内存的使用情况
- 27岁,30岁,37岁...... 你是否已经把世界拱手让人?
- 四层负载均衡和七层负载均衡的区别
- Spring WebSocket教程(二)
- 使用TraceView调试并提高Android应用性能
- 文本分类小结
- Poj 1276 Cash Machine 多重背包
- [Python]循环中的else,break和continue详解
- SQL优化--逻辑优化--外连接、嵌套连接与连接消除
- sql根据表关键字查询表名
- POJ—2828—Buy_Tickets—【数据结构】【线段树】【单点更新】
- yii2之单文件与多文件上传
- 【django】表单Form类2-自定义校验规则
- JAVA并发编程学习笔记之Unsafe类