2013-04-22 182 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+)$您可能需要將正則表達式修改爲數據。