docs: def P_conditional(self, i, li, j, lj, y):
          """Compute the conditional probability
              P_\theta(li | lj, y)
              =
              Z^{-1} exp(
                  theta_{i|y} \indpm{ \lambda_i = Y }
                  + \theta_{i,j} \indpm{ \lambda_i = \lambda_j }
              )
          In other words, compute the conditional probability that LF i outputs
          li given that LF j output lj, and Y = y, parameterized by
              - a class-conditional LF accuracy parameter \theta_{i|y}
              - a symmetric LF correlation paramter \theta_{i,j}
          """
          Z = np.sum([self._P(i, _li, j, lj, y) for _li in range(self.k + 1)])
          return self._P(i, li, j, lj, y) / Z