def METHOD_NAME(self, samples: List[Dict]) -> List[Dict]:
    """
    Given the full dataset this function only retains news article and QAs where there are
    at least one question that is valid. The question is valid if all crowdworkers believe that
    the question is valid and that the answer is present in text.
    """
    clean_samples: List = []
    for sample in samples:
        # set of valid questions in the sample
        valid_questions = []
        for question in sample["questions"]:
            add_question = True
            if ("isQuestionBad" in question.keys()) and (question["isQuestionBad"] != 0.0):
                add_question = False
            if ("badQuestion" in question["consensus"].keys()) and (question["consensus"]["badQuestion"] is True):
                add_question = False
            if add_question is True:
                valid_questions.append(question)
        clean = len(valid_questions) >= 1
        sample["questions"] = valid_questions
        if clean is True:
            clean_samples.append(sample)
    return clean_samples