我们正在进行一项关于文本分类的任务,我们使用了一种无监督的机器学习模型。
在进行文本聚类之前,数据集必须经过几个步骤,如从停止词中清除数据集,从文本中提取词干词,然后得到特征选择。
阅读关于特征选择的文章,我可以应用几种方法来进行特征选择,如信息增益、基尼指数和互信息.
我想知道这些方法的性质,以及如何在编码部分实现它们,是否有任何库可以用来执行这些任务。
发布于 2013-12-23 11:34:32
你不应该选择功能。
文本遵循幂律,所以没有“不寻常的词语”或未使用的功能,您可以跳过。信息隐藏在分布的尾部,而不是最频繁的单词之间。
如果您确实希望绑定维度以提高计算效率(对于文本来说,路透社被认为是很小的),那么您应该部署一种基于散列的方法。
发布于 2013-12-28 18:44:38
根据应用程序域的不同,使用特征选择可以帮助文本分类。在经济、政治、体育等主题(基于主题的分类)中,词条、词条和词的选择通常都很好。在其他问题上,如垃圾邮件检测,在表示中使用停止词可以提高准确性。
问题是:文本的样式在应用领域很重要吗?如果是的话,你应该保留停止词和避免词干,但你总是可以执行特征选择,例如,那些特征的最高信息获得分数。
您可以通过StringToWordVector过滤器在WEKA中执行加注和堵塞操作。您可以使用AttributeSelection筛选器、搜索方法Ranker和评估度量InfoGainAttributeEval使用WEKA进行特征选择。在我的基于WEKA的文本挖掘页面中获取更多详细信息(对不起,SSP)。
发布于 2014-01-30 10:12:09
首先,我们必须生成arff文件。
arff文件格式如下:
@RELATION section将包含在整个文档中的所有单词,在预处理之后, .Each word将是real类型,因为值是一个真实值。
例如,在preprocessing.期间,@data section将包含它们的tfidf值,例如,首先将包含tfidf值,所有出现在第一文档中的单词,最后一列是document 类别。
@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的输入。这个对我有用。
https://stackoverflow.com/questions/20741392
复制相似问题