2

我正在尝试使用 IBM Bluemix 上的 IBM Watson Natural Language Classifier 解决以下问题:

我有 N 个用不同标签集 S_1 到 S_n 的标签 l_x_y 标记的训练文档 D。其中 x 定义标签集, y 定义集内的实际标签。每个文档都可以用多个标签(来自不同的标签集)进行标记。

这里有一个例子:

标签集 1:S_1={a,b,c,d,e,f} 标签集 2:S_2={1,2,3,4,5,6}

D_1 = "这是一些文本", {a,c,e,1,3,4} D_2 = "这是一些文本2", {d,f,4}

如果我理解正确,则 REST 服务能够接受多个类的训练。天真的方法是只为每个标签集训练一个不同的分类器。

但是有没有更好的方法来做到这一点?例如,我可以使用每组标签的并集(如 D_1 和 D_2 所示)吗?

因为API 文档对响应进行了以下说明:

一个数组 [Classes],最多包含 10 个按置信度降序排列的 class_name-confidence 对。如果类别少于 10 个,则置信值之和为 100%。

所以这意味着如果所有标签集的并集的基数> 10,它可能会忽略低置信度类,但是使用标签集的并集还有其他问题吗?

4

1 回答 1

3

数据格式指定“文本”之后的每一列都将被视为一个类标签。如果您将训练数据发送为(在您的情况下):

"这是一些文本", "{a,c,e,1,3,4}"

“这是一些文本 2”、“{d,f,4}”

然后,服务假设训练数据中有两个唯一的类:{a,c,e,1,3,4} 和 {d,f,4}。

但是,您可以通过创建如下训练数据来尝试在多个标签上进行训练:

"这是一些文本", a,c,e,1,3,4

"这是一些文本 2", d,f,4

在这种情况下,您正在训练 8 个独特的课程。因此,分类输出将包含这些类的置信度值。您可以在这些标签集中对结果类进行分类。

于 2015-09-22T01:29:48.683 回答