2013-04-22 113 views
0

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

回答

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+)$您可能需要将正则表达式修改为数据。