我有一个数据库,其中存储了基于以下三个字段的数据:id、文本和{标签}。请注意,每个文本已被分配给多个标签\标记\类别。我想建立一个模型(weka\rapidminer\mahout),能够推荐\分类一堆标签\标记\类别到给定的文本。
我听说过SVM和朴素贝叶斯分类器,但不确定它们是否支持多标签分类。任何指导我正确方向的东西都非常欢迎!
我有一个数据库,其中存储了基于以下三个字段的数据:id、文本和{标签}。请注意,每个文本已被分配给多个标签\标记\类别。我想建立一个模型(weka\rapidminer\mahout),能够推荐\分类一堆标签\标记\类别到给定的文本。
我听说过SVM和朴素贝叶斯分类器,但不确定它们是否支持多标签分类。任何指导我正确方向的东西都非常欢迎!
基本的多标签分类方法是一对多(OvR),也叫做二元关联(BR)。基本思路是使用现成的二元分类器,例如朴素贝叶斯或SVM,然后创建K个实例来解决K个独立的分类问题。在类似Python的伪代码中:
for each class k:
learner = SVM(settings) # for example
labels = [class_of(x) == k for x in samples]
learner.learn(samples, labels)
在预测时,您只需对样本运行每个二元分类器并收集它们预测为正的标签。
(由于假定问题是独立的,因此显然可以并行进行培训和预测。有关执行多标签分类的两个Java软件包的链接,请参见维基百科。)