4

我正在寻找一个包含大约 150 个类别(可能在 Java 中)的分类器,主要用于推文(非常小的文档)。一些类具有非常相似的域,例如。“公司”、“竞争”、“消费者”、“国际法”、“国际组织”、“国际政治与政府”。当需要如此高分辨率时,哪种算法/方法最好?我已经尝试过朴素贝叶斯(obv),但到目前为止它的表现并不是很好(尽管这可能只是由于训练数据的质量)。社区的想法将非常受欢迎!

谢谢,

标记

4

3 回答 3

5

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

单分类器

具有许多可能的类标签的单个分类器

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

分级分类器

分级分类器

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

直觉

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

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

于 2013-05-02T00:20:53.387 回答
2

威卡

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

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

由于您的类别相似,也许您也想检查一些多标签分类方法

于 2013-05-01T12:29:45.347 回答
2

您应该尝试不同的算法,因为已知没有模型能胜过其他算法。Weka(正如@Sanz 所建议的)或 RapidMiner 是尝试多个分类器而没有太多麻烦的好选择。

您的问题是推文携带的信息量非常有限,问题不在于应用哪种方法,而在于如何表示信息。您应该尝试一些使用推文数据(例如作者或主题标签)来增加知识的技术。您可以访问这些信息吗?

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

问候,

于 2013-05-01T12:50:39.973 回答