<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def calculate_shannon_entropy(self, data):
 """ In our investigations, we have found that when the input is all digits, the number of false positives we get greatly exceeds realistic true positive scenarios. Therefore, this tries to capture this heuristic mathemetically. We do this by noting that the maximum shannon entropy for this charset is ~3.32 (e.g. "0123456789", with every digit different), and we want to lower that below the standard limit, 3. However, at the same time, we also want to accommodate the fact that longer strings have a higher chance of being a true positive, which means "01234567890123456789" should be closer to the maximum entropy than the shorter version. """

        entropy = super(HexHighEntropyString, self).calculate_shannon_entropy(data)
        if len(data) == 1:
            return entropy

        try:
            int(data)

            # This multiplier was determined through trial and error, with the
            # intent of keeping it simple, yet achieving our goals.
            entropy -= 1.2 / math.log(len(data), 2)
        except ValueError:
            pass

        return entropy