private IClassifier CreateClassifier() { var classifiers = new List<IClassifier>(); if (this.naiveBayesCheckBox.Checked) classifiers.Add(new NaiveBayesClassifier(this.stopWords)); if (this.wordLengthCheckBox.Checked) classifiers.Add(new AverageWordLengthClassifier()); if (this.sentenceLengthCheckBox.Checked) classifiers.Add(new SentenceLengthClassifier()); if (this.questionMarkCheckBox.Checked) classifiers.Add(new PunctuationClassifier('?', PunctuationClassifier.PerSentence)); if (this.exclamationMarkCheckBox.Checked) classifiers.Add(new PunctuationClassifier('!', PunctuationClassifier.PerSentence)); if (this.apostropheCheckBox.Checked) classifiers.Add(new PunctuationClassifier('\'', PunctuationClassifier.PerWord)); if (classifiers.Count == 1) return classifiers.First(); else { var boostingClassifier = new BoostingClassifier(); foreach (var subclassifier in classifiers) boostingClassifier.Add(subclassifier); return boostingClassifier; } }
public MainForm() { InitializeComponent(); this.stopWords = Regex.Split(Stopwords.StopWords, @"\r\n"); var classifier = new BoostingClassifier(); classifier.Add(new NaiveBayesClassifier(stopWords)); classifier.Add(new SentenceLengthClassifier()); classifier.Add(new AverageWordLengthClassifier()); classifier.Add(new PunctuationClassifier('\'', PunctuationClassifier.PerWord)); classifier.Add(new PunctuationClassifier('?', PunctuationClassifier.PerSentence)); classifier.Add(new PunctuationClassifier('!', PunctuationClassifier.PerSentence)); this.classifier = classifier; }