public void DeploySettings(IPlaneSettings settings, ToolkitExperimentNotes _notes, ILogBuilder logger) { DeploySettingsBase(_notes); PlanesMethodSettings mainSettings = (PlanesMethodSettings)settings; EntityMethod.DeploySettings(mainSettings.entityMethod, notes, logger); CorpusMethod.DeploySettings(mainSettings.corpusMethod, notes, logger); VectorMethod.DeploySettings(mainSettings.vectorMethod, notes, logger); FeatureMethod.DeploySettings(mainSettings.featureMethod, notes, logger); CacheProvider.Deploy(new System.IO.DirectoryInfo(mainSettings.cachePath)); EntityMethod.CacheProvider = CacheProvider; CorpusMethod.CacheProvider = CacheProvider; VectorMethod.CacheProvider = CacheProvider; FeatureMethod.CacheProvider = CacheProvider; CloseDeploySettingsBase(); }
/// <summary> /// Gets default configuration /// </summary> /// <returns></returns> public static PlanesMethodSettings GetDefaultSettings() { PlanesMethodSettings output = new PlanesMethodSettings(); output.entityMethod.instructions.Add(DocumentRenderInstruction.GetDescriptionInstruction()); output.entityMethod.instructions.Add(DocumentRenderInstruction.GetTitleInstruction()); output.entityMethod.instructions.Add(DocumentRenderInstruction.GetBodyTextInstruction()); // output.entityMethod.blenderOptions = DocumentBlenderFunctionOptions.binaryAggregation | DocumentBlenderFunctionOptions.pageLevel; output.entityMethod.filterFunctionName = ""; // nameof(DocumentEntropyFunction); output.entityMethod.filterLimit = 5; output.corpusMethod.stemmer = nameof(EnglishStemmer); output.corpusMethod.tokenizer = nameof(TokenizerBasic); output.corpusMethod.transliterationRuleSetId = ""; #region PREPARE Weighting model var weightModel = new FeatureWeightModel(); weightModel.LocalFunction = new Weighting.Local.TermFrequencyFunction(); var globalFactor = new FeatureWeightFactor(); globalFactor.Settings.functionName = nameof(IDFElement); weightModel.GlobalFactors.Add(globalFactor); output.corpusMethod.WeightModel = weightModel; #endregion var featureFilter = new FeatureFilter(); featureFilter.limit = 8000; //featureFilter. //featureFilter.functionSettings = new GlobalFunctionSettings(); //featureFilter.functionSettings.functionName = nameof(CollectionTDPElement); //featureFilter.functionSettings.weight = 1.0; //featureFilter.functionSettings.flags.Add(Weighting.Metrics.TDPFactor.chi.ToString()); output.corpusMethod.filter = featureFilter; /* * output.vectorMethod.constructor = new Feature.Settings.FeatureVectorConstructorSettings(); * dimensionSpecification dimSpec = new dimensionSpecification(); * dimSpec.functionName = nameof(CosineSimilarityFunction); * dimSpec.type = FeatureVectorDimensionType.similarityFunction; * output.vectorMethod.constructor.labelDimensions.Add(dimSpec); */ //output.vectorMethod.constructor = new Feature.Settings.FeatureVectorConstructorSettings(); //dimensionSpecification dimSpec = new dimensionSpecification(); ////dimSpec.functionName = nameof(CosineSimilarityFunction); //dimSpec.type = FeatureVectorDimensionType.directTermWeight; //output.vectorMethod.constructor.featureDimensions.Add(dimSpec); output.featureMethod.classifierSettings.type = Classifiers.ClassifierType.multiClassSVM; output.featureMethod.classifierSettings.lossFunctionForTraining = Accord.MachineLearning.VectorMachines.Learning.Loss.L2; /* * output.featureMethod.classifierSettings.type = Classifiers.ClassifierType.kNearestNeighbors; * output.featureMethod.classifierSettings.lossFunctionForTraining = Accord.MachineLearning.VectorMachines.Learning.Loss.L2; * output.featureMethod.classifierSettings.kNN_k = 4; */ return(output); }