
背景:我们有这样一个Excel文档,其中有两个工作簿,第一个工作簿中记录了零件的代码和零件的描述,其中零件的描述是长字符串,其中可能含有运营商的标识符;第二个工作簿是运营商的标识符列表,其中的字符串可能为零件描述文本的子字符串。需求是批量判断零件描述字符串中,是否出现过第二个工作簿中的运营商标识符,出现过一次或多次,都得到结果“是”,否则为“否”。
我们将使用多种方案来实现上述需求,从而通过这样的案例,加深对KNIME诸多节点功能的认识,将来可以拓展到其他需求解决当中去。
方案1:视频介绍请移步B站,搜索Up:“星汉长空”,视频:KNIME案例(268)批量子串匹配1。具体步骤介绍请参考视频,下面仅简要介绍关键的步骤及涉及到的节点功能。
思路:既然有若干个运营商标识符需要判断,自然想到可以使用循环节点,每次通过其中一个运营商标识符,依据零件描述文本特点构造正则表达式,看批量的零件描述是否与之匹配,通过KNIME字符串处理(String Manipulation)节点下的regexMatcher函数就可以得到匹配结果。对于同一个零件对于多个运营商标识符形成的正则表达式匹配结果取最大值,则只要含有一个匹配结果,就可以得到判别结果“是”。可以使用分组节点功能,依据零件代码进行分组,组中取匹配结果的最大值。最后使用字符串处理的方法,将布尔型结果转变为字符结果(“是”和“否”)即可满足需求。
步骤1. 如图所示,在KNIME中加入两个Excel Reader节点,分别读入数据源Excel文件的两个工作簿(注意工作簿名的选取设置)。得到零件代码和零件描述列表,还有运营商标识符列表。
步骤2. 加入表行转变量循环(Table Row To Variable Loop Start)节点,将其与运营商标识符列表相连,这样就可以循环读取表格中的运营

本文介绍使用KNIME平台通过循环节点和正则表达式批量判断零件描述中是否包含特定运营商标识符的方法。
最低0.47元/天 解锁文章
923

被折叠的 条评论
为什么被折叠?



