Example #1
0
        public double calculateSum(LangSample lang)
        {
            double sum = 0;

            for (int i = 0; i < input; i++)
            {
                sum += lang.letters[i] * weight[i];
            }
            return(sum);
        }
Example #2
0
 public double getSum(LangSample test)
 {
     return(calculateSum(test));
 }
Example #3
0
 public bool testOne(LangSample test)
 {
     return(calculateSum(test) >= theta);
 }
Example #4
0
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.ASCII;
            string[]    dirs  = Directory.GetDirectories("..\\..\\..\\lang");
            List <Lang> langs = new List <Lang>();

            for (int i = 0; i < dirs.Length; i++)
            {
                langs.Add(new Lang(dirs[i]));
            }

            List <LangSample> samples = new List <LangSample>();

            for (int i = 0; i < langs[0].langSamples.Length; i++)
            {
                for (int j = 0; j < langs.Count; j++)
                {
                    samples.Add(langs[j].langSamples[i]);
                }
            }

            Perceptron[] perceptrons = new Perceptron[langs.Count];
            for (int i = 0; i < perceptrons.Length; i++)
            {
                perceptrons[i] = new Perceptron(langs[i].lang, 0.01).learn(samples);
            }
            while (true)
            {
                Console.WriteLine("\nPodaj tekst (ctrl c dla wyjscia)");
                string            test   = Console.ReadLine();
                LangSample        sample = new LangSample(test, "");
                Perceptron        better = perceptrons[0];
                List <Perceptron> found  = new List <Perceptron>();
                foreach (var perceptron in perceptrons)
                {
                    if (perceptron.testOne(sample))
                    {
                        found.Add(perceptron);
                    }
                    if (better.getSum(sample) < perceptron.getSum(sample))
                    {
                        better = perceptron;
                    }
                }
                if (found.Count > 1)
                {
                    Console.Write("\n\nRozpoznano: ");
                    foreach (var perc in found)
                    {
                        Console.Write(perc.lang + ", ");
                    }
                    Console.WriteLine("\na najlepszy wynik mial " + better.lang + "\n\n");
                }
                else if (found.Count == 1)
                {
                    Console.Write("\n\nRozpoznano " + better.lang + "\n\n");
                }
                else
                {
                    Console.Write("\n\nNie rozpoznano zadnego jezyka, ale najblizej byl " + better.lang + "\n\n");
                }
            }
        }