精细文本分类 - 什么算法?

时间:2013-05-01 12:13:45

标签: java algorithm machine-learning classification

我正在寻找实现一个大约150个类别(可能是Java)的分类器,主要用于推文(所以非常小的文档)。有些类具有非常相似的域,例如。 '公司','竞争','消费者','国际法','国际组织','国际政治和政府'。当需要如此高的分辨率时,哪种算法/方法最好?我尝试过Naive Bayes(obv),到目前为止它的表现并不是很好(尽管这可能仅仅归因于训练数据的质量)。社区的想法非常受欢迎!

谢谢,

标记

3 个答案:

答案 0 :(得分:5)

可能值得提出一个从(可能很多)级别的子分类器构建的分层分类器(即,为您的文档标签提供分类法)。

单一分类器

single classifier with many possible class labels

单个分类器可以输出任何可能的类标签。

分层分类器

hierarchical classifier

分层分类器将相关的类标签组合在一起,并执行其他分类层,直到到达叶节点(或直到置信度降至某个阈值以下)。

直觉

直觉是当分类数量较少时,分类器将更容易学习判别性特征。

例如,分层分类器可以更容易地学习player是指示运动的好特征,而单个分类器如果player只能看到一个,则会有更困难的时间类别(篮球),而不是另一个(曲棍球)。

答案 1 :(得分:2)

WEKA

Weka是一种不同的机器学习模型(Naive Bayes,C4.5,OneR,SVM,K-NN ......)的实验工具,是最常用于数据挖掘的模型之一。也许你想尝试不同的模型,看看哪个最适合你的问题。

您可以从Java代码中调用算法,或使用其可执行文件直接在数据集上运行它们。

由于您的类别相似,或许您想要检查一些Multi-label classification方法

答案 2 :(得分:2)

你应该尝试不同的算法,因为没有任何模型可以胜过其他模型。 Weka(由@Sanz建议)或RapidMiner是尝试多个分类器而不会有太多麻烦的好选择。

您的案例中的问题是推文传递的信息量非常有限,问题不在于应用哪种方法,而在于如何表示信息。您应该尝试一些使用推特数据(如作者或主题标签)进行知识增强的技术。你有权访问这些信息吗?

考虑多标签方法也是一个不错的选择。但是,我会首先关注数据表示和扩充。

此致