Esempio n. 1
0
        /// <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));
        }
Esempio n. 2
0
 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;
 }