【问题标题】:Creating new attribute创建新属性
【发布时间】:2013-04-23 03:04:12
【问题描述】:

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

【问题讨论】:

    标签: rapidminer


    【解决方案1】:

    可能有更简单的方法来实现这一点,但您可以使用执行脚本运算符和一些正则表达式。此示例脚本将仅用最后三个单词替换属性“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+)$ 您可能需要使正则表达式适应您的数据。

    【讨论】:

      猜你喜欢
      • 2021-08-31
      • 2014-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-01
      • 1970-01-01
      • 2012-02-01
      • 2014-02-28
      相关资源
      最近更新 更多