import os import operator import numpy as np from binarytree import tree,Node def entropy_single(p): return p*np.log2(1/p) def entropy_of_list(data,letter_number): H = 0 for letter in data: (letter_name, letter_frequency) = letter probability_letter = letter_frequency/letter_number H = H + entropy_single(probability_letter) return H def preprocess_sequence(sequences): letter = set(sequences) data = {i:sequences.count(i) for i in letter} letter_number = len(data) data_sort = sorted(data.items(), key=operator.itemgetter(1), reverse=True) return data_sort,letter_number #Input sequences = "Hello thanh, good!" data_sort,letter_number = preprocess_sequence(sequences) H = entropy_of_list(data_sort,letter_number) print(H)