示例#1
0
        private void ToolStripButtonEditBlacklistClick(object sender, EventArgs e)
        {
            Language language = ByLanguageFactory.GetLanguageFromString(toolStripComboBoxLanguage.Text);
            string   fileName = ByLanguageFactory.GetBlacklistFileName(language);

            Process.Start("notepad.exe", fileName);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
            }
        }
示例#4
0
 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());
 }