我目前正在做一个项目,一个简单的情绪分析器,这样在不同的情况下会有2 个和 3 个类。我正在使用一个包含非常丰富的独特单词(大约 200.000)的语料库。我使用词袋方法进行特征选择并减少独特特征的数量,由于出现频率的阈值而进行了消除。最终的特征集包括大约 20.000 个特征,实际上减少了 90%,但还不够用于测试预测的预期准确性。我依次使用LibSVM和SVM-light进行训练和预测(包括线性和RBF 内核)以及一般的Python和Bash。
到目前为止观察到的最高准确度约为 75%,我至少需要 90%。这是二进制分类的情况。对于多类训练,准确率下降到~60%。在这两种情况下我都需要至少 90%并且不知道如何增加它:通过优化训练参数或通过优化特征选择?
我读过关于文本分类中特征选择的文章,我发现使用了三种不同的方法,它们之间实际上有明显的相关性。这些方法如下:
- 词袋的频率方法(BOW)
- 信息增益(IG)
- X^2 统计量 (CHI)
第一种方法我已经在用了,但是我用的很简单,需要指导才能更好地使用它,以获得足够高的精度。我也缺乏关于IG和CHI实际实施的知识,并寻求任何帮助来指导我。
非常感谢,如果您需要任何其他信息以寻求帮助,请告诉我。
@larsmans:频率阈值:我正在寻找示例中唯一单词的出现,这样如果一个单词在不同示例中出现的频率足够高,它就会作为唯一特征包含在特征集中。
@TheManWithNoName:首先感谢您为解释文档分类的一般问题所做的努力。我检查并试验了你提出的所有方法和其他方法。我发现比例差(PD) 方法最适合特征选择,其中特征是 uni-grams 和用于加权的术语存在(TP ) IDF)作为一种索引方法,我宁愿将其视为一种特征加权方法)。 正如您所提到的,预处理也是此任务的一个重要方面。我使用某些类型的字符串消除来优化数据以及形态解析和词干。另请注意,我正在研究土耳其语,与英语相比,它具有不同的特征。最后,对于二元分类,我设法达到了~88% 的准确度(f-measure),对于多类,我达到了~84%。这些值是我使用的模型成功的有力证明。这是我到目前为止所做的。现在致力于聚类和缩减模型,已经尝试过LDA和LSI,并转向moVMF和球形模型(LDA + moVMF),这似乎更适用于具有客观性质的语料库,如新闻语料库。如果您对这些问题有任何信息和指导,我将不胜感激。我特别需要信息来设置特征空间降维方法(LDA、LSI、moVMF 等)和聚类方法(k-means、分层等)之间的接口(面向 python、开源)。