1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
import esotech.rosetta.*;
import esotech.rosetta.renderers.*;
import esotech.rosetta.plugins.*;
import org.jdom.Document;
import esotech.analysis.analyser.CorrelationAnalyser;
import esotech.analysis.analyser.ScatterPlotAnalyser;
import esotech.analysis.analyser.AttributeAnalyser;
import esotech.analysis.analyser.ACPAnalyser;
import esotech.analysis.AnalysisReport;
import esotech.data.AttributeTypeNumeric;
import esotech.data.Dataset;
import esotech.data.DatasetStructure;
import esotech.data.extract.ArffExtractor;
class AnalysisController {
def defaultContent = "@RELATION iris\n"+
"\n"+
"@ATTRIBUTE sepallength REAL\n"+
"@ATTRIBUTE sepalwidth REAL\n"+
"@ATTRIBUTE petallength REAL\n"+
"@ATTRIBUTE petalwidth REAL\n"+
"@ATTRIBUTE class {Iris-setosa,Iris-versicolor,Iris-virginica}\n"+
"\n"+
"@DATA\n"+
"5.1,3.5,1.4,0.2,Iris-setosa\n"+
"4.9,3.0,1.4,0.2,Iris-setosa\n"+
"les autres ligne du jeu de données iris.arff \n"+
"5.9,3.0,5.1,1.8,Iris-virginica\n";
def index = {
[content:defaultContent]
}
def submitText = {
processAndRender(params.content);
}
def submitFile = {
processAndRender(request.getFile('file').inputStream.text)
}
def processAndRender(content) {
// Là il faut que tu utiliser un ArffReader de Weka.
ArffExtractor extractor = new ArffExtractor(new StringReader(content));
// Faire ton traitement avec Weka
AnalysisReport report = new AnalysisReport(extractor.extract());
report.addAnalysis(new AttributeAnalyser());
report.addAnalysis(new CorrelationAnalyser());
report.addAnalysis(new ACPAnalyser());
// Gérer l'affichage, ici j'utilise ma lib pour faire du pdf, mais tu peux sortir du html ce sera plus simple
println report
RosettaEngine engine = new RosettaEngine();
def document = engine.parseString(report.toString());
engine.process(document);
// Create the pdf renderer which will be tested.
PdfRenderer renderer = new PdfRenderer();
// use a buffer to store the generated pdf.
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
// Wrap it in a printstream
PrintStream ps = new PrintStream(buffer);
// Generate the pdf.
renderer.render(document, ps);
ps.close();
/* println buffer.toString()*/
response.contentType = "application/pdf"
response.outputStream << buffer.toByteArray()
}
} |
Partager