public void Dispose()
            {
                if (Processor != null)
                {
                    Processor.Dispose();
                    Processor = null;
                }

                if (MorphoModel != null)
                {
                    MorphoModel.Dispose();
                    MorphoModel = null;
                }

                if (MorphoAmbiguityResolverModel != null)
                {
                    MorphoAmbiguityResolverModel.Dispose();
                    MorphoAmbiguityResolverModel = null;
                }

                if (SentSplitterConfig != null)
                {
                    SentSplitterConfig.Dispose();
                    SentSplitterConfig = null;
                }
            }
Exemple #2
0
        public ConcurrentFactory(PosTaggerProcessorConfig config,
                                 IMorphoModel morphoModel,
                                 MorphoAmbiguityResolverModel morphoAmbiguityModel,
                                 int instanceCount)
        {
            if (instanceCount <= 0)
            {
                throw (new ArgumentException("instanceCount"));
            }
            if (config == null)
            {
                throw (new ArgumentNullException("config"));
            }
            if (morphoModel == null)
            {
                throw (new ArgumentNullException("morphoModel"));
            }
            if (morphoAmbiguityModel == null)
            {
                throw (new ArgumentNullException("morphoAmbiguityModel"));
            }

            _Semaphore = new Semaphore(instanceCount, instanceCount);
            _Stack     = new ConcurrentStack <PosTaggerProcessor>();
            for (int i = 0; i < instanceCount; i++)
            {
                _Stack.Push(new PosTaggerProcessor(config, morphoModel, morphoAmbiguityModel));
            }
        }
            private static MorphoAmbiguityResolverModel CreateMorphoAmbiguityResolverModel()
            {
                var config = new MorphoAmbiguityResolverConfig()
                {
                    ModelFilename       = Config.MORPHO_AMBIGUITY_MODEL_FILENAME,
                    TemplateFilename_5g = Config.MORPHO_AMBIGUITY_TEMPLATE_FILENAME_5G,
                    TemplateFilename_3g = Config.MORPHO_AMBIGUITY_TEMPLATE_FILENAME_3G,
                };
                var model = new MorphoAmbiguityResolverModel(config);

                return(model);
            }
 public PosTaggerMorphoAnalyzer(IMorphoModel morphoModel
                                , MorphoAmbiguityResolverModel morphoAmbiguityModel)
 {
     _MorphoModel    = morphoModel;
     _MorphoAnalyzer = new MorphoAnalyzer(_MorphoModel);
     _MorphoAmbiguityPreProcessor = new MorphoAmbiguityPreProcessor();
     _MorphoAmbiguityResolver     = new MorphoAmbiguityResolver(morphoAmbiguityModel);
     _wordFormMorphologies_Buffer = new List <WordFormMorphology_t>();
     _WordMorphoAmbiguityFactory  = new WordMorphoAmbiguityFactory(null);
     _WordMorphoAmbiguities       = new List <WordMorphoAmbiguity_t>();
     _CTM = xlat_Unsafe.Inst._CHARTYPE_MAP;
 }
Exemple #5
0
        public PosTaggerProcessor(PosTaggerProcessorConfig config,
                                  IMorphoModel morphoModel,
                                  MorphoAmbiguityResolverModel morphoAmbiguityModel)
        {
            CheckConfig(config, morphoModel, morphoAmbiguityModel);

            _Tokenizer                      = new Tokenizer(config.TokenizerConfig);
            _Words                          = new List <word_t>(DEFAULT_WORDSLIST_CAPACITY);
            _PosTaggerScriber               = PosTaggerScriber.Create(config.ModelFilename, config.TemplateFilename);
            _PosTaggerPreMerging            = new PosTaggerPreMerging(config.Model);
            _PosTaggerMorphoAnalyzer        = new PosTaggerMorphoAnalyzer(morphoModel, morphoAmbiguityModel);
            _ProcessSentCallback_1_Delegate = new Tokenizer.ProcessSentCallbackDelegate(ProcessSentCallback_1);
            _ProcessSentCallback_2_Delegate = new Tokenizer.ProcessSentCallbackDelegate(ProcessSentCallback_2);
        }
Exemple #6
0
            public void Dispose()
            {
                if (Processor != null)
                {
                    Processor.Dispose();
                    Processor = null;
                }

                if (MorphoModel != null)
                {
                    MorphoModel.Dispose();
                    MorphoModel = null;
                }

                if (MorphoAmbiguityResolverModel != null)
                {
                    MorphoAmbiguityResolverModel.Dispose();
                    MorphoAmbiguityResolverModel = null;
                }
            }
Exemple #7
0
        private static void CheckConfig(PosTaggerProcessorConfig config, IMorphoModel morphoModel, MorphoAmbiguityResolverModel morphoAmbiguityModel)
        {
            morphoModel.ThrowIfNull("morphoModel");

            config.ThrowIfNull("config");
            config.Model.ThrowIfNull("Model");
            config.TokenizerConfig.ThrowIfNull("TokenizerConfig");
            config.ModelFilename.ThrowIfNullOrWhiteSpace("ModelFilename");
            config.TemplateFilename.ThrowIfNullOrWhiteSpace("TemplateFilename");

            morphoAmbiguityModel.ThrowIfNull("morphoAmbiguityModel");
        }