示例#1
0
        /// <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();
        }
示例#2
0
        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();
        }
示例#3
0
        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);
         }
     }
 }
示例#5
0
 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();
 }
示例#8
0
 private static TLSimilarityMatrix ConvertRocco(ref Info info, string input, string output)
 {
     TLSimilarityMatrix matrix = RanklistImporter.Import(input);
     Similarities.Export(matrix, output);
     return matrix;
 }