Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        /// <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);
        }