Calcualate the probability P(w1, w2, w3), given this language model.

        Parameters
        ----------
        trigram
            tuple with exactly 3 elements

        Returns
        -------
        numeric
            The log likelihood of P(w3 | (w1, w2))

def get_trigram_log_prob(self, trigram):
        """
        Calcualate the probability P(w1, w2, w3), given this language model.

        Parameters
        ----------
        trigram
            tuple with exactly 3 elements

        Returns
        -------
        numeric
            The log likelihood of P(w3 | (w1, w2))
        """
        w1, w2, w3 = trigram
        # if w1 not in self.ngrams[1]['data']:
        #     w1 = "<unk>"
        # if w2 not in self.ngrams[1]['data']:
        #     w2 = "<unk>"
        # if w3 not in self.ngrams[1]['data']:
        #     w3 = "<unk>"
        if w1 in self.ngrams[3]['data']:
            if w2 in self.ngrams[3]['data'][w1]:
                if w3 in self.ngrams[3]['data'][w1][w2]:
                    return self.ngrams[3]['data'][w1][w2][w3]
        return (Decimal(1.0).log10() -
                Decimal(int(self.ngrams[1]['count'])**2).log10())