使用OWC的WebAutomation扩展解析JSON:提取两个或更多关系示例集

Jana_OWCJana_OWC 主持人,成员,KB贡献者职位:14因素二世
大家好!

不久前,我发布了一个教程,解释如何使用旧世界计算的WebAutomation RapidMiner扩展来解析RapidMiner中的JSON(参见在这里)。该教程处理了如何从JSON字符串中提取一个ExampleSet;然而,当你知道如何提取两个或更多时,它就变得更有趣了关系ExampleSets !继续往下读,学习如何做到这一点。

如果你有任何问题,不要犹豫,尽管问!你也可以在RapidMiner社区样本库中找到教程过程:在RapidMiner中,用Read Document转到社区样本/社区合作伙伴材料/旧世界计算/JSON教程过程。

上节课讲到哪里

我们将继续介绍本教程第一部分中使用过的三本书的信息。我们目前提取的是标题,副标题,语言以及出版日期p 出版公司- books数组的属性。然而,再看一下JSON,我们会发现其中嵌套了另外两个数组:作者关键词。两者都可以有多个条目,例如第二本书的三位作者。



简单地将它们添加到我们现有的示例集中是不切实际的,因为有多个作者的书将迫使我们决定是否每本书只包含一行,但是这样我们只能获得嵌套数组的最后一项。这将意味着我们只存储杰罗姆•弗里德曼(Jerome Friedman)的观点,而忽略了哈斯蒂和蒂布希拉尼对这位数据科学家的圣经《统计学习要素》(Elements of statistical learning)的贡献。唯一的替代方案是为图书设置三行,但随后我们将拥有包含标题、副标题等的主数据的多个副本。
为了避免这种情况,我们将展示如何创建显示作者姓名的第二个表,以及如何将其与第一个表的主数据链接起来。
在本教程中,我们将重点创建第二个表来关联作者设置为我们的第一个ExampleSet,当然也可以为关键字-我们将在本教程的下一部分讨论如何处理值数组。

提取第二个数组

本教程以第一部分中创建的流程为基础。如果您不确定如何到达那里,请点击上面介绍中的链接查看前一部分。
能够访问作者数组中数组,只需添加另一个数组的过程操作员到您的过程。



基本上,这只是我们之前创建第一个示例集的操作的重复:输入Process Array操作符并添加Extract Properties和Commit Row操作符,以形成第二个ExampleSet。树形图使这种相似性更加清晰:



在Extract Properties中,输入名字和姓氏作为要提取的属性,然后返回到第一个Process Array级别。在这里,我们仍然需要建立端口连接:使用正片叠底,连接传入的左侧票面价值(解析规范)端口,同时使用Extract Properties和嵌套Process Array操作符。从进程阵列中出来,连接到第二个仍然未使用的,票面价值输出端口。确保将所有更高级别上的输出端口以及Process Object和Parse操作符之间的输出端口连接起来。正如您在下面的第二个屏幕截图中看到的,Parse Operator有多个票面价值接收多个解析规范的端口。对于每个传入的规范,操作符将生成一个单独的exampleeset。




启动该过程,您应该获得两个ExampleSets。但是,它们之间还没有关联:您将看到一个ExampleSet显示作者的姓名,另一个ExampleSet显示我们在本教程的第一部分提取的属性,但是从中,您将无法看到哪本书是由哪个作者写的。我们需要的是同时出现在两个集合中的ID。

在exampleesets之间建立连接

要创建两个示例集相互关联的ID,请转到第一个进程阵列的参数设置,选择“创建ID属性”,并为其指定名称:



一个自动递增的ID现在将被分配给数组中的每个对象,并将其作为结果数据集中的属性添加:



由于这些id对应于两个ExampleSets中的相同对象,因此现在可以比较两个数据集并查看哪个作者属于哪本书。
通常JSON应该已经包含一个ID值。在这种情况下,您可能希望使用它作为集合之间的连接,而不是由扩展创建的ID。为此,在Multiply操作符之前添加另一个Extract Properties操作符,并选择ID属性作为要生成的属性。如果您之前将ID添加为要在第一个(现在是第二个)Extract Properties操作符中提取的属性,请确保从那里删除它。将它放在Multiply前面将把它添加到两个示例集中,因为它现在包含在解析规范中,该规范被馈送到Process Array操作符中,供作者使用,如下所示:




我们希望这有助于您使用旧世界计算的WebAutomation扩展来提取JSON!我们将很快发布本教程的第三部分,介绍如何提取标量值数组。






IngoRM sgenzer BalazsBarany ChristianK
    登录注册置评。