boolean OU = getParameterAsBoolean("Online updates");
Attributes Att = exampleSet.getAttributes();
AttributeRole ur=Att.getRole("user identification");
Attribute u=ur.getAttribute();
AttributeRole ir=null;
Attribute i=null;
if(OU==true){
if(Att.getRole("item identification")!=null){
ir=Att.getRole("item identification");
i=ir.getAttribute();
}
}
ItemRecommender model = exampleSetInput1.getData();
int N=getParameterAsInt("n");
List<Attribute> attr=new ArrayList<Attribute>();
com.rapidminer.data.CompactHashSet<Integer> s1=new com.rapidminer.data.CompactHashSet<Integer>();
ArrayList<Integer> new_users=new ArrayList<Integer>();
ArrayList<Integer> new_items=new ArrayList<Integer>();
ArrayList<Integer> feed_it=null;
ArrayList<Integer> feed_us=null;
int use_feedUpdate=0;
if(model.AddFeedbacks(null, null)==1){
feed_it=new ArrayList<Integer>();
feed_us=new ArrayList<Integer>();
use_feedUpdate=1;
}
if(N>model.MaxItemID)
N=model.MaxItemID+1;
com.rapidminer.data.CompactHashSet<Integer> s2=new com.rapidminer.data.CompactHashSet<Integer>();
com.rapidminer.data.CompactHashSet<Integer> s3=new com.rapidminer.data.CompactHashSet<Integer>();
for (Example example : exampleSet) {
double j=example.getValue(u);
int uid=model.user_mapping.ToInternalID((int) j);
double j1=0;
int iid=0;
if(OU==true){
if(uid>model.feedback.GetMaxUserID()){
new_users.add(uid);
}
if(Att.getRole("item identification")!=null){
j1=example.getValue(i);
iid=model.item_mapping.ToInternalID((int) j1);
if(iid>model.feedback.GetMaxItemID()){
new_items.add(iid);
}
model.feedback.Add(uid, iid);
s2.add(uid);
s3.add(iid);
if(use_feedUpdate==1){
feed_it.add(iid);
feed_us.add(uid);
}
}
}
s1.add(uid);
}
ArrayList<Integer> query_users=new ArrayList<Integer>(s2);
ArrayList<Integer> query_items=new ArrayList<Integer>(s3);
if(OU==true){
if(new_users.size()!=0)
model.AddUsers(new_users);
if(new_items.size()!=0)
model.AddItems(new_items);
if(use_feedUpdate==1){
model.AddFeedbacks(feed_us, feed_it);
}
model.RetrainUsers(query_users);
model.RetrainItems(query_items);
}
List<Integer> testU=new ArrayList<Integer>(s1);
List<WeightedItem> data1=null; //dodano
List<Integer> relevant_items=model.feedback.GetAllItems();
Attribute a1 = AttributeFactory.createAttribute("rank", Ontology.INTEGER);
Attribute tu = AttributeFactory.createAttribute("user_id", Ontology.INTEGER);
Attribute ti = AttributeFactory.createAttribute("item_id", Ontology.INTEGER);
attr.add(tu); attr.add(ti); attr.add(a1);
MemoryExampleTable a=new MemoryExampleTable(attr);
com.rapidminer.data.CompactHashSet<Integer> s=new com.rapidminer.data.CompactHashSet<Integer>();