public static List<CSMR13DataSet> Import(string filename) { XmlDocument XMLdoc = new XmlDocument(); XMLdoc.Load(filename); string[] s = filename.Split(new char[] { '\\' }, StringSplitOptions.RemoveEmptyEntries); StringBuilder path = new StringBuilder(); for (long i = 0; i < s.Length - 1; i++) { path.Append(s[i]); path.Append("\\"); } path.Append(XMLdoc.GetElementsByTagName("Datasets")[0].Attributes["Directory"].Value.Replace('/', '\\')); List<CSMR13DataSet> datasets = new List<CSMR13DataSet>(); XmlNodeList nodelist = XMLdoc.GetElementsByTagName("Dataset"); foreach (XmlNode node in nodelist) { CSMR13DataSet dataset = new CSMR13DataSet(); dataset.SourceArtifacts = path + node["Corpus"].Attributes["Directory"].Value + node["Corpus"]["SourceArtifacts"].InnerText + "#" + node["Corpus"]["SourceArtifacts"].Attributes["Extension"].Value; dataset.TargetArtifacts = path + node["Corpus"].Attributes["Directory"].Value + node["Corpus"]["TargetArtifacts"].InnerText + "#" + node["Corpus"]["TargetArtifacts"].Attributes["Extension"].Value; dataset.Oracle = path + node["Corpus"].Attributes["Directory"].Value + node["Corpus"]["Oracle"].InnerText; dataset.Name = node.Attributes["Name"].Value; dataset.Relationships = path + node["Corpus"].Attributes["Directory"].Value + node["Corpus"]["Relationships"].InnerText; dataset.Stopwords = path + node["Corpus"].Attributes["Directory"].Value + node["Corpus"]["Stopwords"].InnerText; datasets.Add(dataset); } return datasets; }
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); } } }
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(); }