From 3924bc35fb5d80dd959805f0f91b2ad5c4d0bc4c Mon Sep 17 00:00:00 2001 From: Joe Zhao Date: Mon, 27 Apr 2015 11:39:51 +0800 Subject: debugged getAllData --- model/ranksvmtn.cpp | 7 ++++--- tools/dataProvider.h | 14 +++++++++++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/model/ranksvmtn.cpp b/model/ranksvmtn.cpp index cd58aa9..b82ce64 100644 --- a/model/ranksvmtn.cpp +++ b/model/ranksvmtn.cpp @@ -210,15 +210,16 @@ int RSVMTN::train(DataList &D){ vector A1,A2; int i,j; LOG(INFO)<<"Processing input"; + vector &dat = D.getData(); for (i=0;irank>0?0.5:-0.5; + corr(i)=(dat[i])->rank>0?0.5:-0.5; for (j = 0; j < D.getfSize(); ++j) - Data(i, j) = (D.getData()[i])->feature(j); + Data(i, j) = dat[i]->feature(j); } i=j=0; while (iqid!=D.getData()[i+1]->qid) + if ((i+1 == D.getSize())|| dat[i]->qid!=dat[i+1]->qid) { A1.push_back(j); A2.push_back(i); diff --git a/tools/dataProvider.h b/tools/dataProvider.h index 5a2f3e9..a8a5448 100644 --- a/tools/dataProvider.h +++ b/tools/dataProvider.h @@ -35,6 +35,14 @@ public: delete data[i]; data.clear(); } + static DataEntry* copyEntry(DataEntry* d) + { + DataEntry* dat = new DataEntry; + dat->rank = d->rank; + dat->qid = d->qid; + dat->feature = d->feature; + return dat; + } inline std::vector& getData(){ return data; } @@ -57,8 +65,12 @@ public: while (!EOFile()) { getDataSet(buf); - out.getData().insert(out.getData().end(),buf.getData().begin(),buf.getData().end()); + // won't work as data are discarded with every call to getDataSet + // out.getData().insert(out.getData().end(),buf.getData().begin(),buf.getData().end()); + for (int i=0;i