特征选择文本挖掘

时间:2013-12-23 10:18:36

标签: java nlp weka text-mining feature-selection

我们正在完成一项关于文本分类的任务,我们使用一种无​​监督的机器学习模型。

在我们进行文本聚类之前,数据集必须经过几个步骤,例如从停用词中清除它,从文本中提取干词,然后获取特征选择。

阅读有关特征选择的内容,我可以使用多种方法进行特征选择,例如信息增益,基尼指数和相互信息。

我想知道这些方法的性质以及我如何在编码部分实现它们,是否有任何库可以用来执行这些任务。

3 个答案:

答案 0 :(得分:0)

您不应该选择功能。

文字遵循幂律,因此您可以跳过“非常常用语”或未使用的功能。信息隐藏在发布的尾部,而不是最常见的单词。

如果您确实希望限制维度以提高计算效率(路透社被认为是文本较小),您应该部署基于哈希的方法。

  • 我想你会选择一些标准的TF-IDF功能表示并将单词视为功能。

答案 1 :(得分:0)

使用功能选择可以帮助文本分类,具体取决于应用程序域。在主题(基于主题的类别)中,例如经济,政治,体育等,阻止,停止和选择单词和单词n-gram通常很有效。在其他问题中,例如垃圾邮件检测,在表示中使用停用词可以提高准确性。

问题是:文本的样式在应用程序域中很重要?如果是,您应该保留停用词并避免词干,但您始终可以使用例如具有最高信息增益分数的那些功能。

您可以通过StringToWordVector过滤器在WEKA中执行停止和限制。您可以使用AttributeSelection过滤器使用WEKA进行功能选择,搜索方法为Ranker,评估指标为InfoGainAttributeEval。在我Text Mining with WEKA的页面中获取更多详细信息(抱歉SSP)。

答案 2 :(得分:0)

首先我们必须生成 arff 文件。

arff 文件格式如下:

@RELATION section将包含预处理后整个文档中的所有单词。每个单词的类型都是真实的,因为tfidf值是实数值。

@data section将包含在预处理期间计算的 tfidf值例如,首先将包含tfidf值,第一个文档中的所有单词以及文档的最后一列的 categary

@RELATION filename
@ATTRIBUTE word1 real
@ATTRIBUTE word2 real
@ATTRIBUTE word3 real
.
.
.
.so on
@ATTRIBUTE class {cacm,cisi,cran,med}

@data
0.5545479562,0.27,0.554544479562,0.4479562,cacm
0.5545479562,0.27,0.554544479562,0.4479562,cacm
0.55454479562,0.1619617,0.579562,0.5542,cisi
0.5545479562,0.27,0.554544479562,0.4479562,cisi
0.0,0.2396113617,0.44479562,0.2,cran
0.5545479562,0.27,0.554544479562,0.4479562,carn
0.5545177444479562,0.26196113617,0.0,0.0,med
0.5545479562,0.27,0.554544479562,0.4479562,med

生成此文件后,您可以将此文件作为InfoGainAttributeEval.java的输入。这对我有用。