Ejemplo n.º 1
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));
            }
        }
 public SyntaxProcessorConfig(PosTaggerProcessorConfig config,
                              IMorphoModel morphoModel,
                              MorphoAmbiguityResolverModel morphoAmbiguityModel) : this()
 {
     PosTaggerProcessorConfig = config;
     MorphoModel          = morphoModel;
     MorphoAmbiguityModel = morphoAmbiguityModel;
 }
Ejemplo n.º 3
0
        public MorphoAnalyzer(IMorphoModel model)
        {
            model.ThrowIfNull("model");

            _MorphoModel               = model;
            _WordFormMorphologies      = new List <WordFormMorphology_t>();
            _WordForms                 = new List <WordForm_t>();
            _UniqueWordFormsDictionary = new Dictionary <string, PartOfSpeechEnum>();
        }
Ejemplo n.º 4
0
        public MorphoAnalyzer(IMorphoModel model)
        {
            model.ThrowIfNull("model");

            _morphoModel               = model;
            _wordFormMorphologies      = new List <WordFormMorphology>();
            _wordForms                 = new List <WordForm>();
            _uniqueWordFormsDictionary = new Dictionary <string, PartOfSpeechEnum>();
            Buffer4Upper               = new char[DEFAULT_BUFFER_4_UPPER_SIZE];
        }
Ejemplo n.º 5
0
        public PaperAnalyzerEnvironment()
        {
            _morphoAmbiguityResolverModel = CreateMorphoAmbiguityResolverModel();
            var morphoModelConfig = CreateMorphoModelConfig();

            _morphoModel = MorphoModelFactory.Create(morphoModelConfig);
            var config = CreatePosTaggerProcessorConfig();

            _processor = new PosTaggerProcessor(config, _morphoModel, _morphoAmbiguityResolverModel);
        }
Ejemplo n.º 6
0
 public PosTaggerMorphoAnalyzer(IMorphoModel morphoModel, MorphoAmbiguityResolverModel morphoAmbiguityModel)
 {
     _morphoModel    = morphoModel;
     _morphoAnalyzer = new MorphoAnalyzer(_morphoModel);
     _morphoAmbiguityPreProcessor = new MorphoAmbiguityPreProcessor();
     _morphoAmbiguityResolver     = new MorphoAmbiguityResolver(morphoAmbiguityModel);
     _wordFormMorphologies_Buffer = new List <WordFormMorphology>();
     _wordMorphoAmbiguityFactory  = new WordMorphoAmbiguityFactory(null);
     _wordMorphoAmbiguities       = new List <WordMorphoAmbiguity>();
     CTM = XlatUnsafe.Inst._CHARTYPE_MAP;
 }
Ejemplo n.º 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");
        }
Ejemplo n.º 8
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);
        }
Ejemplo n.º 9
0
 private static SyntaxProcessorConfig CreateSyntaxProcessorConfig(PosTaggerProcessorConfig posTaggerConfig, IMorphoModel morphoModel, MorphoAmbiguityResolverModel morphoAmbiguityModel)
 => new SyntaxProcessorConfig(posTaggerConfig, morphoModel, morphoAmbiguityModel)
 {
     ModelType        = Config.SYNTAX_MODEL_TYPE,
     ModelFilename    = GetSyntaxModelFilename(Config.SYNTAX_MODEL_TYPE, Config.SYNTAX_MODEL_SUBTYPE),
     TemplateFilename = GetSyntaxTemplateFilename(Config.SYNTAX_MODEL_TYPE),
 };