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 云功能的 ibm watson webhook
IBM Watson Assistant:如何通过对话进行 API 调用