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");
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }