def filter_vocabulary_by_frequency_diff(words, word_freq1, word_freq2, threshold):
    """
    Filter words if their freq. diff over t2 and t1 >= threshold

    parameters
    -----------
    :param words: list
    :param word_freq1: dictionary
        Dictionary of words and their corresponding counts (word:count)
    :param word_freq2: dictionary
        Dictionary of words and their corresponding counts (word:count)
    :param threshold: int
    :return: list, dictionary
        List of words with frequency diff above the threshold
        Dictionary of words and their freq, diffs (word:freq_diff)

    """
    dict_word_diff = dict()
    filtered = []
    for word in words:
        f1 = word_freq1[word] if word in word_freq1 else 0
        f2 = word_freq2[word] if word in word_freq2 else 0
        diff = f2 - f1
        dict_word_diff[word] = diff
        if diff >= threshold:
            filtered.append(word)
    return filtered, dict_word_diff