/// <summary> /// Zwraca sumę różnic artykulacyjnych między dwiema próbkami /// </summary> /// <param name="readings"></param> /// <param name="condition"></param> /// <returns></returns> public static int R(List <Reading> readings, Condition conditionA, Condition conditionB, bool use4thFormant = false) { var resA = new List <VowelRecognition>(); var resB = new List <VowelRecognition>(); int contextsA = ApsManager.ConditionalCount(readings, conditionA); int contextsB = ApsManager.ConditionalCount(readings, conditionB); foreach (var i in ApsInterface.oldPolishVowels) { int continuantsA = ApsManager.ConditionalCount(readings, new Condition(i)); int continuantsB = ApsManager.ConditionalCount(readings, new Condition(i)); var medianA = ApsManager.ConditionalMedian(readings, conditionA); var medianB = ApsManager.ConditionalMedian(readings, conditionB); var counterA = ApsManager.ConditionalCount(readings, conditionA); var counterB = ApsManager.ConditionalCount(readings, conditionB); var examplesA = ApsManager.GetExamples(readings, conditionA); var examplesB = ApsManager.GetExamples(readings, conditionB); var recognitionA = ApsManager.FindModel(new Reading(medianA), Program.Models, use4thFormant); var recognitionB = ApsManager.FindModel(new Reading(medianB), Program.Models, use4thFormant); var vowelCodeA = VowelCode.CodeFromString(recognitionA.Code); var vowelCodeB = VowelCode.CodeFromString(recognitionB.Code); var ipaSymbolA = recognitionA.Symbol; var ipaSymbolB = recognitionB.Symbol; resA.Add(new VowelRecognition(i, medianA, counterA, examplesA, continuantsA, contextsA, vowelCodeA, recognitionA, ipaSymbolA)); resB.Add(new VowelRecognition(i, medianB, counterB, examplesB, continuantsB, contextsB, vowelCodeB, recognitionB, ipaSymbolB)); } return(R(resA, resB)); }
public VowelRecognition(OldPolishVowels oldPolishVowel, Frequency conditionalMedian, int counter, List <string> examples, int continuants, int contexts, VowelCode vowelCode, VowelModel recognition, string ipaSymbol) { this.OldPolishVowel = oldPolishVowel; this.ConditionalMedian = conditionalMedian; this.Counter = counter; this.Examples = examples; this.PercentageOnContexts = (double)counter / contexts; this.PercentageOnContinuants = (double)counter / continuants; this.VowelCode = vowelCode; this.IpaSymbol = ipaSymbol; }