【发布时间】:2012-11-16 05:36:46
【问题描述】:
我目前正在开发一个简单的情绪分析器项目,以便在单独的案例中有2个和3个类。我正在使用一个 corpus,它在 unique words 方面非常丰富(大约 200.000)。我使用 bag-of-words 方法进行 特征选择 并减少 独特特征 的数量,由于 发生频率的>阈值。 最终的特征集包括大约 20.000 个特征,实际上减少了 90%,但对于预期的准确性不够强>的测试预测。我依次使用 LibSVM 和 SVM-light 进行训练和预测(linear 和 RBF kernel)和以及一般的 Python 和 Bash。
目前观察到的最高准确度约为 75%,我需要至少 90%。 二元分类就是这种情况。对于多类训练,准确率下降到~60%。我在这两种情况下都需要至少 90%,但不知道如何提高它:通过优化训练参数或通过优化特征选择?
我看过关于文本分类中特征选择的文章,发现使用了三种不同的方法,实际上它们之间有明显的相关性。这些方法如下:
- 词袋(BOW)的频率方法
- 信息增益 (IG)
- X^2 统计量 (CHI)
第一种方法我已经在用了,但是我用的很简单,需要指导才能更好的使用,以获得足够高的精度。我也缺乏关于 IG 和 CHI 的实际实施的知识,并寻求任何帮助来指导我。
非常感谢,如果您需要任何其他信息以寻求帮助,请告诉我。
@larsmans:频率阈值:我正在寻找示例中唯一单词的出现次数,这样如果一个单词在不同示例中出现的频率足够高,它就会包含在特征中设置为一个独特的功能。
@TheManWithNoName:首先感谢您为解释文档分类的一般问题所做的努力。我检查并试验了你提出的所有方法和其他方法。我发现 Proportional Difference (PD) 方法最适合特征选择,其中特征是 uni-gram,Term Presence (TP) 用于加权(我不明白为什么您将 Term-Frequency-Inverse-Document-Frequency (TF-IDF) 标记为索引方法,我宁愿将其视为 特征加权 方法)。正如您所提到的,预处理也是此任务的一个重要方面。我使用某些类型的字符串消除来优化数据以及形态解析和词干。另请注意,我正在研究土耳其语,与英语相比,它具有不同的特征。最后,我设法在 二元 分类和 ~84% 中达到 ~88% 的准确度(f-measure)multi-class 。这些值是我使用的模型成功的有力证明。这是我到目前为止所做的。现在致力于聚类和归约模型,尝试过 LDA 和 LSI 并继续研究 moVMF 可能还有 球形模型 (LDA + moVMF),这似乎更适用于具有客观性质的语料库,如新闻语料库。如果您对这些问题有任何信息和指导,我将不胜感激。我特别需要信息来设置特征空间降维方法(LDA、LSI、moVMF等)和聚类方法(k -手段,分层等)。
【问题讨论】:
-
你用的是什么频率阈值?
-
只是一个疯狂的猜测。你的减少已经删除了必要的信息。 SVM 在处理大量维度方面非常出色。你尝试过更大的功能集吗?您在训练中使用的样本量是多少?如果您无法训练更多特征,请尝试训练第二频繁的 20.000 以验证那里没有留下任何信息。和第三常见的词。
-
@clancularius,如果可能的话,您能否更详细地解释一下您用于特征提取和特征选择的技术。我也在研究一个文本分类问题,我的准确率不会超过 61%。
标签: python nlp svm sentiment-analysis feature-extraction