def make_tree(data_dict):
    """
    Makes a trie using the t9 numerical values of the characters in the dict of words passed in

    PARAMETERS:
    ----
    data_dict : dictionary
        Dictionary of words and their associated frequency values

    RETURNS:
    ----
    Dictionary
        Nested dictionary taking the form of a Trie, using t9 numerical values instead of alphabetic characters

    """

    tree = dict()

    for word in data_dict.keys():
        current_node = tree
        for char in word:
            if char == "a" or char == "b" or char == "c":
                num = 2
            elif char == "d" or char == "e" or char == "f":
                num = 3
            elif char == "g" or char == "h" or char == "i":
                num = 4
            elif char == "j" or char == "k" or char == "l":
                num = 5
            elif char == "m" or char == "n" or char == "o":
                num = 6
            elif char == "p" or char == "q" or char == "r" or char == "s":
                num = 7
            elif char == "t" or char == "u" or char == "v":
                num = 8
            else:
                num = 9
            
            if num not in current_node:
                current_node[num] = dict()
            current_node = current_node[num]
        current_node[word] = data_dict[word]

    return tree