summaryrefslogtreecommitdiff
path: root/tools/fileDataProvider.h
diff options
context:
space:
mode:
authorJoe Zhao <ztuowen@gmail.com>2015-04-10 20:39:00 +0800
committerJoe Zhao <ztuowen@gmail.com>2015-04-10 20:39:00 +0800
commit705f3731f4c49a75e2824d16622ff853634335c7 (patch)
tree8c6a171615f27d0cb25484f72ccf1f84391eb9c3 /tools/fileDataProvider.h
parent01b523c7ce4eb5e692b0dcbec63efac0e8d1e2c7 (diff)
downloadranksvm-705f3731f4c49a75e2824d16622ff853634335c7.tar.gz
ranksvm-705f3731f4c49a75e2824d16622ff853634335c7.tar.bz2
ranksvm-705f3731f4c49a75e2824d16622ff853634335c7.zip
structuring input
Diffstat (limited to 'tools/fileDataProvider.h')
-rw-r--r--tools/fileDataProvider.h25
1 files changed, 21 insertions, 4 deletions
diff --git a/tools/fileDataProvider.h b/tools/fileDataProvider.h
index 9ce78e6..6ccf28f 100644
--- a/tools/fileDataProvider.h
+++ b/tools/fileDataProvider.h
@@ -3,21 +3,38 @@
#include "dataProvider.h"
#include <string>
+#include <iostream>
+#include <fstream>
class FileDP:public DataProvider
{
private:
std::string fname;
+ std::ifstream fin;
public:
FileDP(std::string fn=""):fname(fn){};
void setFname(std::string fn){fname=fn;};
virtual int getDataSet(DataList &out){
+ DataEntry* e;
+ out.clear();
+ int fsize;
+ out.setfSize(fsize);
+ fin>>fsize;
+ while (!fin.eof()) {
+ e= new DataEntry;
+ fin>>e->rank;
+ fin>>e->qid;
+ e->feature.resize(fsize);
+ for (int i=0;i<fsize;++i) {
+ fin>>e->feature(i);
+ }
+ out.addEntry(e);
+ }
+ eof=true;
return 0;
}
- int getDataSet(DataSet &D) {return 0;}
- int getLabel(Labels &l) {return 0;}
- virtual int open(){eof=true;return 0;};
- virtual int close(){return 0;};
+ virtual int open(){fin.open(fname); eof=false;return 0;};
+ virtual int close(){fin.close();return 0;};
};
#endif \ No newline at end of file