public override semanticFVExtractorKnowledge DoFVExtractionForClassViaCases(validationCaseCollection vCaseColl, IDocumentSetClass documentSetClass, kFoldValidationCase validationCase, classifierTools tools, ILogBuilder logger)
        {
            semanticFVExtractorKnowledge knowledge = vCaseColl.kFoldMaster.knowledgeLibrary.GetKnowledgeInstance <semanticFVExtractorKnowledge>(documentSetClass, vCaseColl.kFoldCase, logger);

            knowledge.SetRebuild(!tools.DoUseExistingKnowledge);


            if (knowledge.ShouldBuildAny())
            {
                DocumentSetCaseCollection dSetCol = new DocumentSetCaseCollection(documentSetClass);


                var context = tools.context.pipelineCollection.GetContext(tools, documentSetClass);

                //var sites = context.exitByType[typeof(pipelineTaskMCSiteSubject)].ConvertList<IPipelineTaskSubject, pipelineTaskMCSiteSubject>().ToList();
                var sites = context.exitByType[typeof(pipelineTaskMCSiteSubject)].ToList();
                List <pipelineTaskMCSiteSubject> ISites = sites.ConvertList <IPipelineTaskSubject, pipelineTaskMCSiteSubject>().ToList();

                List <pipelineTaskMCSiteSubject> fSites = vCaseColl.FilterSites(ISites);


                dSetCol.deploy(vCaseColl, validationCase, fSites, classes);

                List <webLemmaTermTable> tables = new List <webLemmaTermTable>();
                //List<webLemmaTermTable> chunkTables = new List<webLemmaTermTable>();



                foreach (DocumentSetCase vc in dSetCol)
                {
                    semanticFVExtractorKnowledge cKnowledge = vCaseColl.kFoldMaster.knowledgeLibrary.GetKnowledgeInstance <semanticFVExtractorKnowledge>(vc, validationCase, logger);
                    DoMakeKnowledgeForCase(vc, tools, dSetCol, logger);
                    tables.Add(cKnowledge.WLTableOfIndustryClass);
                }

                var tbl = tables.GetMergedLemmaTable(knowledge.name, logger);
                termTableConstructor.recompute(knowledge.WLTableOfIndustryClass, logger, false, tbl.GetList());



                DoMakeKnowledge(fSites, tools, knowledge, logger);
            }

            //  SetKnowledge(knowledge);
            //knowledge.OnBeforeSave();

            logger.log("[ALTPROC] Feature Extraction by [" + name + "][" + vCaseColl.kFoldCase.name + "][" + documentSetClass.name + "] done for " + vCaseColl.className);

            return(knowledge);
        }
        /// <summary>
        /// Deploys the specified v case coll.
        /// </summary>
        /// <param name="vCaseColl">The v case coll.</param>
        /// <param name="validationCase">The validation case.</param>
        /// <param name="subjects">The subjects.</param>
        /// <param name="classes">The classes.</param>
        public void deploy(validationCaseCollection vCaseColl, kFoldValidationCase _validationCase, IEnumerable <IPipelineTaskSubject> subjects, DocumentSetClasses classes)
        {
            lock (deployLock)
            {
                validation     = vCaseColl;
                validationCase = _validationCase;

                Thread.Sleep(100);

                var sites = subjects.ToSubjectTokenType <pipelineTaskMCSiteSubject>().ToList();
                // var sitesCopy = sites.ToList();

                sites = vCaseColl.FilterSites(sites);

                foreach (pipelineTaskMCSiteSubject site in sites)
                {
                    DocumentSetCase sCase = new DocumentSetCase();
                    sCase.subject = site;
                    sCase.data    = new WebClassifierResultSet(classes, validationCase.context, validationCase.extractor.settings);

                    Add(sCase);
                }
            }
        }
Exemple #3
0
 public override tfidfFVExtractorKnowledge DoFVExtractionForClassViaCases(validationCaseCollection vCaseColl, IDocumentSetClass documentSetClass, kFoldValidationCase validationCase, classifierTools tools, ILogBuilder logger)
 {
     throw new NotImplementedException();
 }