在 rapidminer 中,我有一个数据集,其中包含一个名为 address 的属性,其中包含属性地址,我需要做的是创建一个新属性,该属性仅包含每个属性地址中的最后 3 个单词。即 231 新路爱尔兰都柏林郡我想要的是新属性中的都柏林郡爱尔兰。任何人都可以帮助我完成这个过程,因为我对 rapidminer 非常陌生。我曾尝试使用函数表达式选项通过生成属性过程来做到这一点,但没有成功。
问问题
1859 次
1 回答
0
可能有一种更简单的方法可以实现这一点,但您可以使用执行脚本运算符和一些正则表达式。此示例脚本将仅用最后三个单词替换属性“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+)$
您可能需要使正则表达式适应您的数据。
于 2013-04-22T18:20:31.580 回答