###########################################################################
# Copyright 2019 (C) Hui Lan <hui.lan@cantab.net>
# Written permission must be obtained from the author for commercial uses.
###########################################################################
from wordfreqCMD import remove_punctuation, freq, sort_in_descending_order
import string


class WordFreq:
    def __init__(self, s, max_word_length=30):
        self.s = remove_punctuation(s)
        self.max_word_length = max_word_length

    def get_freq(self):
        lst = []
        for t in freq(self.s, self.max_word_length):
            word = t[0]
            if len(word) > 0 and word[0] in string.ascii_letters:
                lst.append(t)
        return sort_in_descending_order(lst)


if __name__ == '__main__':
    f = WordFreq('BANANA; Banana, apple ORANGE Banana banana.', max_word_length=30)
    print(f.get_freq())