/// <summary> /// MAIN /// </summary> /// <param name="args">Console arguments</param> static void Main(string[] args) { // basic info Info info = new Info(); info.BaseDirectory = new DirectoryInfo(@"C:\Users\Evan\Documents\SEMERU\TraceLab\trunk\SEMERU.Experiments\CSMR'13"); info.ResultsDirectory = new DirectoryInfo(info.BaseDirectory.FullName + @"\results"); info.OutputDirectory = new DirectoryInfo(info.ResultsDirectory.FullName + @"\CSMRTools"); info.DataDirectory = new DirectoryInfo(info.BaseDirectory.FullName + @"..\..\SEMERU.Datasets"); info.IRModels = new List<string>(new string[] { "VSM", "JS" }); info.StructuralModels = new List<string>(new string[] { "OCSTI", "UDCSTI" }); Directory.CreateDirectory(info.OutputDirectory.FullName); #if false // import dataset info List<CSMR13DataSet> Datasets = ExperimentalSetup.Import(info.BaseDirectory + @"\setup.xml"); // run main results foreach (CSMR13DataSet dataset in Datasets) { Console.WriteLine("Running {0}...", dataset.Name); CheckLinkOrder.Run(ref info, dataset); } // Rocco results ConvertRoccoResults.Run(ref info); #endif RunModelsWithRoccoResults.Run(ref info); Console.WriteLine("Press [Enter] to quit."); Console.ReadLine(); }
private static void RoccoMetrics(ref Info info, string output, string input) { List<KeyValuePair<double, double>> metrics = RanklistImporter.ImportMetrics(input); TextWriter dataFile = File.CreateText(output); foreach (KeyValuePair<double, double> kvp in metrics) { dataFile.WriteLine("{0} {1}", kvp.Key, kvp.Value); } dataFile.Flush(); dataFile.Close(); }
private static void MyMetrics(ref Info info, string output, TLSimilarityMatrix matrix, TLSimilarityMatrix oracle) { DataSetPairsCollection metrics = OverallMetricsComputation.ComputeAll(matrix, oracle); TextWriter dataFile = File.CreateText(output); for (int i = 0, j = 10; i < metrics.Count; i++, j += 10) { dataFile.WriteLine("{0} {1}", j, metrics[i].PrecisionData[0].Value); } dataFile.Flush(); dataFile.Close(); }
public static void Run(ref Info info, CSMR13DataSet dataset) { Console.WriteLine("Running CheckLinkOrder on {0}", dataset.Name); Directory.CreateDirectory(info.OutputDirectory + @"\CheckLinkOrder"); TLSimilarityMatrix oracle = Oracle.Import(dataset.Oracle); foreach (string IRModel in info.IRModels) { WriteSims(ref info, dataset, oracle, IRModel); foreach (string StructuralModel in info.StructuralModels) { WriteSims(ref info, dataset, oracle, IRModel + "_" + StructuralModel); } } }
public static void Run(ref Info info) { DirectoryInfo directory = Directory.CreateDirectory(info.OutputDirectory + @"\RoccoResults"); string resultsBase = @"C:\Temp\CSMR'13\results"; // EasyClinic UC->CC TLSimilarityMatrix oracle = Oracle.Import(directory.FullName + @"\EasyClinic UC-CC.oracle"); // EasyClinic UC->CC VSM TLSimilarityMatrix vsm = ConvertRocco(ref info, resultsBase + @"\rlist.csv", directory.FullName + @"\EasyClinic UC-CC.VSM.sims"); MyMetrics(ref info, directory.FullName + @"\EasyClinic UC-CC.VSM.MYmetrics", vsm, oracle); RoccoMetrics(ref info, directory.FullName + @"\EasyClinic UC-CC.VSM.metrics", resultsBase + @"\rlist.csv"); // EasyClinic UC->CC VSM + UD-CSTI TLSimilarityMatrix vsmudcsti = ConvertRocco(ref info, resultsBase + @"\frlist.csv", directory.FullName + @"\EasyClinic UC-CC.VSM_UDCSTI.sims"); MyMetrics( ref info, directory.FullName + @"\EasyClinic UC-CC.VSM_UDCSTI.MYmetrics", vsmudcsti, oracle); RoccoMetrics(ref info, directory.FullName + @"\EasyClinic UC-CC.VSM_UDCSTI.metrics", resultsBase + @"\frlist.csv"); }
public static void Run(ref Info info) { TLSimilarityMatrix vsm = Similarities.Import(info.ResultsDirectory + @"\CSMRTools\RoccoResults\EasyClinic UC-CC.VSM.sims"); TLSimilarityMatrix oracle = Oracle.Import(info.ResultsDirectory + @"\CSMRTools\RoccoResults\EasyClinic UC-CC.oracle"); TLSimilarityMatrix usage = Oracle.Import(info.ResultsDirectory + @"\CSMRTools\RoccoResults\EasyClinic UC-CC.relationships"); TLSimilarityMatrix udcsti = UDCSTI.Compute(vsm, usage, oracle); Similarities.Export(udcsti, info.ResultsDirectory + @"\CSMRTools\RoccoResults\EasyClinic UC-CC.VSM_UDCSTI.MYsims"); DataSetPairsCollection metrics = OverallMetricsComputation.ComputeAll(udcsti, oracle); TextWriter dataFile = File.CreateText(info.ResultsDirectory + @"\CSMRTools\RoccoResults\EasyClinic UC-CC.VSM_UDCSTI.MYsims.metrics"); for (int i = 0, j = 10; i < metrics.Count; i++, j += 10) { dataFile.WriteLine("{0} {1}", j, metrics[i].PrecisionData[0].Value); } dataFile.Flush(); dataFile.Close(); }
private static void WriteSims(ref Info info, CSMR13DataSet dataset, TLSimilarityMatrix oracle, string model) { TextWriter Output = File.CreateText(info.OutputDirectory + @"\CheckLinkOrder\" + SharedUtils.CleanFileName(dataset.Name) + "." + model + ".txt"); TLSimilarityMatrix sims = Similarities.Import(info.ResultsDirectory.FullName + @"\" + SharedUtils.CleanFileName(dataset.Name) + @"\sims\" + model + ".sims"); TLLinksList simList = sims.AllLinks; simList.Sort(); int pos = 1; foreach (TLSingleLink link in simList) { if (oracle.IsLinkAboveThreshold(link.SourceArtifactId, link.TargetArtifactId)) { Output.WriteLine("[{0}]\t{1}\t{2}\t{3}", pos, link.SourceArtifactId, link.TargetArtifactId, link.Score); } pos++; } Output.Flush(); Output.Close(); }
private static TLSimilarityMatrix ConvertRocco(ref Info info, string input, string output) { TLSimilarityMatrix matrix = RanklistImporter.Import(input); Similarities.Export(matrix, output); return matrix; }