def eval(input_x,input_y,test_x,test,label,write_folder = None):
			tuned_parameters = [{'kernel': ['rbf'], 'gamma': [1e-3, 1e-4],
              		  			'C': [1, 10, 100, 1000]},
                				{'kernel': ['linear'], 'C': [1, 10, 100, 1000]}]
			grid_clf = GridSearchCV(SVR(C=1,epsilon=0.2), tuned_parameters)
			grid_clf.fit(input_x,input_y)
			print "params : \t"
			print grid_clf.get_params()
			result = grid_clf.predict(test_x)
			#py_weka = python_weka(input_x,input_y,label)
			#py_weka.train()
			#result = py_weka.predict(test_x)
			#py_weka.close()
			#clf = SVR(C=1.0, epsilon=0.2)
			#clf.fit(input_x,input_y)
			#result =  clf.predict(test_x)
			score_index = 0
			produce_set = []
			for i in test:
				produce_set.append([])
				score_list = []
				index_list = []
				for j in i.thread:
					for k in j.sentences:
						k.predict_score = result[score_index]
						score_index += 1
						score_list.append(k.predict_score)
						index_list.append(k.index)
				sorted_index_array = sorted_index(score_list)
				sen_length = 0
				for j in range(len(index_list)):
					if sen_length < float(len(index_list))*0.3:
						produce_set[-1].append(index_list[sorted_index_array[len(index_list)-j-1]])
						sen_length += 1
					else:
						break
			score =  weightRecall(test,produce_set,write_folder)
			print score
			rouge_eval = rouge(test,produce_set)
			rouge_score =  rouge_eval.eval()['rouge_l_f_score']
			print rouge_score
			return score,rouge_score
	def rnn_test(self):
		produce_set = []
		for i in self.test:
			produce_set.append([])
			score_list = []
			index_list = []
			for j in i.thread:
				input_ins = []
				label_ins = []
				index = []
				for k in j.sentences:
                                	input_ins.append(k.feature)
					index.append(k.index)
                                input_ins = input_ins + input_ins
                                input_ins = numpy.asarray(numpy.float32(input_ins))
                           	softmax_array = self.rnn_model.prob(input_ins)
				count = 0
                		for i in softmax_array[(len(softmax_array)/2) :]:
					score = i#(i[1] * 0.33) + (i[2] * 0.66) + (i[3] * 1)
					score_list.append(score)
					index_list.append(index[count])
					count += 1
			sorted_index_array = sorted_index(score_list)
                        sen_length = 0
                        for j in range(len(index_list)):
                        	if sen_length < float(len(index_list))*0.3:
                                	produce_set[-1].append(index_list[sorted_index_array[len(index_list)-j-1]])
                                        sen_length += 1
                                else:
                                	break
		score =  weightRecall(self.test,produce_set)
                print score
		rouge_eval = rouge(self.test,produce_set)
                rouge_score =  rouge_eval.eval()['rouge_l_f_score']
                print rouge_score
		return score,rouge_score