创建新属性

时间:2013-04-22 15:18:48

标签: rapidminer

在rapidminer中我有一个数据集,其中包含一个名为address的属性,其中包含属性地址,我需要做的是创建一个新属性,每个属性地址只包含最后3个单词。即231新道路都柏林郡爱尔兰我想要的是都柏林爱尔兰的新属性。任何人都可以帮助我完成这个过程,因为我对快速通道非常新。我尝试使用使用函数表达式选项的generate属性进程但没有成功。

1 个答案:

答案 0 :(得分:0)

可能有一种更简单的方法可以实现,但您可以使用Execute Script运算符和一些正则表达式。此示例脚本将仅使用最后三个单词替换属性“att1”的值:

import java.util.regex.*

exampleSet = operator.getInput(ExampleSet.class)
Pattern p = Pattern.compile("^.*?(\\S+\\s\\S+\\s\\S+)\$")
for(Example example : exampleSet){
    value = example["att1"]
    print(value)
    Matcher m = p.matcher(value)
    if(m.matches()){
        example["att1"] = m.group(1)
    }
}
return exampleSet

编辑:

确实有更简单的方法:将Generate extract运算符与正则表达式一起使用:(\S+\s\S+\s\S+)$您可能需要使正则表达式适应您的数据。