-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWordFilter.cpp
More file actions
43 lines (39 loc) · 4.67 KB
/
Copy pathWordFilter.cpp
File metadata and controls
43 lines (39 loc) · 4.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include "WordFilter.h"
#include <string>
#include "Global.h"
using namespace std;
WordFilter::WordFilter() : words(vector<string>())
{
//string common_en[] = {"a", "about", "after", "again", "against", "all", "an", "another", "any", "and", "are", "as", "at", "be", "being", "been", "before", "but", "by", "can", "could", "did", "do", "dont", "down", "each", "few", "from", "for", "get", "got", "great", "had", "has", "have", "he", "her", "here", "his", "him", "himself", "hers", "how", "i", "if", "im", "in", "into", "is", "it", "its", "just", "like", "made", "me", "more", "most", "my", "no", "not", "of", "off", "on", "once", "one", "only", "or", "other", "our", "out", "over", "own", "said", "she", "should", "so", "some", "such","than", "that", "the", "their", "them", "then", "there", "these", "they", "this", "those", "through", "to", "too", "sunder", "until", "up", "very", "was", "wasnt", "we", "were", "what", "when", "where", "which", "while", "who", "why", "will", "with", "would", "wouldnt", "you", "your"};
//THESE MUST BE KEPT IN ALPHABETICAL ORDER
string common_en[] = {"a", "about", "above", "above", "across", "after", "afterwards", "again", "against", "all", "almost", "alone", "along", "already", "also","although","always","am","among", "amongst", "amoungst", "amount", "an", "and", "another", "any","anyhow","anyone","anything","anyway", "anywhere", "are", "around", "as", "at", "back","be","became", "because","become","becomes", "becoming", "been", "before", "beforehand", "behind", "being", "below", "beside", "besides", "between", "beyond", "bill", "both", "bottom","but", "by", "call", "can", "cannot", "cant", "co", "con", "could", "couldnt", "cry", "de", "describe", "detail", "do", "done", "down", "due", "during", "each", "eg", "eight", "either", "eleven","else", "elsewhere", "empty", "enough", "etc", "even", "ever", "every", "everyone", "everything", "everywhere", "except", "few", "fifteen", "fify", "fill", "find", "fire", "first", "five", "for", "former", "formerly", "forty", "found", "four", "from", "front", "full", "further", "get", "give", "go", "had", "has", "hasnt", "have", "he", "hence", "her", "here", "hereafter", "hereby", "herein", "hereupon", "hers", "herself", "him", "himself", "his", "how", "however", "hundred", "i", "ie", "if", "in", "inc", "indeed", "interest", "into", "is", "it", "its", "itself", "keep", "last", "latter", "latterly", "least", "less", "ltd", "made", "many", "may", "me", "meanwhile", "might", "mill", "mine", "more", "moreover", "most", "mostly", "move", "much", "must", "my", "myself", "name", "namely", "neither", "never", "nevertheless", "next", "nine", "no", "nobody", "none", "noone", "nor", "not", "nothing", "now", "nowhere", "of", "off", "often", "on", "once", "one", "only", "onto", "or", "other", "others", "otherwise", "our", "ours", "ourselves", "out", "over", "own","part", "per", "perhaps", "please", "put", "rather", "re", "same", "see", "seem", "seemed", "seeming", "seems", "serious", "several", "she", "should", "show", "side", "since", "sincere", "six", "sixty", "so", "some", "somehow", "someone", "something", "sometime", "sometimes", "somewhere", "still", "such", "system", "take", "ten", "than", "that", "the", "thee", "their", "them", "themselves", "then", "thence", "there", "thereafter", "thereby", "therefore", "therein", "thereupon", "these", "they", "thickv", "thin", "third", "this", "those", "thou", "though", "three", "through", "throughout", "thru", "thus", "thy", "to", "together", "too", "top", "toward", "towards", "twelve", "twenty", "two", "un", "under", "until", "up", "upon", "us", "very", "via", "was", "we", "well", "were", "what", "whatever", "when", "whence", "whenever", "where", "whereafter", "whereas", "whereby", "wherein", "whereupon", "wherever", "whether", "which", "while", "whither", "who", "whoever", "whole", "whom", "whose", "why", "will", "with", "within", "without", "would", "yet", "you", "your", "yours", "yourself", "yourselves", "the"};
string tempstr;
//load the strings to be rejected into a vector for easier handling
for (int i=0; i< (sizeof(common_en) / sizeof(string)); i++)
{
//convert to lower case
tempstr = common_en[i];
for (int j = 0; j < tempstr.size(); j++)
{
tempstr[j] = tolower(tempstr[j]);
}
//add it to the master filter list
words.push_back(tempstr);
}
//okay, now we've got them in a vector, lets sort them
sort(words.begin(), words.end());
}
//checks whether the passed word is allowed (i.e. not in the filter list)
bool WordFilter::allowed(string &word)
{
if (settings.remove_common_words)
{
for (int i = 0; i < word.size(); i++)
{
word[i] = tolower(word[i]);
}
return !binary_search(words.begin(),words.end(),word);
}
else
return true;
}