sklearn.feature_extraction.text文本特征实验
来源:互联网 发布:淘宝ins是什么意思 编辑:程序博客网 时间:2024/05/21 00:45
sklearn.feature_extraction.text提供了4种文本特征提取方法:
- CountVectorizer
- HashingVectorizer
- TfidfTransformer
- TfidfVectorizer
因为TfidfVectorizer等价于CountVectorizer->TfidfTransformer,所以实质上就是两种特征,一种是HashingVector,另一种则是Tfidf特征。
每一类都是由题目组成,但是每个题目长度都不长,分词筛选后也只剩下几个关键词,因此计算各个词的tf的时候结果基本都是1/题目分词数,所以我便想着能不能计算出每一类的各个词的tf,而不是对单独的每个题目计算tf。
因此我将同一类的所有题目分词都组合到一个文档,这样就可以在同一类上计算词频tf,而不是在每个题目上面单独计算。
首先根据tf值排序做词典筛选:
初始词典中词的数目为7000。
实验采用
model = OneVsRestClassifier(svm.SVC(kernel=’linear’))模型进行实验。
特征提取采用了tf-idf和tf两种,tf-idf在tf的基础上加入了逆文档词频idf。
f1-macro,f1-micro,f1-sample分别是应用于多标签分类的评价标准,评价的基本标准依然是f1值,只是计算方式有所不同。
- 首先在tf-idf提取的特征下进行不同词数的实验,从中可以看到
在1000维的时候f1-macro和f1-sample准确率达到最高,说明特征并不是越多越好,只要有足够多的具有区分能力的特征就够了。
500维的时候效果和1000维相差不大。 - 接着进行了tf-idf和tf两种特征提取方式的比较。从结果可以看出不采用idf时的效果要好,我个人认为这是由样本不均衡问题造成的结果,因为训练集中有些类的样本很多,有些则很少,对于样本少的类别,在计算tf值的时候因为只需要考虑本类样本,因此受不均衡问题的影响较小,但加入idf时,因为将所有训练样本都加入考虑,所以会造成准确率的影响。
在取1000维词的基础上进行了以下实验:
在最初的时候我对题目tf的计算进行了改动,接下来我测试了不改动的tf特征,此时tf的计算是在每一道题目上单独进行。
00266367
65168539
09187254
0 0
- sklearn.feature_extraction.text文本特征实验
- sklearn.feature_extraction.text.TfidfVectorizer
- sklearn之sklearn.feature_extraction.text.CountVectorizer
- sklearn文本特征提取
- sklearn文本特征提取
- sklearn文本特征提取
- sklearn文本特征提取
- python中的sklearn.feature_extraction dictvectorizer
- sklearn学习笔记2 Feature_extraction库
- Feature extraction - sklearn文本特征提取
- Feature extraction - sklearn文本特征提取
- feature_extraction
- 基于sklearn的文本特征提取与分类
- 基于sklearn的文本特征提取与分类
- 基于sklearn的文本特征提取与分类
- 特征工程(sklearn)
- sklearn单机特征工程
- sklearn---特征工程
- 最大连续子序列(DP)
- Linux下Apache 多端口多站点配置方法
- bzoj1001: [BeiJing2006]狼抓兔子
- 【PAT】(乙级)1018. 锤子剪刀布 (20)
- synchronized(this)与synchronized(class)的区别
- sklearn.feature_extraction.text文本特征实验
- 2037 今年暑假不ac
- 基于S5PV210开发板裸机实现电子相册
- 数据结构实验之二叉树的建立与遍历,求二叉树深度
- 死锁
- 欢迎使用CSDN-markdown编辑器
- 谦虚
- 字符编码(哈夫曼编码、贪心算法、priority_queue 的应用)---- 美团2016研发工程师编程题(二)
- Matlab中的rand(),magic()