public InputSentenceFileProcessor() { _firstAlgorithms = new AlgorithmsContainer(new ComprenoSentenceParseAlgorithm(), AlgorithmsStageType.PreProcessingPrepare); _finalAlgorithms = new AlgorithmsContainer(new ComprenoSentenceParseAlgorithm(), AlgorithmsStageType.FinalProcessing); }
private void _initializeFirstAlgoritms(AlgorithmsContainer algorithmsContainer) { // Алгоритм удален 26.09.2016 // firstAlgoritms.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.QuasiUniformPartsMain()); //ОЧ.1.3 // firstAlgoritms.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.QuasiUniformPartsPreliminary()); //ОЧ.0.3 // firstAlgoritms.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.QuasiUPRows()); //ОЧ.5.3 // ОДНОРОДНЫЕ ЧЛЕНЫ algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.ConjuctedWords()); //ОЧ.1.1 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.FindFalseConjunctionS()); //ОЧ.2.1 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.KSO_UP2()); //ОЧ.2.1i algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.SubjectAndPredicateConjunction()); //ОЧ.2.2 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.ConjunctedWordsForPSS()); //ОЧ.3.1 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.PSSRows()); //ОЧ.5.6 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.PSSLinkFeature()); //ОЧ.7.4 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.KSO_UP3()); //ОЧ.2.2i algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.BetweenAndI()); //ОЧ.2.3 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.WordWithLostConjunction()); //ОЧ.4.1 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.SPSSRows()); //ОЧ.5.3 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.KSO_UP4()); //ОЧ.2.3i algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.FindElliptedNoun()); //ОЧ.2.4 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.UPAdjectiveForElliptedNoun()); //ОЧ.3.2 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.AdjectiveForElliptedNounRows()); //ОЧ.5.7 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.ElliptedNounLinkFeature()); //ОЧ.7.2 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.KSO_UP5()); //ОЧ.2.4i algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.StandartUPRows()); //ОЧ.5.1 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.ConjunctedLinkFeature()); //ОЧ.7.1 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.FindFalseParticleI()); //ОЧ.0.2 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.ParticleIParentConjuctedWords()); //ОЧ.1.2 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.ParticleIRows()); //ОЧ.5.2 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.ConjunctionILinkFeature()); //ОЧ.7.3 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.QuasiUniformPartsAttachmentPreliminary()); //ОЧ.0.4 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.QuasiUniformPartsAttachmentMain()); //ОЧ.1.4.0 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.QuasiUniformPartsAttachmentType1Stage1ShowData()); // ОЧ.1.4.1 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.QuasiUniformPartsAttachmentType1Stage2ShowData()); // ОЧ.1.4.2 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.QuasiUniformPartsAttachmentType2Stage2ShowData()); // ОЧ.1.4.3 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.QuasiUPAttachmentRows()); //ОЧ.5.4 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.QuasiUPAttachmentLinkFeature()); //ОЧ.7.5 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.QuasiUniformPartsAttachmentVerbPreliminary()); //ОЧ.0.5 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.QuasiUniformPartsAttachmentVerbMain()); //ОЧ.1.5 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.QuasiUPAttachmentVerbRows()); //ОЧ.5.5 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.QuasiUPAttachmentVerbLinkFeature()); //ОЧ.7.6 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.UPRowsMergeAlgorithm()); //ОЧ.5.8 algorithmsContainer.Add(new Block3Algorithms.Final.UniformsParts.Algorithms.FinalPostProcessingForSentence()); // Пост процессинг // СКАЗУЕМЫЕ algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.SimplePredicate()); //СК.1.1 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.IndependentInfinitive()); //СК.2.1 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.AdverbialParticiplesAndPhantom()); //СК.1.2 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.Participles()); //СК.1.3 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.PredicateUnion()); //СК.2.2 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.PredicateCorrection()); //СК.3.0 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.PredicateParts()); //Предварительный 1 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.PredicatePartsShowData()); //СК.3.2 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.ConjunctedPredicates()); // Предварительный 1 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.GenerateAllPredicates()); // Предварительный 2 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.PredicateTypesShowData()); //СК.4.1 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.InnerConjunctionPredicatesFeaturesShowData()); //СК.4.2.1 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.RightToJoinInfinitivesShowData()); //СК.4.2.2 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.ForbidJoiningInfinitivesShowData()); //СК.4.2.3 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.CombiningInnerConjPredicatesShowData()); //СК.4.2.4 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.PredicatePartsStage2ShowData()); //СК.4.3 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.PredicateTypesStage2ShowData()); //СК 4.6 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.OuterConjunctionPredicatesFeaturesShowData()); //СК 4.6.1 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.RightToJoinInfinitivesAndAuxVerbsShowData()); //СК 4.6.2 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.ForbidJoiningInfinitivesAndAuxVerbsShowData()); //СК 4.6.3 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.CombiningOuterConjPredicatesShowData()); //СК 4.6.4 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.PredicatePartsStage3ShowData()); //СК 4.7 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.PredicateTypesStage3ShowData());//СК 4.8 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.PredicateModalityCheck()); //СК.4.9 // ПОДЛЕЖАЩИЕ algorithmsContainer.Add(new Block3Algorithms.Final.Subject.Algorithms.SimpleSubject()); //ПДЛ.1.1 algorithmsContainer.Add(new Block3Algorithms.Final.Subject.Algorithms.WhichSubject()); //ПДЛ.1.2 algorithmsContainer.Add(new Block3Algorithms.Final.Subject.Algorithms.AllSimpleSubjects()); //ПДЛ.1.3 algorithmsContainer.Add(new Block3Algorithms.Final.Subject.Algorithms.FalseSubjectReconstruction()); //ПДЛ.2.1 algorithmsContainer.Add(new Block3Algorithms.Final.Subject.Algorithms.SubjectUpdateStage1()); //ПДЛ.2.2 algorithmsContainer.Add(new Block3Algorithms.Final.Subject.Algorithms.SubjectPredicateСorrelation()); //ПДЛ.2.3 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.PredicatePartsStage4()); //СК 4.9 algorithmsContainer.Add(new Block3Algorithms.Final.Subject.Algorithms.SubjectPostProcessing()); // ОГС // КОД ОГС ПРАКТИЧЕСКИ НЕ ТЕСТИРОВАЛСЯ НА РЕАЛЬНЫХ ПРИМЕРАХ, ПОЭТОМУ ТАМ МОЖЕТ БЫТЬ НУ ОЧЕНЬ МНОГО ОШИБОК!!! algorithmsContainer.Add(new Block3Algorithms.Final.DivorcedWords.Algorithms.DivorcedWordsRoot());//ОГС 0.1 algorithmsContainer.Add(new Block3Algorithms.Final.DivorcedWords.Algorithms.PhantomPredicateRoot());//ОГС 0.2 algorithmsContainer.Add(new Block3Algorithms.Final.DivorcedWords.Algorithms.AllOGSWords());//ОГС 0.3 algorithmsContainer.Add(new Block3Algorithms.Final.DivorcedWords.Algorithms.ParticleThis());//ОГС 1.1 algorithmsContainer.Add(new Block3Algorithms.Final.DivorcedWords.Algorithms.RestoreToBe()); //ОГС 1.2 algorithmsContainer.Add(new Block3Algorithms.Final.DivorcedWords.Algorithms.ComplementUniformParts()); //ОГС 1.3 algorithmsContainer.Add(new Block3Algorithms.Final.DivorcedWords.Algorithms.FindDivorcedSubject()); //ОГС 2.1.1 algorithmsContainer.Add(new Block3Algorithms.Final.DivorcedWords.Algorithms.FindDivorcedPredicate()); //ОГС 2.4.1 algorithmsContainer.Add(new Block3Algorithms.Final.Predicate.Algorithms.PredicatesStage5ShowData()); //СК 5.1 algorithmsContainer.Add(new Block3Algorithms.Final.Subject.Algorithms.SubjectUpdateStage2()); //ПДЛ 3.1 algorithmsContainer.Add(new Block3Algorithms.Final.DivorcedWords.Algorithms.QuasiUPAttachmentType1Update()); //ОГС 3.3 algorithmsContainer.Add(new Block3Algorithms.Final.DivorcedWords.Algorithms.UniformPartsUpdate()); // ОГС 3.4 algorithmsContainer.Add(new Block3Algorithms.Final.DivorcedWords.Algorithms.ThenConjunction()); //ОГС 4.1 algorithmsContainer.Add(new Block3Algorithms.Final.DivorcedWords.Algorithms.IfConjunction()); //ОГС 4.2 algorithmsContainer.Add(new Block3Algorithms.Final.DivorcedWords.Algorithms.NearestPredicateAfterThen()); //ОГС 4.3 algorithmsContainer.Add(new Block3Algorithms.Final.DivorcedWords.Algorithms.OGSPostProcessing()); // Пост процессинг // ГРАММАТИЧЕСКАЯ ОСНОВА algorithmsContainer.Add(new Block3Algorithms.Final.GrammaticalBasis.Algorithms.SubjectPredicatePair());//ГО 5.3.1 algorithmsContainer.Add(new Block3Algorithms.Final.GrammaticalBasis.Algorithms.GrammaticalBaseStage1());//ГО 5.3.3 algorithmsContainer.Add(new Block3Algorithms.Final.GrammaticalBasis.Algorithms.ParticiplePair());//ГО 5.4.1 algorithmsContainer.Add(new Block3Algorithms.Final.GrammaticalBasis.Algorithms.AdverbialParticiplePair());//ГО 5.7.1 algorithmsContainer.Add(new Block3Algorithms.Final.GrammaticalBasis.Algorithms.AllGO());//ГО 5.8.1 algorithmsContainer.Add(new Block3Algorithms.Final.GrammaticalBasis.Algorithms.SubjectsUpdateStage3());//ГО 5.9.1 //Здесь и далее перенести в финальные алгоритмы algorithmsContainer.Add(new Block3Algorithms.Final.DirectObject.Algorithms.StandartDirectObject());//Д 1.1 algorithmsContainer.Add(new Block3Algorithms.Final.DirectObject.Algorithms.WhichDirectObject());//Д 1.2 algorithmsContainer.Add(new Block3Algorithms.Final.DirectObject.Algorithms.InfinitiveDirectObject());//Д 1.3 algorithmsContainer.Add(new Block3Algorithms.Final.DirectObject.Algorithms.AllDirectObjects());//Д 1.4 algorithmsContainer.Add(new Block3Algorithms.Final.DirectObject.Algorithms.FalseDirectObjectReconstruction());//Д 2.1 algorithmsContainer.Add(new Block3Algorithms.Final.DirectObject.Algorithms.AllDirectObjectsStage2ShowData());//Д 2.2 algorithmsContainer.Add(new Block3Algorithms.Final.DirectObject.Algorithms.DirectObjectPostProcessing()); // Обезоднородненные простые предложения - перенести в финальные алгоритмы algorithmsContainer.Add(new Block3Algorithms.Final.SimpleSentencesWithNoUniformElements.Algorithms.MainAndSubordinatingPredicates());//ОПП 6.1.1 algorithmsContainer.Add(new Block3Algorithms.Final.SimpleSentencesWithNoUniformElements.Algorithms.MainGrammaticalBasises());//ОПП 6.1.2 algorithmsContainer.Add(new Block3Algorithms.Final.SimpleSentencesWithNoUniformElements.Algorithms.SubordinatingGrammaticalBasises());//ОПП 6.1.3 algorithmsContainer.Add(new Block3Algorithms.Final.SimpleSentencesWithNoUniformElements.Algorithms.ConjunctedGBObjects());//ОПП 6.2.1 algorithmsContainer.Add(new Block3Algorithms.Final.SimpleSentencesWithNoUniformElements.Algorithms.FindConjunctedGB());//ОПП 6.2.2 algorithmsContainer.Add(new Block3Algorithms.Final.SimpleSentencesWithNoUniformElements.Algorithms.ConjunctedSSNU());//ОПП 6.2.3 algorithmsContainer.Add(new Block3Algorithms.Final.SimpleSentencesWithNoUniformElements.Algorithms.SSNUWithConjunction());//ОПП 6.2.4 }
private void _initializePreprocessingAlgoritms(AlgorithmsContainer firstAlgorithms, InputSentence inputSentence) { var elementsBeforeEnumerationIds = inputSentence.EnumerationsGroupNr.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList().Select(int.Parse).ToList(); var finalUPs = firstAlgorithms.FinalResult().FinalResults.UniformPartsFinalResults; var finalQuasiUPs = firstAlgorithms.FinalResult().FinalResults.QuasiUPAttachmentFinalResults; var inserts = inputSentence.RemovedTextElementsInfo; var grammaticalBasises = firstAlgorithms.FinalResult().FinalResults.GrammaticalBasisesFinalResults; _preProcessingAlgorithms = new PreProcessingAlgorithmsContainer(firstAlgorithms.FinalResult().FinalResults) { InitialSentence = firstAlgorithms.FinalResult().Sentence, APR3Inserts = new InsertsPrePreprocessingAlgorithm(finalUPs, inserts, finalQuasiUPs), APR4CheckGB = new CheckGBPrePreprocessingAlgorithm(grammaticalBasises.All, finalUPs), APR2EnumerationBlock = new EnumerationPrePreprocessingAlgorithm(elementsBeforeEnumerationIds), PreProcessingSummary = new PreProcessingSummary() }; }