package nlp.tool;

import java.util.HashSet;
import java.util.Arrays;

public class StopWordsList {
	public static HashSet<String> sw_list = new HashSet<String>();
	
	public StopWordsList() {
		initiate();
	}
	
	public void initiate() {
		sw_list.addAll(Arrays.asList(sw_array));
		
		// some commas
		/*sw_list.add(".");
		sw_list.add(",");
		sw_list.add(";");
		sw_list.add("?");
		sw_list.add("!");
		sw_list.add(":");
		sw_list.add("(");
		sw_list.add(")");
		sw_list.add("-");*/
	}
	
	/**
	 * To judge whether a word is a stop-word
	 * @param word_lowercase: the word, should be in lower-case
	 * @return if the word is a stop-word, then true; otherwise, false.
	 */
    public boolean isStopWord(String word_lowercase) {
    	if (sw_list.contains(word_lowercase)) return true;
    	else return false;
    }    
    
    private static final String sw_array[] = new String[]{
		"a",
		"able",
		"about",
		"across",
		"after",
		"all",
		"almost",
		"also",
		"am",
		"among",
		"an",
		"and",
		"any",
		"are",
		"as",
		"at",
		//"be",
		"because",
		"been",
		"but",
		"by",
		"can",
		"cannot",
		"could",
		"dear",
		"did",
		"do",
		"does",
		"either",
		"else",
		"ever",
		"every",
		"for",
		"from",
		"get",
		"got",
		"had",
		"has",
		"have",
		"he",
		"her",
		"hers",
		"him",
		"his",
		"how",
		"however",
		"i",
		"if",
		"in",
		"into",
		"is",
		"it",
		"its",
		"just",
		"least",
		"let",
		"like",
		"likely",
		"may",
		"me",
		"might",
		"most",
		"must",
		"my",
		"neither",
		"no",
		"nor",
		"not",
		"of",
		"off",
		"often",
		"on",
		"only",
		"or",
		"other",
		"our",
		"own",
		"rather",
		"said",
		"say",
		"says",
		"she",
		"should",
		"since",
		"so",
		"some",
		"than",
		"that",
		"the",
		"their",
		"them",
		"then",
		"there",
		"these",
		"they",
		"this",
		"tis",
		"to",
		"too",
		"twas",
		"us",
		"wants",
		"was",
		"we",
		"were",
		"what",
		"when",
		"where",
		"which",
		"while",
		"who",
		"whom",
		"why",
		"will",
		"with",
		"would",
		"yet",
		"you",
		"your"
    };
};

/*// stop word 308

// http://norm.al/2009/04/14/list-of-english-stop-words/

    private static final String sw_array[] = new String[]{
    		"a",
    		"about",
    		"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",
    		"computer",
    		"con",
    		"could",
    		"couldnt",
    		"cry",
    		"de",
    		"describe",
    		"detail",
    		"do",
    		"did",
    		"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",
    		"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",
    		"their",
    		"them",
    		"themselves",
    		"then",
    		"thence",
    		"there",
    		"thereafter",
    		"thereby",
    		"therefore",
    		"therein",
    		"thereupon",
    		"these",
    		"they",
    		"thick",
    		"thin",
    		"third",
    		"this",
    		"those",
    		"though",
    		"throughout",
    		"thru",
    		"thus",
    		"to",
    		"together",
    		"too",
    		"top",
    		"toward",
    		"towards",
    		"twelve",
    		"twenty",
    		"two",
    		"un",
    		"under",
    		"until",
    		"up",
    		"upon",
    		"us",
    		"very",
    		"via",
    		"was",
    		"we",
    		"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"
    };    		
*/


/* // stop words 119

// http://www.textfixer.com/resources/common-english-words.txt
    private static final String sw_array[] = new String[]{
		"a",
		"able",
		"about",
		"across",
		"after",
		"all",
		"almost",
		"also",
		"am",
		"among",
		"an",
		"and",
		"any",
		"are",
		"as",
		"at",
		"be",
		"because",
		"been",
		"but",
		"by",
		"can",
		"cannot",
		"could",
		"dear",
		"did",
		"do",
		"does",
		"either",
		"else",
		"ever",
		"every",
		"for",
		"from",
		"get",
		"got",
		"had",
		"has",
		"have",
		"he",
		"her",
		"hers",
		"him",
		"his",
		"how",
		"however",
		"i",
		"if",
		"in",
		"into",
		"is",
		"it",
		"its",
		"just",
		"least",
		"let",
		"like",
		"likely",
		"may",
		"me",
		"might",
		"most",
		"must",
		"my",
		"neither",
		"no",
		"nor",
		"not",
		"of",
		"off",
		"often",
		"on",
		"only",
		"or",
		"other",
		"our",
		"own",
		"rather",
		"said",
		"say",
		"says",
		"she",
		"should",
		"since",
		"so",
		"some",
		"than",
		"that",
		"the",
		"their",
		"them",
		"then",
		"there",
		"these",
		"they",
		"this",
		"tis",
		"to",
		"too",
		"twas",
		"us",
		"wants",
		"was",
		"we",
		"were",
		"what",
		"when",
		"where",
		"which",
		"while",
		"who",
		"whom",
		"why",
		"will",
		"with",
		"would",
		"yet",
		"you",
		"your"
    };
*/