示例#1
0
文件: Engine.cs 项目: Ogonik/LWS
        public Engine(Config config)
        {
            _config = config;

            _block3Files = new Block3Files(config.InputFile, config.OutputFile, config.ErrorsFile, string.IsNullOrEmpty(config.InputString));

            _processComprenoConfig();
        }
示例#2
0
        public void Process(Block3Files block3Files, string inputString,
            Action<AlgorithmsStageType, BaseSentenceAlgorithm, BaseSentenceAlgorithmData> singleAlgorithmCompleteCallback,
            Action<AlgorithmsStageType, BaseSentenceAlgorithm> singleAlgorithmStartCallback)
        {
            Debug.Assert(block3Files != null);

            if (string.IsNullOrEmpty(inputString))
            {
                Log.InfoFormat("Читаем входное предложение из файла {0}", block3Files.InputFileName);
                _inputSentence = new InputSentence(block3Files.InputFS);
            }
            else
            {
                Log.Info("Читаем входное предложение из строки ввода");
                _inputSentence = new InputSentence(inputString);
            }

            Log.Info("Инициализация первичных алгоритмов обработки");
            _initializeFirstAlgoritms(_firstAlgorithms);
            Log.InfoFormat("Выполнено. {0} Информация о существующих алгоритмах: {1}", Environment.NewLine,
                _firstAlgorithms.ShortInfo());

            Log.Info("Применяем первичные алгоритмы.");
            _firstAlgorithms.ApplyAlgorithms(_inputSentence.InitialText, singleAlgorithmCompleteCallback, singleAlgorithmStartCallback);

            Log.Info("Инициализация АПР");
            _initializePreprocessingAlgoritms(_firstAlgorithms, _inputSentence);

            Log.Info("Применяем АПР.");
            var newSentenceText = _preProcessingAlgorithms.ApplyAPRAlgorithms(_inputSentence, _firstAlgorithms.FinalResult().Sentence, singleAlgorithmCompleteCallback, singleAlgorithmStartCallback);

            Log.Info("Финальная идентификация ЛО.");
            _initializeFinalAlgoritms();
            _finalAlgorithms.ApplyAlgorithms(newSentenceText, singleAlgorithmCompleteCallback, singleAlgorithmStartCallback);

            //SaveReults(inputSentence);
        }