private SummaryData ExtractSummaryData(ICSM11DataSet ds, string modelName, DataSetPairsType type) { DataSetPairs model = null; foreach (DataSetPairs dsp in ds.Metrics) { if (dsp.Name.Split(new char[] { '.' })[0].Equals(modelName)) { model = dsp; } } if (model == null) { throw new ArgumentException("Model \"" + modelName + "\" not found."); } switch (type) { case DataSetPairsType.Precision: return(CreateSummaryData(model.PrecisionData, modelName)); case DataSetPairsType.Recall: return(CreateSummaryData(model.RecallData, modelName)); case DataSetPairsType.AveragePrecision: return(CreateSummaryData(model.AveragePrecisionData, modelName)); case DataSetPairsType.MeanAveragePrecision: return(CreateSummaryData(model.MeanAveragePrecisionData, modelName)); default: throw new ArgumentException("Unknown DataSetPairsType"); } }
public static List <ICSM11DataSet> ImportDatasets(FilePath XMLfile) { XmlDocument XMLdoc = new XmlDocument(); XMLdoc.Load(XMLfile.Absolute); string[] s = XMLfile.Absolute.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('/', '\\')); string RTMsimspath = XMLdoc.GetElementsByTagName("Datasets")[0].Attributes["PrecomputedRTMSimilaritiesDirectory"].Value.Replace('/', '\\'); List <ICSM11DataSet> datasets = new List <ICSM11DataSet>(); XmlNodeList nodelist = XMLdoc.GetElementsByTagName("Dataset"); foreach (XmlNode node in nodelist) { ICSM11DataSet dataset = new ICSM11DataSet(); 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.PrecomputedRTMSimilarities = path + RTMsimspath + node["Settings"]["PrecomputedRTMSimilarities"].InnerText; dataset.RTM = new RTMSettings { Alpha = Convert.ToDouble(node["Settings"]["RTM"]["Alpha"].InnerText), Beta = Convert.ToDouble(node["Settings"]["RTM"]["Beta"].InnerText), Eta = Convert.ToDouble(node["Settings"]["RTM"]["Eta"].InnerText), NumTopics = Convert.ToInt32(node["Settings"]["RTM"]["NumTopics"].InnerText), }; dataset.PCA = new PCASettings { VSM_JS = Convert.ToDouble(node["Settings"]["PCA"]["VSM_JS"].InnerText), VSM_RTM = Convert.ToDouble(node["Settings"]["PCA"]["VSM_RTM"].InnerText), JS_RTM = Convert.ToDouble(node["Settings"]["PCA"]["JS_RTM"].InnerText), }; datasets.Add(dataset); } return(datasets); }
public override void Compute() { int curr = ((int)Workspace.Load("CurrentDataset")) - 1; List <ICSM11DataSet> list = (List <ICSM11DataSet>)Workspace.Load("ListOfDatasets"); ICSM11DataSet dataset = list[curr]; string[] sourceInfo = dataset.SourceArtifacts.Split(new char[] { '#' }); string[] targetInfo = dataset.TargetArtifacts.Split(new char[] { '#' }); TLArtifactsCollection targetArtifacts = Artifacts.ImportDirectory(targetInfo[0], targetInfo[1]); TLArtifactsCollection sourceArtifacts = Artifacts.ImportDirectory(sourceInfo[0], sourceInfo[1]); Workspace.Store("SourceArtifacts", sourceArtifacts); Workspace.Store("TargetArtifacts", targetArtifacts); TLSimilarityMatrix answer = Oracle.Import(dataset.Oracle); Workspace.Store("Oracle", answer); Workspace.Store("RTM_NumTopics", list[curr].RTM.NumTopics); Workspace.Store("RTM_Alpha", list[curr].RTM.Alpha); Workspace.Store("RTM_Beta", list[curr].RTM.Beta); Workspace.Store("RTM_Eta", list[curr].RTM.Eta); Workspace.Store("VSM_JS_lambda", list[curr].PCA.VSM_JS); Workspace.Store("VSM_RTM_lambda", list[curr].PCA.VSM_RTM); Workspace.Store("JS_RTM_lambda", list[curr].PCA.JS_RTM); }