def bigrams(words, join_string, skip=0):
        """
        Input: a list of words, e.g., ["I", "am", "Denny"]
        Output: a list of bigram, e.g., ["I_am", "am_Denny"]
        """
        assert type(words) == list
        L = len(words)
        if L > 1:
            lst = []
            for i in range(L - 1):
                for k in range(1, skip + 2):
                    if i + k < L:
                        lst.append(join_string.join([words[i], words[i + k]]))
        else:
            # set it as unigram
            lst = NgramUtil.unigrams(words)
        return lst

        Input: a list of words, e.g., ["I", "am", "Denny"]
        Output: a list of bigram, e.g., ["I_am", "am_Denny"]
        
pycorrector/utils/ngram_util.py