public Engine(Config config) { _config = config; _block3Files = new Block3Files(config.InputFile, config.OutputFile, config.ErrorsFile, string.IsNullOrEmpty(config.InputString)); _processComprenoConfig(); }
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); }