В Rapidminer у меня есть набор данных с атрибутом, называемым адресом, который содержит адрес свойства, что мне нужно сделать, это создать новый атрибут, который будет содержать только последние 3 слова в каждом адресе свойства. т.е. 231 новая дорога, графство Дублин, Ирландия, что я хочу иметь, это графство Дублин, Ирландия, в новом атрибуте. Может ли кто-нибудь помочь мне с этим процессом, так как я очень новичок в Rapidminer. Я попытался сделать это с помощью процесса создания атрибута, используя параметры выражения функции, но безуспешно.
Создание нового атрибута
Ответы (1)
Это может быть проще, но вы можете использовать оператор 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+)$
Возможно, вам придется адаптировать регулярное выражение к вашим данным.
person
Josef Borkovec
schedule
22.04.2013