public static ComparisonResult Compare(Sentence target, Sentence sample, LinguisticObjectsMap objectsMap) { return new ComparisonResult { SampleSantence = sample, TargetSentence = target, SimpleSentenceStats = (new SamplesProcessor(target, sample))._calculateStats(objectsMap), SimpleSentecesComparison = _getStatsFoSS(objectsMap, target, sample) }; }
private static LinguisticObjectsGroup _getStatsFoSS(LinguisticObjectsMap objectsMap, Sentence target, Sentence sample) { var result = new LinguisticObjectsGroup { Objects = objectsMap.SimpleSentences.Select(match => _processSimpleSentence(match, target, sample)).ToList() }; _chargePenalties(result.Objects); result.Objects.ForEach(o => SimpleSentenceStats.CalculateAverage(result)); var falsey = result.Objects.Any(o => o.MappedObjects.SampleObjects == null); return result; }
private List<SimpleSentenceStats> _calculateStats(LinguisticObjectsMap objectsMap) { objectsMap.Predicates.ForEach(_processPredicate); objectsMap.Subjects.ForEach(_processSubject); objectsMap.Uniforms.ForEach(_processUniforms); objectsMap.MeaningAuxParts.ForEach(_processMeaningPart); objectsMap.LinkedChains.ForEach(_processLinkedChain); _simpleSentencesStats.ForEach(_chargePenalties); _simpleSentencesStats.ForEach(stats => stats.CalculateQuality()); return _simpleSentencesStats; }