<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def split_by_proportionally_distribute_labels(self, proportions={}, use_lengths=True):
 """ Split the corpus into subsets, so the occurrence of the labels is distributed amongst the subsets according to the given proportions. Args: proportions (dict):
 A dictionary containing the relative size of the target subsets. The key is an identifier for the subset. use_lengths (bool):
 If True the lengths of the labels are considered for splitting proportionally, otherwise only the number of occurrences is taken into account. Returns: (dict):
 A dictionary containing the subsets with the identifier from the input as key. """


        identifiers = {}

        for utterance in self.corpus.utterances.values():
            if use_lengths:
                identifiers[utterance.idx] = {l: int(d * 100) for l, d in utterance.label_total_duration().items()}
            else:
                identifiers[utterance.idx] = utterance.label_count()

        splits = utils.get_identifiers_splitted_by_weights(identifiers, proportions)

        return self._subviews_from_utterance_splits(splits)