def gen_trigrams()

in product_matching/hyperboloid.py [0:0]


    def gen_trigrams(self):
        """
        Generates all trigrams for characters from `trigram_chars`
        """
        trigram_chars="0123456789abcdefghijklmnopqrstuvwxyz"
        t3=[''.join(x) for x in itertools.product(trigram_chars,repeat=3)] #len(words)>=3
        t2_start=['#'+''.join(x) for x in itertools.product(trigram_chars,repeat=2)] #len(words)==2
        t2_end=[''.join(x)+'#' for x in itertools.product(trigram_chars,repeat=2)] #len(words)==2
        t1=['#'+''.join(x)+'#' for x in itertools.product(trigram_chars)] #len(words)==1
        trigrams=t3+t2_start+t2_end+t1
        vocab_size=len(trigrams)
        trigram_map=dict(zip(trigrams,range(1,vocab_size+1))) # trigram to index mapping, indices starting from 1
        return trigram_map