def estimate_tokenized_list_with_models(tokenized_list, model_list, chunk_size):
	"""
	Splits the given tokenized_list into chunks of length chunk_size. With each chunk size, 
	calculates the z-scores with the estimate function of each model in model_list and return
	the mean z-scores for the given tokenized_list associated with the models in model_list

	Parameters:
		tokenized_list: the list of tokens to be estimated by the z_score estimators of the models
		model_list: the list of SLMs
		chunk_size: chunk to split the tokenized_list
	
	Returns:
		mean_z_scores: a list of the mean z scores of the tokenized list estimated by the models 
	"""
	z_scores = []
	# initalize lists to hold z-scores for each model
	for i in range(len(model_list)):
		z_scores.append([]) 

	tokenized_length = len(tokenized_list)

	# iterate through the chunks
	start = 0
	while (start < tokenized_length):

		end = start + chunk_size
	
		if end > tokenized_length - chunk_size: 
			# should just extend to the end
			end = tokenized_length
		
		chunk_tokenized_list = tokenized_list[start: end]
		chunk_text = (" ").join(chunk_tokenized_list)
		
		# estimate chunk text with all models
		for i in range(len(model_list)):
			res = model_list[i].estimate(chunk_text)    
			z_scores[i].append(res) 

		start = end # increments chunk_size at a time

	# calculate means for each corpus
	mean_z_scores = []
	for i in range(len(z_scores)):
		tmp_mean_z_score = sum(z_scores[i]) / len(z_scores[i])
		mean_z_scores.append(tmp_mean_z_score)

	return mean_z_scores