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