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