<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _handle_treebank(self, X):
 """ Create a part-of-speech tag mapping using the Penn Treebank tags Parameters X : list or generator Should be provided as a list of documents or a generator that yields a list of documents that contain a list of sentences that contain (token, tag) tuples. """

        for tagged_doc in X:
            for tagged_sent in tagged_doc:
                for _, tag in tagged_sent:
                    if tag.startswith("N"):
                        self.pos_tag_counts_["noun"] += 1
                    elif tag.startswith("J"):
                        self.pos_tag_counts_["adjective"] += 1
                    elif tag.startswith("V"):
                        self.pos_tag_counts_["verb"] += 1
                    # include particles with adverbs
                    elif tag.startswith("RB") or tag == "RP":
                        self.pos_tag_counts_["adverb"] += 1
                    elif tag.startswith("PR"):
                        self.pos_tag_counts_["pronoun"] += 1
                    elif tag.startswith("W"):
                        self.pos_tag_counts_["wh- word"] += 1
                    elif tag == "CC":
                        self.pos_tag_counts_["conjunction"] += 1
                    elif tag == "CD":
                        self.pos_tag_counts_["digit"] += 1
                    # combine predeterminer and determiner
                    elif tag in ["DT" or "PDT"]:
                        self.pos_tag_counts_["determiner"] += 1
                    elif tag == "EX":
                        self.pos_tag_counts_["existential"] += 1
                    elif tag == "FW":
                        self.pos_tag_counts_["non-English"] += 1
                    elif tag == "IN":
                        self.pos_tag_counts_["preposition"] += 1
                    elif tag == "POS":
                        self.pos_tag_counts_["possessive"] += 1
                    elif tag == "LS":
                        self.pos_tag_counts_["list"] += 1
                    elif tag == "MD":
                        self.pos_tag_counts_["modal"] += 1
                    elif tag in self.punct_tags:
                        self.pos_tag_counts_["punctuation"] += 1
                    elif tag == "TO":
                        self.pos_tag_counts_["infinitive"] += 1
                    elif tag == "UH":
                        self.pos_tag_counts_["interjection"] += 1
                    elif tag == "SYM":
                        self.pos_tag_counts_["symbol"] += 1
                    else:
                        self.pos_tag_counts_["other"] += 1