0
在rapidminer中,我有一个名为address的属性包含属性地址的数据集,我需要做的是创建一个新的属性,每个属性地址只包含最后3个字。即231新道路县都柏林爱尔兰我想要的是县都柏林爱尔兰的新属性。任何人都可以帮助我完成这个过程,因为我对rapidminer来说很新。我试图通过使用函数表达式选项的generate属性过程来实现,但没有成功。创建新属性
在rapidminer中,我有一个名为address的属性包含属性地址的数据集,我需要做的是创建一个新的属性,每个属性地址只包含最后3个字。即231新道路县都柏林爱尔兰我想要的是县都柏林爱尔兰的新属性。任何人都可以帮助我完成这个过程,因为我对rapidminer来说很新。我试图通过使用函数表达式选项的generate属性过程来实现,但没有成功。创建新属性
可能有更简单的方法来实现这一点,但是您可以使用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+)$
您可能需要将正则表达式修改为数据。