Ejemplo n.º 1
0
        public void Run()
        {
            Console.WriteLine("Downloading news for database...");
            List <News> news = DataStore.Instance.GetAllNews(300);

            Console.WriteLine("News downloaded " + news.Count);

            news = Words.ComputeWords(news);

            /*
             * CosinusMetricComparator cos = new CosinusMetricComparator();
             * EuclidesMetricComparator eu = new EuclidesMetricComparator();
             * JaccardMetricCompartator ja = new JaccardMetricCompartator();
             */

            var stats = new WordsStats(news);

            stats.Compute();

            DataStatistics ds = new DataStatistics();

            Console.WriteLine("Jaccard metric information: ");
            Console.WriteLine(ds.getData(news, stats, 5000, new JaccardMetricCompartator()));

            Console.WriteLine("Cosinus metric information: ");
            Console.WriteLine(ds.getData(news, stats, 5000, new CosinusMetricComparator()));

            Console.WriteLine("Euclides metric information: ");
            Console.WriteLine(ds.getData(news, stats, 5000, new EuclidesMetricComparator()));
        }
Ejemplo n.º 2
0
        public void Run()
        {
            DateTime expSt = DateTime.Now;

            Console.WriteLine("========================================================================");
            Console.WriteLine(" Metoda porównania: " + comparators[comparatorId].GetType());
            Console.WriteLine("========================================================================");
            WordsStats stats = new WordsStats(Words.ComputeWords(DataStore.Instance.GetAllNews()));

            stats.Compute();

            List <string> experimentTopics;

            if (topics != null)
            {
                experimentTopics = new List <string>();
                experimentTopics.AddRange(topics);
            }
            else
            {
                experimentTopics = GetRandomTopics(topicCount);
            }


            Group initialGroup = GroupFactory.CreateGroupWithNewsFromTopics(experimentTopics);


            Console.WriteLine("========================================================================");
            Console.WriteLine("Topiki w grupie początkowej:");
            foreach (string topic in experimentTopics)
            {
                Console.WriteLine(topic + " [" + Util.topicCountInGroup(topic, initialGroup) + "]");
            }

            Console.WriteLine("Rozmiar grupy: " + initialGroup.Count);
            ;

            DateTime start;
            TimeSpan t1, t2;


            Hierarchical hr = new Hierarchical(comparators[comparatorId], stats, maxLen);
            Kmeans       km = new Kmeans(comparators[comparatorId], stats, maxLen);

            Console.WriteLine("========================================================================");

            if (!onlyKMeans)
            {
                start = DateTime.Now;
                List <Group> hierarchicalResult = hr.Compute(initialGroup, topicCount != 0 ? topicCount : (uint)topics.Length,
                                                             Hierarchical.Distance.AVG);
                t1 = (DateTime.Now - start);
                PrintStats("Hierachical", t1, hierarchicalResult, 0);
            }

            start = DateTime.Now;
            List <Group> kMeansResult = km.Compute(initialGroup, topicCount != 0 ? topicCount : (uint)topics.Length, kMeansIterations);

            t2 = (DateTime.Now - start);
            PrintStats("KMeans", t2, kMeansResult, kMeansIterations);


            Console.WriteLine("========================================================================");
            Console.WriteLine("Czas działania: " + (DateTime.Now - expSt));
        }