Feature Selection(特征提取) 单纯高信息量unigram与参考情感词典词汇对比
来源:互联网 发布:什么软件改变图片大小 编辑:程序博客网 时间:2024/06/04 19:36
在之前的实验中我使用卡方统计法,提取语料库中单词信息量最高的1000 2000 3000词不等。
之后发现大部分算法还是需要一定的features量,也就是 在一定范围内(如 1000~3000)提取的词汇越多,classifier性能越好。达到一定峰值后 性能会下降。
只有Knn算法出现了与众不同的现象,features越大,性能有呈现下降趋势。其本身性能也不是很好,所以没给予更多关注。
后来想提高算法性能,于是打算先从已有的features下手。导师建议我去review一下提取的unigram,看里面是个什么情况。简单浏览一下发现,很多词汇是没什么情感色彩的名词,这些词汇似乎对情感分析没有帮助,而且有可能起到负面作用。于是想试下提纯features。 导师推荐了用情感词典做为参考。
于是做了一个筛选:如果选出来的features在情感词典中 那么保留,如果不在,丢弃。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
import itertools
line = []
share_words = []
inpfile = open("my_features.txt", "r") # 提取的features,可多提取一些,如8000个 best_words
line1 = inpfile.readline()
my_features = []
while line1:
word1 = line1.strip()
my_features.append(word1)
line1 = inpfile.readline()
inpfile.close()
inpfile = open("lexicon.txt", "r") # 情感词典
line2 = inpfile.readline()
lexicon = []
while line2:
word2 = line2.strip()
lexicon.append(word2)
line2 = inpfile.readline()
inpfile.close()
for w in my_features:
if(w in lexicon):
line.append(w)
share_words.append(line)
f1=open('shared_words.txt','w') # 写入到文件(此例子中为1662个shared features)
words = share_words
words = list(itertools.chain(*words))
for item in words:
f1.write(item+"\n") #k
f1.close()
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
这样处理后再用weka进行处理,结果很有意思。
从整体的accuracy中可以看出 大部分分类器性能都下降了,NB和knn是有一些提高 但也不是很明显。
不过更细致去看:
用提纯后的features NBM pos class 分对的比例比单纯 top1662 unigrams 提高了3个百分点 性能, 但neg class错误率很高,所以导致了整体性能下降。
再来看看SMO(SVM):
SMO 中用提纯过后的features neg class 分对的比例达到了 84% 比单纯top 1662词汇中的81%也提高了3个百分点,由于 pos正确率很低 所以整体性能下降。
其他算法中也有类似现象 偏向一极的比例有所增加。
如何选取features可能还是要深思熟虑。
继续....
- Feature Selection(特征提取) 单纯高信息量unigram与参考情感词典词汇对比
- 特征选择Feature Selection
- 特征选择(feature selection)
- 特征选择(Feature Selection)
- Feature Selection(特征选择)
- 特征选择(feature selection)
- 1.13. 特征选择(Feature selection)
- 机器学习的特征选择(feature selection)
- 特征选择与稀疏学习(Feature Selection and Sparse Learning)
- 文本分类之情感分析– 去除低信息量的特征
- 把NLTK中提取的unigram 特征转换成0,1向量表示方式
- Feature extraction - sklearn文本特征提取
- Caffe Matlab feature extraction 特征提取
- SIFT特征提取:SIFT Feature Extraction
- 特征提取恶作剧Feature Learning Escapades
- Feature extraction - sklearn文本特征提取
- Caffe Matlab feature extraction 特征提取
- VGG Pool5 Feature Map特征提取
- hibernate OpenSessionInView
- poj1625 Censored! AC自动机+DP
- response重定向的两种写法
- ios字符串常用方法总结
- 十道海量数据处理面试题
- Feature Selection(特征提取) 单纯高信息量unigram与参考情感词典词汇对比
- 9. UINavigationController
- Demo① --> java 学习历程
- windows下快速筛选同一类型文件
- SharePoint开发中的最佳实践
- 问题1——在子进程中调用execl完后,接着调用_exit(0)的意义——< APUE-P201>
- KMP算法 算法摘记
- IaaS, PaaS和SaaS公司都做些什么
- 内存_PA_MAP_VA