private void ToolStripButtonEditBlacklistClick(object sender, EventArgs e) { Language language = ByLanguageFactory.GetLanguageFromString(toolStripComboBoxLanguage.Text); string fileName = ByLanguageFactory.GetBlacklistFileName(language); Process.Start("notepad.exe", fileName); }
private void ToolStripButtonGoClick(object sender, EventArgs e) { IsRunning = true; string path = FolderTree.SelectedPath; Language language = ByLanguageFactory.GetLanguageFromString(toolStripComboBoxLanguage.Text); FileIterator fileIterator = ByLanguageFactory.GetFileIterator(language); IBlacklist blacklist = ByLanguageFactory.GetBlacklist(language); IWordStemmer stemmer = ByLanguageFactory.GetStemmer(language); SetCaptionText("Estimating ..."); string[] files = fileIterator .GetFiles(path) .ToArray(); ToolStripProgressBar.Maximum = files.Length; m_CloudControl.WeightedWords = new List <IWord>(); //Note do not dispose m_CancelSource it will be disposed by task //TODO need to find correct way to work with CancelationToken //http://stackoverflow.com/questions/6960520/when-to-dispose-cancellationtokensource m_CancelSource = new CancellationTokenSource(); Task.Factory .StartNew( () => GetWordsParallely(files, language, blacklist, stemmer), m_CancelSource.Token) .ContinueWith( ApplyResults); }
private void AddToBlacklist(string term) { Language language = ByLanguageFactory.GetLanguageFromString(toolStripComboBoxLanguage.Text); string fileName = ByLanguageFactory.GetBlacklistFileName(language); using (StreamWriter writer = new StreamWriter(fileName, true, Encoding.UTF8)) { writer.WriteLine(); writer.Write(term); } }
private List <IWord> GetWordsParallely(IEnumerable <string> files, Language language, IBlacklist blacklist, IWordStemmer stemmer) { return(files .AsParallel() //.WithDegreeOfParallelism(0x8) .WithCancellation(m_CancelSource.Token) .WithCallback(DoProgress) .SelectMany(file => ByLanguageFactory.GetWordExtractor(language, file)) .Filter(blacklist) .CountOccurences() .GroupByStem(stemmer) .SortByOccurences() .AsEnumerable() .Cast <IWord>() .ToList()); }