示例#1
0
        /// <summary>
        /// Odczytuje klasyfikator Bayesa z podanego pliku.
        /// </summary>
        /// <param name="pathFile">Scieżka do pliku.</param>
        public void LoadBayes(String pathFile)
        {
            Stream          stream     = File.Open(pathFile, FileMode.Open);
            BinaryFormatter bFormatter = new BinaryFormatter();

            this.bayesClassificator          = (BayesClassificator)bFormatter.Deserialize(stream);
            DocumentClass.DocumentCategories = (List <String>)bFormatter.Deserialize(stream);
            LoadSettings(stream, bFormatter);
            stream.Close();


            this.form.LoadClassificatorEnd(ClasyficatorType.Bayes);
        }
示例#2
0
        public void Test()
        {
            string[] boys         = new String[] { "Michal", "Pawel", "Jan", "Wiktor", "Zbigniew", "Emil", "Tomek" };
            string[] girls        = new String[] { "Wika", "Ania", "Aga", "Joanna", "Gosia", "Iwona" };
            string[] testBoys     = new String[] { "Michal", "Jan", "Andrzej", "Tomek" };
            string[] testGirls    = new String[] { "Wika", "Ania", "Joanna", "Ilona" };
            string[] testDiferent = new String[] { "Wika", "Ania", "Joanna", "Ilona", "Tomek", "Gosia" };

            BayesClassificator bayes = new BayesClassificator();

            Console.WriteLine("Uczy sie imion chlopcow ....");
            bayes.Learn(boys);  //index 0
            Console.WriteLine("Uczy sie imion dziewczyn ...");
            bayes.Learn(girls); //index 1
            int test = bayes.Classificate(testBoys);

            if (test == 0)
            {
                Console.WriteLine("Zgadl !. To naprawde imiona chlopcow.");
            }
            else
            {
                Console.WriteLine("Niestety. Prawidlowa odpowiedz: imiona chlopcow !");
            }
            test = bayes.Classificate(testGirls);
            if (test == 1)
            {
                Console.WriteLine("Zgadl !. To naprawde imiona dziewczyn.");
            }
            else
            {
                Console.WriteLine("Niestety. Prawidlowa odpowiedz: imiona dziewczyn !");
            }
            test = bayes.Classificate(testDiferent);
            if (test == 1)
            {
                Console.WriteLine("Mysli ze to imiona dziewczyn.");
            }
            else if (test == 0)
            {
                Console.WriteLine("Mysli ze to imiona chlopcow.");
            }
            Assert.IsTrue(true);
        }
示例#3
0
        private void BayesLearn()
        {
            //tworze klasyfikator
            bayesClassificator = new BayesClassificator(learningWorker);

            //ładuje listę kategorii
            DocumentClass.LoadFromFiles(Settings.Default.pathLearningDir, PreprocessingConsts.CategoryFilePattern);

            //tworze liste kategorii
            CategoryList categoryList = new CategoryList(Settings.Default.pathLearningDir, PreprocessingConsts.CategoryFilePattern);

            this.allWordsInBayesCategory = categoryList.AllWordsCount;

            //nauka
            if (bayesClassificator.Learn(categoryList) == false)
            {
                bayesClassificator           = null;
                this.allWordsInBayesCategory = 0;
            }
        }