文本分类(六):使用fastText对文本进行分类--小插曲
来源:互联网 发布:棋牌游戏微信绑定源码 编辑:程序博客网 时间:2024/05/16 08:50
http://blog.csdn.net/lxg0807/article/details/52960072
环境说明:python2.7、Linux
自己打自己脸,目前官方的包只能在linux,mac环境下使用。误导大家了,对不起。
测试facebook开源的基于深度学习的对文本分类的fastText模型
fasttext Python包的安装:
- 1
- 1
第一步获取分类文本,文本直接用的清华大学的新闻分本,可在文本系列的第三篇找到下载地址。
输出数据格式: 样本 + 样本标签
说明:这一步不是必须的,可以直接从第二步开始,第二步提供了处理好的文本格式。写这一步主要是为了记忆当时是怎么处理原始文本的。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
第二步:利用fasttext进行分类。使用的是fasttext的python包。
整理好的数据:百度网盘下载
news_fasttext_train.txt
news_fasttext_test.txt
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
0.922404202420.92240420242
由于fasttext貌似只提供全部结果的p值和r值,想要统计不同分类的结果,就需要自己写代码来实现了。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
实验数据分类
[u'affairs', u'fashion', u'lottery', u'house', u'science', u'sports', u'game', u'economic', u'ent', u'edu', u'home', u'constellation', u'stock']['affairs', 'fashion', 'house', 'sports', 'game', 'economic', 'ent', 'edu', 'home', 'stock', 'science']{'science': 8415, 'affairs': 8257, 'fashion': 3173, 'house': 9491, 'sports': 9739, 'game': 9506, 'economic': 9235, 'ent': 9665, 'edu': 9491, 'home': 9315, 'stock': 9015}{'science': 10000, 'affairs': 10000, 'fashion': 3369, 'house': 10000, 'sports': 10000, 'game': 10000, 'economic': 10000, 'ent': 10000, 'edu': 10000, 'home': 10000, 'stock': 10000}{u'affairs': 8562, u'fashion': 3585, u'lottery': 96, u'science': 9088, u'edu': 10068, u'sports': 10099, u'game': 10151, u'economic': 10131, u'ent': 10798, u'house': 10000, u'home': 10103, u'constellation': 432, u'stock': 10256}
#实验结果
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
从结果上,看出fasttext的分类效果还是不错的,没有进行对fasttext的调参,结果都基本在90以上,不过在预测的时候,不知道怎么多出了一个分类constellation。难道。。。。查找原因中。。。。
2016/11/7更正:从集合B中可以看出训练集的标签中是没有lottery和constellation的数据的,说明在数据准备的时候,每类选取10000篇,导致在测试数据集中lottery和constellation不存在数据了。因此在第一步准备数据的时候可以根据lottery和constellation类的数据进行训练集和测试集的大小划分,或者简单粗暴点,这两类没有达到我们的数量要求,可以直接删除掉
- 文本分类(六):使用fastText对文本进行分类--小插曲
- 文本分类(六):使用fastText对文本进行分类--小插曲
- 使用fastText进行文本分类
- 文本分类-fastText
- 快速文本分类器 FastText
- 使用fastText进行文本分类及源码分析时的一点感受
- 分本分类(六):使用LDA+SVM进行文本分类
- FastText 词向量与文本分类
- 文本分类算法带监督的FastText
- 使用torch7进行文本分类(一)
- 使用WVTool进行文本分类
- 使用python进行文本分类
- 使用CNN进行文本分类
- 使用Python进行文本分类
- 使用LIBSVM对原始文本语料进行文本分类(一)——语料介绍及文本预处理
- Scikit-learn中使用SVM对文本进行分类
- 文本进行分类
- 文本分类系列-简单的使用cnn对新闻进行分类
- CCS5.3中通过Task_create创建线程
- C++通过HTTP请求Get或Post方式请求Json数据
- HDU 4430 Yukari's Birthday【二分+枚举】
- 储存过程记录
- 集合框架 map,set,list
- 文本分类(六):使用fastText对文本进行分类--小插曲
- Java之静态变量和静态方法那些事
- JPush极光推送 Java调用服务器端API开发
- Exception和继承自Exception的RuntimeException有什么区别呢
- 不积跬步,无以至千里 small tips
- 微信消息推送详解
- VMware linux 系统 安装VMware tools 工具的流程
- TensorFlow基础知识:计算图中的Op,边,和张量
- tensorflow rnn阅读笔记