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