IBM Watson Natural Language Classifier 是不是支持多个类和多个类集?

Posted

技术标签:

【中文标题】IBM Watson Natural Language Classifier 是不是支持多个类和多个类集?【英文标题】:Does the IBM Watson Natural Language Classifier support multiple classes and multiple class sets?IBM Watson Natural Language Classifier 是否支持多个类和多个类集? 【发布时间】:2015-12-13 10:29:05 【问题描述】:

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

我有 N 个训练文档 D 标记有不同标签集 S_1 到 S_n 的标签 l_x_y。其中 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 Documentation 对响应说以下内容:

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

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

【问题讨论】:

【参考方案1】:

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

"这是一些文本", "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 个独特的课程。因此,分类输出将包含这些类的置信度值。您可以将生成的类归入任一标签集中。

【讨论】:

以上是关于IBM Watson Natural Language Classifier 是不是支持多个类和多个类集?的主要内容,如果未能解决你的问题,请参考以下文章

IBM BigInsights (IBM Hadoop) 与 IBM Watson

IBM-Watson 云产品中输入所需的数据格式是啥?

没有 ibm 云功能的 ibm watson webhook

IBM Watson Assistant:如何通过对话进行 API 调用

如何从 javascript 调用 IBM Watson 服务

如何获取 IBM watson STT 服务的身份验证令牌?