package org.gcube.dataanalysis.ecoengine.utils; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import org.gcube.contentmanagement.graphtools.data.BigSamplesTable; import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration; import com.rapidminer.example.ExampleSet; import com.rapidminer.example.table.DataRow; import com.rapidminer.example.table.ExampleTable; import com.thoughtworks.xstream.XStream; public class Transformations { public static ExampleSet matrix2ExampleSet(double[][] sampleVectors) { int m = sampleVectors.length; BigSamplesTable samples = new BigSamplesTable(); for (int k = 0; k < m; k++) samples.addSampleRow("sample", sampleVectors[k]); return samples.generateExampleSet(); } public static double[][] exampleSet2Matrix(ExampleSet set) { int m = set.size(); ExampleTable table = set.getExampleTable(); int n = table.getAttributeCount(); double[][] matrix = new double[m][n - 1]; for (int i = 0; i < m; i++) { DataRow row = table.getDataRow(i); for (int j = 0; j < n - 1; j++) { if (!table.getAttribute(j).isNominal()) { double d = row.get(table.getAttribute(j)); matrix[i][j] = d; } } } return matrix; } // gets all the columns from a matrix public static double[][] traspose(double[][] matrix) { int m = matrix.length; if (m>0){ int n = matrix[0].length; double columns[][]= new double[n][m]; for (int i = 0; i0) out = out + ","+vector[i]; else out = ""+vector[i]; } return out; } public static Object getObjectFromFile(String file) throws Exception{ /* FileInputStream fis = new FileInputStream(file); ObjectInputStream ois = new ObjectInputStream(fis); return ois.readObject(); */ XStream xstream = new XStream(); return xstream.fromXML(new FileInputStream(file)); // return xstream.fromXML(FileTools.loadString(file, "UTF-8")); } public static void dumpObjectToFile(String file, Object toWrite) throws Exception { XStream xstream = new XStream(); BufferedWriter bw = new BufferedWriter(new FileWriter(file)); bw.write(xstream.toXML(toWrite)); bw.close(); /* FileOutputStream fos = new FileOutputStream(file); ObjectOutputStream ois = new ObjectOutputStream(fos); ois.writeObject(toWrite); */ } public static void dumpConfig(String pathToFile, AlgorithmConfiguration config) throws Exception { Transformations.dumpObjectToFile(pathToFile, config); } public static AlgorithmConfiguration restoreConfig(String configFile) throws Exception{ FileInputStream fis = new FileInputStream(new File(configFile)); AlgorithmConfiguration config = (AlgorithmConfiguration) new XStream().fromXML(fis); fis.close(); return config; } public static double indexString(String string) { // string = Sha1.SHA1(string); StringBuffer sb = new StringBuffer(); if ((string==null) ||(string.length()==0)) return -1; int m= string.length(); for (int i=0;iInteger.MAX_VALUE) return (indexString(string.substring(0,3))); return d; } public static void main(String[] args) throws Exception{ String s = "un'estate al mare"; System.out.println("index: "+indexString(s)); System.out.println("sha1: "+Sha1.SHA1(s)); String s1 = "un'estate al mari"; System.out.println("index: "+indexString(s1)); System.out.println("sha1: "+Sha1.SHA1(s1)); String s2 = "ciao amico mio come stai oggi? fa caldo o sono io che mi scotto?"; System.out.println("index: "+indexString(s2)); System.out.println("sha1: "+Sha1.SHA1(s2)); } }