删除其他行中包含的行(作为子字符串)

时间:2019-05-12 15:22:20

标签: knime

我有一个如下表:

This is a cat
This is a pet
This is a dog
is
a
is a
is
is a dog
That is a dog

我想得到一个如下表:

This is a cat
This is a pet
This is a dog
That is a dog

基本上删除其他行中已经包含的行(作为子字符串)。

2 个答案:

答案 0 :(得分:1)

您可以使用Cross Joiner节点创建所有行的组合(两个输入都来自您的示例)。紧跟着一个String Manipulation节点(可能跟着一个String to Number节点)或一个Java Snippet节点,如果原始文件包含在其中,则可以分配10。后者是否。之后,您可以基于原始列GroupBy并求和0 / 1值。使用Row Filter,您只能在汇总列中保留包含1的行。

(请注意,由于有了交叉连接器,它可以创建相当大的表。也许Distance measure nodes可以更有效地解决此问题。)

答案 1 :(得分:1)

这取决于数据集的确切性质,但是如果您的每一列都有一些文本值(如图片中所示),则可以将每一行都视为一个项目集,然后使用“项目集查找器”(经过适当的转换为位向量)以找到最大的项目集。

最大项目集将是其他行的超集。

Sample Workflow Example Table Output Table

相关问题