<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _lemmatize_token(self, token, best_guess=True, return_frequencies=False):

 		"""Lemmatize a single token. If best_guess is true, then take the most frequent lemma when a form 
 		has multiple possible lemmatizations. If the form is not found, just return it.
 		If best_guess is false, then always return the full set of possible lemmas, or None if none found.
 		"""


		lemmas = self.lemma_dict.get(token.lower(), None)

		if best_guess == True:
			if lemmas == None:
				lemma = token
			elif len(lemmas) > 1:
				counts = [self.type_counts[word] for word in lemmas]
				lemma = lemmas[argmax(counts)]
			else:
				lemma = lemmas[0]

			if return_frequencies == True:
				lemma = (lemma, self._relative_frequency(lemma))
		else:
			lemma = [] if lemmas == None else lemmas
			if return_frequencies == True:
				lemma = [(word, self._relative_frequency(word)) for word in lemma]

		return(token, lemma)