if __name__ == '__main__':
	total_err_ran = 0.0
	total_err = 0.0
	total_err1 = 0.0
	total_err2 = 0.0
	total_err_nno = 0.0
	total_err_nnced = 0.0
	total_err_nnwed = 0.0
	total_err_bos = 0.0

	for i in range(util.TRIALS):
		print "Trial", i

		ql = util.parsePowerGrading()
		ran = RandomPredictor(ql)
		bow = ConstantBestGuessPredictor(ql)
		bow1 = NGramRegression(ql, 1)
		bow2 = NGramRegression(ql, 2)
		nno = NearestNeighborOverlap(ql)
		nnced = NearestNeighborCharEditDistance(ql)
		nnwed = NearestNeighborWordEditDistance(ql)
		bos = BagOfSynsets(ql)

		total_err_ran += ran.run()
		total_err += bow.run()
		total_err1 += bow1.run()
		total_err2 += bow2.run()
		total_err_nno += nno.run()
		total_err_nnced += nnced.run()
		total_err_nnwed += nnwed.run()
		total_err_bos += bos.run()
if __name__ == '__main__':
	total_err_ran = 0.0
	total_err_cbg = 0.0
	total_err_bop = 0.0
	total_err_fop = 0.0
	total_err_edit = 0.0
	total_err_cep = 0.0
	total_err_com = 0.0

	for i in range(util.TRIALS):
		print "Trial", i

		ql = util.parsePowerGrading()
		ran = RandomPredictor(ql)
		cbg = ConstantBestGuessPredictor(ql)
		bop = BOPRegression(ql)
		fop = FOPRegression(ql)
		cep = CharEditDistancePredictor(ql)
		edit = WordEditDistancePredictor(ql)
		com = CombinedModel(ql, [NGramRegression, FractionOverlapPredictor, CharEditDistancePredictor], linear_model.LinearRegression)

		total_err_ran += ran.run()
		total_err_cbg += cbg.run()
		total_err_bop += bop.run()
		total_err_fop += fop.run()
		total_err_edit += edit.run()
		total_err_cep += cep.run()
		total_err_com += com.run()

	print "Average Random RMSE:",