public static void main(String[] args) {
		Map<String, Integer> algos = new HashMap<String, Integer>();
		algos.put("POS + NER", POS_NER);
		algos.put("WordNet", WORD_NET);
		algos.put("Hybrid", HYBRID);
		String[] algosArr = new String[algos.size()];
		int i = 0;
		for (String s : algos.keySet())
			algosArr[i++] = s;

		JFrame frame = new JFrame("Algorithm Selection");
		String algo = (String) JOptionPane.showInputDialog(frame,
				"Which algorithm would like to use?", "Algorithm",
				JOptionPane.QUESTION_MESSAGE, null, algosArr, algosArr[0]);

		if (algo == null)
			System.exit(0);

		Extractor extractor = null;
		switch (algos.get(algo)) {
		case POS_NER:
			extractor = new NERExtractor();
			break;
		case WORD_NET:
			extractor = new WordNetExtractor();
			break;
		case HYBRID:
			extractor = new HybridExtractor();
			break;
		}

		if (extractor == null)
			System.exit(0);

		boolean keepRunning = true;
		do {

			String question = JOptionPane.showInputDialog(new JFrame(
					"Question Input"), "Please enter your next question:");
			keepRunning = !(question == null || question.length() == 0);
			if (keepRunning) {
				JOptionPane.showMessageDialog(new JFrame("Concepts"), extractor
						.classifyQuestionTokens(question).getConcepts());
			}
		} while (keepRunning);

		System.exit(0);

	}