Beispiel #1
0
        private static void PrintFullInfo(Message[] messages)
        {
            var trainingMessages = messages.Take(messages.Length * 2 / 3).ToArray();
            var testMessages     = messages.Skip(trainingMessages.Length)
                                   .Take(messages.Length - trainingMessages.Length)
                                   .ToArray();

            var spamClassifier = new SpamClassifier(trainingMessages);

            spamClassifier.PrintWords();

            Console.WriteLine("--------------------------------------------");
            Console.WriteLine("overall messages count  --> " + messages.Length);
            Console.WriteLine("training messages count --> " + trainingMessages.Length);
            Console.WriteLine("test messages count     --> " + testMessages.Length);
            Console.WriteLine("--------------------------------------------");

            var positiveCounter = 0;

            foreach (var message in testMessages)
            {
                Console.WriteLine(message);

                Console.WriteLine($"spam P: " + spamClassifier.GetSpamProbability(message));
                Console.WriteLine("non spam P: " + spamClassifier.GetNonSpamProbability(message));

                Console.WriteLine(spamClassifier.GetSpamProbability(message) >
                                  spamClassifier.GetNonSpamProbability(message)
                    ? "spam"
                    : "not spam");

                Console.WriteLine();

                var isSpam = spamClassifier.GetSpamProbability(message) >
                             spamClassifier.GetNonSpamProbability(message);

                if (message.IsSpam == isSpam)
                {
                    positiveCounter++;
                }
            }

            Console.WriteLine($"positive result: {positiveCounter}");
        }