<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def log_prob(self,observations_list, quantities):
 """ Finds Weighted log probability of a list of observation sequences **Arguments**: :param observation_list: A nested list, or a list of lists :type observation_list: Contains a list multiple observation sequences. :param quantities: Number of times, each corresponding item in 'observation_list' occurs. :type quantities: A list of integers :return: Weighted log probability of multiple observations. :rtype: float **Features**: Scaling applied here. This ensures that no underflow error occurs. **Example**: """


        prob = 0
        for q,obs in enumerate(observations_list):
            temp,c_scale = self._alpha_cal(obs)
            prob = prob +  -1 *  quantities[q] * np.sum(np.log(c_scale))
        return prob