Constrained Labeling for Weakly Supervised Learning