comparative-judgement
Version:
Comparative Judgement Algorithms
64 lines (60 loc) • 1.55 kB
JavaScript
var csv = require('fast-csv');
var async = require('async');
var interRater = require('./interRater');
var fs = require("fs");
var _ = require("underscore");
function irCsv(iters, file, exclude, callback){
console.log(iters, file, exclude);
var decisions;
var out;
async.series([
function(callback){
readDecisionsCsv(file, function(err, dat){
decisions = dat;
callback();
});
},
function(callback){
interRater.interRaterReliability(iters, decisions, exclude, function(err, dat){
out = dat;
callback();
});
},
function(callback){
writeInterRaterCsv(out, function(err, result){
callback();
});
}
],
function(err){
callback();
});
}
var readDecisionsCsv = function(csvFile, callback){
var decisions = [];
csv
.fromPath(csvFile, {headers:true})
.on("data", function(data){
decisions.push({chosen:data['Candidate Chosen'], notChosen:data['Candidate Not Chosen'], judge:data.Judge});
})
.on("end", function(){
callback(null, decisions);
});
};
var writeInterRaterCsv = function(data, callback){
var fn = Date.now() + '.csv';
var ws = fs.createWriteStream(fn);
var dat = [];
for(var i=0; i<data.values.length; i++){
dat.push({cor:data.values[i]});
}
csv
.write(dat, {
headers: false,
})
.pipe(ws);
callback(null, 'csv written');
};
module.exports = {
irCsv:irCsv,
};