`
futrueboy
  • 浏览: 84727 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

文本特征选择的关键算法总结

阅读更多

 

 

一、特征词选择与特征词权重关系

 

开始学文本分类的时候经常要搞晕特征词选择和特征词权重 这两个东西,因为两者都要进行量化,很容易认为特征词选择就是计算权重,因此我认为有必要先搞清楚这两个概念。


两者的区别 :特征词选择是为了降低文本表示的维度,而特征词权重是为了表示文本表示中每一个特征项的重要程度。


特征词的选择算法 有:文本特征选择的算法有基于文档频率 (Document Frequency) 、信息增益 (Information Gain, IG) 、开方拟和检验方法 (CHI 统计 ) 、互信息 (mutual Information) 、潜在语义分析LSA、期望值交叉算熵、文本证据权、 term strength(TS) GSS Coefficient odds ratio等;


特征词的权值 (即所谓的文本表示)计算有:TF-IDF,TF的改进,信息熵的引用等[1] 。这个将在下篇进行分析一下。

 

二、特征词权重选择方法分析

 

以下分别分析一下特征词的选择算法,由于信息增益是很有效的特征选择方法,因此,将给出信息增益的java代码。


1. 基于文档频率(DF)


 

 

 

在文档频率方法中,使用特征词在一个类别中出现的文档数来表示这个特征词与该类别的相关度。出现的文档数多的特征词被保留的可能性大。显然,文档频率方法实现最简单、算法复杂度最低,而且 DF 方法与其他几种方法的分类性能也差不多。

计算公式:DFterm :特征词term在某一类中的所有文档出现的次数。

改进公式:[2]

 


缺点:待补充

 

2. 互信息 (mutual Information)

 

在互信息算法中,采用计算特征词 t 和类别 c 之间的相关度:



其中, A 为在类别 c 中特征词 t 出现的文档数; B 为在除了类别 c 的其他类别中特征词 t 出现的文档数; C 为在类别 c 中特征词 t 未出现的文档数; N 为所有类别中的文档数的总和。如果共有 m 个类别,那么每个特征词将得到 m 个相关度值,取这 m 个值的平均值作为每个特征词的权值,权值大的特征词被保留的可能性大。

 

缺点:待补充

 

3. 信息增益 (Information Gain)

 

 

信息增益 (IG) 是公认较好的特征选择方法,它刻画了一个词语在文本中出现与否对文本情感分类的影响,即一个词语在文本中出现前后的信息嫡之差。某个词语的信息增益值越大,说明它对分类的贡献就越大。信息增益的计算见公式:



 

 

P(Ci) ,表示类别 Ci 出现的概率,其实只要用 1 除以类别总数就得到了(这是说你平等的看待每个类别而忽略它们的大小时这样算,如果考虑了大小就要把大小的影响加进去)。

P(t) ,就是特征 t 出现的概率,只要用出现过 t 的文档数除以总文档数就可以了

P(Ci|t) 表示出现 t 的时候,类别 Ci 出现的概率,只要用出现了 T 并且属于类别 Ci 的文档数除以出现了 T 的文档数就可以了[3]



 


 

 

	/**
	 * @param j
	 * @return double
	 * 
	 */
	private double getFirstPart(int j) {
		double sum = 0;
		for (int i = 0; i < C; i++) {
			//log2(P(cj)) = ln(P(cj))/ln(2);
			sum += P_C(i) * (Math.log(P_C(j)) / Math.log(2));
			
		}
		return -sum;
	}
 



 

	/**
	 * @param j
	 * @return double
	 * TC[][] represents the number of documents including the term j and belonging to Classification j
	 */
	private double getSecondPart(int j) {
		double sum = 0;
		//P_Tj represents P(tj) which is the probability of the documents including term j  
		//That is , P(tj) = documents including term j / the total number of documents
		double P_Tj = this.P_t(j);
		for (int i = 0; i < C; i++) {
			if (TC[j][i] == 0)
				TC[j][i] = 1;
			//log2(TC) = ln(TC)/ln(2);
			sum += (double) TC[j][i]
					* ((double) Math.log(TC[j][i]) / (double) Math.log(2));
			
		}
		return P_Tj * sum;
	}
 

 

 



 

 

	/**
	 * @param j
	 * @return   double
	 * 
	 */
	private double getThirdPart(int j) {
		//p(tj) = 1 - p(t_barj)
		double P_t_bar_j = this.P_t_bar(j);
		double sum = 0.0;

		//T_barC = number of classifications -  number of docs including Term i and belonging to Classification j
		for (int i = 0; i < C; i++) {
			if (T_barC[j][i] == 0)
				T_barC[j][i] = 1;
			sum += (double) T_barC[j][i]
					* ((double) Math.log(T_barC[j][i]) / (double) Math.log(2));
		}

		return P_t_bar_j * sum;
	}
 

缺点 :信息增益最大的问题还在于它只能考察特征对整个系统的贡献,而不能具体到某个类别上,这就使得它只适合用来做所谓 全局 的特征选择(指所有的类都使用相同的特征集合),而无法做 本地 的特征选择(每个类别有自己的特征集合,因为有的词,对这个类别很有区分度,对另一个类别则无足轻重)。

4. 开方拟和检验方法 (CHI 统计 )

 

开方检验最基本的思想就是通过观察实际值与理论值的偏差来确定理论的正确与否。



 

 

缺点:待补充

 

5. 潜在语义分析LSA

LSA思想方法最初应用于文本信息检索领域有效地解决了同义词和多义词的问题,通过识别文本中的同义词, LSA将信息检索精度提高了10%--30%

随着应用领域的不断拓展, LSI在信息过滤、信息分类/聚类、交叉语言检索、信息理解、判断和预测等众多领域中得到了广泛的应用。(语义,降维)[4]


 

计算奇异值矩阵,可以通过maltab svd 命令来解。

 

缺点:待补充

 

 

 

 

 

 

 

 

 

 

 

 

参考资料:

 

[1]. 冯长远, 普杰信 Web 文本特征选择算法的研究

[2]. 杨凯峰,张毅坤,李燕  基于文档频率的特征选择方法

[3]. http://tech.ddvip.com/2009-03/1237883850112130_4.html

[4]. 杨建武 文本特征提取技术

 

 

 

CSDN:http://blog.csdn.net/techq

百度:http://hi.baidu.com/futrueboy/home

javaeye:http://futrueboy.iteye.com/

 

联系方式:chen-hongqin@163.com

 

 

 

 

 

 

 

  • 大小: 118.5 KB
  • 大小: 4 KB
  • 大小: 12.7 KB
  • 大小: 76.8 KB
  • 大小: 64.2 KB
  • 大小: 3.4 KB
  • 大小: 4.7 KB
  • 大小: 4.9 KB
0
2
分享到:
评论

相关推荐

    文本特征选择方法

    总结来说,文本特征选择是数据挖掘中的关键环节,通过有效的预处理、特征提取和筛选,能够提升模型对文本数据的理解和预测能力,进而优化数据分析和挖掘的效果。在进行这一过程时,需根据具体问题和数据特性灵活选择...

    IG特征词选择算法的中间文件

    总结来说,信息增益是一种强大的特征选择工具,尤其在文本分类和信息检索中有着广泛的应用。通过对提供的中间文件进行分析,我们可以深入理解特征词的重要性,并优化文本表示,从而提升模型的预测能力和效率。

    文本特征提取常见方法

    除了文本表示模型外,特征选择也是文本数据预处理中的重要步骤。下面介绍六种常见的特征选择方法: 1. **卡方检验(Chi-Square Test)**:用于评估特征与类别之间的相关性。 2. **互信息(Mutual Information)**:...

    2016年ACM常用算法总结

    在ACM竞赛中,掌握如何分析算法复杂度,并根据复杂度选择合适算法,是取得好成绩的关键。 11. **搜索算法**:搜索算法用于在数据结构中查找特定元素,比如线性搜索、二分搜索、深度优先搜索(DFS)、广度优先搜索...

    一种不良文本特征选择方法

    ### 一种不良文本特征选择方法 #### 文本的表示与特征选择的重要性 在信息检索领域,文本的表示及其特征项的选择是一项基础而重要的任务。文本的表示方式直接影响到信息检索系统的性能,良好的文本表示能够帮助...

    文本分类 特征选择 VSM

    特征选择确保了分类器的准确性和效率,而向量空间模型则为文本的数学表示提供了框架,使得复杂的文本数据可以被机器学习算法理解和处理。随着深度学习的发展,如词嵌入和注意力机制等高级表示方法正在逐渐替代传统的...

    基于机器学习的中文文本分类算法的研究与实现

    在技术层面,文本分类涉及了预处理(如去除停用词、词干提取等)、特征表示(如TF-IDF、词嵌入等)、特征处理和分类算法的选择。在评价分类算法性能时,通常会使用准确率、召回率、F1分数等指标。而卷积神经网络则...

    ACM算法总结--最新总结的ACM算法

    根据给定的文件信息,以下是对“ACM算法总结--最新总结的ACM算法”的详细解析,涵盖了多种算法和数据结构的关键知识点。 ### ACM算法总结概览 #### 一、基本算法 1. **搜索算法**(如poj1753, poj2965):包括...

    最新文本挖掘算法总结.pdf

    本文将对其中的一些关键算法进行深入解析。 1. **基于概率统计的贝叶斯分类**: 贝叶斯分类是利用贝叶斯定理进行分类的方法,其中事件A和B的条件概率可以通过已知的先验概率和后验概率计算得出。在文本分类中,...

    关于文本特征抽取新方法的研究.pdf

    文本挖掘主要处理的是非结构化或半结构化的文本数据,这些数据相较于传统的结构化数据,特征数量巨大(可达几万甚至几十万),因此如何有效地进行特征抽取和筛选成为文本挖掘的关键问题之一。 #### 二、文本特征...

    深度学习视域下的文本特征提取方法分析.pdf

    封装式特征选择算法则依赖于监督式机器学习技术。在特征选择的过程中,它会训练一个模型,并基于这个模型来评估特征子集的优劣。封装式方法可以更好地考虑特征之间的相互关系和特征子集对于最终模型性能的影响,因此...

    中文文本相似度匹配算法 simHash 海明距离 IK分词

    总结来说,simHash、海明距离和IK分词是中文文本相似度匹配的关键技术。simHash提供了一种高效的方法来表示和比较文本,海明距离用于量化哈希值的差异,而IK分词则确保了文本预处理的准确性。结合这些工具,开发者...

    特征提取 中文文本分类

    特征提取在中文文本分类中扮演着至关重要的角色,它是将原始文本数据转化为机器学习模型能够理解和处理的形式的关键...在实际操作中,选择合适的特征提取策略并进行有效的特征选择,是构建高效文本分类模型的关键步骤。

    三年算法总结

    ### 三年算法总结 #### 图像去噪 **知识点概述:** 图像去噪是指去除图像中的随机噪声,同时尽可能保留图像的重要特征(如边缘、细节等)。本节介绍了一个具体的图像去噪方法及其背后的原理。 **核心原理及方法:...

    文本聚类K-means算法

    总结来说,C++实现的K-means算法用于文本聚类,涉及到文本的向量化表示、距离计算、聚类过程以及结果评估等多个环节。在实际编程时,需要注意优化和并行化,以及选择合适的评估指标以确保聚类质量。

    考研数据结构算法总结

    《考研数据结构算法总结》是针对计算机科学与技术专业考研学子的重要参考资料,它全面而深入地涵盖了数据结构领域的核心算法。这份资料集旨在帮助备考者系统性地理解和掌握数据结构中的基本概念、重要算法以及应用...

Global site tag (gtag.js) - Google Analytics