private void StartButton_Click(object sender, RoutedEventArgs e)
        {
            StartButton.Content = "Restart Classification Process";
            StartButton.IsEnabled = false;
            SetupTabItem.IsEnabled = false;

            //clear all the values from the previous classification
            FeaturesListView.ItemsSource = null;
            ZipfGraphAreaSeries.ItemsSource = null;
            ResultsListView.ItemsSource = null;
            OutputTextBox.Text = "";

            RootTabControl.SelectedItem = ResultsTabItem;

            //setup all the classifier paramters here before starting
            KNN_Classifier.Comparer = (IDocumentComparer) SimilarityMeasureComboBox.SelectedItem;
            KNN_Classifier.K = Convert.ToInt32(KTextBox.Text);
            Perceptron_Classifier.LearningRate = Convert.ToDouble(LearningRateTextBox.Text);
            Winnow_Classifier.LearningRate = Convert.ToDouble(LearningRateTextBox.Text);

            MinRange = Convert.ToDouble(MinRangeTextBox.Text);
            MaxRange = Convert.ToDouble(MaxRangeTextBox.Text);

            SelectedClassifier = (Classifier)ClassifierComboBox.SelectedItem;
            TrainingDataPath = TrainingDataTextBox.Text;

            Write("Started Classification Process: "+DateTime.Now);
            Write("Began Sgml Parsing");
            SetCurrentTask( "Parsing" );
            DocClassifier.ParseAsync(CorpusPath);
        }
        //classifies the extracted documents
        private void Classify( Classifier classifier )
        {
            this.Classifier = classifier;

            foreach (String Key in Documents.Keys)
                Classifier.Add((DocumentVector)Documents[Key]);
        }
        private void ClassifyThreaded( Classifier classifier )
        {
            classificationWatch.Reset();
            classificationWatch.Start();

            Classify(classifier);

            classificationWatch.Stop();

            if (ClassifyCompleted != null)
                ClassifyCompleted(this);
        }
 public void ClassifyAsync( Classifier classifier )
 {
     ThreadStart ts = delegate() { ClassifyThreaded( classifier ); };
     Thread thread = new Thread(ts);
     thread.Start();
 }